#archived-modding-development
1 messages · Page 537 of 1
like this?
do I need to add also using anything? it doesn't seem to work on it's own
Yes but no
You can add references via selecting files if you right click your project in the solution view and click add reference, no need to manage the text (you also probably need to save the file since you did it with text from the looks of it). Also using UnityEngine; will be needed for assetbundles and using System.something (probably System.IO) will be needed for streams
For On it will just work since On is a namespace
oh yeah, I forgot to save the file. I fixed the Assetbundle too, but can't find the correct dll for the system yet
🤷♂️ i'm working from modifying an example and it didn't have it
Could you screenshot your solution view
seems I had the correct dll, but I had to do using System.IO and NOT using System 🤔
Nvm about this btw
I thought one would include the other, like in python or something lol
tried just System because I couldn't find a System.IO.dll
One dll can contain multiple namespaces
wait, should I just add all .dll's? is there any drawbacks to that?
does utiny ripper not work in 1.5?
do i need to get rid of the red boxes while making customknight?
no
should, but afaik it shows which part is actual content in the spritesheet
@copper nacelle anything you ported the same way as ASCII camera, might not be ported correctly.
Mantis Gods on Scarab crashes HK, for same issue
wtf i literally tested it
No, but a program called AssetRipper does basically the same thing and works

This is the user's error from modlog
I can't check myself rn
But it had that same hardcoded path
Wot? That's the same path it have me, but I literally don't have any part of that path on my machine
Like, I don't have a home account at all
Ah
I cant code but got an idea for a troll mod, primal any radiance
?pins iirc there’s a link in the pins to it’s GitHub repo
Check the pinned messages for more information - https://cdn.discordapp.com/attachments/187137504393035776/823796522751623168/unknown.png
Nvm it is not in the pins
How can you use or download?
use
After downloading, open the exe file. Click file, open scene, then select a scene, then select something in the scene. Alternatively click open resources.assets instead
A scene = a room
I clicked open scene and it crashed ;-;
Also you probably clicked open file instead of another option which opened scenes since level is the name of the files
Is your game version 1.4.3.2 or 1.5
Did you select it?
yeah
You can view it’s ai now
Probably a state
yeah but idk what it does
Click on it
You don’t know what any of them do, neither do I
You can view the actions for the state, aka what it does
Most have self explanatory names
don't remember wandering husk running away
how do I like, get the current running scene? and then get objects from it
it's for a specific scene, so in theory I already know what the "object structure" or whatever is like. i'm just looking for the functions to actually access it
have yu used FSMView Avalonia?
yes, but only to view stuff
No, you do this in code at runtime after preloading the enemy, or you completely recreate it with code instead of Fsm actions
(Also my connection is bad so I might disappear)
alright imma read this comment repeatetly until I get it 
is zombie runner (wandering husk) AI in code version too?
Cuz I'd like to find it
fuck those tbh
In that case, how do I edit them?
It's like huh...
I don't even know what I don't know
what are the first steps to adding a new enemy?
crying
^
:)
crying is always the first step of programming
but what's after crying?
what's ck+ 🤔
wait what
is this like an AI programmer using your IEnumerator structure?
i was making something to manage enemies and adding them via code in Satchel , i do not do AI logic though that i leave to be implemented by the author currently
if you do make a nice thing for AI i can point people to it in Satchel too 
what's the hardest part in making an enemy/boss? attacking? reacting to the player? moving in the environment?
hardest is relative i guess
some people find the code hard
some find the creation of a good balanced fun enemy harder
does any of you use the playmaker thing?
sprites and design
i don't know if anyone does, you do end up modifying some FSMs using code ( as it's probably the easiest way to mod an enemy)
for me its the actual coding, if I only had to do the sprites them i'd love too
it'll be a project that includes tk2d and playmaker for people that want to experience the true tc workflow
I paid for it a while ago
gotcha i think i initially misunderstood
I added a sprite into the game but it shows up magenta/pink. that's a material thing, right? what should I set it to?
i was able to add sprite particles but I think I just got lucky on that one
ah, I had to get the sprite renderer and set the shader with sprite_renderer.materials[0].shader = Shader.Find("Sprites/Default");
looking to mod a boss, have not ever modded a boss before, vaguely familiar with unity and godot, advanced javascript dev, but wanting to learn c# by making some bosses
where do I start, I downloaded mod api, but there I can't find like any direction of where to begin
not looking to do anything crazy but just thought this might be a fun way to leanr c#
Is there a value in enemy GameObjects or elsewhere that denotes whether an enemy will give soul on hit?
you can read the game code by decompiling assembly csharp dll in hollow knight/hkdata/managed with something like dnspy or ilspy
with dnspy you can even make mods (non transferable but if you just want to screw around it's pretty good)
dnspy modding might not help you with the api but you can get familiar with the code with stuff like that
obviously I have no experience with hk mods tho: #archived-modding-development message
is there no docs or guide or anything for noobs like me on just how to do some basic mods
yw, glad I could help
me too!
actually I should read it too,
I've been meaning to do that
minor spelling mistake moment
there appears to be another api doc: https://hk-modding.github.io/api/api/index.html
yea that one I know about, but I needed a bit of a precursor first
Just a question because boredom
How are the pale court, test if teamwork, and sanctuary mods going?
Head to this server for the most up to date stuff. You want to be working on the latest patch at this point. The above information is out of date.
a lot of damage to enemies by certain damage sources (e.g. Flukenest flukes, Defender's Crest aura, Spore Shroom aura, Weaversong minions, Dreamshield collision, and Grimmchild projectiles) don't trigger HealthManager's TakeDamage function. Where can i override these damage amounts?
nope
hello
...are you there Bhar?
Dang it, I thought I could get by without it, but it seems I’m going to have to learn the intricacies of FSM
?pins
Check the pinned messages for more information - https://cdn.discordapp.com/attachments/187137504393035776/823796522751623168/unknown.png
the file did nothing
the thing I want to do but have no idea how to is changing the skin
know what file or something I have to click?
wha
why are you pinging the moderators
ahhhh
are you just looking to install mods? or make them
I thought mod for modding
install
sorry
How would I disable the effect for shaman stone? I can't use a GetBool hook because I need to know wheter it is equipped or not
so you want to disable effect of shaman stone but make it have new effect ?
i did something similar in smolknight using IL hooks, by changing the name of the playerdata float that the vanilla game requests
part where i change the name of the playerData thingy https://github.com/PrashantMohta/Smolknight/blob/master/SmolKnight/Patch/ILHooks.cs#L33-L52
part where i override the value
https://github.com/PrashantMohta/Smolknight/blob/master/SmolKnight/Patch/PlayerDataPatcher.cs#L25-L39
thanks
np
i used utiny ripper and ported the result to 1.5 and the game somehow "works". music plays, and there's particles, but I can't do any input. is there any way to use this for debugging or is it too broken and will only serve as a visual preview?
I did also try asset ripper but the scripts were too broken for it to ever compile. definitely happy that I at least have this to preview things moving
the hollow knight main menu graphic & interactable menu are different scenes
at least with runtime scene loading i just load the scene called exit to menu or something like that to get there
What all can you do in the multiplayer mod?
thanks mods
i am gonna close this pr
Sid now on modding dev duty, since 56 left
56 left?
yes
barges into modding-dev
posts scarab
refuses to elaborate further
leaves
Shouldn’t use that for play testing/stuff like that. Also pretty sure you can fix the scripts from asset ripper? Could you show the errors in the scripts?
it said 999+ errors lmao
Wha
Could you actually show an error?
my love is gone, imma leave as well
sad
u
:0


it's all errors like this. the scripts are very messed up
Well that needs to not decompile methods
Or at least decompile IEnumerators to be better read by c# compilers
If no one else will, I’ll see if I can rewrite part of AssetRipper for that
that'd be great in a general sense, but would there be any benefit for my case in fixing these when I already got the other one 'working'?
That’s stuff from 1.4, plus it might not update properly
1.5 has changed sprites, scripts and other stuff
What happened with 56?
gone
Does anyone know why? (No jokes please)
left
Does anyone know why? (No jokes please)
That's their business and I think its best not to interfere with it
Definitely true. I just find it wierd for such a prominent member of the community to suddenly leave without any message.
had the server muted before regardless
guess I’ll assault him in the monomod discord
Spitting straight facts
to the person who deleted their message: the part that i read
is there a resource on custom level creation?
yes
Oh, I re-read the pins and found it
nice
Just need to figure out how it works, since I'm looking to make custom levels in a different Unity game and I knew you guys had that stuff
thanks, that looks useful
How would I go about patching the spells sfm? That seems to be the only way to remove the shaman stone effect under certain circumstances
question, does RandomizerMod track non-randomized items at all? i made a hook for GiveItem but it's only for randomized items
for example i would like a way to know if a geo rock has been broken if the randomized geo rocks setting is false
You can check player data
By patching it like a normal fsm? If you don’t know how to do that yet I can
Every rock is tracked on player data. I'm sure there's a way you can check for it
I mean how do I get a reference to the FSM
You can either do HeroController.instance.gameObject.LocateMyFsm(“spell control”) or HeroController.instance.spellFSM
Ok. Thanks
flib to the rescue~
If you want to check when a geo rock is broken, I have some example code here https://github.com/flibber-hk/HollowKnight.Kronk/blob/main/Kronk/Counters/RockCount.cs
For any item not affected by rando, you'll have to come up with your own code for it
If you want to look in the save to see if a particular rock has been broken, you'll want the GeoRockData in the scenedata
uhh
mmmm I see
probably too much work for what it's worth, if i have to consider the other items/checks too
I would say so
If you're playing a randomizer game but with some vanilla pools (like vanilla relics or vanilla skills), those still go through GiveItem (it's any "standard" pool, minus stags, that this applies to)
(BTW if you, or anyone reading this, wanted to do this, this is some sample code except for PersistentBoolData rather than GeoRockData https://github.com/flibber-hk/HollowKnight.RandomizerMod/blob/98033e0075a64d3f6b87482df8954ace961ec6a4/RandomizerMod3.0/SceneChanges/BossRewardReplacement.cs#L138)
are geo rocks a subset of persistent bools?
No
The scenedata consists of three separate lists - one for PersistentBoolData, one for PersistentIntData and one for GeoRockData
But the FindMyState function has a separate overload for each type

well it's a start, I think for now i can try checking the state of everything in those three lists upon certain events
Uhh
I don't recommend that
The lists only get updated when the scene is changed objects get unloaded
ah...
Actually it might work for some objects, if they're actually destroyed rather than simply sitting there and only getting unloaded when the scene changes
So I have a reference to an SFM state. There is a setint action that I need. How would I get a reference to it? So I can change a value
Are you using Vasi?
Or just give me how to do it in vasi so I can yoink code
fsm.GetAction<ActionClass>("stateName", actionIndex).value = 5;
the same in vasi
also funny aside, RMM originally used a whole .cs to parse the helperlog.txt file to figure out if a randomized item was reachable, when it could all have been done as a one-liner:
Vasi's doesn't have to supply an index though
PlayMakerFSM spellControl = self.spellControl.Fsm.GetFsmGameObject("Fireball Top").Value.LocateMyFSM("Fireball Control");
SFCore.Utils.FsmUtil.GetState(spellControl, "Set Damage").GetAction<PlayerDataBoolTest>().boolName = "Fyremoth.equippedCharm_19";
This returns a error.
NullReferenceException: Object reference not set to an instance of an object
at SFCore.Utils.FsmUtil.GetState (PlayMakerFSM fsm, System.String stateName) [0x00000] in E:\Github_Projects\HollowKnightMods\SFCore\Util\FsmUtil.cs:59
at Fyremoth.Fyremoth.HCAwake (On.HeroController+orig_Awake orig, HeroController self) [0x0009d] in C:\Users\Erik de Vlaam\Desktop\Fyremoth\Fyremoth\Fyremoth.cs:275
at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.Hook<HeroController::Awake>?-86123648(HeroController)
Are you sure your state has the right name?
Like, capitalisation, spaces, question marks etc
spellControl then is null
dang
When are you running your code?
On.HeroController.Awake += HCAwake;
spellControl is apparently set in Start
ah
Well, I got it working. It just doesn't set the correct variable. The bool name is still just equipedCharm_19
I might try using an on hook and the name of the holding gameObject
Did you try to set the name before spell control is set or after?
Slight gui issue in Scarab, can't scroll further
Yeah. I already created an issue for it on github. But since 56 seems to have left I don't think it'll be adressed soon
tried both
where
apparently
So I wrote this code:
private void HCStart(On.HeroController.orig_Start orig, HeroController self)
{
PlayMakerFSM spellControl = HeroController.instance.gameObject.LocateMyFSM("Spell Control").Fsm.GetFsmGameObject("Fireball Top").Value.LocateMyFSM("Fireball Control");
PlayerDataBoolTest test = SFCore.Utils.FsmUtil.GetAction<PlayerDataBoolTest>(spellControl, "Set Damage", 3);
test.boolName = "Fyremoth.equippedCharm_19";
self.spellControl = spellControl;
orig(self);
spellControl = HeroController.instance.gameObject.LocateMyFSM("Spell Control").Fsm.GetFsmGameObject("Fireball Top").Value.LocateMyFSM("Fireball Control");
test = SFCore.Utils.FsmUtil.GetAction<PlayerDataBoolTest>(spellControl, "Set Damage", 3);
test.boolName = "Fyremoth.equippedCharm_19";
self.spellControl = spellControl;
}
And it does not work. Does anyone have any other suggestions on how to do this?
Does anybody know if realtimeSinceStartup and RealtimeSinceStartup interact with RNG at all, i.e could a different value for either of those change how many calls are made to the generator on any given frame?
It should give the correct value independent of everything
was that in reply to me or part of your message
to you
Wdym by the "correct value"
@primal latch I would suggest not doing it through the HeroController hook
On.PlayMakerFSM.OnEnable += ...;
private void ...(... orig, ... self)
{
orig(self);
if (self.FsmName == "Fireball Control" && self.gameObject.name.Startswith("Fireball Top")
{
...
}
}
Fireballs are kinda cursed
The correct time since startup
Yeah but this is for TAS stuff
im trying to sync RNG on room transitions
so in this case I have two separate TASes which take different amounts of time
but they go through the same room transition and I want them to sync there
I'm sorry, but I don't know
no worries
public bool IsGameplayScene()
{
this.UpdateSceneName();
return !this.IsNonGameplayScene();
}
// Token: 0x06000FF2 RID: 4082 RVA: 0x0004D474 File Offset: 0x0004B674
public bool IsNonGameplayScene()
{
this.UpdateSceneName();
return this.IsCinematicScene() || this.sceneName == "Knight Pickup" || this.sceneName == "Pre_Menu_Intro" || this.sceneName == "Menu_Title" || this.sceneName == "End_Credits" || this.sceneName == "Menu_Credits" || this.sceneName == "Cutscene_Boss_Door" || this.sceneName == "PermaDeath_Unlock" || this.sceneName == "GG_Unlock" || this.sceneName == "GG_End_Sequence" || this.sceneName == "End_Game_Completion" || this.sceneName == "BetaEnd" || this.sceneName == "PermaDeath" || this.sceneName == "GG_Entrance_Cutscene" || this.sceneName == "GG_Boss_Door_Entrance" || InGameCutsceneInfo.IsInCutscene;
}
Why is UpdateSceneName called in both functions? It only has to be called in IsNonGameplayScene right? Also: why is IsGamePlayScene a function? Can't they just invert the value of IsNonGameplayScene?
They could also change all the sceneName comparisons with a HashSet
Strong recommendation: don't ask "why" when it comes to TC code
true
why
my favourite letter, red
Hey just wondering, with little to no programming knowledge, what is possible to be done with hk modding?
Like would adding a spell require advanced knowledge or would a begginner be able to do it?
My expierence modding games is just with custom minecraft behaivior packs, but those are pretty easy to put together, especially since apps exist to do the json formatting for you.
I am interested in making a mod that balances things for hell mod (while keeping the huge difficulty additions). One thought is to make focusing have it's own spell (I say the lightbring mod does this) and to have deep focus buff it tremendously.
But I am unsure on wether I can with my little knowledge.
it's possible to install & run other people's mods,
like I'm fairly certain any way you're going to be making mods is going to involve coding
you can open up other projects and use logic to try and figure out what does what for simple stuff. I've been using HK mods to try to apply my very basic C# knowledge and made edits to multiple mods and created one of my own at this point.
Making a mod with its own new actions like new spells would likely require art.
Adding them in isn't so bad, it is more advanced than some other stuff. You can try to use existing code and edit it.
@tulip jewel please refrain from giving useless advice.
@serene dome The advice from TamiJo is very true. I’d recommend watching some videos on c# and start with creating some small mods. If you don’t want to do that you could also find some other mod developers to work together with.
Ok
anyone willing to help with modifying some existing sprite art? shouldn't be too difficult I think
Which sprites?
Do you happen to have a version of the background without the items?
no... but someone else might, I'll look in the meantime
I'm wondering if just adding a bit of extra glow around the items would help
Something like this?
yeah! maybe even a little more, since these icons will be fairly small
that's perfect thank you
awesome, I'll mention you are a contributor
my version of MapMod
Ohh nice
hmm, they are still kind of getting lost on the map, maybe the items need to be brighter instead
Definitely
Just a sec
thanks so much man
np
Can't take that little bit of glow off the key since that's how it was to start with
I think so, thanks a lot!!
Np!
Turns out that I messed up patching the nail damage. I check if the HitInstance is a nail attack. Not whether it is a nail art. So now nail arts deal the same damage as regular attacks. This has been so for at least 3 months. Now that I have learned about FSM’s I should probably patch them directly
You can see glass soul for how i did it
@opal crypt
Link: <#archived-modding-development message>
||Edit, I thought this was #modding-discussion Sorry
||
Edit 2: This may not work on 1.4.3.2. It was created before GodHome, so YMMV
Thanks
Just a suggestion for rando mod, cursed nail should randomize nail upgrades as well
|| Then again, early pure nail kinda op ||
That messes with logic and has been discussed multiple times
Oh
Do the rando mod will be on scarab?
It will also #modding-discussion
you the warden round these parts?
This doesn’t relate to modding?
hey what if i updated a mod AND changed its name
What did changing name affect?
i don't really know but i guess it still would display the old mod in modinstaller and won't update the mod
eh i guess i'll keep the old name
You could probably PR to have the old changed, no?
Or if it's just Scarab it has a new name for, then it doesn't really matter 
It wouldn't be the first mod to have a name change
Anybody here interested in helping me make an mmc modded boss fight?
would be interesting
we could make mmc actually difficult
with new attacks
dm me if interested
Sorry can't help
I'll give a few ideas such as you take 8x damage compared to normal damage
ferocious foes would like to know your location
It is not available for scarab
oof
It is only available for 1432.
where can i get that?
The pins of #archived-modding-help
Contains the installer and instructions on how to down patch
Did you look?
This channel isn't for help.
Please use #archived-modding-help if you have questions
Am I the only one who kind of misses 56?
DM them if you want to talk to them
or you just have him on your friend list
No. I thought about it, but I figured there is a reason why they left. It’s also not necessarily that I miss talking to him, it’s just that the modding community is not the same without him.
They are just such a core part of everything.
Silly questions:
I have used MMhooks in other modding but am really partial to harmonyX patching
Deos HK support harmonyX patches? Or only monomod detours? Looking at the template seems to function off mmhook detours is why i ask
Monomod is the only thing the modding api supports as far as I know
thanks a lot
i finally dont have to go through the struggle of looking up boss game object names
update
i dont know how i am going to deal with multiple boss enemies (such as sisters of battle)
maybe add together their hp or something?
add together prob good option
having an added together hp in combination with the seperate ones next to it would be epic
MODS
Does anyone want to help me in the coding aspect in making a new modded boss fight of Massive Moss Charger? If so then do dm me.
I want to make a normally jokingly easy boss into a fair-ly difficult fight that takes place over several phases
what mod is this?
Randomapmod
there isn't enough space to fit all boss hp into one line in the user popout (the panel that appears when you click on a username/profile picture in discord)
aw that's sad
i might do something like how many mantis lords/bosses you have defeated in the fight
i added most of the things i wanted to add
epic
i finished the update now and im working on the 1.5 version of it which shouldn't take too long
wait how do you implement global settings in 1.5
shouldn't it still work on 63
no, that's the problem
there are no changes but for some reason it needs to be specifically built for api 63
*to work with api 63
can i still get api 63 from nightly builds
<@&283547423706447872>
download and see
yeye
Yeah we got it
finally
after hours of waiting for visual studio to load
ah, i gotta add options too
Kool
very kool
vewy kwool
hold on
discord rich presence i think
cool
kool
Is there a doc or something similar somewhere listing the differences between 1.5 and 1.4.3.2 modding? I've been wanting to dip my toes back into it but I'm very lost.
there are a few breaking changes in 1.5
ol version is in radiance.host (1.4.3.2) while the new version is in https://hk-modding.github.io/api/ (1.5)
there is a new installer for 1.5 called scarab as well
Just off hand, the changes I can think of are:
- .NET Framework 4.7.2 instead of 3.5
- Modcommon (and SereCore) no longer exist
- Save/Global settings have changed (example https://github.com/hk-modding/api/blob/master/Examples/CustomSaveData/CustomSaveData.cs)
- Making menus is easier than before (docs https://hk-modding.github.io/api/articles/menu_api.html)
- Using modhooks means you have to do ModHooks.??? rather than ModHooks.instance.???
- The Get/Set player ??? hooks, and the LanguageGetHook, have changed (see https://hk-modding.github.io/api/api/Modding.ModHooks.html for info on the new hooks)
- The mapi is no longer being ILMerged, so it's made up of a bunch of files and you may have to reference more than just Assembly-CSharp (most notably you have to reference MMHOOK_Assembly-CSharp and/or MMHOOK_Playmaker to use On hooks)
- ReflectionHelper.GetAttr has changed to ReflectionHelper.GetField (same for SetField)
- If you're modifying FSMs without using a core library like Vasi then you have to modify transitions slightly differently
i loooooove menu api
Alright that clears things up a lot, thanks!
is there an existing public repo for what is to be RandomizerMod on 1.5 that I could look at, to prepare for porting myself?
You're probably looking for one of these:
https://github.com/homothetyhk/RandomizerMod
https://github.com/homothetyhk/HollowKnight.ItemChanger
I'm not sure there's too much in RandomizerMod that would be useful for porting RandoMapMod at the moment.
I'm interested in adding an option to disable screen shake for QoL on 1.4.3.2. I did something quick on the 1.5 source as a proof-of-concept, but I couldn't find the source for the 1.4 QoL. Where is that, and is it open to accepting changes?
ping me with reply plz 
@sage relic
Probably here: https://github.com/fifty-six/HollowKnight.QoL/tree/296bbfb9201c0bc032d3805299937de63acf3c69
Probably not accepting changes to 1.4 for obvious reasons, but you can ask 56 IG
My recommendation would be to make a separate mod - rando will be updated soonTM anyway by which point you probably won't need 1.4 any more, I imagine
I won't need 1.4 after both rando and plando are updated for 1.5
But I might go the separate mod route, thanks!
Oh right, plando, lmao
How would I check what enemy was spawned in the enable enemy hook?
according to https://radiance.host/apidocs/Hooks.html?highlight=enemy#onenableenemyhook the enemy is passed as a GameObject, you should be able to check with enemy.name
When will the new rando settings like cursed mask be available, like full release?
Most likely sometime in the near future.
Alright, can't wait!
did all mods break ? 😮
nah, public beta
alr


what's broken different this time
mhm
clearly the superior way
it's basically just some code restructuring
variables to properties, name changes, == null returns to != null
also some new fields in LightBlurredBackground to I assume make changing shader params from the component instead of directly from the material
also hero parent becomes null on hazard death
revolutionary
== null returns to != null
What does this mean, that they completely changed it from true to false?
instead of
if (flag == null)
{
return;
}
func();
if (flag != null)
{
func();
}

Is it definitely not a quirk of the decompiler? (Or mybe they just chnged a compiler setting or something)
Well, it probbly doesn't really matter anyway
so an if block instead of a guard clause
EDIT: v1.5.78.11833:
- Fixed background blur for Low and Medium options when using a screen resolution that is taller than 16:9
- Fixed Low and Medium background blur to have the same vibrancy as High
interesting... perhaps some new dev is working on this code and disagrees with the code style lmao
It can’t be a quirk of the decompiler. There is a specific op code in the c# intermediate language for not equal
hmm
Hi I want to get into creating mods with hollow knight can anyone point me in the right direction
i like this icon
we can try to help you in different ways depending on your experience with programming, how much do you have?
and more importantly what do you want to make?
@modern star i have very minor experience
right, and do you an idea for a mod you want to create?
imo easiest thing to do to start with is to clone an existing mod's repository and play around with what's already there, to learn how the different parts of the code work
This is the one I've been using:
https://media.discordapp.net/attachments/879133769070706698/886318961023668324/unknown.png
||Dung Defender is one of the only Scarabs in-game, afaik. I feel like there's another, but off-hand, I don't remember who.||
PlayerData.instance.MPCharge should include only the current soul you have in your main soul container, and not the reserve soul right?
I think this code is a good place to start if you want to see how an existing boss gets modified https://github.com/fifty-six/HollowKnight.Mantis-Gods
Creating an entirely new boss will be a lot of work
looks like it, MPCharge is main soul and MPReserve is vessel soul
i have a question, for two mods using the same hook what determines the order?
If the mods subscribe to the hook in Initialize, then it's load order (default to alphabetical, I think)
So if you want your code to run first, make your load priority lower than the other mod's and vice versa
Actually it works differently for On hooks - the way those work is that for the second subscriber, the orig parameter it gets access to represents the first subscriber (which gets access to the original method). So the second subscriber can choose to run its code before or after everything else happens
Right, but with the On hooks it still depends on the load order to determine who is the second subscriber?
Yes
Well, the order of the subscribers is, like, the order that the "On.Blah.Blah += Blah_Blah" lines execute
And if both those lines are in the respective mods' Initialize methods, then that order is load order
that makes sense, thanks
subscribe to ModHooks.HeroUpdateHook
like and subscribe
and comment "E"
hi where can i find the mod link to download
Why did I just read this as pogress
Alright guys. I asked in modding help and I'm sorry apparently I require someone with a bit more knowledge on the file parameters in the game. So the Hollow Point Glitch. The Fix featured in the pinned posting isn't fixing the issue. Heals are back to 33 from their old values, but I can also apparently heal at a rapid speed. I can get four heals off in the time it normally took two Quick Focus heals. With Quick Focus actually on it's coming out of the gate 0=100 within like 2-3s. What parameter in what file controls casting speed?
Is it even something normally exposed to the player?
Came here last of several stops so, please forgive the impudence. Been on a week long campaign on this hehe.
Could you see the save that was altered
send*
@naive crypt ^
Aye. My apologies. Didn't want to just drop it in. Had to step out. <3
how do i download the hollow point mod?
open pinned messages, download the mod installer
well i have that
Need the whole directory or just the user1.json?
@light zodiac @cedar hemlock
Thank you. Sorry for the weirdness. But just noticed a small % had the issue and all dead ended. Hehe. It's also easy just to enjoy it because it makes you pretty damn strong.
So might go largely unreported lol
Fast focusing? That’s a pretty known one (unless I’m misunderstanding)
does anyone have a preload for the grimmkin nightmare for me? Feel free to ping me
Check trial editor
I reverted to a backup so it's all good, I was just curious if that feature even had a config parameter in the json.
If not wonder how it even got modified. Haha...
🥴
How many of these are there
2
(There was a 3rd one sent right before I sent that)
I have a few suggestions for randomizer:
-Colloseum geo(basic enough, might want to have it give less geo, once that colloseum is completed once, it will revert back to geo)
-Godhome pins (basically, whenever a boss is defeated for the first time, it will drop an extra item,(for godhome doors) and to unlock the doors, you have to collect what I like to call “godhome pins”)
(Godhome pins are just to make Godhome ending more painful, doesn’t make much of an effect on other endings)
NPC rando would be awesome.
Anyways
Anyone want to help me make some interesting mods?
A new side quest, and a couple of new bosses?
I've made the idea and the designs of the bosses along with the side quest plot and lore
all I need is a good coder, because I. am terrible.
so do dm me
why do i see this in this channel so often lol
this chat isn't much active and i often visit here so i ping mods when i see em and sometimes mod pings pile up
for shop items, is it possible to have ShopItemStats.playerDataBoolName to reference something outside of PlayerData? How would I go about having my own bool value?
nvm I found it
The easiest way is to just use Modhooks to receive get/set calls for your custom string.
You can also see this ItemChanger class which edits the shop fsms for more extensive control over items, but it is probably overkill for most applications: https://github.com/homothetyhk/HollowKnight.ItemChanger/blob/master/ItemChanger/Locations/ShopLocation.cs
Guys I have a question, I'm going to attempt a rando run, is there some file In need to fix my game after ? Like the ak-47 mod or is it ok ?
that question is suited for #archived-modding-help
(and ak-47 will break your focus in your save file)
A Randomiser run can only be done on a new file, and you cannot open it without Rando installed or else it will break
where i
i
?
where is mod installer
sorry my back space broken
oh and wrong chat sorry
.
Are mods available on PS4?
no
Thanks.
they are only available on Windows, Mac and Linux at the moment.
technically
Mods as in the ModdingAPI that we use, are only for PC versions.
IIRC someone did manage to Mod a console one recently. They applied a custom skin
technically ps4 is linux
oh
i think
Aren't a lot of Console OS's based heavily on Linux? (Xbox is presumably based on Windows, as iirc it uses DirectX)
But being based on Linux wouldn't changed the fact that the game itself is built differently. Like, afaik, the "Voidheart Edition" is just different in-general.
Presumably never
does anyone know how to change fsm weights for an existing ( vanilla ) fsm
What do you mean, weights?
The probability of each event happening ig
If you mean one of the like send random event v3 actions (maybe also v2), action.weights[eventindex].Value = new weight
Why do they have SendRandomEventV2 and SendRandomEventV3
they wanted to skip doing all the work maybe? It does slightly contribute to how the ais function, so a lore video might need to be made on that ¯_(ツ)_/¯
Well seeing by the names, no?
Same idea? Yes. Same method? No.
Anyways imma stop using discord at 3am and force myself to sleep
Cya
Well, the tooltip attribute on both of them is the same
the OnEnter for v3 uses two flags
according to DnSpy
idk what that does to the overall function though
Yeah the code for v3 is more complicated (I was too lazy to understand what it's doing)
They use v2 at all?
V3 either includes an upper bound or lower bound to how many times a event can happen in a row (v2 includes the other bound)
I don't remember ever seeing it in use
How did I never notice it in hive knight 
merging on 1.4 modlinks hasn't been done in a while, anyone know what's going on or am I just impatient/missing something?
@modern star 1.4 mod development is being discouraged, so they're not really merging stuff on modlinks. If you have a final version of mapmod for 1.4 you could try pinging @unborn flicker (I think he has the ability to merge PRs); I guess it's a little awkward for something like randomapmod because rando is changing drastically so you can't really develop for it for 1.5 at the moment 😐
This sounds like a situation where alpha build sharing (if one exists) and collaboration between Dev's might be usefull
yeah I'm not doing any more changes to MapMod for 1.4 any more, I did actually DM homothety to confirm my PR (to which I got a reply), but maybe homothety's been busy lately
Yeah probably


Sorry about that! I do have write access, but I'm not really a contributor to the modinstaller, so I don't normally monitor it or merge pull requests. But since it seems quasi-abandoned, I went ahead and merged the map mod and debug mod updates that were pending.
hello
thanks a lot!

sir, this is modding dev, no spam channel
Do the mods work in "Windows 11"?
Probably, also wrong channel
hey real quick question, are ghost's horns included in its hitbox?
Hey, I'm trying to make a basic mod where the player has one mask, but there's one problem: The fury charm doesn't work. I did some testing in debug mod and I think the player has to take damage for the charm to activate. Can anyone help me out?
glass soul already changes masks to 1 (so you can use this as a reference)
if you want to change how fury works, just intercept that and change it to always active
There's also some code in rando that might help (Pimpas had to solve this problem for the recently added Cursed Mask setting)
https://github.com/homothetyhk/HollowKnight.ItemChanger/blob/master/ItemChanger/Modules/FixFury.cs
Perfect! Thanks
where in the hollow knight sprite rip is the dung spore shroom particle effect?
<@&283547423706447872>
Did the message get deleted or did you miss the ping by 17 hours
Message was deleted as I was typing the mod ping
does anyone want to help me playtest a MapMod for vanilla 1.5?
Me
I will if you need another. I try to give meaningful feedback when I test things
more maps, as if additionalmaps and satchel aren't enough
(/s)
🗺️
btw would possibly know why with additionalmaps 1.5, the custom maps don't show the second time you load a game?
i'd be happy to add compatibility if this is addressed, otherwise I might have a deeper look into your code to see why 
oh god
uh, i'll note that down, but i think i did test it (definetly tested it in 1.4.3.2 where i think it worked)
thanks! I'll have a look when I have time as well
speaking of issues with map mods I still don't know why inventory input gets disabled when manually calling GameManager.BeginSceneTransition
easy, just don't do that

(I have already been pranked by this bug lmao)
So I thought about a possible fix, which is to rename one of the duplicate named GameObjects + rename the GeoRockData, based on LocalPosition
... but they are goddamn geo rocks man, will anybody care 
FWIW they actually have different names, I think one of them is called Geo Rock and the other is called _Props/Geo Rock or something (i.e. its parent is _Props rather than having no parent) - that's how rando distinguishes them
Unfortunately the GeoRock component has no way to distinguish that 
ohhh right
yeah I think the SceneData only keeps record of one of these rocks (ie. one of them infinitely respawns when reentering the scene if the other one hasn't been broken)
Yeah, and breaking the other causes the first one to become broken even if it wasn't
I wonder if the SceneData entries change if the Geo Rock GameObjects are renamed?
If you rename the rock early enough, then I think so
I can't remember when the geo rock sets the parameters of the GeoRockData, but you'll have to rename it before then
I'll give GeoRock_OnEnable a go
yeah this works
GeoRock% players will ping you when they find out
Hopefully renaming the rock won't break rando
been away for a long while, feeling motivated
what's the current status of multiplayer? i heard someone else started working on a separate mod different from jngo's
which one is the one people are working on?
HKMP
so uh, the one that hasn't been updated since jun 2020? 😦
Last release was a month ago, so.. not the one that you found lol
thanks
do you mean quick map or inventory map? quick map just tested, loading into a save and directly trying quick map worked
inventory map also shows
Out of random curiosity, would it be possible to create a mod that just removes all the types of spider enemies?
asking for a friend who wont replay hk simply because of deepnest giving them anxiety
i think someone made a mod like this already
wait really
is there any way to find out? I couldn't find anything from googling
I wasn't sure which channel to ask in since im not really involved in modding myself besdies using the modding api to install some
yeah that's what comes up in my search too
thanks
do you know just by chance if theres a way to take the bg out of a specific area as well
im not sure if thats something that would have to be modded or you can just remove manually
so custom knight has a swapper feature to modify random sprites which may work out for you (just replace it with a transparent image), or you could make a mod to do so but either way it would be a manual process.
Ah ok ty 
Where is the most up to date version of the randomiser 1.5 version?
There's not been an official release (it's still got some bugs), but you can find the source quite well-hidden on Homothety's github
Ok. That is what I was looking for
im new to modding can someone help me with finding the sprite files for mods
im in hollow knight data but where is the sprites
ping me if you can help
The sprites aren't just raw files anywhere.
You can get them in the #art-discussion pins, or use GoDump to generate them yourself. Then use the swapper functionality of 1.5 Custom Knight to implement them (or use them for a stand-alone mod)
Be warned the ones from #art-discussion are from version 1.4.3.2 and some spritesheets were changed updating to 1.5 for some reason
Were more than just THK changed?
Iirc there was one, idk
waiting for 1.5 version of spritesheet zzz

For those interested, the Hollow Knight Modding Server has a new channel for information/development on VanillaMapMod on 1.5. Anyone can contribute!
#898429311294509096 message
Does shader graph work while modding?
<@&283547423706447872>
<@&283470606366801930>
hey guys, does anyone have any code that fixes that Lifeblood glitch in 1.4 where, for example, if you have 1 Lifeblood, and get hit for 2 damage, you take like 3 or 4 damage?
and if anyone does, would it fix instances where you have 2 Lifeblood and get hit for 3 damage and take more than 3, and so on?
ping or DM me if anyone does please
<@&283547423706447872>
@unborn flicker PR for MapModS update https://github.com/ricardosouzag/ModInstaller/pull/118 
does hollowknight modding use harmony?
why am I getting these errors when these are my references?
im on mac
wait
how do you even access those dlls on mac
ok I got it all working except I can't use any unity functions in the code
the namespace has nothing
I've tried every UnityEngine.dll under the sun
the .dll files in the Managed folder of your Hollow Knight folder can be used to resolve references
yeah I did that, they are referenced but dont work
can you show us a list of all the references you have added
the block ones were already there from the example mod
Im loading some from copied files and some from from a bootcamp version of windows cuz I actually am on mac
they both resolved the errors but I can't use like UnityEngine.Object
wait
I think im a genius
yeah I needed to do UnityEngine.CoreModule
they should really say that on the wiki
does anybody know how to get the actual values of fsm actions? they seem to be set to super random things that makes editing them in code a nightmare
No, it has its own ModdingApi that uses mono mod’s hook gen which is similar
Doesn’t harmony use monomod?
we’ll we don’t use harmony, we use hookgen which iirc is not used in harmony ¯_(ツ)_/¯
what's harmony
google harmony
What's your guys pipeline for getting content into the game
In the unity games I mod I like to make my game objects in the editor and export as assetbundle
Then in a mod load said assetbundle with your stuff
for some reason when I multiply a variable by 2 it becomes some massive number
anybody know where mod logs are?
I can't find it on mac
?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/```
Modlog is with your save files
ohhhh
thank you
hmm this isn't what I wanted tho
is there a place to see all the Debug.Log() or something similar? I've been using the Debug Mod but it has no scrollbar and I can't see everything I need
Player.log
Debug's in-game log doesn't get saved.
You can go into your modding API global settings and change the logging level to 0, which will give you significantly more info in your log though.
Unity Explorer hooks Unity logging to mod logging and it's made by a very cool dude
oh you're on 1.4
mhm
output_log.txt
neither of those files exist 
You’re checking in the save files path?
im searching in the unity.TeamCherry one
and ~/Library/Logs/Unity/ to get player.log
|| yes, i copied my message from modding help because i'm lazy||
to upgrade to 1.5 I would just need to retarget a different assembly-csharp dll right
You’d need some extra files that aren’t merged with it for hooks and some other stuff but that’s about it
Might need to rewrite some code
Also you’ll need to target .net framework 4.7.2 instead of 3.5
the way im doing it is im installing hollow knight on a windows bootcamp and then referencing those dlls
is there a better way
on mac
cuz its annoying to switch over if I need to change something
You already have them on Mac
where
Right click the hollow_knight.app file and click open package contents
Somewhere there
I searched everywhere there
They’re there
Otherwise the ModdingApi wouldn’t be possible on Mac without replacing hollow_knight.app
Plus mods are stored there
wait my computer was just stinky
thank you
wait wait
is unity explorer for 1.4? or just 1.5
I can't find it on either
Either of the mod installers? I don’t think it’s on them
Iirc there was a version made into a mod
It’s just installing BepInEx with the non api mod ver
It should be on scarab
ugh so complex Ill do this later
You should be able to just install it like any other mod
what is?
?
….the 1.5 mod installer
Unity explorer?
Isn’t that what you’ve mentioned?
wait
nope
lmao im stupid
so sorry
thats why I was confused
it wasn't coming up cuz I was on "Installled" 
hello. could anyone write some code that disables the "Withdraw" button on Millibelle the Banker, please? preferably for 1.4.3.2 but ill take anything
only disabling the "Withdraw" button, please. nothing else.
its a long story.
Deposit 1550g and that happens anyway
may I ask what for?
so basically, we are making a mod where enemies do extra damage and have extra health, but all of your Geo is multiplied, all of this depending on what you set in your settings. however, there is a glitch with the Geo multiply where say, for example, if the multiplier is set to 2x, if you deposit 50 geo, then withdraw 50 geo, youll get 100 geo back.
i dont want to bother you guys asking for a fix for this so i thought the quickest solution would be to just turn off "Withdraw"
well, if anyone is open to it i wouldnt mind, but i figure the quickest and simplest way to blanket fix would be disable Withdraw
plus its a "New Game Plus" modpack so like, banker being disabled would just be another challenge angle
i figure the easiest way to do it would be get some code that disables the "Withdraw" button, then make a statement saying "if geo multiply is anything but 1, activate this Withdraw Button Disable"
i also know very little about coding
Look in the scene dump pinned in this channel, go to the scene for the banker (Fungus3_35), and see if you can find the object that corresponds to the withdraw button
With any luck it's called withdraw or something
then just destroy it
but what if they dont use the Geo Multiplier? again, i dont know much about coding so idk what Scene Dump does
Look in the scene dump
Look in the pins, there's a zip file called scenes or something, the dump is just some txt files
It's not used to change anything, it's just so you can see what's in the scene without having to open the game
so when you're coding you can just look in there to figure out what you have to do
ohhh i see now
ill dig more into the game right now
i found "Bank Menu\Menu 1\Withdraw" and a bunch of FSM stuff after it, but i also found a bunch of stuff like "Bank Menu\Menu 1\Withdraw\Pointer L", "Bank Menu\Menu 1\Withdraw\Glow", etc etc, what do i do with this?
you need to find the corresponding game object called "withdraw" and disable it
something like GameObject.Find("Withdraw").SetActive(False);
but probably only do this when you are in the scene with Millibelle
edit: probably requires editing the corresponding FSM actually (see below)
hate to ask this, where do you find the mod installer?
That probably won’t do it since the function of the button and selecting it is probably handled in a different fsm
Prob in conversation control or smth
what tools do you use for modding? in VS code i can't see characters right
What do you mean? You can use any app that will let you code in C#. I don't think you can build using VS Code. I downloaded VS proper for that.
You can't just open a .dll
You need to download the source code, which is why you'll need proper VS
A .dll file is made up of many different .cs files.
You'll open a solution which will contain multiple .cs files to do different jobs for the mod
You can head to this discord which has a tonne of resources for this kind of thing
Including links to the github projects for lots of mods
Ok thanks
just how many hollow knight discords are there
for some reason some playmaker fsms dont have all the actions on them at first? Im doing a tree search on each spawned enemy through each fsm, state, and action but for some reason some states come up empty
for example, my code shows that the "idle" state for soul master has no actions when it first loads
im testing in the HOG if that makes a difference
I even tried waiting until "ActionsLoaded" is true
Well, I don’t think that soul master is able to be idle so why would that state have anything in it?
Did he really…… try to open a dll in visual studio?
I mean they did, yes
Because they are new to modding
It's not exactly a hard mistake to make 🤨
Fair point. It’s just a mistake I have never seen before
this made me want to check something
sad
Aseprite looks for certain file headers to identify the image. Visual studio is a glorified text editor. It will open any file you give it
looks for certain file headers to identify the image
yeah, sadly, most image editors don't like opening random file types
I checked the fsm and the idle is whenever it just floats between attacks
ok I fixed that lmao
does anybody know how projectiles work? Are there projectile scripts? how many different types are there?
Iirc they are just gameobjects with DamageHero, Rigidbody2D, some collider, and rendering components and have their velocity set by the fsm that spawns it. Some probably also have their own fsms. Anything near enemies that isn’t related to health, hit effects, or death effects is probably in a fsm
fuck fsm
all my homies hate fsm
thank you tho
this game is a pain to mod because TC added like 10000 things and everything is coded differently
PaintBullet is one of the few competently implemented projectiles
Is there any way to modify a member of an existing FSM such as boolName in this scenario?
Team Cherry has just released a new patch. Does this mean that the mods are not going to work again?? You will have to update the mods again??
mods are now in public beta channel 
- Wrong channel. Use #modding-discussion or #archived-modding-help 2. This is a minor update. Except for a few cases everything should continue working when you install the new modding api
"DebugMod" and "InfiniteNotches" both work with the new patch. Those are the only mods I use so I don't know about the other mods.
in which namespace PlayMakerFSM class is?
i already included HutongGames.PlayMaker, HutongGames.PlayMaker.Actions, and ModCommon.Util
cool so mods aren't dead
Did you add a reference to PlayMaker.dll?
is there a gameobject with the fsm that defines whether the scene is a dream or not
(if so what is it)
Idk about fsm, but have you seen hk’s SceneManager?
no

Where are you finding this?
i never realized godump existed so i made myself a fsm dumping mod
This isn’t a fsm, it’s a component
OH
alright 👍
I have a request, can you make a mod where we fight the God Tamer without the beast, and replace the beast with 2 Watcher Knights.
Watcher tamer
What kind of maniac are you?
Watcher tamer.
Just….. no
Mod request: Replace every enemy in the game (including bosses) with primal aspids
Watcher Tamer
Collector but with 100% chance of spawning a Primal Aspid in a jar.
In addition to that, make a 33% chance of spawning a double Primal Aspids in a jar.
Pretty sure that exists
Not sure where though
What’s wrong? Also, let’s move to #modding-discussion
<@&283547423706447872>
Thanks
So, I tried to produce my own Custom Knight skin over the last month, and I have realized I can't make sprites for shit
My Super Ghost Deluxe spritesheet wasn't worth continuing
@scarlet cypress wrong channel. Use #modding-discussion for this since this isn’t related to mod development
nevermind, there was a scam link/ip grabber here but it was removed, ty mods 



