#archived-modding-development

1 messages ยท Page 444 of 1

copper nacelle
#

yeah

silk jetty
#

in rando 3 you can change that

copper gull
#

where can I get rando 3? It's not in the drive

silk jetty
copper gull
#

Thanks

silk jetty
#

and make sure to click no when you open the installer when it says to update randomizer 2

ornate rivet
copper nacelle
#

lmfao

#

this is beautiful

floral furnace
#

literally art

compact sedge
#

oh heck @solemn rivet ignore this ghost ping I thought you updated the installer but I was looking at really old messages

solemn rivet
#

wut?

compact sedge
#

uh

#

nvm

#

pls ignore

#

I'm stupid

solemn rivet
#

oh it's fine

dark wigeon
#

I have decided to rewrite the saving code for the editor and the level loader mod since its so trash but hopefully it will actually work when I do it this time

jovial vault
#

@ornate rivet i saw that and i love it

odd dome
#

lmfao moment

solar jacinth
#

That is amazing saleh

plucky moat
#

Hi!

#

I want to create may own modes

#

I am a programmer

#

I've already created a few nice ones by modifying the assembly-csharp.dll file

flat forum
#

*my own

plucky moat
#

but you know, this way doesn't give you the ability to do whatever you want

flat forum
#

what do you want to do

plucky moat
#

yep, sorry for that

flat forum
#

what do you want to make

floral furnace
#

try checking the api docs

flat forum
#

^

plucky moat
#

for example, adding more enemies

floral furnace
#

stuff like adding enemies are doable but takes, a bit more extra work tho

#

afaik the doc doesnt cover those unfortunately

plucky moat
#

So there is API...

#

I thought that they use the source code of the game

#

to create modes

#

thanks I'll check it

floral furnace
#

way easier with the api yeah

plucky moat
#

@floral furnace I'll do my best

floral furnace
plucky moat
#

yep, it should be

#

but does that mean that the source code is not available anywhere?

flat forum
#

of Hollow Knight?

#

no

floral furnace
#

what papers said

solar jacinth
#

new modder here ye

kindred sedge
#

any new cool knight reskins?

flat forum
#

Knightmere

kindred sedge
#

where can i find that?

flat forum
#

shrug

#

I know it exists, not where it is

#

also I should probably, like

#

actually do Pure Knight

#

properly

weak lodge
#

hello @flat forum

#

i should ask mola if it was me that inspired the skin or not

solar jacinth
#

@kindred sedge i made shade grub but its early access

kindred sedge
#

can i see it ๐Ÿ˜ƒ

solar jacinth
#

yeah

#

it has some mistaes

#

oh wait

#

not shade grub sorry

#

shade knight

kindred sedge
#

dont worry im not a huge critic

solar jacinth
#

here

#

it looks terrible for now

brazen mortar
#

Does winged nosk have a phase transition?

#

I swear it donโ€™t fly into ceiling until you damage it a bit

copper nacelle
#

it don't[sic]

brazen mortar
#

[sic] yourself

#

Fine Iโ€™ll test it a bit more by waiting and doing nothing to see if it flies into the ceiling or not

copper nacelle
#

@brazen mortar half hp

brazen mortar
#

thanks babe

#

is it the same with normal nosk?

#

normal nosk seems to starting the ceiling attack before it reaches half hmm

copper nacelle
brazen mortar
#

uh

#

i dont see "roof" there

#

erm

copper nacelle
brazen mortar
#

oh ok so it is just over half

#

at least in godhome

#

is this a consistent value not a percentage?

copper nacelle
#

Do you know Nosk's scene name?

brazen mortar
#

mimic_spider i think

copper nacelle
#

no that's his name

brazen mortar
#

so gg_mimic_spider or something

#

oh

#

what other name?

unborn flicker
#

deepnest 4x

copper nacelle
#

thank you

unborn flicker
#

iirc

brazen mortar
#

oh the area

#

whoops

copper nacelle
#

32 apparently

#

and yeah it's 560 for normal, godhome, and radiant

brazen mortar
#

kk thanks!

mortal kraken
#

Hey guys, I'm looking for a project to take on at the moment, and I was thinking about some Hollow Knight related things.
Can anyone tell me what's the state of modding at the moment? Is it possible to inject any code ? If not what are the limitations? Thanks!

ornate rivet
#

yes you can inject code

young walrus
#

the state of modding is probably somewhere on the east coast

dark wigeon
#

East coast of what

young walrus
#

U.S.

dark wigeon
#

O ok

young walrus
#

the place with states

#

lots of states

dark wigeon
#

Didn't know if you were gonna say like Australia or Mars or something ๐Ÿค”

mortal kraken
#

@ornate rivet Thanks, is there any sort of documentation for that somewhere please?

copper nacelle
young walrus
#

๐Ÿ“Œ

mortal kraken
#

Thanks!

ornate rivet
#

other than that you will have to look at the source of other mods

#

and ask here

mortal kraken
#

I'll look into all that, mostly needed a starting point, and that's a good one

#

Anyone has already looked into coop (online and local) mods?

copper nacelle
#

a bit

mortal kraken
#

Thank you!

mortal kraken
#

Way easier to get it up and running that I expected, that's great

solar jacinth
#

multiplayer mod when omggrub

compact sedge
#

I typed thon for thonk and this came up

#

wow that's cursed

jovial vault
#

indeed

solemn rivet
#

Hornet is hongry tho

fair rampart
#

JjajaiJjansnnslLllamamMnanamamMmmam

copper nacelle
#

are you ok

silk jetty
#

no

#

but thanks for asking

jovial vault
#

np

copper nacelle
#

why are you like this

jovial vault
#

I ask myself this every single day

rigid mortar
#

I ask myself that, like, once a week. I keep forgetting. I should set an alarm on my phone.

jovial vault
#

i keep on waking before my alarm and then freaking out while cooking

copper nacelle
#

Component.GetComponent is the same as Component.gameObject.GetComponent right

rain cedar
#

Yes

copper nacelle
#

ok good

#

i have gotten rid of like 20 of those

#

is the parent of the transform of a component attached to a go the same as the parent of the transform of the gameobject of a component

rain cedar
#

Yes

copper nacelle
#

perfect i also got rid of 20 of those

rain cedar
#

Component.transform is the same as Component.gameObject.transform

copper nacelle
dark wigeon
#

It took me all day but I managed to finally convert monobehaviour type data from assemblies to a typetree

simple python
#

Hello everybody! I've been working on getting the tracker mod working with dreamers, and got it working! I plan on trying to get more items added to it in the future, like nail level and the love key. I'm kind of a programming noob, so please be patient with me! The dll will need to be moved into the mods folder (commonly found in "C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight\hollow_knight_Data\Managed\Mods" on Windows). The updated playerdatadump.dll can be download from https://drive.google.com/open?id=1BBQzGg9t5DIrKAQ6y5Dn-sMMgnoBedT5

solar jacinth
#

congrats

jade bronze
#

Well.... Now I feel like an idiot. I've been doing a randomizer run, I can't find the Tram Pass or Lantern anywhere, so I avoid Deepnest thinking the Lantern is needed everywhere, and search for the lantern everywhere I can look (including, ironically enough, Joni's Blessing after doing that room in darkness, and the Stag Nest doing that skip for the first time) Then I realize I can do 4 items in Deepnest (Tram Pass, Nosk Ore, pogo-Vessel Fragment, Sharp Shadow), find the last dreamer at Sharp Shadow, and sure enough, the Tram Pass is at World Sense, and the Lantern is at Hiveblood....

gilded lotus
#

Ok buddy

hollow hearth
#

Yay its another red knight comment

#

I should just make a folder with these tbh

weak lodge
#

sigh

#

people would be very confused if they saw mine then

wooden wolf
#

hello does anyone know how to get the randomizer mod?

copper nacelle
#

Yay it's another non-modding related comment

#

I should make a folder of these tbh

flat forum
#

ok buddy

young walrus
#

Sure, pal

jovial vault
#

modding being used for modding? wild

weak lodge
#

radical ๐Ÿ˜Ž

brave cosmos
#

hello

#

i play on 1.3.1.5 and i tried to install ModdingAPI (beta) . It works, but it wont load HPBar mod

rain cedar
#

Buy the game

brave cosmos
#

yeah, i'am ashamed for pirating it. I've played for about 5 hours now and it's amazing. I'll definately buy it

dark wigeon
#

dang guys unity is a pain in the butt - it crashes without telling you whats wrong if you mess up one thing

#

the component thing is really hard to fix... I could push out a fix to the repo that would disable component checking but any gameobject copied could only be moved which I guess is fine for now

warped sinew
#

@rain cedar good advice

#

I like having a job

silk jetty
#

haha

warped sinew
#

As a guy who plays games for money

odd dome
#

ok buddy

weak lodge
#

as a guy who plays games for self fulfilment

compact sedge
#

"no dude I pirated the game to test to see if I liked it or not, that's why I spent so long downloading mods"

flat forum
#

well

#

go get like Visual Studio or smth

#

add refs for the things that get mods to work

rough portal
#

how do i even mod the game? im new to modding and dont know what to do

flat forum
#

like, Modcommon and the API, mainly, I think

#

and then just

#

code

#

can you be more specific if you want better answers

#

anything specific you wanna make?

floral furnace
#

do you wanna make one or do you wanna put existing mods to your game

rough portal
#

well not make i was hopping to install or am i in the wrong chat for that?

floral furnace
#

so install mods?

rough portal
#

yes

flat forum
#

...pick your words more carefully

rough portal
#

sorry i wasn't thinking straight ill make sure to next time

flat forum
#

no, no problem

#

though if you simply wanna install mods, modding-help is the right channel

#

I thought you wanted to modify the game

#

anyways, uh

#

here you go

#

this installs the mods you need

#

for you

rough portal
#

thank you so much

flat forum
#

if it asks for folder direction

#

go to steam > steamapps > common > Hollow Knight

rough portal
#

ok

flat forum
#

np

#

have fun

solar jacinth
kindred geode
#

how to install custom skin mod ?

young walrus
#

๐Ÿ“Œ

kindred geode
#

ty

gilded lotus
#

yw

river eagle
#

Hello modding pros

#

Does anyone know

#

if it's possible to setup a minecraft server on linux?

quiet marsh
river eagle
#

okay actually how do I install java

#

@copper nacelle hello

ornate rivet
#

and yes you can make a minecraft server on linux

river eagle
#

well you see mine is a bit of a special case

#

which makes things quite hard

#

56 knows about this

gilded lotus
#

ftb ๐Ÿ‘€

river eagle
#

@ornate rivet what was the terminal command that could be used to install stuff

#

it seems like I don't have apt-get

safe hamlet
#

that can be easily googled

river eagle
#

no believe me my case is really complicated

#

the usual means don't work here

solemn rivet
#

Y

river eagle
#

pog

#

@solemn rivet do you know about rhel servers?

dark wigeon
#

You don't have any package manager?

solemn rivet
#

no

dark wigeon
#

Imagine having to go into the browser to install something

#

Oh I see rhel is red hat

#

So yum is the package manager

river eagle
#

@dark wigeon yes but the problem is that I lack root perms to do anything nice

#

like sudo stuff

dark wigeon
river eagle
#

hey that actually sounds good

#

I'll try that

#

what I should download

simple python
#

How about you don't install things on servers you don't own and don't know anything about

dark wigeon
#

Whichever one the server needs

river eagle
#

@simple python I own this specific part of the server which I can access

dark wigeon
#

64 bit Linux tar gz

river eagle
#

the thing is that I can't access root, just this one dir

dark wigeon
#

Assuming it's 64 bit

river eagle
#

well the problem is that this is actually 32 bit

dark wigeon
#

Then do 32

river eagle
#

I don't see that option

dark wigeon
#

x86 processors are 32 bit

river eagle
#

oh right my bad

#

my pain

#

wtf you actually have to have an oracle account to download

#

@dark wigeon do you know if this could be done with openjdk?

dark wigeon
#

Probably

#

I think I have a direct link to all of them without login though

river eagle
#

but yeah I'm not sure if I want to mess with this

#

trying the command without sudo gives an error

dark wigeon
#

Nah just do openjdk or download a newer java

#

Do you have to have java 8?

#

I know they only make you login if it's an "unsupported java version"

torpid plank
#

It really shouldn't require anything more than sudo yum install java-1.8.0-openjdk-devel.

#

What's the error message saying, Hal?

dark wigeon
#

Apparently doesn't have root

torpid plank
#

You only need to add your own account to the sudo group in order to use it.

dark wigeon
#

If you can't get that working apparently yum has a download only plugin

flat forum
#

hey, @dark wigeon

#

did you understand what the Unity problem was?

#

sorry for constantly bothering yo

#

u

dark wigeon
#

No it's fine

#

Sadly no but I'm gonna go on a comparing run

#

Two files that are seemingly the same create two different results, one that crashes the game and one that doesn't

#

Have no idea why yet

flat forum
#

oh?

dark wigeon
#

It's unity so these things aren't unexpected. I have to see whether things like the filename or the order that components are have something to do with it

#

It would probably be easier for me to open up a debugger and breakpoint the assembly tho

#

I'm traveling right now but I have hk on my laptop

flat forum
#

mhm...

#

well

#

good luck with fixing it!

#

also, where are you travelling?

dark wigeon
#

Missouri

#

Wow nice

#

Also big rip I thought I copied the new editor code to my laptop but instead I somehow copied unil2cpp

dark wigeon
#

I got it narrowed down to an error in SerializedHeader. Not sure why it would be crashing as I copied the headers from the fixed one to the broken one and it's still doing this

brave cosmos
#

hey, if I buy the game on GOG will the modinstaller work as it's DRM free?

#

because I've had some issues with mods on the GOG version

#

versions of other games*

young walrus
#

Yes. If you use it correctly

brave cosmos
#

So no difference between installing mods on steam and gog version?

glad basin
#

does anyone know how to make my own mods? I have programing background so you don't need to worry about that

rain cedar
#

There's some resources on it, but they're pretty outdated

#

The basic idea of it is you need a Mod class with an Initialize method, where you can hook onto various events in the game

#

Something like

public class MyMod : Mod
{
     public override void Initialize()
     {
          ModHooks.Instance.HeroUpdateHook += Update;
     }

     private void Update()
     {
          Log("Mod running");
     }
}
#

Since most of the game logic is done using Playmaker (Visual FSM tool) rather than actual code

glad basin
#

so which file to i open

#

to view the code

rain cedar
#

The main assembly is at Hollow Knight\hollow_knight_Data\Managed\Assembly-CSharp.dll

#

You shouldn't make edits directly in there, though

#

We use an API that loads any assemblies in the Managed\Mods folder

young walrus
rain cedar
#

Idk how up to date that is

young walrus
#

ยฏ_(ใƒ„)_/ยฏ

rain cedar
#

But it's better than nothing, I guess

#

I guess I could fix this but that's a lot of work

glad basin
#

thx

glad basin
#

ok.. so i opened up Assembly-CSharp in dnSpy but it doesn't let me type anything

rain cedar
#

While you can make edits in there, you shouldn't

#

Any mods you make that way will be incompatible with every other mod

glad basin
#

oh...

#

so what should i do

rain cedar
#

It's still good to have to see how things work

#

From there, you'll want to make a new .NET Framework 3.5 class library project in your IDE of choice (Visual Studio/Rider)

#

Add a reference to that API and probably Playmaker + Unity

#

Then make a class similar to the example I put above

#

Build it and place it in Hollow Knight\hollow_knight_Data\Managed\Mods

glad basin
#

so is play maker another thing i need to download?

rain cedar
#

No, it's part of the game

#

In the Managed folder there are tons of .dll files

#

Playmaker is one of those

glad basin
#

ah, i see

solemn rivet
#

It sure was fun watching your morale steadily decrease as this conversation went on Sean

glad basin
#

so when i'm referencing things, where would i find the .dll file for unity

#

or is it just unityEngine.dll

rain cedar
#

There's a ton of them that you might need, depending on the mod

#

They're all in the Managed folder

#

A good start is UnityEngine.dll and UnityEngine.CoreModule.dll

#

Or something similar to that, I'm not sure exactly on the name of the core one

glad basin
#

alright thanks alot

glad basin
#

what exactly does the override keyword do?

#

wat would happen if i simply put public void Initialize

rain cedar
#

Override means that the method exists in the base class, and you want to replace it

#

This can only be done on methods marked as virtual or abstract

copper nacelle
#

public void Initialize wouldn't compile

rain cedar
#

I think it would

#

But there would be a warning telling you to use new

#

The point of overrides is that you can call code in the super class without having to know what the super class is

#

So the API just knows that everything is a "Mod", but it can still call code in whatever the exact Mod class is

copper nacelle
rain cedar
#

It compiles in vs

#

Just a warning

copper nacelle
#

yeah that one is a warning too

rain cedar
#

In any case that's not a thing people should do

copper nacelle
#

yeah

glad basin
#

so it appears that initialize is not a method in the base class for me. was i suppose to inherit some stuff from a different class?

copper nacelle
#

Modding.Mod

#

If you left off override, the API wouldn't call your version of Initialize and would just call the original virt method but if you were to do this.Initialize() it would call your method, and if you did ((Mod) this).Initialize() it would call the original I think

#

but don't do that

rain cedar
#

I don't think I've ever had a good use case for the new keyword on fields/methods

copper nacelle
#

yeah same

glad basin
rain cedar
#

TestMod : Mod

#

Also
using Modding

glad basin
#

ah

#

thx

rain cedar
#

@copper nacelle How far did you get on the mod settings menus?

copper nacelle
#

Not very

rain cedar
#

Unfortunate

copper nacelle
#

I was making the class actually readable first

rain cedar
#

Like code cleanup?

copper nacelle
#

yeah

rain cedar
#

Which class?

copper nacelle
#

ModManager

#

like replacing the FindSelectableOnDown stuff with a loop

rain cedar
#

Lmao the 100 line try/catch in the current one

copper nacelle
#

oh yeah and that

rain cedar
#

This class is bad

copper nacelle
#

note that there is a try catch in the try catch

rain cedar
#

Yeah

#

I think I added that nested one a while ago

#

Because it made no sense for the entire thing to die if a mod threw

copper nacelle
#

yeah

#

The try catch at the top is also unneeded now because I fixed UIManager.instance

rain cedar
#

I should probably move the obsolete Mod<> stuff to a separate file

copper nacelle
#

that would be nice

#

I want to get rid of all the giant commented blocks

#

that's what version control is for

rain cedar
#

I kinda want to do a weird attribute thing but idk how useful it would even be

#

Something like

[SubscribeEvent("HeroUpdate")]
private void Whatever() { }
#

Not as a replacement to the current thing, just another way to do it

copper nacelle
#

sounds neat

#

Would you be able to unload them

rain cedar
#

Maybe two versions of it

#

Where one specifies an IToggleableMod type

#

And it toggles it

#

Can't just search for a toggleable mod in the assembly because of QoL

copper nacelle
#

that'll be gone soon

#

hopefully

rain cedar
#

Because it wants compile time constants and maybe it wouldn't recognize nameof as constant

#

But it works shroompog

copper nacelle
#

attribute type restrictions MaggotPrime

kindred sedge
#

would it be possible to make a randomizer for just the coliseum of fools?

rain cedar
#

I don't see why not

kindred sedge
#

cause i think a ton of people would love that

copper nacelle
#

then do it

rain cedar
#

I'll do it myself for $10/hr

#

That's a really good rate

kindred sedge
#

im thinking about it

#

thing is i havent modded this game yet

rain cedar
#

I have no idea what the behaviour will be for a non-static method because the subscription method doesn't take an instance

copper nacelle
#

my game died

#

it appears to have been qol

#

Oh it's cause I have implemented the settings thing there

safe hamlet
#

can't you make Mod abstract?

rain cedar
#

Yeah, it should be

#

Don't think that'll break anything

safe hamlet
#

yea then you can make it (Initialize) not virtual so it must be overridden

rain cedar
#

That's a breaking change

#

I'm not gonna do that

safe hamlet
#

u right

#

does the mod installer also update the api?

copper nacelle
#

Yeah

safe hamlet
#

yea not a good idea then

rain cedar
#

In other news I'm home again so I'm about to test this attribute on an instance method

#

I don't think it'll work

#

It's dead and I don't even know how

#

There's no errors anywhere

#

Nevermind I've solved the mystery

#

I am stupid

#

It gets a method argument length mismatch

#

I assume this is because instance methods have a hidden 'this' parameter

copper nacelle
#

yes

rain cedar
#

Idk how events work then

#

For instance methods

copper nacelle
#

MonoMod has you pass the instance

#

in new Hook

rain cedar
#

Terrible

copper nacelle
rain cedar
#

Protected is fake

#

That seems much easier than generating a dynamic method

copper nacelle
#

this is true

rain cedar
#

Oh it's not fake

#

Delegate is abstract

copper nacelle
#

You can set _target

#

via reflection

rain cedar
#

I'll try it

#

Nevermind I don't think it's worth trying

#

There's a ton of IntPtr stuff in Delegate

#

That gets assigned from extern code

copper nacelle
#

unfortunate

rain cedar
#

Idk what it's meant to be to make it work

copper nacelle
#
0    0000    nop
1    0001    ldarg.0
2    0002    ldftn    instance void goodbye.goodbye::SceneChanged(valuetype [UnityEngine.CoreModule]UnityEngine.SceneManagement.Scene, valuetype [UnityEngine.CoreModule]UnityEngine.SceneManagement.Scene)
3    0008    newobj    instance void class [UnityEngine.CoreModule]UnityEngine.Events.UnityAction`2<valuetype [UnityEngine.CoreModule]UnityEngine.SceneManagement.Scene, valuetype [UnityEngine.CoreModule]UnityEngine.SceneManagement.Scene>::.ctor(object, native int)
4    000D    call    void [UnityEngine.CoreModule]UnityEngine.SceneManagement.SceneManager::add_activeSceneChanged(class [UnityEngine.CoreModule]UnityEngine.Events.UnityAction`2<valuetype [UnityEngine.CoreModule]UnityEngine.SceneManagement.Scene, valuetype [UnityEngine.CoreModule]UnityEngine.SceneManagement.Scene>)
5    0012    nop
#

object native int

#

ok

rain cedar
#

fuck is ldftn

#

Load fountain

copper nacelle
#

Delegate.CreateDelegate

rain cedar
#

yes

copper nacelle
#

No I mean

#

that takes an instance

rain cedar
#

Oh

#

There's 10 of them

#

I guess I need to find the right one

#

You mean the ones with

object firstArgument
```?
copper nacelle
#

yeah

rain cedar
#

Amber says hi

copper nacelle
#

hello

rain cedar
#

It's a mismatch even with that

copper nacelle
#

try logging the params

#

.Method.GetParameters

rain cedar
#

In a bit

#

I moved and there's a cat sitting on me now

jovial vault
#

aww

copper nacelle
#

understandable

hollow pier
#

HI AMBER

dark wigeon
#

Ok my two test files are almost identical, the only difference is the order of the assets... Sadly I left the program to easily change the order of assets but I swear if unity is crashing because of the order of assets...

solar jacinth
dark wigeon
#

Yeet Bois it's the "preload table" whatever that is

solemn rivet
#

smh

#

Have you never heard of PEMDAS/BODMAS nes?

dark wigeon
#

Apparently if you don't put monoscripts in the preload table the game crash

solemn rivet
#

Kids these days

jovial vault
#

BODMAS tisoweary

#

Hmm

solemn rivet
#

hmmm

solar jacinth
#

im shaking

#

modding doesnt do no offtopic for a while now

jovial vault
#

Because we made a server smh

trim totem
#

what server

kindred sedge
#

man, i wish the enemy randomizer was more serious

jovial vault
#

A shitpost server khan

#

Smh then make it serious my man

gilded lotus
#

dont let khan in

kindred sedge
#

i cant code sadly

weak lodge
#

this is knightmere

solemn rivet
#

let khan in

#

I'm not even in the server but let khan in

#

he deserves it

jovial vault
#

Someone dm khan i am on mobile

fossil agate
#

maybe a really stupid question, is there a way to mod the switch version without homebrew? probably not.

solemn rivet
#

no

fossil agate
#

thanks

#

then i;ll just look if i can get an extra pc copy

dark wigeon
solar jacinth
#

it do be like that sometimes hivetired

safe hamlet
#

can relate

silk jetty
#

imagine coding ever

jovial vault
#

This tbh

odd dome
#

imagine being adrain

dark wigeon
#

Why would you be a drain

jovial vault
#

On the economy

silk jetty
#

mood

#

also, who mentioned this channel not going offtopic?

#

@solar jacinth you feel better now?

solar jacinth
#

yessss

copper nacelle
#

can you not

silk jetty
#

its already over but okay

rain cedar
#

@copper nacelle I pushed the attributes but they're very minimally tested

#

Only tested the happy paths

#

So don't update it on the drive

copper nacelle
#

alright

#

Oh yeah

#

What do you think of checking if the MonoMod hooks have already been generated and then not recreating them if they're already there

#

It'd speed up build time

#

The only thing I'm unsure about is checking if the hooks are up to date but it's not like hk is getting updated anymore anyways

rain cedar
#

Yeah, we can just manually delete the hooks if it updates

#

nbd

copper nacelle
#

no more 2 minute builds shroompog

rain cedar
#

Wtf

#

It's like 15 seconds for me

#

Max

copper nacelle
#

i think it's like 30 for me

#

i'll double check

rain cedar
#

Which is kinda cool but not all that useful

copper nacelle
rain cedar
#

Terrible

#

Should I enforce readonly for the subscribers?

#

The only thing about that is then you can't assign them in Initialize

copper nacelle
#

readonly makes sense but not being able to assign them in Initialize is non-optimal

rain cedar
#

Yeah it's not great

#

Because right now I'm sure you can break it by changing the instance

#

Wouldn't unhook properly

#

Also realized I don't null check the instance

#

That is a bad thing

copper nacelle
#

You could maybe add an event for the OtherClass which fires after Initialize on the mod gets called so you can keep stuff in order

rain cedar
#

That's not a bad idea

#

Something like ISubscriptionEventReceiver with Subscribe and Unsubscribe

#

Optional to put on your thing

#

How does GC work with events, even?

#

Like if the method in some instance get hooked, then you lose all references to that instance

#

Do the hooks keep it alive?

copper nacelle
#

yes

#

I've had it happen with a mod

#

It was on a behaviour and then the go got destroyed

rain cedar
#

That is a very bad thing to allow to happen

copper nacelle
#

so this == null

#

was true

rain cedar
#

Ok but if this == null then it did get collected

#

So you could unhook in a finalizer

copper nacelle
rain cedar
#

Incredible

#

Well I'm not gonna try to do anything about that

#

If you change the instance of a subscriber, not my problem

copper nacelle
#

understandable

rain cedar
#

It should be fixable though by caching the delegates used and unhooking if the instance changes

#

But that's a lot of work to prevent people from being stupid

copper nacelle
#

yeah

rain cedar
#

No null check on the instance should actually be mostly fine

#

2/3 uses of this are in LoadMod/UnloadMod which already have try/catch

#

And if one event in there breaks none of the other ones happen, even if I try/catch the whole thing

#

Which means one mod can break another one, which is not ok

#

So I need to make the method actually safe maggotprime

copper nacelle
#

yhtsi

safe hamlet
dark wigeon
#

Do you guys know how to use mono cecil

copper nacelle
#

yeah

#

It's what the Prepatcher uses

dark wigeon
#

I mean like more than just add two lines of assembly

copper nacelle
dark wigeon
#

Any easy way to convert typereference to a c# like string

copper nacelle
#

Like an assembly qualified name?

dark wigeon
#

For example List<T> is called List`1 in the assembly so I'm stripping the last two characters and looping through generic parameters

copper nacelle
#

It's List`1 with the c# string too though

dark wigeon
#

What you mean

copper nacelle
#

System.Collections.Generic.List`1, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

dark wigeon
#

Well yeah it's called List`1 but when written with code that type is List<x>

copper nacelle
#

o

dark wigeon
#

ie List<string> stringList;

copper nacelle
#
string[] parts = tr.Name.Split('`');

return parts[0] + "<" + ','.Join(parts.GenericParameters.Select(x => x.Name)) + ">";
#

i guess

#

wait

dark wigeon
#

Boi

safe hamlet
dark wigeon
#

` just tells you how many not the actual type inside

#

Yeah that's exactly what I'm doing right now

#

I don't like it but I guess it works

copper nacelle
#

I don't think there's a less cancer way to do it

dark wigeon
#

Trying to generate cs files unity can read to parse monobehaviours

copper nacelle
#

ah

#

pain

kindred sedge
#

what does the omnes deorum mod do? the mod manager has a ton of mods but doesnt explain what any of them do lol

young walrus
#

The readmes do

#

And this

fair rampart
young walrus
#

Mod summaries

rain cedar
copper nacelle
#

that's the only reason i'm using rider

#

tbh

rain cedar
#

It's the same variable and I don't assign to it anywhere

#

Other than initially, I mean

copper nacelle
#

is it complaining about it being null

rain cedar
#

Yes

fair rampart
glad basin
#

So, say if i wanted to summon some Hatchlings (Thingy that comes out of the glowing womb charm). How would i go about doing that. Is there a class or something that just handles all the game objects?.

copper nacelle
#

There's a child gameObject on the knight called "Charm Effects"

#

that has a PlaymakerFSM called "Hatchling Spawn"

#

which has a state, "Hatch"

#

which has a SpawnObjectFromGlobalPool action

#

which you can take the hatchling object from

#

something like

#
UnityEngine.Object.Instantiate(((SpawnObjectFromGlobalPool) HeroController.instance.gameObject.Transform.Find("Charm Effects").LocateMyFSM("Hatchling Spawn").States.Single(x => x.Name == "Hatch").Actions[2]).gameObject.Value)```
#

Note that there are extension methods (static methods which are invoked similarly to instance methods) in a library called ModCommon which makes dealing with FSMs a lot easier

#

Which would just make it

#
UnityEngine.Object.Instantiate(HeroController.instance.gameObject.Transform.Find("Charm Effects").LocateMyFSM("Hatchling Spawn").GetAction<SpawnObjectFromGlobalPool>("Hatch"))
glad basin
#

thanks man

kindred sedge
#

will bonfire mod work with item randomzier?

rain cedar
#

Probably

silk jetty
#

but you want your geo in item randomizer though

kindred sedge
#

wait i thought randomizer changed vengeful spirit location

#

it was in the shamon nest as usual

young walrus
#

did you turn it on

#

and what was in every location up til now

kindred sedge
#

all i did was the normal route, but i installed it via the mod installer

#

the one that says randomizer 2

copper nacelle
#

did you get fury

kindred sedge
#

and i picked up the fury charm in the beginning, then went straight to gruz mother and fallen knight

young walrus
#

and did you get the screen with all the options

kindred sedge
#

i did not get a screen

#

with any options

young walrus
#

then it wasn't randomized

kindred sedge
#

hmmm

young walrus
#

quit out. start a new file

#

dunno why the new API fucked this up

copper nacelle
#

i think there's a thing rn where you have to go into the menu and then go out again for it to show up

unborn flicker
#

One line fixes are hard tisoweary

#

Even better, Sean gave me the one-line fix

kindred sedge
#

all i have activated with it are custom knight and fragile strength for nail arts

young walrus
#

what

#

that doesn't matter at all

#

go back to main menu

kindred sedge
#

okay

young walrus
#

start new save

kindred sedge
#

i started a new file

#

and i got a menu

#

what does restrictions mean?

#

like if i activate all bosses will it not let me win till i kill them all?

copper nacelle
#

yes

#

hornet will be at the black temple and say you suck

kindred sedge
#

awesome

#

what does all the stuff on the left mean?

#

i clicked the readme in the mod installer but it says one doesnt exist

#

spike tunnels?

#

salubra notches?

silk jetty
#

the stuff on the left is skips that are in logic

#

and salubra notches is you get salubra notches as soon as you have enough charms to buy it

young walrus
#

use the easy preset

kindred sedge
#

tbh i just want the items randomized nothing else changed

silk jetty
#

okay

kindred sedge
#

so should i turn lemm sell all off first?

silk jetty
#

lemm sell all just makes selling relics less tedious

young walrus
#

no

kindred sedge
#

oh

young walrus
#

salubra and lemm QOL options are just nice to have

silk jetty
#

keep all the qol stuff on

kindred sedge
#

thats a nice QoL

young walrus
#

the skips on the left are just HOW items are randomized

#

if you know speedrun shit or if you don't

#

so just use the easy preset

kindred sedge
#

i turned all bosses all items all skills on cause i wanna 112%

#

okay i will use easy

silk jetty
#

salubra notches makes it so that you dont need to run back to crossroads whenever you get enough charms for a new notch

#

so its just nice to have on

kindred sedge
#

is the room randomizer on the mod installer? (not gonna have both on just wondering lol)

silk jetty
#

it's not

young walrus
#

room rando doesn't exist

silk jetty
#

theres only area rando

rain cedar
#

I fixed the navigation though

#

So you can actually use the menu without mouse

#

Oh the things in the mods menu have to be clicked

#

Unfortunate

kindred sedge
#

But there a room rando in the pins

unborn flicker
#

no, that's a spreadsheet

rain cedar
#

It's a pastebin too

#

Not just a spreadsheet

simple python
thorny quartz
#

The debug mod is causing my game to crash, what's up with this?

weak lodge
#

i dunno man

thorny quartz
#

It causes a loading bar to appear on start, and crashes when its full

copper nacelle
#

Does it crash with the dialog pop up or no?

thorny quartz
#

Nope, just loads the bar and closes the game

#

I occasionally get a second or two of the intro music, but thats it

solemn rivet
#

Do you have a controller plugged in

#

Asking for a friend

weak lodge
#

dont tell him hell steal the controller

rain cedar
#

Debug mod doesn't use the preload system so it won't cause a loading bar

thorny quartz
#

The bar only appears when that mod is enabled, and doesn't when its disabled. I do have other mods active but none of them are causing the bar

rain cedar
#

Send the logs from one of the crashes

#

In your save folder

#

ModLog and output_log

solemn rivet
#

Do you have a controller plugged in

#

Because it did exactly that when I had one

rain cedar
#

I want to see the logs even if it's a controller

#

Because debug doesn't preload

solemn rivet
#

Yeah

#

Oh yeah I never actually told you Sean. The problem I was having with area rando was precisely that: having the controller plugged in

#

If I loaded the game with it out would crash, and without it it would load fine, and I could just plug it afterwards and play normally

rain cedar
#

Weird

solemn rivet
#

Yeah

#

I mean, it used to happen before, but only in save and quit

#

But with the new api it happens while loading the title screen for the first time too

rain cedar
#

That makes sense

#

Behind the load bar, a quit to menu happens

solemn rivet
#

That's it then

#

But I don't think it merits a fix tbh

#

Afaik I'm the only one who's had this issue

#

And I don't even play hk anymore

rain cedar
#

Pretty easy fix

#

Don't use the inferior input method

thorny quartz
#

I do have a controller in and I am also using the two Randos. But only enabling debug causes the bar.

silk jetty
#

why would you use both randos

#

wtf

solemn rivet
#

First, don't use two rando

#

Second, try unplugging controller and running the game

rain cedar
#

Probably means item and enemy

solemn rivet
#

Even worse then

#

Cause enemy is broken

rain cedar
#

It works for some people

solemn rivet
#

Randomly

silk jetty
#

but those people still cant enter rooms with collector from bottom

thorny quartz
#

Enemy tends to work for me, only some problems in the arena.

solemn rivet
#

Did you try loading the game without a controller plugged in

#

Asking for an enemy

thorny quartz
#

I will soon

solemn rivet
#

โ„ข

thorny quartz
#

So the bar appears, but it works, not crashing

#

But now something weird is happening

solemn rivet
#

What

thorny quartz
#

Okay, so it seems randomizer 2 for items is causing the loading bar. What's weird is

#

Wait

#

What's weird is it wasn't doing it before

solemn rivet
#

It's not weird

#

That bar is there for a reason

#

It's part of the new api

thorny quartz
#

What purpose does it serve?

solemn rivet
#

I mean

#

What purpose do loading bars usually serve

thorny quartz
#

That's fair

rain cedar
#

Randomizer requests objects from the game at game start

#

The load bar happens while the API is finding those objects

unborn flicker
#

Here it decides to force Queen's Station connected to King's Pass. However, it previously had assigned Queen's Station to the blocked off Kingdom's Edge entrance which usually leads to Hive, so to make sure that remains accessible, it reassigns it to the top left Kingdom's Edge entrance, which was unused up to that point

jolly bay
#

No ui mod?

copper nacelle
#

any debug

jolly bay
#

thx

glad basin
#

How come it can't recognize ".LocaateMyFSM" and and "SpawnObjectFromGlobalPool". Is there something i forgot to import or reference?

ornate rivet
#

Umm, Transform.find finds a transform not a gameobject

#

gameobjects have fsms not transforms

#

@glad basin

glad basin
#

oh

#

thx

copper nacelle
#

@glad basin yeah it'd be .Find("Charm Effects").gameObject

#

and you import SpawnObjectFromGlobalPool

#

that's why it's underlined unlike LocateMyFSM

rain cedar
#

Unfortunate

#

The problem has been resolved

#

I was missing a ref keyword

#

All these randomizer bugs are 1-2 line fixes

copper nacelle
#

nice

rain cedar
#

So I've fixed the shop prices changing on quit, the lag when you hit spikes, and the additive items disappearing

#

I don't think there was anything else

#

56 do you know what the version number on the drive is? I never remember if I've already incremented git past it

copper nacelle
#

2.8 i think

#

I can double check

#

2b.17

rain cedar
#

Ok

#

I have 18 locally so it's already good

#

Thanks

#

To fix 3 bugs

#

PepoThumb

copper nacelle
rain cedar
#

Is ModCommon hardcoded somewhere in the installer or is there actually a system for specifying arbitrary dependencies?

copper nacelle
#

I thought there was one

#

Like you just put it where the api is

rain cedar
#

Yeah you're right

#

ModCommon is hardcoded for some reason but there is a system for other dependencies

unborn flicker
#

Are you guys ready for data? shroompog

#

I have computed the distribution of 200 starting entrances (connected to King's Pass) for area rando

#

That corresponds to:
Town - Dirtmouth
Fungus2 - Queen's Station
Deepnest_01 - Fungal Wastes, Moss Prophet entrance
Deepnest_East - Kingdom's Edge, Tower of Love entrance
Abyss_05 - Palace Grounds
Ruins2_04 - CoT, Basin shaft entrance
Ruins1_23 - Soul Sanctum, upper entrance
Ruins1_09 - Soul Sanctum, lower entrance
Crossroads_50 - Resting Grounds, Blue Lake entrance
Mines_02 - Crystal Peak, Dark room entrance

copper nacelle
#

crystal peak dark room out of kp monkaMEGA

unborn flicker
#

oh, by "dark room" I meant the right side of the Crossroads dark room

copper nacelle
#

ah

unborn flicker
#

though obviously that start always forces the CP dark room, I suppose

#

wtf

#

I tear up everything to make more starts possible, and I end up with this distribution maggotprime

#

cursed

copper nacelle
unborn flicker
#

By quadrupling the randomization time, I have performed a miracle and taught the randomizer that Isma's Tear exists

#

Tomorrow I will return and perform my next miracle when I reveal that Desolate Dive also exists shroompog

trim totem
#

i got isma's tear on my first one

unborn flicker
#

nevermind, I figured out how to fix it just now. I'm pretty sure this should be all possible starts now, excluding anything too absurd

#

Ruins1_01 laceblush

trim totem
#

what is the most absurd start you could have

frank pulsar
#

Is there a preferred version of hollow knight to run the randomizer on? As in steam vs drm free

young walrus
#

Any version

#

As long as it's not pirated

frank pulsar
#

Nice, thanks. I own it on switch which is probably less than moddable

cunning folio
#

Isnโ€™t someone making a level creator mod?

compact sedge
#

any pc version

#

is the proper answer

silk jetty
#

other than pirated versions

daring snow
#

Eyepatch&grogg% speedruns on 1.0.0.5

versed dirge
#

Are there any mods for the game on Xbox one?

silk jetty
#

i dont think so

versed dirge
#

Oh :/ thanks

dark wigeon
#

sorry about the wait on the level editor stuff

#

lots of stuff going on plus unity isn't being the most helpful

#

components still broke I guess, this time it's the evil type tree GWchadThonkery

charred parrot
#

dont worry man you dont need to apologize

amber flint
#

i have installed mods before on hollow knight

fair rampart
copper nacelle
#

this is just lost lord

#

video naming is kinda weird

#

what is the ? for

warped sinew
#

lost lord looks so good

#

I love the changes you made to it

copper nacelle
fair rampart
#

I just didn't know you released an updated version

copper nacelle
#

understandable

#

it was a while ago

#

Oct 31 2018 x5fiftPrime

hazy sentinel
#

wow is that the GOD GAMIN YouTube rebrand

weak lodge
#

reamsteredโ„ข

#

rehampsteredโ„ข

solar jacinth
#

lmao god gamin , i know that channel , he spammed "u fat" to the hollow knight boss, kinda weird and hes indian btw

#

kthx

weak lodge
#

electric art

solar jacinth
#

u

versed dirge
#

Thatโ€™s a pity there are no mods for hollow knight on Xbox one, there are some boss fights that you freak out to finish, mostly the ones in the dream world

#

Itโ€™s cool to keep trying again and I believe thatโ€™s the purpose of the game but I get so frustrated after a thousand unsuccessful attempts

weak lodge
#

man i wish there were mods on 'x console'

gilded lotus
#

i wish there were mods on switch so all the switch people could come here :)

solar jacinth
#

wtf

#

"mods on consoles"

young walrus
#

just get a computer. it's a console, but better!!!

torpid plank
#

And with it, you can do stuff that a console can't!

jovial vault
#

Incredible

glad basin
ornate rivet
#

Why do you have a dot after getaction?

#

it should follow the format
gameobject.GetAction<Action_Name>("State Name", index)

weak lodge
#

op

#

oh

bronze temple
#

and uh

#

new Hook's target instance is optional and only to be used for instance methods when needed

#

otherwise it's used when passing delegates

#

and regarding delegates,

#

I'd stay away from ldftn on mono unless it's needed

#

given that the result of ldftn can vary depending on whether the method has been jited or not

#

which is not the case for .NET Framework / Core btw :/

dawn oxide
#

oh fuck
it ade

hollow pier
#

gradowo

#

does portuguese have gendered stuff

weak lodge
#

i think so

solemn rivet
#

Ye

#

Trees are female and also cars, but tampoons aren't

hollow pier
#

is tolo masculine or feminine

silk jetty
#

yes

weak lodge
#

ask saleh

#

i think he said hes porting ss stuff

#

dont take my word for it

#

hey look saleh

ornate rivet
#

Uh I said I would give hornet boss fight SS abilities

weak lodge
#

maybe if i become competent enough ill port a boss over idk

#

in fact i thought of maybe porting knight into ss and vice versa but sounds like it would be another pain in my lower back so no

ornate rivet
#

maybe that wouldn't be so bad?

#

actually idk

fair rampart
#

ะกะพัŽะท ะฝะตั€ัƒัˆะธะผั‹ะน ั€ะตัะฟัƒะฑะปะธะบ ัะฒะพะฑะพะดะฝั‹ั… ะกะฟะปะพั‚ะธะปะฐ ะฝะฐะฒะตะบะธ ะ’ะตะปะธะบะฐั ะ ัƒััŒ! ะ”ะฐ ะทะดั€ะฐะฒัั‚ะฒัƒะตั‚ ัะพะทะดะฐะฝะฝั‹ะน ะฒะพะปะตะน ะฝะฐั€ะพะดะพะฒ ะ•ะดะธะฝั‹ะน, ะผะพะณัƒั‡ะธะน ะกะพะฒะตั‚ัะบะธะน ะกะพัŽะท! Music: National Anthe...

โ–ถ Play video
ornate rivet
#

?

#

that directly replaces assets without code so it only works with version 1.4.2.4

weak lodge
#

sigh

ornate rivet
#

;help

ornate rivet
#

is there a way to store a reference to the position of an object and not just the position's value in c#?

copper nacelle
#

I think transform.position is a property so idts

#

You could try storing a pointer to the Vector3

#

I don't think a ref local would work but you could try that

ornate rivet
#

ok

rain cedar
#

You could store a lambda pointing to its position @ornate rivet

urban olive
#

Where should I ask randomizer help questions? Like actual gameplay related? Is wanting help enough to assign myself the speedrunner role and ask in randomizer races or Can I ask here?

rain cedar
#

You need the racer role not the speedrunner role

urban olive
#

Oh

rain cedar
#

Which is fine, anyone can have it

urban olive
#

Should I assign myself that and ask there?

#

Itโ€™s just 1 question

rain cedar
#

You might get periodic pings unless you leave the role after

#

Also it's taking like 5 minutes for me to upload randomizer to the drive

#

Not very related but somewhat

#

๐Ÿ™‚

hollow pier
#

yusuf you are ruining my life

jovial vault
#

yusuf continues to ruin all of our lives

unborn flicker
#

I have a modding idea
However, I am too lazy too make it
Unfortunate

jovial vault
#

unfortunate

#

will you provide copypasta tho

simple python
#

F

unborn flicker
#

At least I can go to sleep with confidence that I will wake up and understand dessins d'enfants

#

The fact that I have basically no Galois Theory and barely know what a Riemann surface is should really only be a minor obstacle after a good night's sleep ๐Ÿ˜Ž

urban olive
#

Thanks again for making this amazing mod Sean

#

Even if itโ€™s ruining my life rn ;(

rain cedar
#

Sorry

jovial vault
#

homothety i have no idea what most of these words mean, but i wish you luck

copper nacelle
#

@bronze temple I knew about it being optional; I was just using it as an example because MonoMod does things well so it's a good place to look at how to do things.

nimble lake
#

I'm trying to make it so Fury of the fallen would always be activated even at full hp

#

I tried using cheat engine but that turned out to be pretty hard

copper nacelle
#

cheat engine MaggotPrime

#

There's an FSM on a child go of the knight

#

the child go is Charm Effects and the fsm is Fury

leaden hedge
#

You can just manually set nail damage

#

When HP changes

copper nacelle
#

this is true

nimble lake
#

; what do you mean by that even

#

Also changing your nail damage is not the same

#

You don't get that red glow when you attack

copper nacelle
#

do you want the thing on the edges or the nail color or both

nimble lake
#

uh

#

the way it looks like in the game

#

when fury of the fallen is actually activated

marble stream
#

@copper nacelle I think he just wants to change the rule when the charm is activated

#

like <10 hp instead of =1hp

copper nacelle
#

Yeah I know

#

But if he didn't want the actual overlay, implementing the actual effect of fury is way easier

#

@nimble lake So there's a field on HeroController called instance, containing the instance as it is a singleton

#

There's a field on that which all MonoBehaviours have (which a HeroController is) called transform

#

It's the same as the transform of the gameObject

nimble lake
#

I havenโ€™t modded HK in a while so itโ€™ll take me some time to remember how to do it

copper nacelle
#

On the transform is a method Find, which locates child transforms (non-recursively)

#

You can find the transform called Charm Effects

#

then get its gameObject using .gameObject

#

use .LocateMyFsm("Fury") to get the fury fsm

#

and then change that

#

You'll want to change less than and greater than to null on the last IntCompare

#

then add your own IntCompare for the player's max hp

#

You'll want to get it using GetPlayerDataBool like the one in the pic

nimble lake
#

Wait

#

What took are you using for this?

#

Like what program