#archived-modding-development
1 messages · Page 536 of 1
I guess mage knight/soul master/soul warrior but probably not
?pins @wet notch
Check the pinned messages for more information - https://cdn.discordapp.com/attachments/187137504393035776/823796522751623168/unknown.png
ty
hollow point
Peak comedy
just add a red hat with the hat mod
hmmm... I'm not sure if I should post this over here or on #archived-modding-help , hopefully this is the right place. I installed Ultimatum Radiance, and for some reason my ddark makes me deal damage really quickly whenever I'm over the boss's hitbox. How on earth does this happen?
After looking through the code, my best theory is that it might have something to do with a method called "DivePunishment", which should make me take damage upon using ddark on a given phase of the fight (but doesn't seem to work anyway)
I'm not familiar with the API, does this look right to you guys?
public void DivePunishment()
{
Log("YOU WON'T CHEESE SPIKES IN THIS TOWN AGAIN");
HeroController.instance.TakeDamage(gameObject, GlobalEnums.CollisionSide.bottom, 1, 0); //Knight takes a hit
EventRegister.SendEvent("HERO DAMAGED"); //Tells the UI to refresh
}
I think that part might be bugged? I think ultimatum rad is known to be buggy with dd. That does look right though
Might be something in a fsm from taking damage in the middle of a dd that’s not spikes
"Welcome to the City of Synths, where fiction and reality collide. You play as Hornet, a techno-princess-killer for hire, and adveture through a decadent cyberpunk city ruled by the Synth Master. Assisted by her team, Hornet will kick some bug-butts and blow up everything that moves as she ascends on a deadly war trail to the City’s peak. Nano-b...
so is someone working on a Hollow Knight Cyberpunk re-texture and what can I do to help??
how can i make hornet work like the collector?
Hmmmm.... What does fsm.InsertAction do if there's already an action using the given index?
OH,I make a mistake.Mage knight, not maga knight😂 😂
im working on a custom knight of this technically but i havent touched it in about a month
i also only done like 4 animations
I've never tried modding hollow knight before but if you need someone to do grunt work on the art I would be happy to try and help
InsertAction should shift the rest of the actions down 1 index
What do you mean by that?
Tmk there’s no code for it yet (asked to help a while ago, was told to wait until more stuff was made) not sure what you can help with (this wasn’t a good answer but it’s something)
wait someone is actually working on something like that?
is it possible to change nosks appearance in a custom knight skin?
Yes, cyberpunk hollow knight has been a project for a while, haven’t heard anything recently
Not sure if it has anything to do with the video you posted
#archived-modding-help or #modding-discussion and no
it's a shame 56 won't see this, but I made a mod installer in rust 😎
shame deez nuts
I got the 1.5 one kinda done
I want auto update
if someone wants to try it ig
with my luck it will immediately break

i meant hornet 1 and 2 not giving off soul when hit and have void particles
make it so when you hit her you don't receive soul and will give off void particles
hook something that fits, probably some kind of OnEnemyGiveSoul, make it check what the enemy is, if it is hornet make it spawn void particles and return 0 as soul amount
thats cursed
Hey are there any like youtube tutorials or something for people who are new to hollow knight modding? I have no idea what I'm doing 👉😎 👉
The pins should be a good place to start
does that mean that it's still needed or that i have to scour somewhere on my hard drives for a file?
Hey
I've got an idea for a mod I'm making just wanna see what you guys think of it
It will be called "The Fallen Radience" and basically the mod will be a boss fight found in the abyss in an area kinda like the birthplace that will unlock after you beat PoH and it will be the radience after being consumed by the void, it will be as lore friendly as possible and it will expand on lore and have its own backstory
Pls ping me for any response I'll be offline
Lmk if you find that file.
I checked to see if it used the same one from MI2, or made a different one in one of the APPDATA folders, but I'm not seeing it anywhere.
I'm using Steam for 1432, and GOG for 1.5, so I definitely want to make sure it's using the right place lol
Would anyone here with nodding experience be down to help?
🤌 💰
Since people in #modding-discussion still think 1.5 has 0 mod support, has anyone parted Rando to 1.5?
It's being worked on
Srysly need help developing this mod, anyone?
@steady turtle maybe take a look at this message
I think most modders are working on their own projects.
i mean as in literally i need help ascessing the sprite files
I can help once i get home
rlly?
Although i said i would take a break, yes
thanks man its not TONNES i need just abit of help
Pretty sure there was a drive for that somewhere. Lemme look
Imagine having a modding project
Imagine being Dutch
Imagine having a discord name thats a fruit
Imagine having a fictional character as your profile picture
Imagine not knowing said characters name
Mickey
Imagine being wrong
Oh. Wait. You’re right. I always thought it was mickey
https://drive.google.com/drive/folders/1lx02_w9TFTYdR3aggI1gbXcLr69roaNV this drive folder should contain all sprites
thx
It’s Oswald have you ever even????
lol
No
Do you even epic Mickey
What should i use to open sprites.
In code or on your computer
i mean to open and customize HK sprites
Any image editor supporting transparency
Ex: paint doesn’t work since it will save it without transparency
hm ok
Paint 3D will though since it does save it with that
ok thx
For them to show up in game you have to write your own code
thats fine
what language is used for modding HK
C#
sad
thanks
Trying to update the dependencies of Fyremoth (modding API and SFCore) I run into this error from sfcore: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: !1 SFCore.Generics.FullSettingsMod'2.get_GlobalSettings()
Took a look at the IL code and it is a function
I'm pretty sure there's at least one mod that will do it for someone.
If Enemy Changer doesn't, then the standalone Swapster should iirc
1.5?
yes
maybe recompile?
fyremoth ⬆
i had an instance where recompiling the mod worked, even though technically nothing changed
i'm not even sure what the !1 means in that error line
Me neither, but it also shows up in the il code
have you tried referencing straight against https://github.com/SFGrenade/SFCore/releases/download/v1.5.1.1/SFCore.dll instead of what i think is a vs project reference?
I reference the dll directly
then i honestly have no idea wtfs going on there
neither do I
[ERROR]:[API] - System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: !1 SFCore.Generics.FullSettingsMod`2.get_GlobalSettings() [ERROR]:[API] - at Fyremoth.PlayerDataManager.AddNewEntry (System.String name) [0x00008] in C:\Users\NAME\Desktop\Fyremoth\Fyremoth\PlayerDataManager.cs:39 [ERROR]:[API] - at Fyremoth.PlayerDataManager.Initialize () [0x00001] in C:\Users\NAME\Desktop\Fyremoth\Fyremoth\PlayerDataManager.cs:14 [ERROR]:[API] - at Fyremoth.Fyremoth..ctor () [0x0006c] in C:\Users\NAME\Desktop\Fyremoth\Fyremoth\Fyremoth.cs:224 [ERROR]:[API] - at (wrapper managed-to-native) System.Reflection.MonoCMethod.InternalInvoke(System.Reflection.MonoCMethod,object,object[],System.Exception&) [ERROR]:[API] - at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in <9577ac7a62ef43179789031239ba8798>:0 [ERROR]:[API] - --- End of inner exception stack trace --- [ERROR]:[API] - at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00014] in <9577ac7a62ef43179789031239ba8798>:0 [ERROR]:[API] - at System.Reflection.MonoCMethod.DoInvoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0007a] in <9577ac7a62ef43179789031239ba8798>:0 [ERROR]:[API] - at System.Reflection.MonoCMethod.Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <9577ac7a62ef43179789031239ba8798>:0 [ERROR]:[API] - at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000] in <9577ac7a62ef43179789031239ba8798>:0 [ERROR]:[API] - at Modding.ModLoader+<LoadModsInit>d__16.MoveNext () [0x0021d] in <c2a48dab016a4177be1ebaa8c1a99f48>:0
this is the full error
Rebuild for the ModdingApi
??
Something looks like it needs to be rebuilt for the api
yes
I just switched the configuration to release, cleaned and rebuild. Still the same error
@vocal spire let's make it wierder.... There is no call to any settings in that function
So I made it so that one specific method doesn't get called. This is the error now: [ERROR]:[API] - Failed to load Mod `Fyremoth` [ERROR]:[API] - System.MissingMethodException: !1 SFCore.Generics.FullSettingsMod`2.get_GlobalSettings() [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
Can you try
foreach (MethodInfo mi in typeof(FullSettingsMod).GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic))
Log(mi);
Meant to send earlier, lost connection
the code is never ran
Before you do anything else
I put it in the front of Initialize
Brb
I'll try putting it in the constructor
Wait. That is where I put it
nevermind. It is called
[INFO]:[Fyremoth] - Void set__globalSettings(Fyremoth.FyreSettings)
[INFO]:[Fyremoth] - Void OnLoadGlobal(Fyremoth.FyreSettings)
[INFO]:[Fyremoth] - Fyremoth.FyreSettings OnSaveGlobal()
[INFO]:[Fyremoth] - Fyremoth.FyreSaves get__saveSettings()
[INFO]:[Fyremoth] - Void set__saveSettings(Fyremoth.FyreSaves)
[INFO]:[Fyremoth] - Void OnLoadLocal(Fyremoth.FyreSaves)
[INFO]:[Fyremoth] - Fyremoth.FyreSaves OnSaveLocal()
[INFO]:[Fyremoth] - System.String GetName()
[INFO]:[Fyremoth] - System.Collections.Generic.List`1[System.ValueTuple`2[System.String,System.String]] GetPreloadNames()
[INFO]:[Fyremoth] - Void Initialize(System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.Dictionary`2[System.String,UnityEngine.GameObject]])
[INFO]:[Fyremoth] - System.String GetVersion()
[INFO]:[Fyremoth] - Int32 LoadPriority()
[INFO]:[Fyremoth] - Void Initialize()
[INFO]:[Fyremoth] - Void SaveGlobalSettings()
[INFO]:[Fyremoth] - Void LogFine(System.String)
[INFO]:[Fyremoth] - Void LogFine(System.Object)
[INFO]:[Fyremoth] - Void LogDebug(System.String)
[INFO]:[Fyremoth] - Void LogDebug(System.Object)
[INFO]:[Fyremoth] - Void Log(System.String)
[INFO]:[Fyremoth] - Void Log(System.Object)
[INFO]:[Fyremoth] - Void LogWarn(System.String)
[INFO]:[Fyremoth] - Void LogWarn(System.Object)
[INFO]:[Fyremoth] - Void LogError(System.String)
[INFO]:[Fyremoth] - Void LogError(System.Object)
[INFO]:[Fyremoth] - Boolean Equals(System.Object)
[INFO]:[Fyremoth] - Void Finalize()
[INFO]:[Fyremoth] - Int32 GetHashCode()
[INFO]:[Fyremoth] - System.Type GetType()
[INFO]:[Fyremoth] - System.Object MemberwiseClone()
[INFO]:[Fyremoth] - System.String ToString()
[INFO]:[Fyremoth] - assembly
[INFO]:[Fyremoth] - stream
[INFO]:[Fyremoth] - loadStream```
It has the Fyremoth classes because I had to supply types
yes
Comment everything from the constructor and initialize
no error
Look closely at this method’s name
Look at the top of this
I know. But that isn't an accesible function
So?
GlobalSettings or globalSettings since the 2nd log is a property, accessing it gets basically turned into calling that method on compile
did you check player log?
Don’t think that’ll help
globalSettings isn't a variable. Only GloabalVariable
Well something is happening with the compiling then
Since at runtime the method is mentioned in 2 different names
Or intended to be mentioned by both
But the one with the capital letter dies
Well no, actually this would be at runtime since vs still sees the one with capitals
Or I’m misunderstanding how properties are compiled or something
so... what can I try to fix it?
Compile SFCore with lowercase maybe?
you have the class definition in a similar way as
public class TestOfTeamwork : FullSettingsMod<TotSaveSettings, TotGlobalSettings>
right?
yes
hm :/
public class Fyremoth : FullSettingsMod<FyreSaves, FyreSettings>, ICustomMenuMod
i mean, one thing that maybe could work, though it shouldn't, is to delete the globalsettings file in the saves folder
damn
i'd ping 56 for help, but he'll just shroompause me because i made that generic mod class
@copper nacelle just shroompause me. Not like I care

your ref doesn't match the currently used version of the dll || the sfcore dll is out of date with the api which i doubt
wait
oh yea, nvm
Why?
To make it even wierder: I traced the problem down to a function that doesn't even utilise SFCore
You know what? Just leave it. I'll just stay at an earlier modding API version
for now
Which function?
The initialize function of the DataManager.
But I have already reverted everything
To be more specific: Somewhere is the adding of journal entries. Commenting out the item adding has no effect
journal entries 🥴
Yep
Try removing frogcore stuff
For some reason it already apparently breaks charmhelper already, wouldn’t be surprised if I killed something else while I was at it
Nvm I’ll do it myself (maybe)
So I'm new to this whole development thing. I'm trying to follow the "new scene tutorial" (https://www.youtube.com/watch?v=8Q1SsoUdTQc), but am running into a weird issue. I got to the part about implementing doors (29:30 in the video), and prior to that I didn't have any issues (the R to drop my character in version worked; collision seemed fine, etc), but now whenever I enter the door my character drifts continuously into the wall and I only the up and down buttons do anything (even pause doesn't work). I did do a leftwards door instead of the rightward one in the video, so I'm wondering if that broke something? A pastebin with my "loadscene" code is here: https://pastebin.com/1c4nNPMp.
As a note, I am doing this in 1.5, which could be related, but I've resolved all the other issues I've found up to this point.
Any ideas on what could be wrong? I'm guessing it's something to do with the transition where the character walks out of the door, since that would explain the "not being able to press buttons" and "continuing in one direction", but IDK what specifically is the issue.
Is there collision directly under the door?
Yes. Am I not supposed to have collision there?
You are supposed to
I do. Any other ideas? It's bizarre, the character just drifts left until he hits the wall.
And then he's stuck there till you quit out.
Are the transitions opposite directions?
Seem to be? You can check my pastebin but I think they are?
It looks right to me
and left
does your test room have floor collision that is above y=2? (or y=4)
optimally it should be at y=2
It is at y=2, not above.
then it should work, but maybe test switching the true false things in the CreateGateway
Just swap all of them?
in the scene change thing, essentially changing left to right
Huh.
Weirdly enough, that doesn't do anything, but when I swap the names left/right as well it does.
But regardless of direction, it still just continues drifting in that direction.
hm, weird, i don't have that problem in my scenes
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/```
Anything stand out?
ARGH
now I'm even more mad
Because I fixed it
but IDK how
The only thing worse than a bug that I can't fix is a bug I fixed without understanding it first
I literally just copy pasted over my code and then readjusted
and that fixed it.
From the original tutorial files.
Question - Is there any information on the CyberKnight mod?
Afaik => ☠️
is is possible to have an absolute HintPath to a reference?
Cloning is easy, but getting it to work is the hard part
Hey
Quick question
How do i change the in game bosses texture. I have to do it with coding right?
That's not an issue but I'm just checking
Theres mods that let you do it
How does map editing work?
Swapster is an easy way of doing it
Hello. Are there any tutorials / guide i can use to introduce myself into modding? I have no idea where to start.. but i would like to edit some pantheon boss fights , like ultimatum radiance
<@&283547423706447872>
<@&283547423706447872>
how many, wtf
Hello everyone, I want to play custom sounds in hollow knight, so to test it I created a prefab of a gameobject which contain an AudioSource which contain an AudioClip (mp3). Then I created an AssetBundle with my prefab gameobject and finally I want to load it with my mod.
I can load and access to the gameobject and the audio source inside it from my mod, but when I try to audioSource.Play() I didn't hear anything ingame, someone already had an issue like that ?
Did you make the assetbundle with the right unity version?
Also what version of hollow knight are you modding
I try to mod the 1.4.3.2, I use Unity 2017.4.10f1 with the last version of AssetBundles Browser from github. I tried to log some informations about the audio source, to verify if I load it correctly, and it seems to work => when I try to print g.GetComponent<AudioSource>().priority I found 128, which is the value I set in unity. but then when I try to g.GetComponent<AudioSource>().Play() nothing happen ingame
Maybe you need to set the volume?
Might want to set it’s position to HeroController.instance’s position
I gtg, good luck!
Hm the volume is set to 1 (max) and the log print the same value so I don't think the issue is there. I also try to move my gameobject to the hero position with g.transform.position = HeroController.instance.transform.position; before playing the sound without success 😦 . But I see in my assetBundle the gameobject and the mp3 separated, maybe my load function is able to retrieve the audio source but not the audio clip linked to it.
I will continue to search, thanks for the help 🙂
the way i did audio was using wavUtils and just loading the wav file forgoing the mp3 entirely
https://github.com/yoink-city/memesong/
if you want to take a look at our code
oh thanks I will check that 🙂
The way I do it is loading the clip from the bundle separately
how does one figure out if a sprite is flipped on it's atlas ? and it's pivot coordinates (for packed sprite renderer sprites)
when I install the modinstaller, does that also install the API? or is it separate
Those are variable on Sprite
Am I allowed to post a modded boss suggestion here? You may have already seen it at #modding-discussion but I also wanted to post it here since I don’t know how to create mods myself
One question: what do you expect to achieve by posting it here? Everyone has their own project. It’s very unlikely that anyone will make it.
#modding-discussion is the correct place for that
Ok 👍
It already is there though so; yeah if you want to see it; you can check it over at #modding-discussion
Mates I want to remove the frigging white cloak stuff from the lightbringer mod, any pointers on how to make a build after I edit one on github?
Build it with either dotnet build if you have dotnet installed and want to use command prompt or use a c# ide such as visual studio or rider to build it
Huh I guess mods are pretty fast
i love monomod
I love bepinex
crashed my game by fighting elder hu
Ohhhh so that’s how you patch unity methods
All my CustomKnight+ problems are solved
*maybe
I loaded an existing mod solution in VS and I resolved all dependencies except for RandomizerLib, does anyone know where that reference path should be
I've already added the \Managed and \Managed\Mods directories
Edit: seems like Randomizer3.0Multiworld is another dependency
@modern star RandomizerLib and Randomizer3.0MultiWorld are from a stale fork of randomizer with multiworld support. The current version of multiworld is implemented as a separate mod, that just needs a compatible version of Rando (i.e. with the required hooks) - for example https://github.com/Shadudev/HollowKnight.RandomizerMod.
Hey,
has someone an idea how I can recognize that the player enters one of the Pantheons?
probably check if the binding menu is open & then a room transition happens right after
or there might be variables they set or some other trace
Note: GoldenGuy keeps responding to people, but doesn't actually make mods, and usually doesn't know what they're talking about
yea I'm just amused by it, I don't make hk mods
I kinda sorta know what I'm talking about but not anything to do with the hollow knight api or whatever mod loader y'all're using
I've tried it with the BeforeSceneLoadHook (it seems the closest of the available hooks). For the first three Pantheons there is a start and end call, for P5 i.e. not. So this is not a stable indicator. Maybe there is a better way to get it.
does anyone have a really really sick skin for custom knight
Yeah I noticed this, it seems like MW overwrites the standard RandomizerMod3.0.dll, making version control between MW and standard rando a bit awkward
I'm not sure if you can do run-time conditional includes (wait duh)
So for the moment I'm just disabling support for MW
this is incorrect with the more recent versions of rando
the most recent versions have intrinsic multiworld support through reflection iirc, and now multiworld implementation is solely through a separate mod.
( @ jamie it's not through reflection, shadu added some public methods and hooks to rando that MW can use)
ah its directly referenced, forgive 9am me
Rick knight
I love it
How would I create a item pop up like the one for vengeful spirit?
You might want to look at how Randomizer does it. It adds them for a lot of things (World Sense, Swim, Elevator Pass, Extra Nail Slashes, etc)
This should be the current Randomizer source, if you want to look through it:
https://github.com/Shadudev/HollowKnight.RandomizerMod
I don’t want to be mean, but please don’t respond if you don’t fully know what you’re doing
Or do that
oh alr, I'll stop
Can’t really tell ya what to do, also not sure if it’s good or bad that you do that
I can’t mod very well, but I am going to try to make a pale lurker boss fight.
I managed to change RandoMapMod to show the pins for the randomized items rather than the vanilla ones 🙂
this should be useful for some people I think?
Yeah. I saw that. I was just hoping that it would be possible to be done using a preload
oh yeah if anyone cares i released scarab
Scarab?
2 hours ago
true
Ah. Cool. I didn’t see it
Why is the api not in the installer?
In mean in the modlinks
look in the apilinks
that reminds me
i should maybe take my non-working mods off the installer for now lol
Ah
Why did you put them up if they don’t work?
realized afterwards and then didn't care enough
Also, what is the biggest mod (in size) on the old installer
Understandable
i'd guess indie crossover
Hoe big was it? (Approximately)
110 MB
Fyremoth is currently 140 mb
unoptimized 
On release mode
still
last i checked, tot was 10 MB
may be more now because i increased audio quality
We include 2 videos of which at least one in 4K
More then a hundred sprites
We split it up in at least 10 different asset bundles
sprites in bundles ?
Yes
Because compression
And not having to first load it as a texture and then as a sprite
I can now just adress the bundle and tell it to fetch me a sprite with a certain name
if you really want to experiment (so unlikely), you could also use unity's new 'Addressables', though idk how that handles compression and stuff
and ig this is meant for spritesheets instead of singular sprites
that makes sense
i mean, that doesn't make the download faster
Well, most of them are sprite sheets.
Why? Couldn’t the installer handle downloading the full mod?
Assets weren't required for Redwing. They were optional
So I assumed it was split for bandwidth concerns 
remove line 437
ok, then imma wait for 56, or who else can, to approve that, as my current enviroment doesn't allow me to lol
who can, apart from you and 56?
good question
waiting for some poor soul to enable all mods then wonder why the game isn't loading
that one's amazing
Jesus
You sure that needs to be installer mod?
yes
It’s a mod right?
ye but if it has the power to not boot the game (not really but most people see it that way) then if someone gets it they are going to waste #archived-modding-help's time
Like they won’t otherwise
well if it isn't on the installer then the chance of them installing it is small
oh i get what you mean
Yeah. I meant waste time in #archived-modding-help
i can't believe 56's mods in the modlinks are not sorted alphabetically
does scarab not sort mods after it loads?
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: void SFCore.ItemHelper.AddNormalItem(UnityEngine.Sprite,string,string,string)
This makes absolutely no god damn sense
The function call:
AddItem("arcane_ore");
The function:
private static void AddItem(string name)
{
string upperName = name.ToUpper();
ItemHelper.AddNormalItem(
Assets.iconsAtlas.GetSprite(name),
new StringBuilder("Got").Append(name).ToString(),
new StringBuilder("INV_NAME_").Append(upperName).ToString(),
new StringBuilder("INV_DESC_").Append(upperName).ToString());
}
let me quickly build the api and sfcore again
I can make it even wierder. When setting use specific version to true things like:
using SFCore.Utils;
GetAction<Translate>("Swoop In", 5)
MenuStyleHelper all turn to don't exits
just compiled
hm
NullReferenceException: Object reference not set to an instance of an object
at Modding.ModLoader+<>c.<LoadModsInit>b__16_2 (Modding.ModLoader+ModInstance x) [0x00000] in <c2a48dab016a4177be1ebaa8c1a99f48>:0
at System.Linq.EnumerableSorter`2[TElement,TKey].ComputeKeys (TElement[] elements, System.Int32 count) [0x00010] in <55b3683038794c198a24e8a1362bfc61>:0
at System.Linq.EnumerableSorter`1[TElement].Sort (TElement[] elements, System.Int32 count) [0x00000] in <55b3683038794c198a24e8a1362bfc61>:0
at System.Linq.OrderedEnumerable`1+<GetEnumerator>d__1[TElement].MoveNext () [0x0004b] in <55b3683038794c198a24e8a1362bfc61>:0
at System.Linq.Buffer`1[TElement]..ctor (System.Collections.Generic.IEnumerable`1[T] source) [0x00072] in <55b3683038794c198a24e8a1362bfc61>:0
at System.Linq.Enumerable.ToArray[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0000e] in <55b3683038794c198a24e8a1362bfc61>:0
at Modding.ModLoader+<LoadModsInit>d__16.MoveNext () [0x00344] in <c2a48dab016a4177be1ebaa8c1a99f48>:0
at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00026] in <047294ce45cf4b9a9441e48d2b8435e4>:0
UnityEngine.MonoBehaviour:StartCoroutineManaged2(IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
OnScreenDebugInfo:Awake()```
might have something to do with it
found in Player.log
that's basically not relevant, other than modloader throwing an exception
ok
Why can't anything just work?
And yes. I'm sure that I'm building against the correct version. I cleared both my vanilla and mods folder and copied the dll over from my mods folder after downloading it. And visual studio 2019 shows 1.5.1.1 as the assembly version
@jolly oriole I found something that could have a meaning. When hovering over TitleLogoHelper.AddLogo it gives Sprite as a variable. When hovering over ItemHelper.AddNormalItem it shows UnityEngine.Sprite as a variable
queue the ping emotes
this needs to be a quote i frame and put on my wall
because honestly that's me 99.99% of my life
hmmmm... only difference that I can find is that one of the functions has parameter documentation and one has not
Why can't anything just work?
- mandar1jn
Was this in different files?
different .cs files (in SFCore)
I mean hovering over them
??
that's really fucking weird
.?
just found out why. One file was including UnityEngine the other doesn't
Yep
when using UnityEngine in both they both show up the same
I meant in Fyremoth
oh
Could this have been related to the globalSettings bug?
Yes. Probably. I just copied the generic code over. When I use the SFCore one it also throws an error
Could it be that Fyremoth is loaded after SFCore?
that would only mean that sfcore's things are definetly there
good question, i haven't looked at the new modloader code, but i'd guess alphabetically + loadpriority
looked at code: loaded alphabetically, preloads & initializing with priority
When moving the problematic function to Initialize I get System.MissingMethodException: void SFCore.ItemHelper.AddNormalItem(UnityEngine.Sprite,string,string,string)
Maybe put SFCore.dll in a folder with a name that alphabetically comes first?
Shouldn’t matter. Fyremoth now Initailizes last.
Sorry. Not=now
Maybe try putting SFCore and fyremoth in the same folder?
I’ll try tomorrow. I have to shut down my laptop
Alright
i mean, it works for me like this
Could any of you create a mod using sfcore and use the AddNormalItem function?
yes
If it is the case that any non-static functions can’t be accessed (which I think might be the case) then that is an issue with the modding api right?
Doesn't ToT not currently work in 1.5 
There was also a time that libraries were loaded before mods right? Why did that ever stop?
Seeing as it is probably a problem with loading orders, sfcore is loaded before tot
tot works, only loading in the custom scene doesn't because of a true
it would work because of a false?
yes, a flag i use for it to use a hardcoded path for assetbundles instead of bundled
saves a lot of building time
Congrats on the release of Scarab, everyone
it makes sense, but sounds like a job for global settings
equivalent of a debug = true i assume
I created a PR for the 1.5 ports of WeaverCore, IKG, and Corrupted Kin so they can be added to the Scarab installer
https://github.com/hk-modding/modlinks/pull/18
Should also be able to release my update video on IKG shortly
merged
lol
@ theredbert
there's... a floor in the way
oh I thought that was text lmao
oh
anyone can help me make a pull request I'm kinda confused what to do to upload my mod to mod installer
for which game version is your mod, 1.4 or 1.5?
I am gonna commit warcrimes
renaming the SFCore directory and dll to ASFCore fixes the issue. It's a problem with Fyremoth's dll being loaded before SFCore
Do you run code in the constructor for Fyremoth?
yes. But the issue stays when having it in Initialize
also, I'm using a generic
https://github.com/hk-modding/api/issues/72 created a issue for it
Additionalmaps works fine though, last i tested
Yeah. Some methods seem to work some don't
And even if, .Net will just load the assembly if it isn't loaded yet, but needed
In theory
Then why does making the SFCore assembly being loaded earlier fix it?
That is a very good question that i'm going to rudely label "you problem" lol
also, does additionalmaps use the generic?
Yes
damn
I guess that only works when they are in the same Directory
Thats a very compelling point
I was already going to put all library mods into one folder- are you saying that I should put them all into a folder named 0. Libraries?
||Although for testing purposes, I should probably leave things the way that people will have them mod installer
||
yeah. This is only a temporary solution for me
part of my modlog:
[INFO]:[API] - Main menu loading
[INFO]:[API] - Starting mod loading
[INFO]:[API] - Loading Global Settings
[DEBUG]:[API] - Loading assemblies and constructing mods
[DEBUG]:[API] - E:/GOG/Hollow Knight 1.5 Modded/Hollow Knight_Data\Managed\Mods\AdditionalMaps\AdditionalMaps.dll,
[DEBUG]:[API] - E:/GOG/Hollow Knight 1.5 Modded/Hollow Knight_Data\Managed\Mods\SFCore\SFCore.dll
[DEBUG]:[API] - Loading assembly `E:/GOG/Hollow Knight 1.5 Modded/Hollow Knight_Data\Managed\Mods\AdditionalMaps\AdditionalMaps.dll`
[DEBUG]:[API] - Constructing mod `AdditionalMaps.AdditionalMaps`
[INFO]:[AdditionalMaps] - Initializing
[INFO]:[AdditionalMaps] - Loading Global Settings
[INFO]:[AdditionalMaps.Consts.LanguageStrings] - Loaded Language
[DEBUG]:[API] - Loading assembly `E:/GOG/Hollow Knight 1.5 Modded/Hollow Knight_Data\Managed\Mods\SFCore\SFCore.dll`
OK
what i plan on doing is /Mods/allMods/*.dll
I like some mods being in their own folder, tbh.
And I'm indifferent to many.
But for libraries, I know I always want essentially all of them on, so the individual folders is a clutter.
only mods that need subfolders will get a folder of their own for me
rest all in allMods
Yet they also have to work in their base folder for everyone else
That is why my issue is so annoying. I don’t mind changing names. But not everyone is going to do that.
What exactly do you rely on in the library that needs to be loaded before you access it? Isn't this solved by giving the library a higher initialize priority than your DLL?
no wha- why ??
more than frame perfect spike tunnel go brrrrr
Some SFCore stuff needs to be done in the constructor
Isn't it always possible to move code from the constructor to the Initialize method? Are there things that can only be done in the constructor that I'm not aware of?
(Fyremoth happens to have at least 2 of those 3)
or if you want to do things before other mods have a chance to do things that they do in initialize
Does the modloader not initialize all mods just after loading the assemblies? What earlier point of execution can you achieve if Initialize is too late?
when a mod class's instance is created is earlier than any of the other mods initializes afaik
constructor of the mod class is executed before preloads, so it gives an advantage that you are able to have things that nicely embed into main menu stuff without having the same code twice, one for initialize, the other for after save+quit moments
If you already resort to not using the Initialize method that the ModLoader calls, why not make a static constructor for those cases? I reckon that would fix the problems that mandar1jn is having as well. If Fyremoth is loaded before SFCore and it requires functionality from the library it will load the assembly on demand. That will automatically trigger the static constructor and make the features available.
The only design flaw is that you have to interface that static constructor initializing stuff with the mod instance that is created afterwards (if necessary). That would look a bit silly, but not beyond reasonable and as I said only design related.
yeah dw, sfcore uses static constructors for the helpers
am also thinking of having sfcores classes be loaded when the dll gets loaded
<@&283547423706447872>

guys where is modlog.txt located?
?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/```
In your save files path, if that wasn't clear
Aight it was clear
I managed to use github and build Lightbringer
but I noticed the version on github is older thna the one in ModInstaller
uuuuh I want to build the newest one, where can I find them files?
Why are you trying to build it?
Presumably to change part of it?
A lot of people want to disable the check that sets the Knight to the Lightbringer skin.
Do you think this because mod installer says your version of lightbringer is outdated?
One of the reasons, the other one being uuuh, the sounds of the version I've built are much louder, bear in mind I didn't edit any audio files
I wouldn’t think the audio was changed, probably an number in the code
prob, time to look for it
Mod installer says that something is "outdated" simply of it doesn't match exactly; it could be newer and still say that.
New Lightbringer.dll, @copper nacelle how do I update the Drive?
also is making it 1.5 compliant as simple as changing build settings or do I actually need to put work in?
modhooks (remove .instance), new settings, and possibly other general 1.5 stuff
healt bar mod for 1.4.3.2?
#archived-modding-help
||It's called enemy hp bar||
it's on github, it's just commenting out the skins line by popular demand
Will commenting out the skin line affect the Easter 🥚s?
Like, I would imagine it should disable them, but just asking in case it breaks something when they are triggered.
Hey so I've never made a mod before and after looking through the pinned messages and watching a tiny tutorial I'm still super confused 
How do people usually go about making like boss mods? Is that with the whole asset bundle thing? I'm also not sure how people modify the FSMs :x the program i downloaded only lets me view it
The Easter egg doesn't use skin to do that
Easter eggs just use sprite flash so skins don't matter
I'm working on a fork of RandoMapMod and there is a weird bug where whenever the map updates (usually via resting at a bench), this one particular pin appears and seems independent of any overlay (in-game or inventory). It disappears when I exit from the inventory.
Does anyone know a way to debug and find this GameObject so I can banish it to the shadow realm? As far as I know the current code didn't create it in the first place
Like maybe some way to print a list of GameObject names to a log when a trigger happens
there's always the unity log, you probably don't want to print to that though
if there isn't any built in logging in the modding framework you could do that at least
Yes there is a logging system
I know about the Log and how to write to it, just wondering if there was an existing method to get all GameObjects that are active
https://docs.unity3d.com/ScriptReference/Resources.FindObjectsOfTypeAll.html I found this so I'll try using it
@modern star fwiw, that "pin bug" is a bug in RandoMapMod itself
I fixed it! It was a GameObject called "Map Markers"
hi can i ask simple questions about save file editing here?
wasnt sure of the right channel
#archived-modding-help is the better place to be
ah fair enough, i asked but they ignored it- i'll ask again later i guess
Can you explain exactly how you fixed it?
This would definitely be worth getting into the main branch
they just got the name of the GO and then destroyed it when they wanted
assuming from the convo
does anyone have the sprite file name and the sprite of defender's crest? if so can you share a link? would like to add a reskin for it in CustomKnight
I think charms are in the master sprite folder, pinned in #art-discussion
Charm##.png, ## being the charm number
thank you both
There's a hook called GameMap_Start used in the mod
I just for loop through all the active GameObjects and disable the one with the name "Map Markers"
They're not needed when this mod is used anyway
I've DM'ed the original mod author, he says he'll check out what I've done at some point, so I'm waiting on that
I HAVE removed some existing features like the older pin styles and some logic markers, which is why I'm waiting on such feedback
is there anyway to rename the charms in customknight?
With swapster yes
bruh charms is ck
1.4 idk
1.5 yes
you don't need swapster
Confusion
so how do you do it then
ck has charm support
name it Charm_#.png, with # being the number of the charm
no I meant
can you rename the charm's name
like can I change the name from Defender's Crest
oh rename
to something
me stoopid
You can’t rename charms
swapster can
what is swapster?
Unless I missed text changing being added
@floral blade explain swapster again
when I finally finish CustomKnight+ you’ll be able to modify anything
rebranded to swapper it is an experimental CustomKnight feature that allows you to modify more or less any text or sprite in the game
is it available for 1.4.3.2?
old build from when it was an independent mod
It doesn’t matter
Scene name refers to the name of the room/scene
No matter what the name you use is it will update the text though (according to the message)
so i just make a replace.txt and type "Defender's Crest=>Void Crest
" and it should replace?
any _ or are spaces are allowed?
everything is allowed except newline
thank you
this is what i've put in the replace.txt Defender's Crest=>Void Crest it's still not replaceing the text
and swapster is showing up in the top left list of mods?
Okay i just was wondering how i would mod it to be that you have to pay for benches ive never moded but want to learn
Do you want to mod version 1.5 or 1.4.3.2
1.5: uses more up to date unity and .net framework versions also has more memory being a 64 bit app now
1.4.3.2: more mods, more related to previous hk versions, debatably more documentation (at least video tutorial wise)
Dandy just left me hanging
i have mod installer working and have certian mods installed yes
Good job dandy…
Have you programmed before
heh yeah im completly new so im really just need a bunch of video tutouriels
i havnt in other words
I suggest learning a bit of c# first, but since I don’t know any good tutorials I’ll just give you the documentation for hk 1.4.3.2
k
this seems right
are you sure the text to replace is right
spaces and capitals all right?
lets start with trying to replace elder bug using the example that i have validated
elDer=>Cool Dude
why elDer tho?
why is elder spelled like that?
that and disabling all other mods
to denote that the input text is case insensitive
ah
oh.
dandy have you ever tried something with a ' ?
nah it shows up as cool dude bug
uhh
looks great as always
no but i see no reason for it to break
lol
time to yeet all other mods
yup
first try without other mods
wait im making a backup
for some reason i have the entire white palace group skins.zip
so its like 1GB
i do need modcommon right?
no
modlog time
modlog time
how do you check that?
?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/```
ah alright
here:
[INFO]:[ModManager] - Initializing
[INFO]:[ModManager] - Initialized
[INFO]:[API] - Loading ModdingApi Global Settings.
[INFO]:[API] - Main menu loading
[INFO]:[API] - Preloaded reflection in 226ms
[INFO]:[API] - Trying to load mods
[INFO]:[API] - Attempting to determine type of mod assemblies (library/mod/addon)
[INFO]:[API] - Swapster - MOD
[INFO]:[Swapster] - Initializing
[INFO]:[API] - Preloading
[INFO]:[API] - Checking preloads for mod "Swapster"
[INFO]:[API] - Loading ModdingApi Global Settings.
[INFO]:[Swapster] - There are no Swapster skin folders in the Swapster directory.
[INFO]:[API] - Saving Global Settings
[INFO]:[FauxUIManager] - Loading Mod Menu
sus
so how do I fix this
oh yes
?
oh ok
it just gotta exist
and put the text inside that right?
i did a oops in the code apparently
if (Directory.GetDirectories(DATA_DIR).Length == 0)
{
Log("There are no Swapster skin folders in the Swapster directory.");
return;
}
if (!File.Exists(Path.Combine(DATA_DIR,"replace.txt")))
{
File.Create(Path.Combine(DATA_DIR,"replace.txt"));
Log("Created replace.txt in Swapster directory.");
return;
}
LoadSkins();
Gj
new lines
ok thanks
each line is
find=>replace




my replace.txt for ideas on what else you can do
Hollow Knight=>Test for replace
Radiance=>Craydiance
you =>YOU!
the=>DEY
geo=>Moni
.=> (^_^).
!=> >_<!
soul=>power juice
f=>#x#
s=>f
#x#=>s
haha
Hey, question regarding Scarab:
Is there any plan to add a feature for it to manage manually-installed mods?
Like, possibly a separate list of "folders"/mods in the Mods folder that aren't in ModLinks?
I'm just wondering because there are probably always going to be common mods that aren't in ModLinks, and being able to use Scarab to Enable/Disable them, as well as just see what all is currently installed, would be incredibly useful.
I didn't plan on it no
Can't version check manually placed mods
I could add it later maybe though
Effort
either potentially user unfriendly ui (have them input version) or complicated auto detection of the version (gets difficult with mods that have multiple DLL files)
I would think that manually added ones wouldn't get features like version checking.
The installer could just essentially keep a list of them. They could even be within their own tan, instead of the same list as other mods.
The main point is that the installer wood still handle moving them to/from Disabled, and allow Scarab to be an easy reference for what is currently installed.
Hello! I encountered what I would consider a pretty serious bug in Randomizer 3, but homothety's GitHub repository does not show an issue tracker; where should I should report the behavior I saw?
If something is related to Rando, then it would go into #randomizer .
That being said, Rando stuff almost entirely moved to the HKSC server (which is pinned in #randomizer ).
Thanks for the pointers! I'm not very active on the server/Discord in general so I didn't know. I'll take my questions there, thanks!
Hi!! does anybody knows if there is a way to know if you have passed the game? like "EndCinematicHook" or something
Are you looking for if they player has completed the game or a hook for the player completing the game
I don’t believe there’s in one in modhooks at least
When are you looking for it to be called
when the player defeats a final boss (gets an ending), to display a menu, where he can decide if that run its their PB
Just check when the scene changes to credits?
You could probably use UnityEngine.SceneManagement.SceneManager.activeSceneChanged and check if the scene being loaded is the credits (or an ending if they’re done in the same scene)
good one, srry for this questions, its my first time doing a mod
and one more question, is there any way to check a movement instead of keys?
i mean, i want to do the "fury of the fallen" thing, and having to bind KeyUp and JoyUp and DUp, may be confusing
You could check if the knight’s position is different, iirc there’s also an method in HeroController which is called for that so you might be able to hook that using On.HeroController.something
Also if you want to check how hk’s inputs work, you should check out the Fsm actions for them
Nvm I’ll just tell you how they work
Let me grab some code
You could do inputhandler.instance.inputactions.up.waspressed.
that was much more simple wham what I was typing
What’s the difference between waspressed and ispressed though
hopefully today or tomorrow the mod will be done
ispressed = KeyPressed Action (you may hold the key)
waspressed = KeyReleased Action
Ah ok
IsPressed: is currently being held
WasPressed: was pressed this frame
WasReleased: was released this frame
oh, okok, like android "OnPress, OnReleas and Pressing"
(I don't know much about android but that sounds sensible)
Does anyone know why when I remove RandomizerMod.dll, LanguageGetHook is never called? I would have thought it should be independent of the mod
so far the development is going great
it wasn`t mods
sad
thx
LanguageGet is called by rando but also by the game. That said randomapmod seems to not do anything if rando isn't available? https://github.com/syyePhenomenol/HollowKnight.RandoMapMod/blob/master/HollowKnight.RandoMap/MapModS.cs#L459
I think I need to implement dynamic loading of RandomizerMod3.0.dll, the mod was probably stalling somewhere when it couldn't find the assembly
Who ported AsciiCamera.dll to 1.5?
And was it tested?
So I should
5️⃣6️⃣?
ᴴᵉʸ ⁵⁶⁻ ᴬˢᶜᶦᶦᶜᵃᵐᵉʳᵃ ᵈᵒᵉˢ ᵃᵖᵖᵉᵃʳ ᵗᵒ ᵇᵉ ʷᵒʳᵏᶦⁿᵍ
[ERROR]:[API] - Failed to load Mod `AsciiCamera`
[ERROR]:[API] - System.InvalidOperationException: Sequence contains no matching element
[ERROR]:[API] - at System.Linq.Enumerable.First[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] predicate) [0x00052] in <55b3683038794c198a24e8a1362bfc61>:0
[ERROR]:[API] - at AsciiCamera.AsciiCamera.LoadShader () [0x00005] in C:\Users\home\Projects\HollowKnight\HollowKnight.Done\AsciiCamera\AsciiCamera\AsciiCamera.cs:41
[ERROR]:[API] - at AsciiCamera.AsciiCamera.Initialize () [0x00000] in C:\Users\home\Projects\HollowKnight\HollowKnight.Done\AsciiCamera\AsciiCamera\AsciiCamera.cs:24
[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 think the path may be hardcoded in? As I don't have a C:\Users\home\Projects\ on this computer at all
anyone know what code is executed when escape is pressed in a mod menu ? ( it does not seem to be cancelAction)
i am triggering my menu using this
i also have this in my playerlog Coroutine couldn't be started because the the game object 'OptionsMenuScreen' is inactive!
Which item was selected when esc was pressed?
i have tried all of them ( and they all call the same method )
The lastest release of the the mod installerhas the full binary path Scarab/bin/Release/net5.0/win-x64/publish/ included in the binary
Also, try opening the description of the lowest mod when having scolled fully to the bottom
smh not built using net6+maui
bless you
Hi all! I was wondering if anybody was created a custom boss for Hollow Knight yet. I am thinking of doing so and am wondering if anybody could help me by pointing me in the right direction for this project! Thanks!
this person has
ok
how would I go about making a custom boss?
are there any tools or tutorials to help?
how custom are we talking
custom attacks, dialogue, animations. I can make animations for stuff
but im not sure if hollow knight is able to be modded like that
well mods like cagney carnation and fennel exist so it's possible
hey 56
i see you are a modding helper
do you know anything about how i could make a custom boss fight?
https://radiance.host/apidocs/Assets.html
Tutorial where I add an enemy with custom animation from SotN to HK
it's made for 1.4 though so some small things like the unity version you need to use might be different
oh!
i was looking at that website earlier!
it looked helpful so i was looking around that! its cool to meet you!
hopefully it can be of use
i will definitely follow (or try my best to follow) that tutorial! thanks!
thank you zaliant very cool
also, for the asset bundle scene, could I instead use the custom map making mod and place my boss there?
also @ornate rivet would I need to code the attacks and everything myself?
unless you get the code from somewhere else, yea
ok thanks for letting me know
if you're building for 1.5 you'll need unity 2020.2.2
I should update my custom enemy template proj
If you mean decoration master, no
hi! i got one question: is it possible to fix the in-run mod menu bug??
i mean: when i open the mod menu while being in-run and go back to settings, the menu will display an empty one
Maybe post screenshots of what you're talking about?
I can't tell what you mean. Also, if you're not referring to Scarab / 1.5 Mods, then the answer is probably "
"
@5️⃣6️⃣ [Scarab Bug]
Two bugs actually,
-
Disabling Mods doesn't seem to be working with the current release build? It was working fine on the previous one, but seems to only copy files to
Disabledon the current one (as opposed to moving them / deleting the copied files). -
Uninstalling a mod automatically uninstalls all dependencies of that mod
(which doesn't make sense, since multiple mods may use any given dependency)
this happened when i open my mod config and then go back to normal game settings
dependencies are also uninstalled if no other mod exists that needs that dependency
did u press escape to close it ? or the button in UI ?
This is a problem if you use mods that aren't on the installer
Ah, yeah I had that happen earlier.
I do think it's happening if you try to use the "close" button instead of escape 
just don't uninstall, just disable 
that's the thing, as the modder, i can do that, but the players will explode if they lose their progress like that xD
for me it happened in reverse lol i could only close using ui and not escape
i had to add a hook to forcibly open pause menu which seemed to fix it 
hello, I'm new to this whole modding thing. I was typing this message asking for help and somehow rewrote it like 3 times as I kept finding the solutions at the last minute xD I managed to compile and load an example mod, so that's a good start
Nice
Hello, i would like to make a request if at all possible. Would anyone be kind enough to grab this mod:
https://www.nexusmods.com/hollowknight/mods/3
And add the compass and gathering swarm to the list (effectively making them free like this other mod does:
https://www.nexusmods.com/hollowknight/mods/5) ?
Why is this for .72?
because it's nexus, generally outdated
Fair
Imagine using nexus mod
Currently watching tutorials on how to mod, seems fairly similar to how i used to make mods for Phoenix Points but at the same time it's completely different LoL
Will attempt to make a mod but i'm not sure it's gonna work lol
Sooo i changed some charm costs to make some stuff easier and more fun for my GF, now i would like to create a new charm for her, can anyone help me out on this? I'm finding quite difficult to understand the guide online
VVVVV but in hk
but what is VVVVV
but what is google
but who are you
it's VVVVVV not VVVVV. how could you possibly get that wrong?
Having a problem deciding which hook to use for my custom charm, it should trigger an effect after hitting an enemy X amounts of times, anyone can enlighten me on which hook is best suited for it? It should be restricted to hitting enemies only (so it shouldn't trigger when hitting levers, NPCs and objects)
You can check if the thing that's hit is an enemy
Called whenever the nail hits anything with a collider, this includes doors, levers, npcs and of course enemies. Potential uses include overriding the 0 damage feature the game has to allow 0 damage nail mods to hit levers.
Could be if i find a way to restrict it to only enemies
Otherwise i think SoulGainHook could do the job?
This is called whenever the Knight gains souls from hitting an enemy with his nail, it passes it the amount it would gain and returns how much it will gain.
Well, you'll do something like
ModHooks.SlashHitHook += mySlashHitFunction;
void mySlashHitFunction(Collider2D otherCollider, GameObject slash)
{
// code goes here
}
You can check if the otherCollider (the object you hit) is an enemy
1st time modding HK here, dunno how to do what u said xD
It seems like the soulgainhook would work, too
(Although that wouldn't work on e.g. False Knight and Collector, which don't give soul)
I might get the syntax wrong, but you can just check if it's on the enemies layer - I think that that would work?
if (otherCollider.gameObject.layer == (int)PhysLayers.ENEMIES)
Alternatively check if it has a health manager, which is the script TC adds to enemies to... err... manage their health
if (otherCollider.GetComponent<HealthManager>() is HealthManager hm)
I'll try, now i just have to make a custom charm to attach this to
does randomizermod have a hook for when items are picked up? asking here because im too lazy (or busy elsewhere)
1.4 or 1.5?
1.4 for the moment
1.4 - I think the easiest thing would be to use the OnTrackerLog hook, you'll have to check that what's being logged is an item rather than a transition or the settings, though. https://github.com/flibber-hk/HollowKnight.RandomizerMod/blob/mw-compatible/RandomizerMod3.0/Events.cs
This won't work with the modinstaller version of rando, and the Events class is nonpublic in the latest version of the rando beta so you'll have to use the boilerplate to subscribe to it
The alternative would be to use monomod to create your own hook - see bingoui for an example https://github.com/BasedJellyfish11/HollowKnight.BingoUI/blob/master/BingoUI/RandoPlandoCompatibility.cs
@steady comet Sorry, could you help me a bit more? I'm having an issue with the code for the custom charm
{
// Better charms, insert default values here
public List<bool> gotCharms = new List<bool>() { true };
public List<bool> newCharms = new List<bool>() { false };
public List<bool> equippedCharms = new List<bool>() { false };
public List<int> charmCosts = new List<int>() { 1 };```
ModSettings is underlined in red
Prob missing a reference?
I was using this as a reference
And this is the guide that sent me to that example:
https://radiance.host/apidocs/SFCore.html#add-custom-charms
ahem
maybe the question was already asked, but should the mod be for 1.4.3.2 or 1.5?
then the modsettings part isn't needed, was a change made in the updates
Alright, what do i put there then?
or that
This was updated to 1.5
oh yea, i already made a 1.5 charm mod, i always forget that lmao
Holy cow that's too big for me to understand xD
And there's a bootload of references i'm missing as well
Do i really need all that?
most of it is editing spell fsm to allow for more healing options, the part just for the charms to show is rather small
just delete the : Modsettings part
Could we have a voice call where i share my screen so you can see my code a bit more easily?
No need to talk lol, just look at what i'm doing just in case xD
I can't really understand your code to be completely honest, i don't have any knowledge of HK modding. I'll try removing the ModSettings part and follow the guide
Hmmm... wandering husk
What do want to do with enemy?
oh, hkmp enemy sync edit: maybe nvm
Stea- Borrow his code to make my enemy
So you want ai?
Like it's health?
Use gameobject.getcomponent<healthmanager>(). And mess with stuff
For ai you need fsm Viewer
Oh yeah
How can I install fsm viewer propperly?
I saw the readme but wasn't quite sure
https://github.com/nesrak1/FSMViewAvalonia
Go to release
Download
Extract the zip
Open exe
Use
Is there any other stat besides health?
for ai
Scene List => Crossroads_05 => Zombie Runner
damage maybe?
whether it takes knockback, size
In fsm Viewer or in-game?
@steady comet Sorry, one last thing about my code then it should be fine and ready for test.
I'm using this that u suggested
{
if (otherCollider.GetComponent<HealthManager>() is HealthManager hm)
}```
So, let's say the effect should activate after 3 attacks, how do i achieve that? With a loop?
I'd say, have an int HitCount that tracks the number of times you've hit, and then your code would look like
HitCount++;
if (HitCount >= 3)
{
HitCount = 0;
// Do stuff
}
{
if (otherCollider.GetComponent<HealthManager>() is HealthManager hm)
{
HitCount++;
if (HitCount >= 3)
{
HitCount = 0;
// Do stuff
}
}
}```
Something like this then?
It underlines HitCount as red, guess i just have to write "int HitCount" at the beginning of the mod?
sounds right, yeah
Ok no more red marks
Guess it's time to test
Mmmh it seems to trigger every other hit instead of every 3
Nope
Hit a target twice effect triggered on first hit and not second
Hit another target twice, effect triggered both times
That's pretty weird
This sounds like TC 🍝
TC?
Team Cherry
welp
It sounds like it's calling this function multiple times sometime.
But only sometimes
I can take a quick look
Trying to switch to the SoulGainHook
What do i put in the "void" part after the hook?
void MySlashHitFunction and then?
What do i put in the "( )"
One way to find out is to have the line ModHooks.SoulGainHook += theFunction; and the IDE will give you a chance to generate the function with the right signature
Right click "theFunction" and click on what?
That's why i said it would be better if i stream my screen to you T.T
No exe :/
the zip file
Did you extract?
huh yeah
Then there should be exe
it has dis inside
@steady comet Can i stream to you?
No
There should be an option "Generate Method"
(assuming you're on Visual Studio)
alt+enter might be a keyboard shortcut that works
@light zodiac :)
Are you on windows?
oh found it
Did that, it returned this:
{
throw new NotImplementedException();
}```
I'm useless
And it put a " } " right after ModHooks.SoulGainHook += mySlashHitFunction;
anyways gtg, perhaps I'll be here later, anyways, ty!
I don't know about the }, but you can replace the throw new NotImplementedException with your implementation
It marks an error saying that not all code paths return a value
Have another look at the docs, it's supposed to return the amount of soul you want to give
Welp guess i'll go back to SlashHit and makedo with the multiple activations
Done
Thanks mate, sorry for the trouble
Guess my mod works halfway, i also tried to reduce some charm costs a bit since my gf likes them but it didn't work
Sad
You can change charm costs thru save editing
Guess that's the only option
If you search github for the mod "compass always on" you can find a version where it costs 0.
Use that code.
I saw this in that one video, but visual studio isn't recognising On. at all. did i miss something?
I'm trying to use asset bundles. what do i need to do for the code to recognize them?
actually, it's also giving me the error for Stream and Path, so I don't think it's an asset bundle problem
Are you in version 1.5?
yes
Add a reference to MMHOOK_Assembly-Csharp.dll




