#archived-modding-development
1 messages · Page 538 of 1
it never ends
mods faster than the mod ping
yeah because I went here to count my pings as read and there was another one 
but will bots be faster than the bot ping?
<@&283547423706447872>
<@&283547423706447872>
Is there a good tutorial for noob hk developers?
bc I'm pretty new to modding, and I'm not sure where to start.
thanks
Is there a different page/section on this page for how to change textures in general?
I couldn't figure out how to extract .dll and .pdb
Is it because I'm on mac, or is there a specific program I'm missing?
??
just look at the source code
it's on github
and to write mods you need an IDE program
thank you so much
Hello
https://radiance.host/apidocs/EditScene.html
I'm going to modify Halloween Night by referring to this site.
But I don't know what to do.
GameManager not have instance
and
not have SceneLoadInfo
So I don't know what to do.
If someone knows this, please help me.
@crystal basin you’ll have to reference UnityEngine.SceneManagement.dll
How can I put the modding API?
The ModdingApi is usually automatically installed by using a mod installer. In the case of using mod installer 2 search for ModdingApi in the mods list and either check the installed? box or if it’s checked click the orange box next to it that says out of date. Also questions like this don’t seem to relate to making mods so it belongs in #archived-modding-help
Wow fast mods
lol
from which library/import can I use this line (the On.) ? https://github.com/fifty-six/HollowKnight.RandomizedPantheons/blob/e599da32e14ad4294de90c8056cff06af580308b/RandomPantheons/RandomPantheons.cs#L51
You need a reference to MMHOOK_Assembly-CSharp.dll (or something like that), which gets installed as part of the modding API. Then it should work
ho nice ty
If you're in visual studio, start typing GameManager.instance and it should pop up with useful suggestions
I've tried it.
by the way not have BeginSceneTransition and SceneLoadInfo
Do I need another using?
using UnityEngine.SceneManagement;
This isn't right.
What assembly-csharp should I refer to?
The modded one
ok
I knew the problem. Unity Ripper is not good at interpreting dll.
Are you modding in the unity project given by utiny?
yes
Don’t do that
Make a separate project for it in visual studio, if you need to use scripts in the editor build the project with stuff that doesn’t depend on hollow knight’s or the ModdingApi’s code and drop the dll file in the unity project
I'm trying to use Hollow Knight Sprite Packer to edit the main character's sprites, I'm working on the running animation, and despite Sprite Packer telling me the animation is working smoothly by the preview, it seems to be missing a frame, If anyone know which frame and in what clipset it is, that would be much appreciated.
(vid for reference)
i think the frame is the last one in 006 slash
That was it, cheers!
It throws this error when I try to Log an int (Log("" + 3.ToString()) for example)
[ERROR]:[API] - System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
[ERROR]:[API] - File name: 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
[ERROR]:[API] - at Modding.ModHooks.OnTakeHealth (System.Int32 damage) [0x00030] in <2b54cdaf7a934f0eb297d50c4090ea9f>:0
someone had this error before
i think the solution was to uninstall and reinstall the game
same
@mystic nymph Read above
yes
I installed .NET framework 4.7.2 but it is not in the list
it's a seperate project type likely, idk what that ui is from, but if visual studio, it's the project type Class Library (.NET Framework)
I added an external dependency (System.Windows.Forms.dll), but it won't work (in runtime) until I put it to the Managed folder. But this means users will have to add it too, will they have to download it or it will be added automatically ?
why are you integrating winforms in a mod
to trigger keyboard keys
especially to trigger HitCounterManager https://github.com/topeterk/HitCounterManager
anyway I get this error in runtime System.TypeLoadException: VTable setup of type System.Windows.Forms.SendKeys+SKWindow failed 😔
You could use a Unity Monobehaviour for keyboard input
will not it only trigger ingame inputs ?
As long as the application is running, you can have inputs be registered any time as far as I know
imma test this out
https://github.com/syyePhenomenol/HollowKnight.RandoMapMod/blob/master/HollowKnight.RandoMap/InputListener.cs here's something I used if you want a reference
well I don't want to listen to inputs tho
oh sorry, I misinterpreted
why does the input have to go through keyboard and not directly to the game?
I want to trigger another program (with keyboard keys like CTRL+A) from an ingame event
So from what I understand, you have to have a separate running program and not an in-game mod?
game -> game event -> detected by mod -> mod press key -> detected by other program
Okay in that case, you could probably add System.Windows.Forms.dll to the same directory as your mod.dll
Scarab should automatically unpack and install everything into that folder
But I would be curious to see if you can interface with HitCounterManager in another way... I have no idea
i'm trying to use HitCounterManager as a first implementation, I will try to add an ingame UI after
imo you might find it is easier to just make the in-game implementation in the first place
What are you trying to make?
PantheonHitCounter mod
if the SendKeys was working it would be done already
did this in HitCounterManager yet
but it's annoying to press keys when you get hit / go to next boss 😓
Maybe livesplit like code could be used
Cuz it can detect in-game things while being external program
i will take a look
it works thx, but is there a way to hide the api error (cuz it can't load the library as a mod) ?
Not that I know of 
adding System.Windows.Forms.dll to Managed folder + adding file reference from Manager folder won't fix 
hollow knight drpc does something like that
adds them as embeded resource i think
you'd have to modify one of the jsons in managed, RuntimeSerialization or something
this ? (ModdingApi.GlobalSettings.json)
{
"ModEnabledSettings": {},
"LoggingLevel": 2,
"ConsoleSettings": {
"UseLogColors": false,
"FineColor": "grey",
"InfoColor": "white",
"DebugColor": "white",
"WarningColor": "yellow",
"ErrorColor": "red",
"DefaultColor": "white"
},
"ShowDebugLogInGame": true,
"PreloadBatchSize": 5
}
Managed
there is no json in Managed
Looking at livesplit code is a bad idea 
oh, hollow_knight_Data
then what do I do with that ?
add the dlls you put in Managed below where all the other dlls are listed
and whatever value most of the others are in the json below that
might be 2
obviously this is gonna be very difficult to distribute

and the changes are permanent until you verify integrity
info program does that too
atleast its an idea
true
~~ just ship a tcp server with your mod and have the external program connect to it ~~

I want to save some data (which are not settings), can I use IGlobalSettings or is there another simple way ?
IGlobalSettings: save data that doesn't depend on the file
ILocalSettings: save data that's different for each file
The best way would be to do one of those
or you can use newtonsoft.json to serialize to file yourself
by following what you said, I have a json file with a few const data, instead of doing a class/enum. can it be in the mod folder without any problem (publishing case) ?
the mod already read/load it, i'm just wondering if the final zip can contains it
so your saying you'll add this json in the zip with the dll?
yep
shouldnt be problem
wait
most mods come with readmes anyways
Brb putting a trojan as a hk mod
Did u miss the time I suggested this mod that downloaded a mod and loaded it ?
<@&283547423706447872>
pov: mod channel
so you didn't really miss it 
idk why I can't load settings, I can only write them with default values from the Settings class
namespace PantheonHitCounter
{
public class PantheonHitCounter : Mod, ILocalSettings<LocalSettings>
{
private LocalSettings _settings = new LocalSettings();
public void OnLoadLocal(LocalSettings settings) => _settings = settings;
public LocalSettings OnSaveLocal() => _settings;
...
}
}
namespace PantheonHitCounter
{
[Serializable]
public class LocalSettings
{
public PantheonSettings[] pantheons = {};
}
[Serializable]
public class PantheonSettings
{
public int number;
public BossSettings[] bosses = {};
public int totalHits = -1;
public PantheonSettings(int pantheonNumber) => number = pantheonNumber;
}
...
}
Is it possibly because your LocalSettings is private?
Possibly try using a dictionary instead, in case the array can't be serialized for some reason?
It's because the parameters of the only constructor of the class PantheonSettings do not match its fields.
Json will only invoke a constructor if it can match arguments with serialized fields or properties by name.
A list more comparable array than dict
Like list<PantheonSettings> is more comparable to PantheonSettings []
Than Dictionary<int,(bossSettings,totalHits)>
yeah I get you, you're absolutely right
Also if you change to lists you'll also have to change the BossSetting[] bosses to List<BossSetting> bosses
what the-
i wanna recommend some new mods to be added:
hk but you lose 10 geo every second. game over at 0.
hk charmlocke (every charm is fragile + randomise a charm build for every new area)
hk but your nail has durability and can be upgraded/broken.
Hollow Knight but the abilities gets locked/unlocked at random every minute/3 mins. (stil don't know much about this)
#modding-discussion was the right channel for mod suggestions
first one sounds good but I'd probably change it to 1 geo a second, so for a 2 hour run that's already an extra 7200 geo you'd need to get
ah whoops sorry
Hey I've got an idea but I can't seem to find the files containing the text
I know it's EN_*.txt but I can't seem to find anything in resources.
I'm about to busy for the next 30 minutes to an hour so if you know anything please mention me
@ornate nacelle #archived-modding-development message
Thanks much
this was a mistake.
Hey back yet again
I'm having another problem with text
public string LanguageGet(string key, string sheet){ if(key == "CTRL_NO_ACTIVE"){ return "No controller dumbass"; } return Language.GetInternal(key, sheet); }
I'm following the modding api docs and this is what it says I should put when trying to add text
The problem is that it won't build the .dll because "GetInternal" doesn't exist in namespace "Language"
Language.Language.GetInternal
That worked, thanks!
funny
This seems so cursed
Guys is there a mod that lets u dash upwards
@eternal ibex wrong channel
Ok sry
how could I get these sprites ?
#art-discussion pins
ho ty 🤍
alright so im in vs code with ultrads code trying to update it to 1.5 myself
but im not quite sure what needs to be changed exactly
is it a revamp of the code? or a few incompatibility issues?
also i think im missing an api or something
alright yeah i kinda need help understanding where to get this api or whatever it is because theres stuff missing apparently, other than that i can kind of understand whats going on, but i dont know what needs to change still
would appreciate little bitty of help.. pls
Why do you do up to 17?
funny
…this is discord
the hk modded one
Alright
I suggest going to the modding discord for that
ight
Has a channel full of that stuff iirc
<@&283547423706447872>
Hi, can i make hk skins drawing with a mouse? bc i think i cant draw the small borders
bc of the pressure
<@&283547423706447872>
Parasite Balloons in the Broken Vessel and Lost Kin fights spawn with 1 health until you damage them. Then, clones of the Parasite Balloons that you've already killed spawn with negative health equal to 1 minus the damage you dealt. It's kind of funny that with a 0-damage nail, you can't kill the balloons with the nail unless you've already previously killed them by some other means.
this is surprisingly very relevant to the mod i'm making
So I'm looking at Relic Seeker Lemm in Ruins1_05b and if you have no relics the dialogue RELICDEALER_NO_RELICS is played. However, I don't actually see that in the Relic Dealer-Conversation Control FSM and in the Shop Menu-shop_control FSM, it looks like the dialogue RELICDEALER_NO_RELICS_2 should be used instead.
Basically, why doesn't RELICDEALER_NO_RELICS_2 happen and where does RELICDEALER_NO_RELICS actually get called? Did I just misread or misunderstand something in the FSMs or dialogue files?
These are what I have for them, btw:
<entry name="RELICDEALER_NO_RELICS_2">Not carrying any relics with you? Go find some for me. I'll pay good Geo for nice items.</entry>
<entry name="RELICDEALER_NO_RELICS">Hm. Looks like you don't have any relics on you. If you manage to find any in good condition, bring them to me and I'll give you a fair amount of Geo for them.</entry>
The part you're looking at in shop_control selects dialogue when you sell your last relic to Lemm and the shop window closes. The other line is played from Shop Region when you talk to Lemm with no relics.
Thanks for the explanation!
Welp, I just sold my last Relic to him and it played RELICDEALER_NO_RELICS; guess I'll investigate more
why do you (whoever did) bundle the PDB with scarab?
PDB?
Program Debug Database
it means they're not using debug/release in their build pipeline, or don't have it configured properly
You'll probably want to ask on GitHub.
The creator is not longer on this server.
looking for big mods or good overhauls
W f........ Banned forever for asking mod recommendations on #archived-modding-development
Grubbong
<@&283547423706447872>
once the message gets deleted in #hk-discussion it gets deleted in every channel as well
and the mods get pinged in #hk-discussion before #archived-modding-development anyways
IDK it's fun to get the ping in though
ok fair
I, uhh, don't check outside the modding-related channels either
even more fun to get the bots ping in
(i check both this channel and hk discussion like, always)
how to defeat radiant aboslute radince \🥺
definitely related to the topic of this channel
step 2. You see a youtube video telling you how to git gud to beat absolute radiance
step 4. You quit trying
step 6. you play silksong
step 8. You do a little trolling and get mod that makes you invincible and you defeat absolute radiance
step 10. You play amongus
step 12. you touch grass
step 16. you finally defeat absolute radiance and you become C H A D gamer
step 18. I don't know what is anyrad
step 20. My fingers die from typing steps
Secret step. you speedrun entire game under 1 hour
yes
Just wrote 21 steps because we skipped step 14
yes
guys we are in #archived-modding-development
You're in modding channel so correct response is make mod that makes abs rad health very low ||or just use debug ez||
@clever crow no need to click the reaction repeatedly
like a very low 13337 hp or smth

🤔
Hello! I joined this server a long time ago, and yet haven’t chat with anyone here haha
I wanted to ask: Is there a way to create your own npc + location and add it to the game?

Yes there is
Do you know how to do that?
Hmm
Alright I’ll look at them! Thank you)
have fun
Woah, such chaos! I’ll need a lot of time to understand how everything works
I’m not really good at programming, so it will be even more difficult 🤔
https://radiance.host/apidocs is a bit outdated, but is easier to understand when starting out
My impression is that apidocs is supposed to be more of a guide/help whereas the hk-modding github is just documentation
I may be wrong
Unfinished pages 
a bit outdated

SFCore in new API docs when
SFCore mods should ship with their own documentation
what if the dll itself has already documentation itself (via ///
)
Eh, that's not really the same thing.
That's certainly a good start though, but if that's the only documentation then the ReadMe should probably link to the GitHub and state that.
Yeah, if the mod has documentation like that, you need to ship the .xml file so the ide has access to it (I think you also need to configure the csproj so the xml file is generated)
damn
I can help ya out with creating a new npc if you need since I’ve done it before
Omg really! I’ll ask for your help for sure then! ✨
As for now I gotta finish some other projects, and then I’ll start drawing for HK again!
i just finished making a mod
and you might say well what is this mod
what does it change
and what i say to that is
AAHHAHH
thats dashmaster now

Can someone tell how to make the knight dash upwards
Can someone here do a mod that lets u dash upwards on the charm that lets u dash downward?
Idk how to code but if u know, do it or tell me how
sans charm should let you dash upwards
I was just taking a gander at some source code, just to see how much I can learn from another mod. What is Ref.GM and or, what lib does it come from?
Which mod's source code were you looking at?
In general if you're not sure, you can try to look at the usings at the top of the file for ideas
I was looking at rando, in particular the way that they made stag stations open constantly, rather the bell is always there (so that you can access dirtmouth stag check when stags are randomized). Thought I'd start with some small part of a mod that I'm looking to learn how it functions
Right - rando references serecore, so it'll be in there https://github.com/seresharp/HollowKnight.SereCore/blob/master/Ref.cs#L71
(If you open the code in an IDE like visual studio, you can also hover over the thing and it'll show you where it comes from)
fair, but I was just taking a cursory glance at it. I've been looking to get into Hollow Knight Modding for a while now and I just don't know where to start, there being no documentation and all (afaik)
Yeah there's not super good documentation but it's there. I'd recommend
https://radiance.host/apidocs/index.html - old docs for 1.4, not really complete
https://hk-modding.github.io/api/api/index.html - docs for 1.5, but they're mostly auto-generated from code documentation
https://github.com/homothetyhk/HollowKnight.InfiniteNotches/blob/master/InfiniteNotches/InfiniteNotches.cs - a good example mod
There's also a (unofficial) modding discord - dwarfwoot (posted in here about 20 messages ago) has an invite link in their discord bio
oh cool
@tulip jewel cant tell if you're joking or not
it’d be super amusing but probably causes issues
What u talking about
you pinged me
Firemoth lets u dash upwards
assumedly about this
epic
do you mean blackmoth
Ye
Very different mod lol
Interesting. Didn’t know we added that feature.
can someone please put a mod together for me where THK does only the jellybean explosion attack, and at the random positions they normally spawn? ill pay money for it.
i pretty much need it for hitless practice
to help me telegraph the move and boost my survivability against it.
?guides I believe Fireborn's any% speedrun guide literally covers this attack, FWIW.
from what i remember it only covers one position
pretty much all the guides ive read only cover the center position 😰
im fairly certain when theyre to the right hand side of the arena its a different pattern. i got hit like 3-4 times each time compared to almost never getting hit when theyre in the center
if it were the same pattern, wouldnt it be possible to memorize?
also just went through every guide by them and didnt see a single sign of that so idk
This part highlights the route to The Hollow Knight and the boss fight itself.
Playlist: https://www.youtube.com/playlist?list=PLfkLKB8O1Ff0-AApWYqqgFjMcMMVaW_JH
Setup Guide: https://www.youtube.com/watch?v=a-aCaVTAUtc
Speedrun.com Guides: https://www.speedrun.com/hollowknight/guides
Hollow Knight Discord: https://discord.gg/hollowknight
fireb...
why are you being so damn annoying
In case if you didn't see it 



i did. i didnt need you to ping me.
u2
anyway, thank you
link posted with no response for 30 minutes
Kaan adds a ping to ensure visability
why are you being so damn annoying [...] I did [see it].
Jeez Kaan. How could you commit such heinous crimes. Pinging someone so that they don't miss something when they don't give an indication that they saw it. You monster 
dwarf why are you being so damn annoying
official pings bad squad
Cry about it
i mean that wasnt the first time they were annoying towards me
not even the first time today.
you eventually get fed up with problematic behavior. ¯_(ツ)_/¯
i didnt care enough to tell mods. i simply said it was annoying and blocked them.
Alright
now i understand 56

Just to check, do you actually need these pings when it happens?
Good to know! I think somebody said there was a bot that did it automatically but I only use 5 channels so I've no idea
we blacklist them as they come, so no scam link will be visible to you twice; things in the blacklist when posted are caught by a bot and are directly visible to us without any need for pings, making banning more convenient 
Well-oiled banning machine 

Does anyone know coding?
Yes. Like, everyone that uses this channel.
Oh do you?
I dont know much code
More of an artist but
Im wanting to make a fan game do you want to help
It’s a nice idea but I won’t be able to help. All of my programming time is dedicated to Fyremoth at the moment
Whats that?
A big mod
If you Google search Fyremoth, the top results will be of YouTube videos about it 
Oh
Isn't this the same for silksong? 
Im trying to work on a whole entire fangame
The challenge is to get it done before silksong

i dont like these connections your making
fyremoth is actually a silksong mod
Lol
may we see some example assets
Yea i want to see some asets
How did you know?
because hornet is a moth
nooo our secrets have been linked
Does anyone know what "focus MP amount" refers to from the radiance page?
soul cost to heal
Do you know where its stored?
How can you change the value?
For example I want healing to require 5 soul instead of 33
you can edit your save to do that
Also since thats only for focus is there anything built in for changing the spell cast amounts?
there's a lot of things in the save you can change
dont remember of spell cost is one of them
Could you give me an example of how to access the save?
Oh so this isn't something that can be dynamically changed?
sure it can. if you write a mod to handle that
if you just want to change it to a flat value for personal use, you can just change the save file
Use PlayerData.instance.thingyouwanttoaccess after a save is loaded to get/set values directly, or you can use a modhooks getbool (or get something else) hook to return a different value
is it generally better to use pd.instance.getbool to get values?
so that other mods can hook into that and change it if they want
well you may not want to use it and from my memory it's kinda slow how it's implemented
hmm
when would you not want to use it
well when you don't want other mods effecting it
idk I just can't think of a situation where you absolutely don't want other mods affecting it
not like it's that relevant to me anyway, just curious
This is basically fake news, it's slow how it's implemented in the vanilla game but that method gets patched by the modding api to not be slow
I've been setting up an ICustomMenuMod menu to handle mod settings and I'm running into an issue with getting the current saved options reflected when loading the game. The settings are retrieved properly from the saves (I output them to the Log to be sure), but all of my menu options are set to the default option when loading the menu. I have a RefreshSetting set up for each HorizontalOptionContent, which I figured was what was needed based on the examples and the API, but it never seems to get called. Any suggestions on what might be wrong?
Any source code to look at?
Also where do you do the refresh setting
It worked for me to do it like right after adding the item
Eg
c.AddHorizontalOption(name, Horizontal OptionConfig, out var option);
Option.menuSetting.RefreshValueFromGameSettings();
c.addhorizontaloption();```
Ah, that might be it. I missed that I'd need to call the refresh function myself. Didn't see that line in the example and figured it was supposed to be called automatically as part of the menu being built. Moment.
Awesome, that did it. Figured it would be something simple I just overlooked. Thanks!
Oh ok
how learn c hashtag
Yes
I agree
Is there a hook function that is called right after the herocontroller is loaded so I can get a reference to it when the game starts?
On.HeroController.Start
don't forget to have orig(self) at the start of the on-hook
playerdata.focusmpcost or smth like that
Ohhh cuz Im changing the focusmpcost in fsm same with mp cost and it doesnt seem to be doing anything
Ill try that
do it with the getint hook from modhooks
GetInt intercepts getting fsm ints too?
well, the fsm does a getplayerdataint
which is why the value gets overridden in the fsm
yes
Ohhhh danggg no wonder
Ok ill tell you how it works
It seems to work for focusing
But spells still cost 33 🤔
Does directly editing the MP Cost variable not affect anything 🤔
This is what I am doing:
private IEnumerator GameLoaded()
{
yield return new WaitWhile(() => HeroController.instance == null);
heroController = HeroController.instance;
spellControl = heroController.spellControl;
spellControl.FsmVariables.FindFsmInt("MP Cost").Value = MP_COST;
PlayerData.instance.focusMP_amount = MP_COST;
}
So you're only changing focusMP_amount
No, no, I just went and checked. Looks like I was wrong about it.
No problem
The reason Im confused is because I cant seem to find any other related variables that I could change in order to make it work
Have you found how Spell Twister does it?
Or are you trying to do it from scratch?
Thats a good idea
Changing the obvious stuff won't work. It's Hollow Knight.
You can say that again 😂
They are actually doing it the exact way I am doing it 🤔
Btw how can you access a charm effects fsm?
Hello, the Pale Court Development Team is looking to recruit one or two more programmers
DM me if you're interested
I ended up figuring it out
Yoooo
The fsm script setSpellCost is constantly resetting the mpCost checking whether or not we have the charm equipped
Even if its not equipped it always updates it
So I just edited it to set my values instead
Chonk Knight mod is one step closer to fruition
Anyone know why I wouldnt be able to call InsertMethod on a PlayMakerFsm object?
I noticed that the ModInstaller doesn't include the geo counter mod. I don't remember where I found that mod, but it seems like an odd omission.
I'm just mentioning this as a recommendation that that mod be included in Scarab if it's not too much trouble. It's really useful for those "spend X000 geo" bingo squares.
It's called Bingo UI
I've been manually installing the geo tracker mod, which works fine. Just a QoL suggestion.
It was all folded into one mod
Good to know. I'll try out Bingo UI on my next rando run then. Wonder what else it includes, but I guess I'll find out
There's a bunch of pins for grubs, killed Devouts etc, too.
That sounds useful. Playing without grubs in the randomizer pool makes keeping track of the number kind of annoying.
It has 2 numbers: number of grubs and (in brackets the number of grub locations you have checked in that area).
So you can keep track of the "check/free all grubs in Greenpath" etc goals.
very nice
Apologies, I hadn't submitted BingoUI to scarab yet because it has rando as a soft dependency (to keep track of e.g. randomized grubs). Other people have asked for it though so I'll try to get it on when I next get the chance.
(When I say soft dependency, what I mean is that BingoUI will work without rando installed, but has modified behaviour if rando is installed)
I'm currently running the old installer on a downpatched game for rando, so the issue was that I didn't know that geo tracker was part of the BingoUI mod.
Thanks for your work
We are good now, we will not receive more programmers until new notice
Who is now on the team? or is it secret
says the person in the team /j
Zaliant 
ye, zaliant provides the demotivational support
Hi, I'm new here and I have a pair of questions:
- Is there a mod or a way to change music in Hollow Knight?
- In the case that the first question's answer is negative, how do I start developing mods? I know that there are pinned messages, but I don't quite understand them or which files are important.
I should be asking this in the modding-help chat?
Thank you
I'm still interested in starting modding anyway
day 0 of making the Bendy custom knight skin
https://m.youtube.com/watch?v=iFIudBIWI1Y bout to use this
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!...
see you in a month to a year lmao
cya
let me know if you want help :) the tutorial is a bit outdated in some places
How do you changes sprites from already existing mods? Specifically golden godhome bosses
how do i make custom trials using customtrials (mod0
Why?
I wanted to make it goldier
Then you can either clone the project off GitHub and build it yourself once you’ve edited the sprites or edit the .dll file in dnspy or ilspy
This might be a noob question but when I open the examples in https://github.com/hk-modding/api it gives me the CS0245 Error that the namespacename "Modding" couldn't be found. Under Assemblys it shows me this and I don't fully know what the problem is but to my very untrained eyes it looks like it fails to reference whatever should be in the Assembly-CSharp.dll. When I try to manually add an Assembly reference it tells me that the reference is either invalid or not supported (using Visual Studio 2019). Am I just missing an important step? I basically tried to follow the getting started on https://radiance.host/apidocs/Getting-Started.html, but in the video tutorials in the section afterwards they just reference the .dll and everything works like a charm so I think I might have just done something wrong when "compiling" the assebly-csharp.dll myself. The output of that build is https://pastebin.com/KjnRm790 and it says that it is successful. Any ideas?
Hollow Knight Modding API. Contribute to hk-modding/api development by creating an account on GitHub.
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
I had a similar issue when I first set up a mod. You might need to right click on your project file, and "Edit Project File", then change the value of "HollowKnightRefs" to point to the Managed folder of your Hollow Knight installation
yea and if modding namespace still does not exist then you dony even have modding api installed
thanks!
hi id like to make a mod but i have no idea where to start. I have a good amount of experience with python but idk if that would help
Hk modding is done in c# and it’s suggested to have some experience with the unity game engine since that’s what hk is made in. It’s probably fine though since I officially also learned c# and unity through hk modding
I’m not quite sure what people would suggest as the “up to date” modding resources (a bit spread out since the 1.5 update) so I’ll give you a like to the hk modding server. The pins of this channel (and some in the other modding channels) can also be helpful
ok thanks
Are people planning to make randomizer mods for 1.5?
Yes
Okay cool!
can you send me a link to said server?
I’d like that link as well if you don’t mind
Does anyone have some experience with the BonFire Mod?
@summer flax wrong channel
Why would it be
That’s because the speed run server is official whereas the modding one is not
Reasonable
Was this intended for me?
Yeah, kind of
When I say this, what I mean is that the speedrunning server was set up by the people who run hk speedrunning, whereas the modding server was set up by basically random people who happen to do hk modding-related things
Tbf, I did originally ask here if anyone had plans to make a dedicated server 
If it would have meant a better "link" between the two, then I would have rather the Modding staff of here make the other one.
Instead, a bunch of people said that they liked the idea of the server, but no one actually wanted to make it
Also hksr is official as in admins here recognize it
And hence have done stuff like lock #360673633338785793 channels
Hey everyone, I have taken a look into the source code of the BonFire mod and I try to find the part which causes the Nail Arts not dealing more damage.
If someone has experience with that and knows why and where to find that line, then shout! 😉
It's probably more that the code to make them deal more damage isn't there.
TC have literally had this problem in vanilla.
Yes! - I need to get the instance which decides whether it is a nailart or not.
It’s probably more of how team Cherry implemented nail arts instead. At least with what I saw of the code you linked that should already work on them. There’s also a large chance I missed something since I just took a glance over it
Ya line 123, it asks for something with "lash" in it.
IDK if the nail arts do also have it 😕
It was probably to discrimminate Thorns of Agony or damage by the Crystal Heart.
https://github.com/ricardosouzag/BonfireMod/blob/8f1488fa770d3e704dae7b1681b5ab9c3570eed6/BonfireMod.cs#L123
Then you could probably just add an or and see if the name contains something shared by nail arts
😎 👍
Exactly
Then, there is just the part, where I find out, how to compile it into a HK DLL (probably unity thought)
You can compile it by either running dotnet build after downloading it and setting the references in the right place or installing a c# ide such as Microsoft visual studio community or rider, open the project with it, then compile it (usually ctrl + b does this)
Can’t compile it with unity
Do you think it is worth a try porting it to 1.5?
how do you start making mods?
Programming them...
-
C#
You probably have to get into C#, since it is most likely the only or at least best supported language the mods are written in. -
Example Code
There is a Sticky with a template mod for 1.5.
Or you can give it a try and look at existing examples.
Many legacy HK mod do only exist for 1.4.3.2. -
That Unity Explorer Mod or similar methods
Use those methods to get an idea of how some mechanics of the game work and how to find certain files and values. -
Compiling
Having a way to compile it properly is important, e.g. Visual Studio using .NET.
There might be such a thing as a mod editor or something, with which you maybe don't have to learn so much hard coding yourself, but I am fairly new to it and don't know how that works then.
so what software would i need
actually nvm
can i have a link to that hk modding server?
yea
ththats helpful yes thanks :3
no more blocker enemy
Forgot to tell, that fixed it.
is this the place to say mod ideas?
but ppl said it was here just now
keep them there anyways
week 1 of bendy knight skin
finished a quarter of knight.png
mostly idles
idk what imma do about the nail
Heyo, I want to make a HK mod that would add benches before each boss encounter and make all enemies die in one hit (except bosses, those would die in the same number of hits).
The second part I would make by multiplying the nail base damage by a big number, and multiplying all bosses health by that as well.
Now, going through the docs what I got so far is that: I'll have to edit the unity scenes to add the benches, the nail damage will probably be easier to multiply via a onAttack hook or similar and I'll probably have to edit the scenes to change the bosses health too, although it feels like they may be defined somewhere. Maybe I could multiply it via the "enableEnemy" hook? I still have to familiarize myself with the docs, but that's the general idea I have for now. Am I on the right track?
Yes you seem to be
I think it makes more sense to set the non-boss enemy HP to 1? Changing nail damage is a bit more hassle than changing enemy HP, IME
On the editing scenes part: if you mean editing scenes as in the bug process with editing them in the unity editor then that might not be what you want to do. For rooms you replace in the game like that, mods that change stuff in the original room won’t work there anymore, plus it’s a lot of unneeded work and memory taken up. All you need to do is preload benches (you can look at how the benchwarp mod does this, you’d also already have to do it with the other way) then use a SceneChanged hook to instantiate them and set their position when a specific scene is loaded. Also while that is a good idea to use nail damage to kill enemies instantly, you might want to do the reverse of your idea and change normal enemies’ health to 0. Changing nail damage will persist even when mods are turned off or uninstalled, and people tend to not read any information mod developers provide for their mods (no matter how hard some people try) and then complain about it in #archived-modding-help
Not really a snail because you got a lot more useful info there, but yeah
Also on the nail damage thing, imma add a bunch of kool Playerdata and HeroController stuff to frogcore eventually that 1. Saves/loads improper save data to pet mod save data and 2. Allows multiple mods to hopefully edit it without dying
If you add a way to do that that doesn't persist when they revert to unmodded, that would be very useful to people
does anyone have grub mod
?
i just wanna know
ooop
uh
For all we know grub mod means you create a npc named grub
you mean the recent one that one guy born out of fire made that had 4 grubs following you?
Or the one where you kill grubs
Why not make a mod that buffs damage values
Do you mean damage the player does? They just want to make normal enemies die in one hit and bosses die in the normal amount. Also that will affect the nail damage without the mod too unless it’s implemented a specific way
kekw
en tekct
i agree
ngl
anyways i think we should talk about how playerdata.instance.health = 0
true ngl
I prefer nailDamage = -21
is this meant to be nailDamage -= 21 or just setting it to -21
Setting it to -21
thats lame though
what if you did some overly complex garbage instead just because it's funny
like
local swag = 69420
for swag do
nailDamage -=1
end
"overly complex" im just lazy rn
yes but c# next time
Smh write some fast code
Just had a stupid idea for a mod
When Flukenest is equipped. Abyss Shriek is replaced by a swarm of flukes being propelled upwards
Oh god
But that isn’t modding
first ever person to say the thing
Not with that attitude it isn’t.
Lol
so is there an online collection of the animations for the knight? I'm making a skin but i dont actually own the PC version
how does one go about making a hollow knight mod? I am new to this but I want to make a 'present' for uniquenameforme ||(absolute casual bossfight supernerfed absrad)||
what components do I need for visual studio
Uniquenameforme just needs to git gud. 😤😤 Check the pins.
There's a pinned message in #modding-discussion that specifically has the Knight sprites.
Otherwise, you can use the sheets pinned in #art-discussion as well.
At this point in time, you may want to join the dedicated Modding discord for that. It's more active with people who can answer Qs about getting started, and it has more up-to-date resources on modding for 1.5
If you want to join, there's a link to it in my "About Me". Or you can search the server, as others have posted links to it here and in #modding-discussion before.
much appreciated <3
Mods do be quick
Idk if this is the place to ask, but is there a Meta Knight skinpack for the Knight? It seems like an obvious choice since they're both smol, they both get energy from hitting things that they can use to heal, can both use wing-cloaks, and they're both counterparts to another entity (although the roles are reversed in meta knight's case)
With the current way skins work, they have to be the same general shape of the Knight, so it would probably be very difficult to make a Meta Knight skin, because they're a lot rounder.
There's a mod that Someone is working on that may allow for that kind of skin to exist, but it's not likely going to be done any time soon.
Ah I see. What about a pallette that has meta knight colors and mask shape and stuff, does that exist?
Not currently. You could always make one though
You can also use HatMod to do something similar, that would be easy, but bet silly looking
Can someone here please make a simple mod that lets me dash upwards as well as downwards
Im aware that theres a mod called blackmoth but i dont wanna dash in 8 directions, only in 4 i want. And i want the nail damage to be default, not just 1 damage like blackmoth
If some modder here does this ill greatly appreciate it

I might have done it but you caught me as I’m going to bed
Might do it tomorrow if I remember
Ok ty
a
heyyy so I'm creating a map and I'm kinda looking into deco mod rn and add a few custom stuff and it's all cool and all but how do you add custom floors and levers and such?
can I just try to find the correct things from ToT and yoink that? is how ToT did it similar enough to deco mod?
I’m not too good with deco master, but idk if you can add custom stuff to it without editing the code. Not sure what you mean by finding them from tot, it doesn’t use deco master. All the scenes were created in the unity editor and stuff that couldn’t be created there was places in the rooms at runtime
(@ SFGrenade#2066)
oh using unity editor sounds like a great idea
I mean like I'm editing the code from deco mod rn to change some lever behaviour that I want I was thinking of yoinking that kind of stuff:
WpLeverPrefab = UObject.Instantiate(preloadedObjects["White_Palace_17"]["WP Lever"]);
but if that's used with unity editor it might prob not work then huh
Anything preloaded has nothing to do with the editor
So what’s your question again (not quite understanding)
I for example just want to add a wp lever
and well idk if that line for example would work for that
Preloading it? You’ve probably got it. If you just have deco master do everything it did to normal levers it will probably work
like this is the dictionary for a lever in deco mod, which if I understand the code correctly I can just change so for example use the whitepalace lever thing and then it should work ig
yea fair
that's why I was so confused about this, bc it looks like it instantiates something that's made somewhere else ig
Actually is this in initialize?
Well I gtg, gl
ty
oh yea that makes sense
understanding code challenge [impossible]
thanks for the help
all I want is pop floors why is using brain so hard 
wp_floor_long (4)
\--Component: Transform
\--GameObject layer: 0
\--GameObject tag: Untagged
\--Transform Position: (276.0, 10.8, -0.1)
\--Transform Rotation: (0.0, 0.0, 0.0)
\--Transform LocalScale: (-1.2, 1.0, 1.0)
\--Component: SpriteRenderer```

can I instantiate it the same way as the other things?
like "White_Palace_18", "wp_floor_long"

ill try that out sometime
let me know when u can make the dash upwards mod ok? @vocal spire
didnt flib make that already
🤔 I haven’t seen anything about it
Where did you see it before?
in flibcord
Lots of people have made upward dash mods
There's one in this server

Can u paste a link
I can't find it, but it's called celeste.dll
But is it 8 directional?
What if i wanted it to be 4 directional?
You would have to make your own mod or just not press the diagonal keys
or get someone else to make it IG
Theres a game called environmental station alpha
I love the simple dash there
Flibcord
Whats that?
@steady comet
Heyyy is this the right channel to ask for some help..?
I have a question bout the Custom Knight Skin making process ^^
Or.. is the modding help one the right one?..
so you want to create a custom knight skin and need help for that?
yes. I have a concept but I never did any skins for games like that.. and I just wanted to know in what pxl ration it's best to draw it or if it's better to just edit the default one ^^
I think CK skin developent is usually in #modding-discussion , but someone who knows what they're doing with skins will probably come here (I don't btw
)
I can just flop over there and ask again.. I mean I get it if this is more for coding and stuff that is too complicated for my lil brain ._.
But thank you anyways 🙂
I have been searching the server for the celeste.dll and no result.
I cant find anymods that let u dash up
Except for blackmoth
I dont like blackmoth
Search celeste.dll, click the oldest one, scroll down and click the first link
I never tried it either but it probably works
fun fact deco mod did not like me changing the lever
prob fixable but 
Guys where I find the newest link of the modinstaller
you didnt have to post it thrice
srry
time to ditch deco master 
ditch deco master and preload the gos into scenes via code
👍
how else
Do we know when we'll get randomizer for current patch ?
No
darnit
I’m trying to create mods for hollow knight. I was told I must use .net framework 3.5 since that’s the version the game uses. But the only options available to me in visual studio are 2.0 2.1 and 6.0! I’ve tried installing and enabling 3.5 but it just isn’t there!
This is mod help but development help as well so that’s y I put it in both
on project creation, select "library (.net framework)"
This?
yes
also, 3.5 framework is only for older patches
if you're planning to make things for 1.5.x.x patches, the framework is 4.7.2 now
I intend to mod for 1.4.3.2
Like most other mods are
And it’s working now thx for ur help
I’m trying to increase the base nail length and I can’t find it in dnSpy
Is it not a variable?
I found the startslash() and I can see they are multiplying stuff but I can’t figure out where they are defining the base value
Fwiw the older mod installers aren't going to be updated much, if at all. You should mod for 1.5
The main mods that aren't on 1.5 are being updated.
But 4.7.2 and 4 in general is being faised out in 2022
Why continue in coding in it?
3.5 is gonna be around till 2026
I don't entirely understand how that side of things works, but having HK mods on the latest patch makes more sense than asking people to down patch. Plus scarab is better than the other installers.
Isn't downpatching as easy as going into betas of hk?
just ctrlf nailLength or length or len
then change it
Is it better to translate the game code from x86 to c# and make a mod, or just make the mod in x86?
actually does hk use x86 or x64
thats what ive been doing literally all day
i cant
Then search the nail class
In herococontroller class check charm update function
And look for what happens if charm 13 or 18 is equipped
it multplies this.scale.x and this.scale.y by different amounts
but i cant find the original variable
Wdym original variable?
like where they assign the value that they muiltiply it by
Could you screenshot it
NailSlash
Maybe you could on hook this function
and change the x and y?
Yea
Like
On.NailSlash.StartSlash += newfun
And in new fun
{
// Change local scale
Orig(self)
}
i dont see its details in the apidocks for it
so what do i pass in?
so how am i changing the x and y
This
where is self defined?
Doing orig(self) in the end is basically calling the original function
You need to do this if you don't wanna edit the function code
If you wanna edit it completely don't call orig(self)
No
what is orig?
This
I have a decent bit of knowledge but not alot of c# know how
That's all what you have to do with orig tbh
Think if it as the next method in the hook chain is passed in and you need to call it with either the parameters provided or your own stuff, if no other hooks are there it’s the original method
Me?
Why
Set the scale of the nail
So it would work 
I’ve already done it in a mod
It’s on GitHub
so what method am i passing into what method
?
In your hook, orig is passed in as sort of the next method in the hook chain (ending with the original method, hence the name “orig”)
so im sandwiching a method between two copies of another method?
and in this case what method am i sandwiching inside what method
Basically think of on hooks like on demand modhooks if that makes sense
(Modhooks don’t have a orig parameter)
Kinda
By hooking/subscribing your method to StartSlash, your method is called instead of the original method, and you can call the original stuff, or the next method in the chain if there’s multiple hooks to that if you call orig(parameters)
so im putting my method in the middle of the origional?
and whats the difference between an onhook and a modhook
No at the beginning, before it’s called unless another mod hooks the same method after your mod hooks it
Modhooks => manually made hooks, most can also be found as a on hook (ex: HeroUpdateHook, On.HeroController.Update)
On hooks => mono mod hookgen (ignore this if you don’t know what it means) hooks generated for each method found in the unmodded assembly-csharp assembly
ill read that and be back if i need more help
ok yeah so should i use on.celeste or il.celeste?
ok wait i get it! so im replacing the origional function with itself plus my own stuff?
Use On.NailSlash.StartSlash
cause that worked
Self.gameObject.tranform
Were would I put that
In the on hook
Ok
I had just copied the game’s original format for the line
Thank you guys for the help! @vocal spire and @light zodiac you guys are awesome! I’ll prob be back tmrw asking for more help lol. But since there r no good coding tutorials for hk modding ig this is the only way
how do I install that to hollow knight?
there's a video tutorial in the modding api that's pretty decent, but a lot of stuff you kinda just have to figure out unfortunately


all the best mods are on 1.5 or being ported to 1.5 >:O
Hello Everyone
Path of aspid should be in 1.5
Option 2
would it be possible to program a hollow knight player ai
who could beat the pantheons or something like tas but with no human intervension
TAS?
u could but it wouldn't be very good at the game
It has already been done
There's a HK Knight AI mod?
Do you have a link, because ngl I'd love to see that in action
well TAS isn't AI
they specifically manipulate the rng to make sure the fights are the same every time
and then a human makes programs that input precise commands frame perfect
i tried to do what he did but it doesnt like Vector3
ignore that i just wasnt using unity engine
ok new issue so heres my code
private void NailSlash_StartSlash(On.NailSlash.orig_StartSlash orig, NailSlash self) { orig(self); self.gameObject.transform.localScale += new Vector3(self.scale.x * 20, self.scale.y * 20); }
just to see if it worked
and it didnt
the nail shouldve been huge and it was the normal size
do i need to call it somewhere?
nvrmnd figured it out
Yeah, the other player was asking about an AI, not a TAS. They then proceeded to describe what they were talking about as like TAS, but without the original human inputs that a TAS has.
What things do I need to have to start making custom mods for hollow knight? I'm interested in making stat changes and adding spells.
Some C# and Unity knowledge, a way to edit code (there's a mod template for Visual Studio in the pins so that might be a good place to start), and determination
Is there a video to help get started that I can use?
Not that I know of (but someone else probably knows better). There's API documentation in the pins and most of the mods have public repositories on GitHub if you want to get an idea of how things are done.
Most of what I learned was referencing those and just playing around with things to see what happened
I'm excited to say that 1.5 Enemy Randomizer had its first playtest. Bad news is that it was pretty buggy. Good news is that it was only about as buggy as 1.4 Enemy Randomizer was after I fixed a bunch of its issues 
It still needs a lot of work, but I'm feeling optimistic about its progress 
If you want, you can also join the dedicated modding server (there's a link in my "About" section).
There's a dedicated dev resources channel with a lot of useful info, and it's more active with people who may be able to answer questions that you have.
This may be a weird question, but:
I would like to make a mod that changes the entries in the hunter's journal and the charm names. How do i do that?
and when i finish the mod, how do i make the mod load on my steam?
If you answer, ping me!
If you work with the mod template and set the path to your Steam HK directory, it should compile your mod in the correct folder to load
And I've not used it but I think I heard Frogcore has a helper to make journal changes, so that might be something to look into
Does a language mod exist? I was thinking about wanting to translate the game into my native language (Dutch) but didn't know if such a mod already exists, and if not - does anyone have any idea on how to go about making it? since its just changing text i figure it shouldn't be too difficult but i have no clue
ModHooks.LanguageGetHook
LanguageSupport mod on scarab lets you add translations
@light zodiac can you explain IL. to me?
or if anyone else could
maybe @vocal spire
you were rly helpful before
Wdym?
That’s from an entirely different game
Celeste
im wrong lol
just ILs in general
I want to edit a specific value in a large function
I’m not really a good person to talk about that with, sorry. I know how to use that stuff but haven’t had enough experience to explain it well
ok
I cant use on and do orig(self) because the function assigns the variable in the middle of itself
It has a lot to do with the il code that can be viewed by switching from c# to il in dnspy when viewing the game’s code
You’ll 100% need to view that
could i use an on to edit that variable?
If it’s in the middle, either copy the method’s code and don’t call orig, otherwise I don’t think so
i tried copying but it got mad
it was underlining all of the things after this.
so yeah if anyone could explain IL hooks that would be great
yo are skin challenges still a thing
pretty sure yeah
You assume I knew 
If you show me what variable you wanna edit I could probably ||not|| figure it out
private void Dash() { this.AffectedByGravity(false); this.ResetHardLandingTimer(); bool flag = this.dash_timer > this.DASH_TIME; if (flag) { this.FinishedDashing(); } else { Vector2 vector = this.OrigDashVector(); vector = ModHooks.Instance.DashVelocityChange(vector); this.rb2d.velocity = vector; this.dash_timer += Time.deltaTime; } }
I want to edit the DASH_TIME variable
I cant find where its value is assigned in the code so my idea was to multiply it by something here
how do i edit constants?
Just hook On.HeroController.Start and edit it using reflection
reflection?
ReflectionHelper.SetField<HeroController,float>(self, "DASH_TIME", {new_float})
A way to edit/read private values
Self will only work if your using the hook (On.HeroController.Start)
i meant by this is DASH_TIME is treated as a constant by the game (as in its never changed) but its not defined as a const so we can edit it
Sorry, but i have no idea what you are talking about. I tried to look it up, but got no results. Could you paste a link of a dll file i could edit, or a link to a website thaat explains it better?
FrogCore is a library mod. You can find it from the modlinks file.
One of the features of it is to add journal entries, but idk if it has much documentation on it.
Thanks!
Uh, no lol
whoops
You'd need to make a full mod
is there like some template i can use
Not really
or should i look up a tutorial?
There's dev resources on the modding server, but the template that's there is mostly for having all the default references pre-made iirc
I'll try to figure out what that means
thanks for the help! (not sarcastic)
I'm not sure which part you don't know, so I'll try to break it down a bit:
- there's a dedicated hk modding server. you can find a link to it in my "About" section
- HK modding is done in C#, and the files for it need to reference a lot of specific other files in order to work, and then you have to export that as a
.dll
joined the server, thanks!
how the heck do i get started with the mod
so
i have the api
but idk what to do for writing it
wait a second radiance host has it
nvm
private void ConstantChange(On.HeroController.orig_Start orig, HeroController self) { orig(self); FieldInfo DT = ReflectionHelper.GetField(typeof(HeroController), "DASH_TIME", false); DT.SetValue(1000, orig); }
this is my code
but its doing nothing
perfect thx
idk what to download pls im legit clueless
If you’re trying to download the code, click code, download zip
this is for an example right?
ight so
i got shit sorted
i am now coding
whats the instance for equipping a charm again?
ghost msg moment
PlayerData.Instance.equippedCharm_x
Or if you want modhooks to be called (I suggest this)
PlayerData.Instance.GetBool("equippedCharm_x")
been thinking about making the HK a Waluigi skin through his spreadsheet, opinions? all I would have to do is get the appropriate software.
is there a main “tutorial/docs” on how to get into hk modding? it’s pretty overwhelming
?pins Check the pinned messages
1: Download the installer. (Checking you get the one that matches your HK patch.)
2: Extract the installer to your desktop.
3: Open the installer.
4: If your HK install is not in the default location, the installer will ask you where it is. Simply direct it to the folder that has "Hollow_knight_data" in it (NOT the Hollow Knight Data folder itself, the one that has that folder IN it)
5: Download the mods you want!
Check the pinned messages for more information - https://cdn.discordapp.com/attachments/187137504393035776/823796522751623168/unknown.png


