#archived-modding-development
1 messages · Page 532 of 1
ow will I start making my own custom knight
how do I make it like the proper size to fit the knight and stuff
you could do that yeah, I just like to separate each move into separate files so they're easier to maintain
yeah i was thinking along similar lines but have a library of static methods as "moves" and then make a IEnumerator that strings them together
so the high level logic/flow is in one place and the rest of implementation is maintainable
i have a script that does specific stuff all in fixedupdate and with bool checks to know which thing to do. it's horrible
Sf your create collider script worked great except when I tried to assetbundle unity kept crying about it so I had to yeet it out of the project to bundle
did I do it wrong or is that normal
unity assets structure
Sprites \
- this collection whatever
Audio \
- this collection whatever
Scripts \
- Game // compiled into assembly-csharp when building game
- Editor // not compiled into assembly-csharp when building game, only for editor
the editor script can be anywhere, it does need at least one Editor folder in its path
oh so it will work whereever but if i put it in the wrong place it will be attempted to compile it
hmm, having a collider on any child of an enemy makes it a viable hitbox
makes sense then i just put it in the root
yea
I actually named a new user Editor and nothing compiled
tf why does hitting a parented cyclone damage sheo while hitting his other child attacks don't
it goes up 2 parents and hits healthmanagers
idk why something like his yellow stab doesn't propagate hits up to its parent then
My (arguably too) in-depth tutorial on how to create a Custom Knight skin. Includes: downloading and installing Hollow Knight's ModInstaller and Custom Knight mod, using SpritePacker, using FireAlpaca/art tips, and uploading and properly saving your sprite, plus a much simpler method. Please let me know in the comments if you have any questions!...
Thanks!
there is a lot of scripts
instantiated the hits, assigned the points, then destroyed the original hits?
I changed the layer to 11 too :/
damn I forgot to change the layer of the hits
I read Attack and thought it was Enemy Attack
lol
why does just editing the amount of lifeblood have to be so annoying
for (int i = 0; i < amount; i++)
PlayMakerFSM.SendEvent("ADD BLUE HEALTH");
does it have to be eventregister?
yeah I just did that
and it didn't work for some reason
well, it worked, but it gave the wrong amount of lifeblood
I'm probably just stupid and screwing up something really simple
Idk
what's the difference between the two
@languid goblet Can't you just use HeroController.instance.add lifeblood method or something?
there's no method for adding lifeblood
Really?
yeah idk why
Disappointing
The code I linked works for randomizer, so I see no reason it wouldn't work for what you're doing
Back to learning to make mods in celeste
Though IDK what you're doing so maybe there's a reason
Reject team cherry go back to extremely okay games
I'll try eventregister then
I really hope Tc just uses c# for everything in silksong
They will
After all they use Unity lol
I mean like no fsm
they're gonna go back to unity 4.3 and use boo + js
Use fmod in silksong 
Did unity ever support boo?
good news: it works
bad news: now my code isn't restoring regular health 
Ok guys brb im gonna code omori battle system into hollow knight
It says add blue
Nevermind
I've got code for adding reg health
whatever I'll mess with it some more
Maybe do a check for pd.health Vs pd.max health
my god FINALLY it works
this was so much more complicated than it should have been
What is this?
What did you try to accomplish
oh
temporarily sets your health to 1 after taking damage, so that if you make two mistakes in a row you're dead
Sounds so good for radiant practice ngl
I thought I could do it in a day but then
🍝 happened
Pressures you into avoiding damage thus making it easier to learn imo
I could see it used that way, but it's just part of a larger project I'm working on
which is (trying) modding challenge mode from enter the gungeon into hk
Should we work on doing mediumcore from terraria into hollow knight? lol
Mediumcore: Lose everything you have
I don't play terraria, although a friend has been nagging me to try it for like the past month
How should it work though
like, have old nail until you get it back?
Or just disable nail entirely
Yes
And you died at radiance
Good luck getting that back
Nah there should be special cases just like how vanilla does it
I won't be a dick for doing that lmao
How should I set up my build events to copy the DLL into the mod folder after building?
Are there any modders that want a suggestion for a boss
If so xero eyes would be cool
Put this in the Post-build event command line in Properties (changing the path if necessary for your installation)
copy "$(TargetPath)" "C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight\hollow_knight_Data\Managed\Mods"
My first test of the mod.
Does this overwrite the file already there?
yeah
Then idk what's going wrong but I'm adding GameObjects to the map and they aren't displaying. Here is the code:
GameObject pinObject = new GameObject("pin_randomizer_item");
pinObject.AddComponent<SpriteRenderer>();
pinObject.GetComponent<SpriteRenderer>().sprite = RandomizerMod.GetSprite("UI.itempin");
pinObject.GetComponent<SpriteRenderer>().enabled = true;
pinObject.transform.SetParent(mapRoom.transform);
pinObject.transform.position = new Vector3(0, 0, 0);
pinObject.SetActive(true);
is the following here too aggressive? trying to replicate sly's cyclone
sly has much less vertical movement, horizontal looks about right
the special attack where sheo uses his red paint then his horn & paint brush turns black and uses the cyclone slash
Sike it actually doesn't, help
what
Yeah I just built it and started the mod and nothing changed
Hi
They both should overwrite though
I’m going to continue work on my mod today
Hi 56
Wait does it need to be a capital y
i don't think so but idr
Should I look at ExampleMod to get a grasp on how FSMs work? Because I’ve read the docs but can’t seem to fully understand the commands required to change certain actions
Like I said I use msbuild tasks
Well I put in the /Y and it worked
Google lied to me, it said put a lowercase y
Also how do you use code to make a GameObject a child of another GameObject
childGO.transform.SetParent(parentGO.transform);
I did that but I don't think it worked
what didn't work
The GameObject wasn't displaying
quick question
what does the action <Wait> do in a GetAction command?
is it literally just wait time
It's the generic constraint for the method
So it returns that type and if it doesn't indicate an index it'll find the first of that type
alright
thanks
im just trying to lock the Light Orbs position to Radiance's eyes
but so far the most I have done is made them spawn below the floor
oh wait I just realized what Wait is
its an action, and the orange part afterwards is the state
the orange text in the code
in the parenthesis part of the command
ive stopped for now because im tired and my brain fog makes it hard to program
oh the string
yeah
fsm.GetAction<T>(string state) -> first action of type T in state state
I wish I knew how to reverse engineer easier
because I would normally get this type of stuff easy if it wasnt for my brain being fuzzy
and I just want the light orbs to spawn at one fixed position so I can spawn a lot in a gatling type formation
what's the workflow like for loading and saving global settings in 1.5 api? don't really get much from the docs
public class ModClass : Mod, IGlobalSettingsThingOrSomeClassWhateverIForgotTheName<YourClass>
{
Some methods for saving and loading the global settings
}
No I am not doing the cool code thing in discord, on mobile and too tired
there wouldn't happen to be a way to access LoadGlobalSettings is there?
trying to port godump to 1.5 for internal use, which has the user modify and then load global settings during runtime
after a while I can finally START on making a custom knight

im very new to modding, lets say im making a mod to remove the cooldown time between attacks, how would i do so?
do i just do "attack_cooldown" = 0;?
in my on attack method
first you need to find what in the game code handles attack cooldowns (my first guess would be HeroController)
you can view the game code using dnspy or similar on the vanilla Assembly-CSharp
Hi! So I don't know any C# or Unity (but do know C, Typescript, Ruby and a bit of Rust) and I have a mod (well, several) that I would like to make
I'm working through a C# cheatsheet at the moment (and hoping that my typescript experience would be enough to make up the rest) and I thought I'd post my idea here to find out what parts of the modding API would be useful/required esp. because I don't know shit about Unity 
basically the idea is for a mod that changes baldur shell pretty drastically. besides becoming unbreakable (or at least breaking in way more hits than 4) it becomes a "focus ability" i.e. an ability that's activated by holding (as opposed to tapping) focus/cast + a direction. focus abilities are defensive (focus + up is shield (baldur), I haven't thought of any others yet)
Focus abilities like shield/baldur have a shorter active frame window than plain focus. This should work by consuming soul at a faster rate than regular healing does, kinda like how Quick Focus works. Also like with ddark you lose the effect of a focus ability in between if you cast it in succession (so the shield/baldur would lose its i-frames for a tiny period)
i think right now my preliminary questions are stuff like if in your experience it's straightforward to add new cases to the input handling system or what the easiest way to remodel baldur would be (keep it as a charm and make it notch cost 0? i know it's possible to make entirely new abilities because Swim is a thing but I am not sure how possible a more complicated ability like this would be). also someone I could pair with would be really nice but i know people are probably busy
a quick warning is that quick cast already casts on button down, and changing that functionality would be v. unreccomended as that would make it just as laggy and horrible to use as focus casting
oh I am not planning on changing quick cast! specifically using the focus button. you...focus to do focus abilities 😅
i figure that the game waits for a bit to process the focus button (to tell if it's a tap or a long press). i want to hook into the "it's a long press" bit and check if a direction is also held and take over from there
also wait ugh I did not think of shape of unn
ah you will probably need to modify the focus fsm
one of the dependency mods adds better fsm handling but i can't remember which one 🥴 w/ that you should be able to add states to the existing focus fsm on initialisation
different cyclone textures
I wonder if this breaks the trust I've been given by the maker of the little sheo skin if I distribute the mod with these sprites
Oh this is perfect, i will just have to hunt it down
thank you!
nearly all of the core mods have their own version of it
HeroController.instance.ATTACK_COOLDOWN_TIME = 0.05f; this should work :v
nope it does not work :(
have you tried changing the other 3 values as well?
duration, cooldown_ch & duration_ch
oh
i did not
i can just make changes to all these values in the initialize method right?
maybe? ¯_(ツ)_/¯
it did not work ;(
welcome to modding, where what should be simple is unnecessarily complicated (at least in my experience)
Do it in heroupdate just to see if it works
In initialze doesn't herocontroller not exist
yeah that would be correct
It also gets destroyed on quitouts
How do breakable walls work ?
And how does one replace an existing wall with breakable one ?
I fear that I might need to edit the level itself to add a breakable wall where there was none
tot does it
Could you point me to the code please
So we just move the points on the collider to make room behind the breakable wall that we add
And add the gate there
yea
Makes sense
How did you figure out which points you needed to move ?
Like their array indices
you're using the aritst skin cslash?
hkwe2 and i looked at the collider
yes
If you feel bad about it just ask the creator's permission
last msg from the point of contact to TWP
so yeah, don't think that's happening anytime soon
damn
man i wish i can join twp but i cant even manage to use tencent qq
I’d use awake since it only runs once
what is the _ch referring to?
this piece of code allows me to slash very fast but not every swing hits
charm
Specifically the quick slash charm
No
or modify quickslash itselfd
Just modify the _CH to what you want the quick slash value to be
If quick slash is equipped it will use _CH instead
anything that comes to mind as to why not every swing hits?
Wasn’t active for long enough
duration must be longer
Or enemies have iframes
Cyclone slash would be really op without those
oh yes i never thought about that
there should be a variable that decides how many i frames they get
so i can find it and make it zero
There probably is, might be a private one.
It’s also probably on the HealthManager class
dnspy cannot access private variables?
Well you need to use reflection then
im really new to c# im sorry if i sound dumb
It’s fine, reflection isn’t your every day thing
anything would be op without iframes
Is there any way to speed up a tk2d animation?
the whole animation object or just one of its clips?
tk2dSpriteAnimationClip.fps
so it's easier to split up parts of an animation with parry colliders
Ah, alright
either way, how do I access the clip itself
Wait I think I can figure this one out
Wait, nope
will this work?
gonna test it
GetComponent<tk2dSpriteAnimator>().Library.GetClipByName("").fps
deprecated
<@&283547423706447872>
Could anyone try to open debug mod during the regular radiance fight? It throws an error for me
copy the error and send it here
[ERROR]:[DebugMod] - System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: The scene is invalid.
[ERROR]:[DebugMod] - at UnityEngine.SceneManagement.Scene.GetRootGameObjects (System.Collections.Generic.List`1[T] rootGameObjects) [0x00034] in <047294ce45cf4b9a9441e48d2b8435e4>:0
[ERROR]:[DebugMod] - at UnityEngine.SceneManagement.Scene.GetRootGameObjects () [0x0000d] in <047294ce45cf4b9a9441e48d2b8435e4>:0
[ERROR]:[DebugMod] - at DebugMod.EnemiesPanel.RefreshEnemyList () [0x0001e] in <2ceb67abcf884db8baebba7413b9ac06>:0
[ERROR]:[DebugMod] - at DebugMod.BindableFunctions.ToggleEnemyPanel () [0x00027] in <2ceb67abcf884db8baebba7413b9ac06>:0
[ERROR]:[DebugMod] - at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
[ERROR]:[DebugMod] - at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <9577ac7a62ef43179789031239ba8798>:0
[ERROR]:[DebugMod] - --- End of inner exception stack trace ---
[ERROR]:[DebugMod] - at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <9577ac7a62ef43179789031239ba8798>:0
[ERROR]:[DebugMod] - at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <9577ac7a62ef43179789031239ba8798>:0 ```
version?
1.5 but also happends on 1.4
i'll post it in bugs mulhima
even though it shows error it still works so 
It doesn’t show radiance for me
”Works”
Worksn't
After appears click scan
Has fsmview avolonia crashing on false knight’s fsm been fixed
test it?
fine
redfrog what're you working on
almost done with my idle animation!
idk if im aloud to say the name mod. haha you thought it was pale court
😮
Does anyone know why this random lifeblood pin is here? I don't have pins unlocked yet
A bug
how many unity units can a scene be without requiring the camera to pan?
Depends on the camera's z position
mhm
Either they lock once you enter the arena (like in Hive Kight) or they limit the panning (like in Nosk's arena)
cameralockarea my beloved
i'm gonna try it then
If you end up using red/orange/yellow as a color that has projectiles, I please ask that you either
- don't, or
- find a way to make them more visible from the background
I have red-brown colorblindness, which is not only relatively common as far as colorblindness goes, but also makes Sheo already a miserable fight. Please don't make your Sheo do that too lol
huh never knew that, learned something new
@rough pulsar
I was just testing HK DRPC for 1.5, and it seems to be failing to get the other plugins it needs, which I thought was supposed to be automated now?
Edit: posting here because I assume all 1.5 mod stuff should be here more than other channels rn
Set the materials
it's set to sprites - default currently in unity, do i need to manually set them to something in mod code?
Maybe, iirc there’s a way to properly set them in the editor
and what layer is background and foreground stuff that player can not interact with are set on ? (if a reference exists , that tells what each layer does it would be great!)
it's all default stuff rn, i have not changed anything
saleh you are a literal god
it was supposed to be automated
can you post the log file?
I can't post the whole thing rn, but this was the issue:
[INFO]:[HollowKnightDRPC] - Mod initializing
[ERROR]:[API] - Failed to load Mod `Hollow Knight Discord RPC`
[ERROR]:[API] - System.DllNotFoundException: discord_game_sdk
[ERROR]:[API] - at (wrapper managed-to-native) Discord.Discord.DiscordCreate(uint,Discord.Discord/FFICreateParams&,intptr&)
[ERROR]:[API] - at Discord.Discord..ctor (System.Int64 clientId, System.UInt64 flags) [0x0030c] in <ca37d2d2c44a45d8801c2efd32523f02>:0
[ERROR]:[API] - at HollowKnightDRPC.HollowKnightDRPC.Initialize () [0x002d8] in <ca37d2d2c44a45d8801c2efd32523f02>:0
[ERROR]:[API] - at Modding.Mod.Initialize (System.Collections.Generic.Dictionary`2[TKey,TValue] preloadedObjects) [0x00000] in <c2a48dab016a4177be1ebaa8c1a99f48>:0
[ERROR]:[API] - at Modding.ModLoader.LoadMod (Modding.ModLoader+ModInstance mod, System.Boolean updateModText, System.Collections.Generic.Dictionary`2[TKey,TValue] preloadedObjects) [0x00022] in <c2a48dab016a4177be1ebaa8c1a99f48>:0 ```
trying this now
what OS are you on?
I don't seem to have any other messages from it, so it never even tried to get them 🥴
wait did you update it recently? version number should be 1.1.3.1 beta or something
auto installation was implemented in 1.1.3 (and 1.1.3.1)
Does it use Global Settings to know if I had the files?
it just directly checks from the game file location
it doesn't have any global settings or save settings
can you check the plugins folder?
Also, I got it from here, this morning:
https://github.com/KaanGaming/HollowKnightDRPC/releases
it has the joke readme
check C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight\hollow_knight_Data\Plugins
and see if x86 and x86_64 exists
i tested the auto installation function multiple times in my steam installation
no it totally doesn't have them
actually this is my code's fault
it only checks if x86 and x86_64 exists because in my plugins folder those folders are non existent
i'll start working on it now
i'm gonna ping you when i release the patch
is there a way to increase the knight's horizontal air speed?
@merry lotus Take this because i'm too lazy to publish a github patch
I can't test now, but I'll @you when I can tonight or tomorrow
1.4 or 1.5
1.5
ok
Cs:go?
shitro 
I agree. Why make something paid and let bots use it for free?
nqn does prob not have nitro for free
Bots have nitro for free
ok
Look at them errors
bullying
😔

Error shaming mods
Something might be null (not sure though)
that is straight up rude smhmyheads jingle, you can't just do that to people
you are quite deserved 😤
your mom is quite deserved
How do I find the scene name of the room outside the Ancestral Mound?
um
um
benchwarp
benchwarp has a global setting that displays name of rooms
at bottom left
- Debug mod
- Benchwarp
- Map location to room names in pins
3rd option
I suggest the 3rd option since it doesn’t require getting a mod and opening the game
Thanks that's going to make this so much faster
56, when is mi2.5 done?
put it on github, let me refactor, definetly won't go wrong
56, when is Crisanta done?
sfgrenade, when is Pale Court done?
what is crisanta
absolutely telling commit messages you have there, mr 56
mold simulator
what's the difference
It originally checked if x86 and x86_64 folders existed in plugins folder, but due to dwarfwoot's situation where he already had x86 and x86_64 folders (which had other dlls) i had to tweak my code so that it checks for the dlls inside them now
it takes a fucking year to load white_palace_18
IT'S STILL LOADING THE ROOM
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
NOOOOOOOOOOOOOOOOO
would it be possible to make this look better with like a screen space shader or should I just go the material route
is this even the correct way of loading primal aspid?
Yes but no. I don’t think it’s splitter, pretty sure it’s spitter
aaaaaaaaaaaaaaaaaaaaaa
hold on let me check that scene again
IT IS SUPER SPITTER
THANK YOU REDFROG
Np
What's your goal here? If you want it to be purely black and white, you can probably change either the render queue of the materials so they always render first/last or set the render queue as high as possible and set ztest to always in the shader so they'll be visible through anything.
I think it looks good already aside from the slight fog and the dark box on the right
just to make it look cool with white silhouettes on a black bg ig
yo that's so fucking sick
Nice job with that
is anyone else making radiance mods rn?
because if anyone needs a good music track for their mod I found a good mashup
im actually surprised there's no radiance mods with altered music
has someone made a mod where it says git gud when you die
Why would you make a mod with an empty room 
It appears to fail still.
Should I delete that folder and try maybe?
Edit: I tried deleting the folder inside of plugins, and it didn't fix anything 
Same exact message:
[INFO]:[HollowKnightDRPC] - Mod initializing
[ERROR]:[API] - Failed to load Mod `Hollow Knight Discord RPC`
[ERROR]:[API] - System.DllNotFoundException: discord_game_sdk
[ERROR]:[API] - at (wrapper managed-to-native) Discord.Discord.DiscordCreate(uint,Discord.Discord/FFICreateParams&,intptr&)
[ERROR]:[API] - at Discord.Discord..ctor (System.Int64 clientId, System.UInt64 flags) [0x0030c] in <1ef5e954bb9c42bbafc6deba578f9819>:0
[ERROR]:[API] - at HollowKnightDRPC.HollowKnightDRPC.Initialize () [0x002d8] in <1ef5e954bb9c42bbafc6deba578f9819>:0
[ERROR]:[API] - at Modding.Mod.Initialize (System.Collections.Generic.Dictionary`2[TKey,TValue] preloadedObjects) [0x00000] in <c2a48dab016a4177be1ebaa8c1a99f48>:0
[ERROR]:[API] - at Modding.ModLoader.LoadMod (Modding.ModLoader+ModInstance mod, System.Boolean updateModText, System.Collections.Generic.Dictionary`2[TKey,TValue] preloadedObjects) [0x00022] in <c2a48dab016a4177be1ebaa8c1a99f48>:0 ```
I can copy over the stuff from my 1432 install-- but I can just wait and keep trying to help figure out why this ones not working if too.
not an empty room, just all the game objects that aren't the knight, enemies, or godseeker have their renderer materials set to black
if anyone could guess what the translucent box to the right could be so that I don't have to parse the scene tree that'd be nice
Is this a custom scene? Because on the right there is a black square that has a error shader
nope, just GG_Painter
Wierd.

is there a way to increase the knight's horizontal air speed?
should both be controlled by one const value
would need to check for in air after this method (HeroController.Move)
lemme just confirm, i can ask how to make customknight skins here right?
i think #modding-discussion, but you can do it here ig
well i saw someone making a skin and they had all the sprites neatly separated in a folder and named like "idle [some number]", where can i find those in such a format and whats some good free software to edit them
if these questions dont fit the channel i will move em
- look at pins and get spritepacker
- look at #modding-discussion and get the krita plugin
- get the modified GODump
- dump the sprites and edit them
dumped sprites are here: #modding-discussion message
oop nice
fixed4 frag(v2f IN) : SV_Target
{
fixed4 c = tex2D(_MainTex, IN.texcoord);
//c.rgb = _SilhouetteColor.rgb;
return c;
}
fixed4 frag(v2f IN) : SV_Target
{
fixed4 c = tex2D(_MainTex, IN.texcoord);
c.rgb = _SilhouetteColor.rgb;
return c;
}
why
idk, mayba a isn't being copied over
im a little confused
i got sprite packer and the krita plugin(yes i have krita too) but in the pin where the plugin is shown jingle says it uses the GOdump, does it require the GODump or can i use the dumped sprites without it, also i dont know when to use the spritepacker, after im done?
sorry if im being a dumbass
^
ah i didnt read it, i was being a dumbass, thanks
to add to this dumbassery i dont know where to put the spriteloader, is there a plugin folder where i can put it?
had to do
c.rgb *= c.a;
for some reason
do the flashes when sheo great slashes and cyclones seem too harsh?
YO THIS IS SICK
Nice, in the middle of trying to refactor mi2.5 i get a fucking bluescreen of DPC_WATCHDOG_VIOLATION
@jolly oriole HKWorldEdit should be able to preview the scene accurately right? i wrote down the coordinates for aspids to spawn but they don't seem to spawn at all
or maybe there is something wrong within my code?
yes, afaik it doesn't show other custom scripts on the gos though, so they may have some DeactivateIfPlayerDataTrue or something
ok
ig aspid is a preloaded one
and with that it's inactive, and instantiating puts it in the same active state as the original
be sure to get its pfsm and set its state to "Init"
ok
it's set automatically when setting it active
then im gonna go ahead and test it
but if you want to be really carefull, you do
foreach (var pfsm in go.GetComponentsInChildren<PlayMakerFSM>()) {
pfsm.SetState(pfsm.Fsm.StartState);
}
... after instantiating
i guess
if i have 2 mods with the same namespace like "Utils" would that break things ? or is it okay because they're separate dlls ? or do the namespaces get merged into 1?
or is it like the RootNamespace bit in csproj makes them separate ?
it's fine with separate dlls afaik
as long as the namespace is different i'd say
so like SFCore.Utils =/= FrogCore.Utils
you have to specify if it's the same by alias
I'd do whatever.utils like grenade said though
what i'm trying to do is setup a shared project so i dont have to rewrite utilities that i use often in my mods but also not require a dll dependency
I just downloaded one of Sf Grenades mods, and most of the code has errors. The code says that I'm missing something called "sgKey.sfk" though, so that might be it. It might also be missing references, because it seems that whatever mod I get to see the code of always does. Here's a photo:
you gotta fix the references
click on the .csproj file, line 15 and change that to your hk installation managed folder
and a shared project should still have a root namespace with like a library name
thanks!
the sgkey thing is only for releases, not important that it's missing
k
there is also this https://stackoverflow.com/questions/314101/difference-between-root-namespace-and-assembly-name
Assuming that you are talking about .NET (with relation to Visual Studio) then the root namespace is what each class you create in a visual studio project will become part of. It is also the base for any sub-namespaces that are automatically assigned when you create a class inside of a project folder.
so if i import my shared project , in mod 1 would it essentially be mod1.utils & in mod2 mod2.utils ?
no
it'd be shared.util if you put everything under a root namespace like you should
but then if both the mods were compiled with different versions of the utils project, in game which one would be used ?
whatever version of the library you actually load
provided your updates are backwards compatible it'll work fine
but the library's code is compiled in the mod
why would you do this
wouldn't it be massive duplicate type errors if the util classes are public?
this is why i am trying to understand if it namespace them
this is why i am attempting this
it doesn't matter
your assembly references types with the assembly for said type included
so unless i try to make one of my mods a dependency of another mod with the same namespace i'll be fine ?
and even in that case i can just do what we do for UnityEngine.Object ?
yes, no
in the case you do ref another one of your mods you'll have to give it an alias
but then you can just qualify it by name
so in my csproj i'd add => <Aliases>Main</Aliases> for the reference
using potato = Main::Utils.potato;
and then i can use potato.Version();
okay so far this seems like a good solution for what i want then, thanks!
Help I need to find the modding logs
?saves
Saves
Windows File Paths: (Assumes Default Steam Install Path, Adjust accordingly for DRM Free or Non-Standard Steam Path)
Game Files: C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight\``` ** ** Mac File Paths: ```Save Files: ~/Library/Application Support/unity.Team Cherry.Hollow Knight/ Game Files: ~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/``` ** ** Linux File Paths: ```Save Files: ~/.config/unity3d/Team Cherry/Hollow Knight/ Game Files: ~/.local/share/Steam/steamapps/common/Hollow Knight/```
<@&283547423706447872>
<@&283547423706447872>

also fair
what is it with scam bots coming here more often
beeg server
?serverinfo is the reason
Simo#4622
7
61
6
134677
23
@everyone, Admins, Bots, Mods, Speedrun.com Mods, Muted, Art Staff, Team Cherry, Modding Staff, Speedrun Racer, Dyno, Speedrunner, Nitro Booster, SpeedGaming, AutoDelete, Statbot, Wiki-Bot, Race Organiser, Randomizer Racer, GiveawayBot, ModMail, Dyno Premium, Speedrun Community Support
imagine if that @ everyone worked lol
It doesn't seem to work
rip ig
using Modding;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.SceneManagement;
using USceneManager = UnityEngine.SceneManagement.SceneManager;
namespace SpawnAspid
{
public class SpawnAspid : Mod
{
private GameObject _aspid;
private const string _scene = "Deepnest_East_07";
private const string _obj = "Super Spitter";
public override List<(string, string)> GetPreloadNames() => new() { (_scene, _obj) };
public override void Initialize(Dictionary<string, Dictionary<string, GameObject>> preloadedObjects)
{
_aspid = preloadedObjects[_scene][_obj];
USceneManager.activeSceneChanged += OnSceneChange;
}
private void OnSceneChange(Scene prevScene, Scene nextScene)
{
if (nextScene.name == "White_Palace_18") AddAspid(new Vector2(284, 19));
}
private GameObject AddAspid(Vector2 position)
{
GameObject aspid = GameObject.Instantiate(_aspid);
aspid.SetActive(true);
var aspidHP = aspid.GetComponent<HealthManager>();
aspidHP.hp = int.MaxValue;
aspid.transform.SetPosition2D(position);
aspid.GetComponentsInChildren<PlayMakerFSM>().ToList().ForEach(pfsm => pfsm.SetState(pfsm.Fsm.StartState));
return aspid;
}
}
}
I did something similar with the same code, it only worked after i left and re-entered the room
how do i check if the knight is in air
maybe cstate?
who alp tho
hk-meme
Alprechim
why they bad
i like how the internal name for primal aspid is super spitter
italy, may i ask why 2 different visual studios?
apparently my scene needs to have a scene manager or i will get NREs
should i just make a random GO and add the SceneManager component on it ? 😮
ToT seems to preload it
1.4.3.2 or 1.5?
Died to tiktik
hahaha lol
@floral blade
1432 for now but will 1.5 it too
for 1.5 you can use a newer version of sfcore, for 1.4.3.2 you'd have to preload it and change things you want for it to work properly
Nice log
okay, and preloading would work for 1.5 too ?
i assume its because of the other GOs and values it holds that we can't just add it to a random GO ? and that's what the patcher does basically pre-fills it in?
why not
i'll just preload it too then thanks!
there're 3 actually, one for the aspid mod, one for sheo mod, and one for sheo unity project
smh
NRE gone, even got some particles lol
anyone have thoughts on moving proxies/handlers into a delegates namespace?
prob the only thing i really want to change still
Can anyone give me the crystal hunter gameobject path?
Mines_07/Crystal Flyer
Thanks
i love how tc missspelled the file name of the charm whtie_charm_large_pieces_0001_left
i will take this as a yes
dk anything about it but what advantage does this bring?
i wanted to say that:
imo yea, do that, as it's more telling that way
idk why i didn't do that sooner
grouping
is about all
not really a huge change
they just kinda float
in the docs esp
which is annoying
adding a bench saved it as the mapZone i used and loading the scene gives more NREs lol
but that's a task for tomorrow
oh yea, have fun with benches in custom scenes
Can I have a dll version of sf grenades gravity mod? Thanks
Mod installer isn't on 1.5
This channel's pins
what pin?
Think codemassi think
Which pinned message has the 1.5 modding api?
The one with "nightly builds"
thanks
quick question
do the Light Orbs spawn around you or the Radiance?
because there's this Vector 3 called "Hero Pos"
How do you make mods? I cant find any tutorials and I want to make a mod that makes bosses harder
Thanks
1.4.3.2 api? it's automatically installed from the modinstaller
dang i was lat
e
Im still not sure how to make mods and I dont really get the tutorials because ive never done anything like this before so idk what to do
https://github.com/hk-modding/api/releases/tag/1.5.75.11827-62 if anyone cares
Have you updated the mod installer for version 1.5 ?
I hope you release it soon please!
This is for version 1.5? if I install this the mod installer will work in the latest version of the game?
yes no
This is good news! I can't wait for it to be released!
is there a planned release date?
planning is overrated
disassociating for 4 hours at 3am and waking up having accidentally released an update is based
So if I wanted to start developing my own mods, where should I begin?
dunno why I'm doing this but
WANT
ok thats really cool
so apparently i need something called a tilemap that is a tk2dTileMap problem is idk how i can make it
Please send me
lmao that’s really dope
it’s like in terraria
WANT NEED
1.5 mod installers have existed for a while, not quite as exciting
You dont
I don't imagine most mods are updated for 1.5 yet anyhow
Afaik there are like 30 or so mods for 1.5, in a working condition or not
i had to preload it for the game to work correctly when loading a save directly in my scene
Ah, that may be why i didn't have success with loading a save into a custom scene
it's possible i am just preloading it and yeeting it's renderData and that seems to work
frikin awesome
now just the things and release of mi2.5 (or should the modlinks be filled before mi2.5 goes to the public?)
Are we gonna use the modlinks here https://github.com/hk-modding/modlinks
mi2.5 uses those
Mi1.5(new version) also uses those
*a modified version of those stored locally on my computer that I may or may not push to a fork at some point
Does anyone know why
ParticleSystem.MainModule psm = go.GetComponent<ParticleSystem>().main;
psm.startColor = Color.green;
sometimes doesn't change the colour of the particle system?
i've gotten word that custom achievements and 1.5 may be incompatible
even better, it shows nowhere that it's dying
i have two benches one in in front of the player and another is behind 😐
i instantiate one in a monobehavior and another in the mod class
nvm. i typecasted it to vector 2 without realising it.
Only current version or in general?
self awareness
that is somewhere when finding a transitionpoint
i've gotten work that maybe my modded hk installation is just broken
*all of my 1.5 hk installations
as it turns out, my entire hk installation was fucked, now to get to other errors
so, idk why vs does it, but not having
using Modding.Delegates;
in a cs file, but using e.g. an languagegethook lets the modloader die because it can't find the type, even though vs shows no errors
wow, now it doesn't anymore, fuck this
cool
dunno why it doesn't work for some scenes like distant village and colo
does it do reverse of what the game does to show map? or is it something you had to hardcode ?

hardcode
i also found out that the game apparently doesn't care if you set the internal resolution to 1920x1080, though i haven't tested cutscenes yet
cutscenes look fine, i just have monitor tearing lol
nvm, the game straight up just resets those

what are the buttons for this?
Bottom right are controls
In his controls, K is teleport
K doesn't do anything yet
it's K for you too? I thought it was bound to whatever the attack key was
it's not doing anything for me
oh wait actually i just noticed the mod failed to load
sad
are you on 1432
yes
1.5 mod
Download the 1.5 modding api via this channel's pinned messages
see if this works for 1432
still failing
show log
dandy, release it, so that's the first mod to add an actual new area to the game
I guess tot is more like a sub area
somebody once let me know that apparently the sanctuary will still be the first mod that adds a new area, because tot is just white palace, so just to spite them, you can release whatever you're working on before the sanctuary to still snatch that
bruh fuck them
ToT does count
but technically speaking my castlevania mod is the first one :)
yea
Good point
by a large margin even
what about cagney carnation 😔
Put it on the installer and you’re good to go, claimed the title of “made the first mod with a new are”
Was about to mention that, probably does count
https://www.youtube.com/watch?v=dKAdlrnU_2k this is simply amazing
The gun part of this video was NOT made by me. It was made by TTacco.
A Showcase of some tests I was doing to see how easy adding new levels/enemies would be.
truee
We are speaking of new area as in new room loaded from assetbundle?
this is so cool
also yes ToT does count
i just noticed, around the time of that videos upload date i started modding hk (and tot started then) lol
What was the first mod on the installer to add a new scene
I’d say that’s the first mod to add a new area
If not, then the first mod to add an scene with one of those area title things, which I think is tot
on the installer? either tot or redwing (as it adds a cutscene, though technically not a scene)
is there even another mod on the installer that adds a scene
Cagney
So jngo would be the creator of the first public area-adding mod
Someone should add sans
somebody should add crisanta
first mod with a boss that talks
lmao
lol
Just wait for idk if I’m allowed to say it mod
A couple bosses that talk
I meant talk as in have voice acting that isn't gibberish
Yes
oh dang
wait, no cagney yet
so congrats cagney to be the first mod that adds a custom area to the game
works now, thanks!
btw, ping me if you do change them, as i probably need to recompile my mods for that
things in the installer
I put out the api release
changed one thing then which was moving delegates to a namespace
ah, thought you still wanted to change more things other than the delegate namespace
i will now report you for piracy 
audio theft smh
says you? of all people lol
Could you like read one line below 
reading 
I can
I know that you're probably not looking to maintain a 1432 version, on account of 1.5 hopefully being the standard soon™️, but fwiw I cannot get this version of it to work.
The TP/Attack button just doesn't seem to have an effect 
tp doesn't do anything in that build
this however
should I just make it so that the cursor is visible all the time instead of having to press attack to show/hide it
It's nearly complete
oh what's dat
does anyone know a more up to date version of utinyripper?
Mod Installer 1.5 / 2.5 /3 question (possibly a ModLinks Q?):
Will the "next generation" of mod installers correctly install the Unix modding API on Unix systems?
yes
https://github.com/hk-modding/modlinks/blob/main/ApiLinks.xml#L12-L20 shows the different api's for the different OSes
anyone know why loading into a scene w GameManager.BeginSceneTransition causes the inventory to go wack and get stuck?
doesn't transitionpoint when entered also broadcast some fsm events? can't check rn though
but instead of calling GameManager.BeginSceneTransition directly, you could also just plonk a trigger-collider with a TransitionPoint on the player and let the game handle the rest
trueeee
Anyone knows what in my mod messes up Geo?
The geo counter is updated only between rooms
and geo that is picked up doesn't disappear
Doesn't happen when only my mod is off
But I didn't do anything to touch geo in there
I had this problem when I forgot to put orig(self) in the code I was hooking onto HeroController.Start, so it could be that
Does anyone have a build of the latest version of the 1.5 MAPI?
Do I just take the latest, or the one that says build?
inventory still gets stuck :|
Latestdidn't work for me, I'm not sure why though
As in, the modding api loaded but none of my installed mods did
if someone could try, open the map and click on a spot, then open your inventory and see if you can close it
Can I simply plonk the dlls in the mods folder, or is there somthing special for 1.5 I need to do?

was changed with modpacks and readmes and stuff in mind
every mod can just give a folder and have a folder of its own
but i still don't get why the mods folder gets ignored
OK, I created a folder called "hivescream" between Mods and the mods
test and see what happens
@ 56 please change
first see if i am right and am not stoopid 
OK you're right except I think I need up to date versions of benchwarp, debug and qol
you gotta commit to it.
@copper nacelle
SFGrenade: doesn’t like to be pinged
Also grenade: pings 56 for something that someone else needs help with
Something with that all 1.4 mods are in the mods folder so when moving to 1.5 they can’t cause issues
but why
K
With some supporting arguments on why it should be
Before you make a pull request
Or something
Oh
Well the only supporting argument is "it's like way more convenient, and there's no reason to force a pointless folder in between" except for what mandar1jn said I guess
then you enable a mod from the disabled folder with the updated modinstaller and everything breaks, solution: ignore the disabled folder?
Also something wierd: why load from one sub folder but not sub folders of those folders? Like: let’s say there is a imaginary mod pack. It has a folder with the name of the mod pack and in that a seperate folder for each mod with a readme and all. That wouldn’t work
i thought it would?
idk i have no idea i shouldn't be talking abt this with no clue what it actually does
This recuses all subdirectories instead of just one level deep, which is worse as you then don't preserve the behaviour of moving mods into folders acting as a disable. As it stands you would move the mod folder into the disabled folder and as it only goes one deep this would have it be ignored by the loader.
top 10 pull requests that should have been issues first
True

Apparently copying fsm states with new FsmState(oldState) copies the transitions but sets the ToFsmState to null
Actually I guess it would have to do that because the new state isn't part of the old FSM yet but still, quite bothersome
I updated the randomizer mod, check https://github.com/homothetyhk/HollowKnight.RandomizerMod/pull/15 for details
@winter moss out of curiosity, are you aware of the randomapmod? https://github.com/CaptainDapper/HollowKnight.RandoMapMod/
Yes but that mod feels like a cheat to me because it gives all the maps for free. I wanted to add a feature that feels more like a nudge in the right direction than telling you where you should go.
Giving all maps for free is optional in randomapmod though? I was under the impression it shows you on the maps you've got if you don't do the "get all maps" thing
I might be wrong; I haven't used randomapmod
It still shows whether you can access pins or not. For me that seems like it just gives you a list of locations to check
How do I make this work?
I don't know what's the correct thing to write there
the editor isn't really helping me in this case
and the old apidocs don't have much pmfsm info
isn't it broadcastevent?
I'll check
what was the github link to modding api again
thakns
np
Hm, it seems to do the same thing as SendEvent - be a thing that works somewhere, somehow, but not where/how I'm using it
Wait, it gave me something
Hm
broadcastevent is obsolete
idk then
"use sendevent with event target instead"
its only a warning
So what can I o about this?
yeah but probably gonna still cause the same problems as sendevent
what does it say if you do SendEvent()?
this
.
:/
:/
Have we all forgotten the path changes? hollow_knight_Data isn’t used for 1.5, hollow knight_data will
No?
Not renamed
Ex: I have both in my hk installation
Idk about gog but steam just updated the stuff in the root folder of hk and installed the hollow knight_data folder
you don't need the Finished = part?
that's new, yesterday my steam hk was still hollow_knight_Data
i have this
for my 1.5 install
screenshot or it didn't happen
I guess it could have been testing mi1.5 but I’m basing my info for 1.5 being that way off this
Wait shit I misread what I was doing
That's not what I missed but something else tho, thanks
Goddamnit this is gonna take longer than I thought
Suppose I want to quit a state if a bool comparison is true/false
what do I do?
whoops @grenade my finger slipped 
boolcheck
i think was it named
why does creating a transitionpoint kill the inventory
No boolcheck so I'll assume its booltest?
certainly possible
out of curiosity, have you tried going through one of the normal transitions with the inventory open, to see if your hk install is broken?
it works fine in normal transitions
So this should work?
if somebody has time, can you see if it happens to you too
yes, that takes an FsmEvent (FsmEvent.Get to definetly get one, or create if it doesn't exist)
can't test rn, but maybe it's the custom map thing you did with the cursor that contributes to it absolutely dying
:/
what
<@&283547423706447872> you can yeet that post-in-every-channel-guy here
btw, i like the name, going with numbered papers & computer discs
the fsm state name
nah, it's a3 paper and counted CDs
isFalse = FsmEvent.Get("FINISHED")
?
FsmEvent.Get() didnt work for me
i would use the static Get (or similar) method, as that picks existing ones instead of creating new ones
oh
Wait lemme stuff the whole chunk before it
This looks good?
Think so
worst case scenario wont work
should work
if not, HutongGames.PlayMaker.FsmEvent.Finished is also an option
though i personally had like 2 times i tried it and it didn't work
What the heck is a audio mixer snapshot
Is it just like what volume each of the kinds of music Is gotta be at ?
I thought playing music would be easy
O yea, those are fun
Can / should you be setting clips for all of them or only just music
I looked at sfcore and tot
So I know that you can but I have no idea what I would accomplish with it
Pale court's source code should help
where it?
this is how I do it
var musicCue = new MusicCue();
var channelInfos = new MusicCue.MusicChannelInfo[] { new MusicCue.MusicChannelInfo() };
ReflectionHelper.SetField(channelInfos[0], "clip", _audioClip);
ReflectionHelper.SetField(musicCue, "channelInfos", channelInfos);
GameManager.instance.GetComponentInChildren<AudioManager>().ApplyMusicCue(musicCue, 0, 0, false);
i saw those, but like what's the advantage of this ?
new on a scriptableobject 
Hollow knight doesn't use fmod 
advantage against what?



