#archived-modding-development

1 messages · Page 171 of 1

copper nacelle
#

no i've gotten so close

#

pain

#

i'm gonna shriek once then double hit shade soul twice

#

then get to full soul and transition w/ nail w/ that

#

then spam shade soul

cunning lagoon
#

imagine going through all those hoops just to beat a piss easy boss lol

#

just dont get hit lol

fair rampart
#

the mod installer seems to be stuck in an infinite loop of downloading and then saying "completed" then doing it again

solemn rivet
copper nacelle
#

:grub:

solemn rivet
#

:grub:

cunning lagoon
#

why would you type :grub instead of :think

solemn rivet
#

idk

copper nacelle
#

i am very much considering a markoth buff mod

fair rampart
#

running as admin does not fix the issue

cunning lagoon
#

delet

fair rampart
cunning lagoon
#

im definitely buffing elder hu

#

first things first

#

he can no longer go invulnerable

compact sedge
#

MOAKNSFIJNDFSOInjwefklmjnweklgnewrnjofknewrvillijnwirgnjwerlkgm

#

I DIED TO PURE VESSEL

fair rampart
#

hitting ok removes the lol.exe and then restarts the process again

solemn rivet
#

ofc u did

cunning lagoon
#

ah that's bad

copper nacelle
#

nice aa

cunning lagoon
#

now you have to redo everything

copper nacelle
#

rip

compact sedge
#

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

copper nacelle
#

i radianted pure vessel before even trying p5

#

ngl

compact sedge
#

fuck the lack of checkpoints it's 60 minutes of joke bosses

#

and then pure vessel

#

and then abs rad

solemn rivet
#

yup

#

now

#

imagine

#

all binds

cunning lagoon
#

it probably would've been a good idea to get some practice beforehand

hollow pier
#

pv is a joke boss tho

cunning lagoon
#

ur face is a joke

solemn rivet
#

ptk savage

hollow pier
#

hes actually easier than like half the panth

fair rampart
#

so I guess I basically can't use the installer then, I guess, nice

solemn rivet
#

no

#

try

#

uh

#

uhhh

copper nacelle
solemn rivet
#

where did you download it from?

fair rampart
#

both versions (pin and moddb) caused the same issue

copper nacelle
#

hey gradow

#

i'm getting the same issue

#

i just have the old version pinned to my taskbar

#

but yeah opening the installer makes it download itself infinitely

cunning lagoon
#

yeah

#

mod installer broke

solemn rivet
#

prolly mismatched sha1

#

ffs

compact sedge
#

and I beat him first try in practice mode

fair rampart
#

oh dear

compact sedge
#

well not first try

#

but first try after dying

solemn rivet
#

k

#

try again

copper nacelle
#

works now

solemn rivet
#

ffs

#

AA wasn't kidding

#

this xmleditey is a pos

cunning lagoon
#

all good now

solemn rivet
#

I don't trust this app

copper nacelle
#

are you not editing it in like

#

a plain text editor

solemn rivet
#

because I have to

#

dl

#

edit

#

upload

copper nacelle
#

yes

solemn rivet
#

:effort:

copper nacelle
#

slight pain

#

tbh

#

i was gonna make a python script to do it

#

for changing shasums

solemn rivet
#

Xhuis it should be fine now

copper nacelle
#

@fair rampart

solemn rivet
fair rampart
#

let's find out

cunning lagoon
#

@solemn rivet

fair rampart
solemn rivet
#

wut

copper nacelle
#

xhuis it'll auto-update

solemn rivet
#

yeah

#

don't redownload

copper nacelle
#

no one will ever have to update that file

#

ever

solemn rivet
#

won't make a difference

leaden hedge
#

is there an installer for making mods

fair rampart
#

oh there it goes

#

handy

leaden hedge
#

can I just install mod right into vs

fair rampart
solemn rivet
#

you should have seen the old ui

fair rampart
#

so now how make mod

solemn rivet
#

it was even uglier than the current ui

fair rampart
#

i'll try to compile an example mod

#

which file should I reference as the API - is there a new dll?

solemn rivet
#

uhhh

#

if you built it, it's whatever you build

#

if you download it, it's on Managed

#

Assembly-Csharp.dll

fair rampart
#

odd, the 1st example mod now just compiled on the first try

#

I suppose that means it's working

solemn rivet
#

¯_(ツ)_/¯

fair rampart
#

let me make something quick and dirty from scratch to make sure it works

solemn rivet
#

also

#

uhh

#

you can check our githubs for stealing code

compact sedge
#

ok turns out PV is very weak to jumping

solemn rivet
#

as is thk

compact sedge
solemn rivet
#

u playing pokemon

#

is that missigno

cunning lagoon
#

thats what happens when you push the truck

compact sedge
#

I swear to fuck if my gpu is gonna die less than a year after I get this pc

solemn rivet
#

it's a hidden scene AA

#

only 1/56565656 people can see this

compact sedge
#

probably just overheating tbh

cunning lagoon
#

enter your credit card information to see more

compact sedge
#

but if it actually dies

#

hp laptops are so shittilly made btw

solemn rivet
#

they are

compact sedge
#

If I ever need another laptop my next laptop is gonna be a used thinkpad for sure

solemn rivet
#

I really can't wait to build my new pc later this year

compact sedge
#

but I hope I don't

solemn rivet
#

eww no

compact sedge
#

because I hate laptops

solemn rivet
#

I have an ideapad

#

it's shit

#

don't

#

for starters, it has an internal battery for some reason

fair rampart
#

LOOK OUT GUYS! hollowknice
The Pale King needs your help to seal the Radiance and save Hallownest! milliS
Find your parents' plastic card, and type the 16 numbers and date on the front, and 3 numbers on the back.
The Knight is counting on you! babyhornet

leaden hedge
#

1234-5678-9012-3456 69-69-69 420

copper nacelle
#

5656565656565656 05/06 753

solemn rivet
#

and literally after 1 year the battery simply started swelling

fair rampart
#

i too enjoy being a mindless husk

compact sedge
#

at this point I'm a mindless being who fights hollow knight bosses purely on instinct.

#

I've almost ascended

cunning lagoon
#

one of us

#

one of us

solemn rivet
#

no

#

resist

copper nacelle
#

do radiant markoth

solemn rivet
#

never go full hollow

compact sedge
#

the world of higher thought is a world of c# programming.

copper nacelle
#

reminder that haskell exists

fair rampart
#

hmm

#

@solemn rivet maybe add an "open installation directory" button to the installer? just a thought

solemn rivet
#

uhhh

#

why

fair rampart
#

for hollow knight, I mean

cunning lagoon
#

steam has that

solemn rivet
#

as does gog

fair rampart
#

I just want a quick way to see my mod list for stuff that isn't bundled with the isntaller

#

and I keep accidentally closing it

#

okay, time to see if babby's first mod works

solemn rivet
#

I can do that, but... For non modders, that doesn't sound really useful

fair rampart
#

if I did it correctly this should make every nail hit instakill

solemn rivet
#

also, it should add non-modlist mods to the installer as well

fair rampart
#

thankfully godseeker mode actually helps me here

solemn rivet
#

how are you instakilling?

#

999damg?

fair rampart
#

oh hey, it does!

#

I just needed to restart it

#

9999 nail damage, yeah

solemn rivet
#

yeah, sadly it needs a restart

#

haven't found an effective way to refresh the list

#

also, 9999 nail damage prolly won't work on nail bind

#

btw did you set PlayerData.instance.nailDamage?

fair rampart
#

yeboi

solemn rivet
#

o

#

so did you send the FSMEvent?

copper nacelle
#

it won't work

#

the way it's calculated is a percentage with a cap

#

can't go above 13

solemn rivet
#

got it

fair rampart
#

hecking darn

copper nacelle
#

you could hook health manager take damage and send 9999 to orig

solemn rivet
#

I'm surprised you actually got that working tbh

#

setting nail damage is a pos at first glance because of the UPDATE NAIL DAMAGE event

#

that the code doesn't tell you about

copper nacelle
#

ye

#

also help

#

I opened coke

#

and it exploded over my desk

solemn rivet
#

rip kb

buoyant obsidian
#

just do the good old fashioned set nail damage every attack

copper nacelle
#

kb is fine I think

fair rampart
#

always open soda very slowly

copper nacelle
#

it hit wasd

solemn rivet
#

rip desk then

copper nacelle
#

and only a little

fair rampart
#

here's basically what I was doing

#
        {
            LogDebug("Attacking");
            _tempNailDamage = PlayerData.instance.nailDamage; //Store the current nail damage.
            LogDebug("Set _tempNailDamage to " + _tempNailDamage);
            PlayerData.instance.nailDamage = 9999; //yeet
        }```
cunning lagoon
#

thats why you dont drink coke

fair rampart
#

above that was ModHooks.Instance.AttackHook += OnAttack;

cunning lagoon
#

also no wonder your e key doesnt work

fair rampart
#

i literally just copied this from the example mod, bear with me

copper nacelle
solemn rivet
#

huh

fair rampart
#

the only thing I changed abo-

solemn rivet
#

I'm surprised this works

fair rampart
#

hey, I got that desk a while ago

copper nacelle
#

good desk

fair rampart
#

ended up giving it to my stepdad because I didn't have room for it

cunning lagoon
#

hey thats me in the pic

fair rampart
#

alas

solemn rivet
copper nacelle
#

I unplugged kb

cunning lagoon
#

me irl

solemn rivet
#

it really is

copper nacelle
#

just gonna leave the kb alone till tomorrow morning tbh

solemn rivet
#

I like your keycaps

copper nacelle
#

ty

cunning lagoon
#

where is your numpad

copper nacelle
#

nonexistent

solemn rivet
#

wait

#

so Xhuis

#

are you really doing 9999 dmg?

copper nacelle
#

it'll work if it's set at the start or something

solemn rivet
#

oh

copper nacelle
#

but you can't change it without sending

#

I think

solemn rivet
#

yeah

#

I had to do so much stuff to get it to work properly on the first blackmoth

#

smh

#

now with hitinstances everything is just piss easy

fair rampart
#

it isn't dealing the damage nah

solemn rivet
#

yeah

#

you need to broadcast an event

copper nacelle
#

set damage hero on slash go hollowwoke

fair rampart
#

you can't see through the computer screen but I'm staring blankly

solemn rivet
#

PlayMakerFSM.BroadcastEvent("UPDATE NAIL DAMAGE");

hollow pier
#

how skip absrad cutscene

cunning lagoon
#

why are you yelling

buoyant obsidian
#

56 why aren't you 56#5656

#

you need nitro

copper nacelle
#

money

buoyant obsidian
#

:(

cunning lagoon
#

wait dont you have nitro

fair rampart
#

i have no idea what any of that means

cunning lagoon
#

how do you use the big think emote

solemn rivet
#

just

copper nacelle
leaden hedge
#

he thinks big

solemn rivet
#

plug that after setting the nail damage

#

you're beginning to experience our pains

#

the FSM pains

fair rampart
#

: The name 'PlayMakerFSM' does not exist in the current context

solemn rivet
#

wut

copper nacelle
#

using statement

#

tbh

solemn rivet
#

ref PlayMaker.dll?

fair rampart
#

i'll be honest with you here you're literally talking to a toddler with regards to c# knowledge

#

well, it builds now

hollow pier
#

you ever global emote kuro

solemn rivet
#

the thing is

#

this game's code is not all in the assembly, Xhuis

copper nacelle
#

more like

#

none of it

solemn rivet
#

so even if you set the nail damage that way, it won't work

#

because there's hidden code running in the background

#

and it only updates the nail damage when it receives that event

fair rampart
#

did people figure that out literally by trying random crap until it worked

copper nacelle
#

no

solemn rivet
#

not really

copper nacelle
#

you dump the finite state machine and check the global transitions

#

pain

solemn rivet
#

first, you can see the PlayMaker.dll in managed

#

and a lot of PlayMaker classes in the assembly

#

and namespaces and all that

#

second, you find a lot of fields that simply are never initialized, but you know they get used in game

#

for instance, nailDamage

#

it gets initialized by PlayerData.SetupNewPlayerData();

fair rampart
#

so the example mod is actually broken

solemn rivet
#

but... That's it

fair rampart
#

oof

solemn rivet
#

but we know that we can increase the nail damage, so there must be more code somewhere doing that

#

and that's basically how the early settlers found out about fsms in this game

#

753 was there

#

he can tell it better than I can

#

I got here shortly after

buoyant obsidian
#

you open up the game

#

see that 90% of the code isn't there

#

then yell at Playmaker and FSMs

solemn rivet
#

^

#

see?

fair rampart
#

ic

#

hmmm

#

how to change the version of the dll 🤔

#

it's probably here somewhere

solemn rivet
#

anyway, gotta go

#

1 AM here

fair rampart
#

just hit midnight for me

cunning lagoon
fair rampart
#

seeya

solemn rivet
#

u on the same timezone as 56

fair rampart
#

thanks for all the help!

solemn rivet
#

I'm starting to believe you two are the same person

#

have the same desk and same time

fair rampart
#

used to have the same desk

#

right now I just have my setup parked on my dresser lmao

solemn rivet
#

so you are future 56

#

ok

fair rampart
leaden hedge
#

it jsut hit 5am

#

time for breakfast intenseface

fair rampart
#

i wonder if you can make a mod where zote sings over all of the music in the game

#

i would listen to that for asmr

buoyant obsidian
#

is this new?

#

I don't remember going black here

#

that's the beginning of the game btw

solemn rivet
#

kdt did you give up on the tas?

#

that's a bug afaik 753

buoyant obsidian
#

I'm perma black now

#

wtf

solemn rivet
#

AA reported a similar bug with one of the elevators

hollow pier
#

so can you not wallcling to rad platforms

cunning lagoon
#

you should be able to

#

i think

leaden hedge
#

no, I said I'd do it if input remapping was fixed, then by the time it was fixed I was doing other stuff and I haven't really cared about hk

#

I didn't even download godmaster yet

solemn rivet
#

yeah, I figured as much

#

well, gotta go

#

night folks

buoyant obsidian
#

@copper nacelle it appears in the API Lightbringer port you made it so you start with 1 less notch instead of 1 more notch?

solemn rivet
#

off by one

buoyant obsidian
#

also I have 5 masks to start when it should be 4

fair rampart
#

time for the MOMENT OF TRUTH

#

does my mod work..............

#

more at 11

buoyant obsidian
#

ok so apparently something is resetting the 4 mask default to 5 in Lightbringer

#

might be something new with Godmaster

#

it's a bug as far as I'm concerned

ember delta
#

hi is debug mod for HK and gods and glory update ready yet?

rain cedar
#

No

fair rampart
#

never realized just how much time that boss spawn and defeat anims took up

cunning lagoon
#

ikr GWchadMEGATHINK

copper nacelle
#

@buoyant obsidian whoops

buoyant obsidian
#

I'm gonna update Lightbringer soon

#

could you PM me the current csproject?

copper nacelle
buoyant obsidian
#

oh perfect

copper nacelle
#

I added you to it too iirc

hollow pier
#

wow did you get big think

cunning lagoon
#

what are you saying are you An Idiot GWchadThinkeyes

copper nacelle
#

accept when

buoyant obsidian
#

I have no idea where to respond

copper nacelle
#

should get a notif tbh

buoyant obsidian
#

I looked through my emails and did it

copper nacelle
#

:hahayes:

buoyant obsidian
#

no notification though

#

not sure what's up with that

copper nacelle
#

strange

buoyant obsidian
#

so, update the github and then when I'm finished making changes I'll message you and we can get it up in the drive?

copper nacelle
#

ye

buoyant obsidian
#

perfect

#

see you in like a week or something idk

copper nacelle
cunning lagoon
#

wtf i dont have the blurry eyes

hollow pier
#

welcome to dlkurosh understands discord

cunning lagoon
#

whomst do i have to bribe to get blurry eyes

fair rampart
#

is there a hook for resting at a bench?

copper nacelle
#

i'll get blurry eyes

cunning lagoon
rain cedar
#

Charm update hook xhuis

#

It runs when you sit at benches

#

And a few other spots

#

Idk if that's an issue

compact sedge
#

there's also On.PlayerData.SetBenchRespawn (or maybe better would be On.GameManager.SetCurrentMapZoneAsRespawn )

fair rampart
#

ahh, so there are non-API hooks too, that's fair

#

I should have assumed that >>

rain cedar
#

The On namespace is monomod hooks

#

You can hook any function

compact sedge
#

there's monomod hooks yes

fair rampart
#

o

#

light... for... monomod...

compact sedge
#

my favorite and by far the most useful since there's no equivalent in the modding api

#

is

#

On.HealthManager.TakeDamage

#

for when an enemy takes damage

fair rampart
#

could arrays be stored in save settings?

#

err, it might not be called arrays in c#

#

it feels more efficient to have a list along the lines of

glorified =
{ 
    1 = false,    
    2 = false,
    3 = true
}

for tracking charm glorification

#

so that you can check if glorified[x] == true etc

#

this is pseudocode, obviously, not actual c# syntax, but I'm not sure if it's doable

leaden hedge
#

you can serialize it into an int

#

and deserialize that back into an array

fair rampart
#

no experience with that, but I can look into it

leaden hedge
#

also glorified[x] == true is completely useless

#

thats the same as glorified[x]

fair rampart
#

like I said, pseudocode

#

it would seem that c# handles it through dictionaries

leaden hedge
#

I don't think unity can serialize dicts, lists, or hashtables

copper nacelle
#

just use array indices tho

rain cedar
#

Unity can't serialize shit

#

Randomizer serializes half the settings into a string before serializing it to the save file

#

It's really bad

copper nacelle
leaden hedge
#
long out;
for(int i = 0; i<len; i++){
    out += glorified[i] ? Math.Pow(2, i) : 0
}

should work for serializing

rain cedar
#

Bitmask is cool yeah

leaden hedge
#

asssuming the array is shorter than 64 entries hollowface

fair rampart
#

additionally, uhh

compact sedge
#

except you can only save ints in the save file so you'll need 2 ints to hold 64 entries

#

well ints, strings, bools, and floats

fair rampart
#

charm descriptions appear to be changeable through a dictionary (according to lightbringer source) but is it possible to change these dynamically, or only at runtime?

compact sedge
#

dynamically

fair rampart
#

phew

compact sedge
#

it's a hook for when it gets the string

#

and you can put whatever function you want there and that hook runs every single time that string is displayed

#

or any string

leaden hedge
#

long -> byte[] -> string intenseface

solemn rivet
#

delet

compact sedge
#

don't worry about writing efficient code tho, either efficient ram wise or cpu wise

leaden hedge
#

which is how I'd probably serialize everything tbh

#

well thats not explicitly true

compact sedge
#

c# is already inefficient and so is the game so unless you're doing big boy stuff you're not gonna introduce any real lag or slowdown

fair rampart
#

also, the charms appear to be ordered by number

leaden hedge
#

bogosort is definitely not efficient in anyway

fair rampart
#

is there any way I can tell which numbers are which charms

compact sedge
#

uh there's a list somewhere that 56 has in his bookmarks

fair rampart
#

bogosort is the galaxy brain way of sorting

solemn rivet
#

👀

cunning lagoon
fair rampart
#

heyo @copper nacelle, I call upon you

copper nacelle
#

whomst

fair rampart
copper nacelle
#

doesn't the modding api docs have that

fair rampart
#

charms seem sorted by stuff like CHARM-36

#

lemme looksie daisy

leaden hedge
#

it does

copper nacelle
#

nice

fair rampart
#

where @

compact sedge
#

found it with discord search

fair rampart
#

heyoo

#

thanks

compact sedge
#

don't ask why the order is shit

fair rampart
#

hmmm

#

this doesn't account for dlc though 😒

#

tc pls

#

wait yeah it does

#

cuz godmaster doesn't add new charms LUL

cunning lagoon
#

too soon

copper nacelle
leaden hedge
compact sedge
#

I was looking for it there

leaden hedge
#

I forgot I had a bunch of stuff unuploaded

compact sedge
#

do you host the docs somewhere?

leaden hedge
#

I have nowhere to host them

compact sedge
#

I got u fam

#

but tomorrow because its late tonight and I gotta do a lot of hiking early

#

ok this is absurd who tf keeps downloading modcommon

#

why is it for every modding api download I get 1.5 modcommon downloads

cunning lagoon
#

maybe its actually a bot notlikequirrel

compact sedge
#

I mean I'm not upset. Modcommon is much smaller file size now. I'm just confused because like I was expecting modcommon DLs to be some percentage (less than 100) of modding api dls and that to indicate what portion of people are using mods that require it.

#

but right now it seems like 150% of all people who mod their game use modcommon

cunning lagoon
#

nice

leaden hedge
#

maybe duplicates

fair rampart
#

so this very basic thing should work, correct?

        public void OnHeroUpdate()
        {
            if(Settings.GatheringSwarmGlorified)
            {
                _langDict["CHARM_NAME_1"] = "Symbol of Avarice";
                _langDict["CHARM_DESC_1"] = "Prized possession of a bug consumed by a greed that undid them.\n\nGeo dropped by enemies, including Geo created by other charms, will be immediately transferred to your hoard, instead of dropping onto the ground.";
            }
        }
#

I'm not gonna post every single code block I wrote here but I don't wanna mess up saves and the like

leaden hedge
#

theres a hook

fair rampart
#

i'll hook u

#

haha gottem

leaden hedge
#

that lets you return a string when the game asks for a certain language string

compact sedge
#

basically the hook as input provides two strings. these are the sheet and key titles

#

and you return a string and that string is whatever the text should be

#

you can return the internal string and nothing get overrided or you can return a string from your language dict

leaden hedge
fair rampart
#

I see, I see

compact sedge
#

one important question is: why does key come first and sheet second

#

top ten things science can't answer

leaden hedge
#

I dunno

#

key more relevant to your hook

#

so it comes first

#

github can't render rst files neatly FeelsBadMan

compact sedge
#

but if you think about a multilevel dictionary storing all the strings, you'd access the sheet first and key second

#

or a multilevel anything really

fair rampart
#

fuckin code lmao

compact sedge
#

(also objectively wrong, they're equally important)

#

well subjectively wrong

leaden hedge
fair rampart
#

Language.GetInternal isn't working, what should I do?
answer: Language.Language.GetInternal

leaden hedge
#

looks so much better locally

fair rampart
#

slaps knee

leaden hedge
#

thats just an include

#

also no they aren't equally as important

fair rampart
#

Language.Language.Language.Language.Language is the real meta tho

compact sedge
#

using Language;

if you wanna add the namespace

leaden hedge
#

in 99% of cases sheet is useless

#

keys are almost always unique between sheets anyway

compact sedge
#

I write code under the assumption that there's keys with the same name across different sheets and that may be false but idc.

#

duplicate keys across different sheets is not a bug I want to have to debug.

fair rampart
#

time to build it

#

yay

#

we shall see if my changes work

#

hmmm

#

I'd like to peek into the game code to see how certain things work but I think that's kind of illegal and not actually doable so

#

if it is doable then by all means I would love to; perhaps that's why I even got dnspy

compact sedge
#

legally wrong != morally wrong

#

it was legally wrong in hallownest to betray the pale king, but it was the right thing to do.

fair rampart
#

my main reason is because I have a bunch of small questions (how do I play a sound? how do I create particle effects? etc.) and there isn't documentation for all of them

#

so I'd rather delve in myself instead of constantly shouting "HOW DO I X"

compact sedge
#

tbh those kinds of things are all unity

fair rampart
#

cuz that's just rude!

compact sedge
#

you're not getting any help looking at TC code to figure out how to do those

fair rampart
#

there's that phrase again

#

"TC code"

#

is it not very good or something 👀

compact sedge
#

no it's that sounds and particle systems and game objects are done in the editor

#

there's no code for them you could even look at

fair rampart
#

o

#

so is it... possible with mods?

compact sedge
#

oh yeah, I've done quite a bit of this stuff but I had to figure it all out by annoying the heck out of KDT and reading the unity scripting api

#

anything in particular you're looking for?

fair rampart
#

well

#

my end goal is to have an NPC spoken to in order to glorify charms

compact sedge
#

ok

fair rampart
#

but because I can't do that just yet the next best thing is to cause the charm to auto-glorify when the threshold is met

#

and a neat sound and particle effect to do that would help

compact sedge
#

well I can't help you with serializing sounds. the one time I tried copying code to serialize .wav it didn't work even tho it seems like it should have. You can use www to do it as well but that's an awful solution.

I do have code you can copy to play sounds and to do particle effects

leaden hedge
#

i'd do sounds with assetbundles

#

although that requires downloading unity

fair rampart
#

big darn

compact sedge
#

ehhhh

#

assetbundles are

fair rampart
#

this debug thingy doesn't work

        {
            PlayerData.instance.geo += 1000;
        }```
compact sedge
#

meh

leaden hedge
#

are you sure

#

I don't think the geo counter gets updated

fair rampart
#

I keep swingin my big fat nail and no geo is added

leaden hedge
#

unless you run a fsm function

#

check PlayerData.AddGeo i think

compact sedge
#

did you make sure that hook was actually added. maybe the counter wasn't updated. add Log to your code

fair rampart
#

hmmm

#

where're logs saved? I have a few set up

compact sedge
#

where your saves are in a file called ModLog.txt

#

you can also have them print in game

#

if you enable a stupidly hidden setting in modding api

leaden hedge
compact sedge
#

edit the globalsettings file for ModdingApi where your saves are and add:

    "BoolValues": {
        "keys": [
            "ShowDebugLogInGame"
        ],
        "values": [
            true
        ]
    },
#

where the bool values are

fair rampart
#

well, it seems indeed that the geo effect did work

leaden hedge
#

the ui isn't updated

fair rampart
leaden hedge
#

because its coded vvv good

fair rampart
#

now just to figure out the sprites and actual effects

copper nacelle
fair rampart
#

does anyone think @copper nacelle would notice if I took his sprites and palette swapped them for some of the glorified charms
@copper nacelle pretend you aren't seeing this message it's cloaked

compact sedge
#

they're actually 753's sprites

fair rampart
#

o

copper nacelle
#

ask 753

#

to be tbh

leaden hedge
#

753 gay

copper nacelle
fair rampart
#

I don't actually intend to take his sprites or any other sprites from another mod lol

leaden hedge
#

just borrow them

fair rampart
#

🔫

compact sedge
#

it loads wav from byte arrays and you can load byte arrays from files which are embedded inside your dll

#

also we're now 87th place

copper nacelle
#

new hk update

#

¯_(ツ)_/¯

fair rampart
#

was it the beta?

copper nacelle
#

idk

#

it was the absrad is rng boss reee guy

compact sedge
#

the update came out about 12 hrs ago no and it's only windows beta branch unless it's something different

copper nacelle
#

ye they're on beta

#

new beta came out

compact sedge
#

so there's been 2 betas this past day?

copper nacelle
#

yes

mild maple
#

ye

fair rampart
#

does it give absrad lens flare eyes

mild maple
#

Yes but only for Zote

fair rampart
#

what the h*ck

#

it seems Texture2D doesn't have a loadimage function?

copper nacelle
#

reference UnityEngine.ImageConversionModule

fair rampart
#

always the references ain't it

copper nacelle
#

got moved to an extension

rain cedar
#

There used to be only a few unity dlls

compact sedge
#

ok next time someone dms me asking for tech support I'm blocking them

fair rampart
#

and once a sprite is changed, is it modified again?

rain cedar
#

They changed it last patch

fair rampart
#

if possible it seems a better solution to update the sprite once it needs to be updated and then not tweaked again

#

but if it refreshes to the old version every time it checks for the sprite that's different

compact sedge
#

Anyway I have 0 patience for people who somehow manage to tick all 7 of these boxes, and you count your lucky stars I'm not publically revealing who you are but you know who you are. Never do it again to anyone.

✅ DM people instead of asking for help in #archived-modding-help
✅ Tried installing it manually without installing the api.
✅ Tried downloading mods from github page.
✅ Couldn't take screenshots.
✅ Wanted me to download third party screensharing program.
✅ Illegal copy of the game. Probably not even an updated one at that.
✅ Only interested in cheating to ruin their own enjoyment

fair rampart
#

oh dear

compact sedge
#

if you are in this position I have two pieces of advice:

  1. if you're not having fun with something. cheating won't change that. Cheating always universally makes things less fun
  2. putting whiteout on your screen just ruins your screen and won't actually delete anything
cunning lagoon
#

So if i tick 6 of those will your help me cheat

compact sedge
#

no I'll just have 0.01 patience

cunning lagoon
#

Your*

#

You*

#

Mobile os hard

compact sedge
#

are you jonny?

copper nacelle
#

@boreal valve is this u

compact sedge
#

oh and advice number 3: Kirby Superstar is one of my most favorite games of all time. if you can somehow figure out how to use an emulator (maybe ask a friend who can tell the difference between headphone jacks and USBs to set it up for you) I would strongly urge you to try it out. it helped inspire the general design philosophy of my largest mod.

fair rampart
#

oh dear

#

I have the feeling that if the mod never gives the "finished initializing" message that something is wrong

copper nacelle
#

uhh

#

hi jonny

boreal valve
#

@cunning lagoon hello me. How are you doing today? hollowface

#

Wait

#

If DLK is me

#

That means DLK is the 3rd Best NPC in the game

#

I played through a lot of Kirby Super Star Ultra but never the original. Great game nonetheless @compact sedge

fair rampart
#

is there something I need to do other than just including the images to tell visual studio that the images in Resources/Charms are actual resource files

rain cedar
fair rampart
#

thank

nimble lake
#

Where can I find sprites from GM?

rain cedar
#

Asset studio

nimble lake
#

Where?

rain cedar
#

Asset studio

nimble lake
#

Where is it?

rain cedar
nimble lake
#

There's only Android

rain cedar
#

Yeah my mistake I forgot google stops after the first result

nimble lake
rain cedar
#

Yes

fair rampart
#

the moment of truth is upon us; this is what it looks like without the correct amount of geo/unglorified

rain cedar
#

Wow that was pretty fast

fair rampart
#

this is immensely satisfying

nimble lake
#

Wait what is that?

fair rampart
#

the actual gameplay mechanics haven't yet been implemented, but

#

charm glorification was cut so I'm seeing if it's doable through modding

rain cedar
#

Read the screenshot maybe aether

nimble lake
#

dude come on

rain cedar
#

There's a description of what it is

#

Just read it

nimble lake
#

But like

#

What is this mod

hollow pier
#

read the message that just explained what it is

fair rampart
#

i'm a mod

hollow pier
#

also looks real good xhu

fair rampart
#

get banned nerd

#

🔨

nimble lake
#

Are there more of these?

rain cedar
#

Yeah really this is super impressive progress for how short ago you started

fair rampart
#

atm the gathering swarm is the only one

rain cedar
#

Without experience with C# or Unity

fair rampart
#

I've used VS before and have a lot of programming experience so it wasn't horribly hard

#

copying a lot of lightbringer code helped too

#

but the main challenge here is actually, yknow, making the charm do its thang

#

since I dunno how to do that yet

rain cedar
#

Oh that's easy

fair rampart
#

I'm not sure how to detect geo rock entities

#

err

#

dropped geo

rain cedar
#

Look into the GeoControl component

#

In dnspy

#

You can make it auto pickup really easily with a monomod hook

#

Maybe combine the two so it's instant pickup after destroying rocks in the scene

fair rampart
#

in any case, not entirely sure

#

I think a more elegant solution in this case would be making one hit fully destroy the rock and drop all the geo but I dunno if that's possible

hollow pier
#

kerr sadgrub

fair rampart
#

can't find the geocontrol in dnspy

#

heck

rain cedar
#

Should be possible but you'll have to look into the fsm for that

#

There's a search bar

#

Ctrl+shift+k

fair rampart
#

yknow, for having one hand seared by hot oil and another cut open by a tomato slicer in the same day, I think my coding speed hasn't been impaired too much

rain cedar
#

Fun

nimble lake
#

Is there a way to extract only the sprites from assetstudio?

rain cedar
#

Sort by type and only look at the section with sprites

nimble lake
#

Everything else still exist

#

I want to extract the sprites to a folder if I can

fair rampart
#

so does GeoControl represent an actual r o c k y b o i floating in the world?

rain cedar
#

GeoControl is for the geo objects

#

GeoRock is the rocks

#

Although that one is mostly controlled by an fsm

fair rampart
#

I wonder if it'd be better to move the geo object to the player or just make them pick it up instead

#

assuming the methods were compatible it sounds fairly doable to just call the pickup

rain cedar
#

Well unfortunately there isn't a pickup function you can call

#

It just happens in OnTriggerEnter2D

fair rampart
#

ahhh

nimble lake
#

found it

fair rampart
#

hrmm

rain cedar
#

You would probably want to just add the geo to the counter manually then destroy the object

fair rampart
#

presumably setting the object's position to the player's position would work too, correct?

rain cedar
#

It has a secondary object on it "getterBug" that you want to remove too

#

That would work yeah but it might be annoying since it would play vibration/sound effects

fair rampart
#

they will hear their money clinking aND THEY WILL LIKE IT

nimble lake
#

I wonder if it's possible to have Void heart have Kingsoul effects

#

Or have both Grimmchild and carefree melody in one charm

rain cedar
#

Easily with some modding

nimble lake
#

Wonder why nobody made that yet

rain cedar
#

Not really any reason to

#

All 4 of the effects are really bad

fair rampart
#

hmmm

#

well

#

it would appear that, yes, it does work moving the geo directly onto the player

#

but the problem is, the hitboxes are intersecting, so the player has to move a little bit

#

otherwise it just hovers on them forever

#

mmh

rain cedar
#

Add geo manually

#

Destroy object

fair rampart
#

I couldn't get the counter to update last time I tried

rain cedar
#

Don't use the PlayerData AddGeo function

#

Use HeroController

fair rampart
#

and I want the sound to still exist so the player has some kind of feedback, as well

rain cedar
#

GeoControl does have a PlayCollectSound function

#

It's private but you can use reflection

fair rampart
#

eep, is there a var for the amount of geo in a geocontrol?

rain cedar
#

There's an int "type" which probably corresponds to small/med/large (1/5/25)

#

Also size but it's private

#

I would use reflection to get at the size variable since it has an explicit value instead of guesswork from the type

fair rampart
#

what exactly is reflection? it's new to me

rain cedar
#

It's a way to make private variables not private

#
using System.Reflection;

private static FieldInfo geoControlSize = typeof(GeoControl).GetField("size", BindingFlags.NonPublic | BindingFlags.Instance);

int GetGeoValue(GeoControl control)
{
     if (control == null) return 0;     

     GeoControl.Size size = (GeoControl.Size)geoControlSize.GetValue(control);
    return size.value;
}```
#

There's also GetMethod and MethodInfo.DynamicInvoke for functions

#

Works pretty similarly

fair rampart
#

I'll try that

#

and what'd be the method to destroy the object afterwards?

#

GameObject.Destroy(control)?

rain cedar
#

There is UnityEngine.Object.Destroy but this is a pooled object

#

So for most efficiency you will want to recycle it

#

Just call Recycle on it

#

It's an extension method the game adds

fair rampart
#

control.Recycle() then

rain cedar
#

Deactivate the getterBug too

#

GeoControl.getterBug.SetActive(false)

fair rampart
#

I only tangientally understand a lot of the code I'm writing but I still thank you for explaining it and helping out

rain cedar
#

Yeah no problem

fair rampart
#

okay before I test this any further I should probably remove the debug thing that gives me 1k geo per swing

#

I have 43k now

rain cedar
#

Yeah don't want to accidentally include debug stuff in releases

fair rampart
#

even then, it's kinda hard to see if this is working when my geo increases by a staggering amount per attack

#

lmao

rain cedar
#

Fair

fair rampart
#

would reflection allow me to access the method to play the collection sound?

rain cedar
#

It would

fair rampart
#

hrmm

#

let me look around

rain cedar
#

Basically the same as the one for the field

#

Except use MethodInfo

fair rampart
#
private static MethodInfo ClinkClink = typeof(GeoControl).GetMethod("PlayCollectSound", BindingFlags.NonPublic | BindingFlags.Instance);

(code)

ClinkClink.Invoke(???)
#

here's what I've got so far

#

I'm unsure which arguments PlayCollectSound has

rain cedar
#

It has no arguments

#

But it's an instance method so you still have to pass a GeoControl object into Invoke

#

For static methods you just pass null

fair rampart
#

so ClinkClink.Invoke(self, null)

#

has no compile errors, so that sounds decently right

rain cedar
#

That might work

#

If not I would replace null with new object[0]

fair rampart
#

okie doke

rain cedar
#

It should work, though

#

There's no reason it wouldn't be able to parse null

fair rampart
#

well, the pickup works fine, but still no sound

#

unsure why that is

#

mod log shows no insights

rain cedar
#

Odd

fair rampart
#

I'd reeeeally like to have audio feedback to the player about it but I suppose it might have to be a necessary sacrifice

rain cedar
#

Nah it should be possible

#

Most likely scenario is recycling the object stops the sound

fair rampart
#

the sound plays before the recycle

#

perhaps I should wait a slight amount before recycling

rain cedar
#

Yeah, probably

#

The GeoControl has a Disable method that waits

fair rampart
#

will the code after it not execute until it's disabled?

rain cedar
#

Nah it starts a coroutine

#

Which is Unity's way of mimicking threading

#

It just runs some amount of the function every frame until done

fair rampart
#

a glance into dnSpy tells me that disable(x) both turns off the getter bug and recycles it after the alotted time

#

so it seems like the best thing here by a long shot

rain cedar
#

Yeah probably

fair rampart
#

well, it kind of works

#

but it appears that it is uhh

#

continually giving the amount over and over until it's disabled

#

ideally that could be solved by making it vanish fast enough but I'm not sure that would let it play its sound

rain cedar
#

Where are you running the code to give it from?

fair rampart
#

On.GeoControl.FixedUpdate

rain cedar
#

Hook OnEnable instead and it will probably be fine

fair rampart
#

yeah

#

either that or Start

rain cedar
#

Nah you want it after OnEnable

#

So that all the setup happens

#

Actually I'm not sure any of this setup matters

#

Only thing is OnEnable would undo some of the stuff Disable does

fair rampart
#

OnEnable doesn't want to play nice

#

private void ProcessGeoUpdate(On.GeoControl.orig_FixedUpdate orig, GeoControl self)

#

They both seem to have the same arguments in dnspy, which leaves me somewhat confused

rain cedar
#

Change it from orig_FixedUpdate to orig_OnEnable

fair rampart
#

oh.

#

it seems that now it doesn't add any geo at all

#

perhaps it doesn't have enough time to assign the size

rain cedar
#

If you're calling the original method first it should be fine

fair rampart
#

right now it's ah

#

On.GeoControl.OnEnable += ProcessGeoUpdate;

(later)

ProcessGeoUpdate(On.GeoControl.orig_OnEnable orig, GeoControl self)
stuff

#

precise code:

        {
            if (Settings.GatheringSwarmGlorified && PlayerData.instance.equippedCharm_1) //with symbol of avarice, instantly transfer geo rather than drop it
            {
                GeoControl.Size size = (GeoControl.Size)GeoControlSize.GetValue(self);
                HeroController.instance.AddGeo(size.value); //get a reflection of however much geo there is total, so that we don't lose any
                ClinkClink.Invoke(self, null);
                self.Disable(0.05f);
            }
        }```
rain cedar
#

Ah ok you're not calling it at all

#

Put orig(self) at the start of that

fair rampart
#

I figured it was calling the hook after the original function

#

I guess non-api hooks don't work that way

rain cedar
#

Yeah you have to call it explicitly

fair rampart
#

well

#

after several hours of toil and debug

#

it seems, now, to finally work as intended

#

it goes directly into the player's inventory, with the correct sound

rain cedar
#

Awesome

fair rampart
#

so I think we can safely say that that is one charm glorifiable

#

and quite enough for today

#

I'm still unsure how I want the proper way to glorify charms to be

#

unfortunately I have no way of knowing if TC intended for glorification to be a straight upgrade or a sidegrade so

steep sail
#

Is this Dark Souls reference? cornywoke

fair rampart
#

it is mentioning it yes

floral furnace
#

ive already updated ModCommon, API and referenced Unity.Core, ModCommon, Assembly and Playmaker

Also is it me or did they split the unity files into several more files

rain cedar
#

Reference UnityEngine

#

And yes there's like 15 more unity dlls

floral furnace
#

ahh shit i thought the base UnityDLL was removed as it was splitted into more dlls, thanks

fair rampart
#

hmm, I wonder if it's possible to make the glorified grimmchild summon two grimmchildren

#

sounds simple in theory but it's always harder than in theory

floral furnace
#

sounds as simple as just spawning an extra grimmchild object i guess, until theres actually 100+ complications that pops up

#

btw are you just giving the glorified charms are you gonna make a system to acquire them

fair rampart
#

it's too early on to say but I'd like to have an NPC or location that you go to to glorify charms, but for each glorification you need to meet a certain condition

#

i.e. for gathering swarm you need to be holding 5000 geo (not consumed when glorified, though), for FotF you need to have either kingsoul or void heart equipped, etc

floral furnace
#

makes sense, a simple and boring way of doing would just be if x amount of wins in godhome you get one of them upgraded out of nowhere etc

maybe its possible that the NPC Godseeker (the one you dream nail to enter Godmaster) can be the source of the glory charms

rain cedar
#

It definitely is possible to hijack the dialog control

fair rampart
#

the godseeker seems pretty haughty and not really wanting to help you

#

the fluke hermit I have heard was apparently going to be tied to it so I could attempt that

#

my initial thoughts were to introduce an NPC called the Diviner/the Enlightened/what-have-you in Godhome that would do it

floral furnace
#

oh really didnt know that, ive never talked to him since i havent left godhome the very moment i started the dlc

floral furnace
#

Heres the dumb mod ptkyr also you can now use great slash since theres no point on disabling it anyway or whatever etc etc

copper nacelle
#

@compact sedge cool-retro-term is god

compact sedge
#

It certainly looks neat!

copper nacelle
#

better than the default mac terminal

solemn rivet
#

56

copper nacelle
#

yes

solemn rivet
#

You see the people's demands

copper nacelle
#

yes

solemn rivet
#

Why do you stay idle and do nothing

copper nacelle
#

cause i'm in school rn

solemn rivet
#

Do you not care for your people

#

Same tbh

copper nacelle
#

nice

#

first day back for me

#

still in homeroom

solemn rivet
#

I've been back since last week

#

Oof

#

I have to try and submit this paper for a journal

copper nacelle
#

:agony:

solemn rivet
#

Ye

copper nacelle
#

~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/Contents/Resources/Data/Managed

solemn rivet
#

👀

#

I need me some shaky eyes

copper nacelle
solemn rivet
#

Ffs mobile

#

K, that'll do pig, that'll do

copper nacelle
#

for the installer itself i think you'd have to bundle mono in a .app w/ a script

#

mac's mono version is like

#

bad

#

iirc

compact sedge
#

also mac people don't know how to use mono

copper nacelle
#

aa give 🅱ersion

#

is .6 behind super behind

#

arch is on 5.14

#

the gui looks shitty on mac

solemn rivet
#

56 how are you so competent for someone so young?

#

Like wtf

warped sinew
#

Is there a way to just activate the bindings with a mod? So that the HUD shows it an everything?

copper nacelle
#

yeah

#

BIndings mod

solemn rivet
#

Yeah, 56 made that mod graig

warped sinew
#

Oh the one I tried was like a half baked one

copper nacelle
#

the hud can be weird sometimes but the bindings work

warped sinew
#

Nice I'll install the real one next time

#

Thx 56!

copper nacelle
#

yw

#

ok so mono 64 bit on mac won't work for shit

compact sedge
#

I'm 5.14 but I'm using the mono repo to be up to date @copper nacelle

copper nacelle
#

ok

solemn rivet
#

Also why nu sigma?

copper nacelle
#

cause 56 in greek

#

and hal asked

#

5.8 on mac shouldn't be too bad

#

iirc it ran w/ 32 bit

#

can just add that to the MacOS thing

#

it'll probably run a shell script w/ a shebang

#

yoo

solemn rivet
#

How

copper nacelle
#

carbon isn't 64 bit but it is 32

#

mono --arch=32 ModInstaller.exe

#

ree

#

it said my path was invalid

#

gonna make a fake hk path

solemn rivet
#

Yeah, sorry I won't be able to add mac support till like 4pm my time

copper nacelle
#

that's fine

#

just wanna make sure it works other than the paths

#

sick

#

looks fine

#

other than the ui being a bit weird

#

like super laggy and stuff

#

installing bindings worked

#

took 2 tries for some reason

compact sedge
#

oh yeah that's normal for winforms on non-windows

#

the laggy part

#

not that

copper nacelle
#

rip

#

like it looks like this while scrolling

solemn rivet
#

Rip

copper nacelle
#

other than that it works fine

#

which is great

#

rip gtg

#

time for actual 1st period

steep sail
#

Linux ModInstaller? Can I make RU vers for it? (Just give me all texts)

compact sedge
#

yes modinstaller works on Linux, and I'm sure gradow would appreciate it.

#

tbh ui elements being messed up probably fixed somewhere between mono 5.8 and 5.14

#

the Hollow Knight invulnerability mod on moddb is actually made by TC (or at least an account registered under that name long before anyone cared about them). zote

#

wait nvm I can't read this stupid page's UI

#

it got updated tho so thank god for that

solemn rivet
#

tbh I once posted blackmoth under TC

#

because it's a terrible ui and I misunderstood a field

#

when it asks for "company" I thought they were asking about the game's dev company

buoyant obsidian
#

Yeah it's more complicated than it needs to be

#

a few features that just make it needlessly complicated

cunning lagoon
#

mod to skip the pv and absrad cutscenes when @copper nacelle @copper nacelle @copper nacelle

copper nacelle
#

soon tm

cunning lagoon
#

poggers

solemn rivet
#

Doesn't qol do that?

copper nacelle
#

they're not actual cutscenes

#

just the waiting for armor to fall off stuff

#

and rad to exist

cunning lagoon
#

i still dont get howmst the fuck trinomi got an empty hop in pv

#

ive been fighting him for a while and i havent seen one

fair rampart
#

what is cracking fellow gamers

flat forum
#

wrong channel

cunning lagoon
flat forum
#

or to a psychiatrist

#

Ok

cunning lagoon
#

Ok

flat forum
#

fair rampart
#

hmmm

#

not sure what charms I should work on today

fair rampart
#

hmm

#

I'm not sure what's a good thing for glorified stalwart shell

#

my first thought is making it protect from fatal hits unless you're at 1 HP but that seems awful niche

rustic stag
#

You could make it knock enemies away when you're hit

fair rampart
#

hmm, not too useful against many enemies.

#

maybe make it prevent the player themselves from being knocked back

rustic stag
#

Oh, or you could make it briefly stop time when hit. Give the player a second to think about what they want to do

tranquil glen
#

oh did you do fury yet? make it a last stand thing where instead of when you get to 1hp make it be that if you go to 0hp it puts you back on 1 with fury effect

fair rampart
#

yeah that's one of the things I had planned

flat forum
#

I already did a Fury thing tho

#

it just slowly boosts you the lower your HP gets

#

maybe use that?

fair rampart
#

only the finest variable names here at xhuis modding

#
        private const float BASE_SPEED_CH_GLORY_COMBO = 12.5f; //glorified sprintmaster + dashmaster
        private const float BASE_SPEED_CH_GLORYMACHINEWOKE = 13.5f; //glorified sprintmaster + glorified dashmaster```
tranquil glen
#

is there a way to view all the shade spawn locations and where i need to die for the shade to spawn there?

rustic stag
#

Can somebody tell me why this makes me unable to pick up geo?

        void GeoMultiplier(On.HeroController.orig_AddGeo orig, HeroController self, int amount)
        {
            HeroController.instance.AddGeo(amount * Random.Range(0.2f, 2f));
        }
tranquil glen
#

well wouldn't that make you be picking up less than one geo sometimes?

fair rampart
#

I think it needs rounding, yeah

buoyant obsidian
#

Is AddGeo supposed to be an int?

#

floats might fuck with it

rustic stag
#

Yes. It's just that the game won't allow me to pick up anything. It's not the float thats causing it though. I tried it with an int and the geo just stays on the ground