#archived-modding-development
1 messages Ā· Page 535 of 1
yea, looks like it
So something like if (ModHooks.GetMod("theothermodname") is Mod _) would be a good way to reference another mod without throwing if that mod isn't installed?
Are mods made in Unity? I'm just browsing through the text at https://radiance.host/apidocs/Getting-Started.html and am trying to get a basic understanding.
C#, but some custom content (like scenes) are made in unity, then loaded via the mod (c#)
So it's just a C# script? Wouldn't that just be a glorified text document.
mods are dll files, which get loaded by the mapi, then the mod does its stuff. Like loading a unity assetbundle to make custom content available
And suddenly there are at least 3 more terms I don't know and I am reminded just how annoying ignorance is.
so,
you have an IDE (programming software, like Visual Studio, JetBrains Rider or something). You make a project in that IDE, that project will be the mod, with its C#-Scripts. Compiling that gives a DLL file, which in turn is put into the mods folder and loaded by the modding api during gameplay
So a dll file is the finished thing like how when you finish a making something in unity it all get's bundled into a single exe file?
yes
Ok, so all I would need to know is the proper terms to use to tell things what to do and how to structure it. So basically everything I don't know. 
If only there was a modding tutorial on getting started
If only.
Is it best to avoid having something get called/ran every frame if you can help it? I would assume that would take up resources.
yes
So if I'm not adding any new assets and just want certain things to happen when the player does a thing would that just be a single C# script/file?
basically, but compiled to a dll of course
Ok, thanks. Time to read a bunch of text and find out in a couple hours that my supposedly simple idea is actually impossible.
I have Visual Studio open but I can't seem to find how to make a new C# project. Is there something special I have to do.
I think I might have not had C# assets or tools downloaded. So I am grabbing whatever C# things were available from the installer and I'll see if that does anything.
Other way around, most of the time it turns out to be shockingly easy
That's good to here.
Ok, I may have ended up deleting my entire Visual Studio installation.
_ _
This is probably the closest someone will ever get to "Instructions unclear, accidentally deleted computer."
That's taking up too much space anyway.
Decided to reset my computer and reinstall and it's now going through fixing protocols. 
This is gonna take awhile.
Well I guess I can spend this time reading up on hooks and whatnot.
has anyone made a nail upgrade randomizer mod?
If I wanted to do something with Soul Totems would SlashHitHook be what I need?
oh god, fuck soul totems
That's a strong reaction. Are they really that bad?
you have to know a bit to make them work initially
if you want the source of the totem thing i made the other day
What if I just want something to happen when I hit one but not necessarily do anything with the Totem itself? Also I'm just now realizing it would help if I say what I'm wanting to do. Then the experts could tell me how feasible it is.
Which one is that? There was 4 versions iirc.
the one that makes it 1 orb that fuels 200 mp
Ah. The best version.
Basically my idea is to make PoP maps less tedious. So when the player hits a PoP totem specifically it will set them to full soul and full hp. I was also thinking of making it warp the soul orbs directly to the player to make normal totems less annoying too. Would also help with lag if it spawns 50 for example. At least I would think it would lower lag.
making inf soul totems only to have full soul: easy
directly to the player: would maybe only need to replicate what the SoulOrb class does
so all in all: you prob only need to tinker with the PlayMakerFSMs on soul totems (which the above source code already does, so you can take it as an example)
the additional custom soul orb class it contains shouldn't be needed if you want to go the spawn-50-orbs-route
I was just using the 50 orbs as an example for if you're using it with anther mod. I was trying to think of a way to remove the lag issue of having a ton of orbs for people with worse pcs.
Also just is faster for casual play.
What about the Full HP part? Would that be difficult/complex?
you'd only have to replicate what the SoulOrb class and the bench FSM do for soul/health increase respectively
Oh, so I could just take or remake their code and just give it a new activation requirement. ie. Hitting a totem?
the way i'd do it is look what they do and change the totem FSM to do that instead of having it spawn orbs
That doesn't sound complicated.
yet
There's the catch. I was wondering when it would appear.
Probably slightly harder idea. Making it check if the player is able to focus and then not giving them full hp if they can't. This part is mainly so I can use this in Rando without cheating. Well, cheating more.
My first guess is it depends on how Focus is being disabled.
i was about to say that that's simple, but the game itself always assumes that you have the focus ability
Simply call the CanFocus function to check if the player can focus
That's a thing? I guess the player can't focus midair so they would need a check.
You can use dnspy to see what TCās code for that function is
Wdym?
What's a dnspy?
What do you mean wdym
should've said wdym wdym
there is no canFocus playerdata bool and the herocontroller canFocus will definetly return false
Like how would calling herocontroller.canfocus show if rando is blocking healing or not
Well, HeroController canfocus will return true if the player can focus and rando hasnāt blocked it
we're talking about the timeframe a soul totem is being hit, during the attack, canFocus will 100% return false
Could I set the code to wait half a second before running?
are there any good tutorials for beginners on setting up mod development? I'm specifically trying to make a mod that would alter spells and nail arts
Thatās fair - in that case, simply call the canfocus function earlier and cache the value or something
Or maybe somehow try to get the RandomizerMod.Instance.Settings.GetBool(name: "canFocus")) value
You could do that too
I would prefer it to not be dependent on the code of another mod. Don't want the chance of anything breaking that isn't my fault.
I mean If your building something around rando you probably have to depend on its code
Rando was just the main example. Having it be universal would be optimal.
Or, even better, check if canfocus becomes true at any point in the next second or so
How much earlier?
That's a good idea. That way the only way it doesn't work is if you are pogoing for a while.
Or maybe give player 33 soul, call function, give back original soul amount
Probably
Can you just set player soul to max soul? Or do you have to do player soul + X?
You can set soul to max directly
That would make it compatible with higher than vanilla cap. Do I have to set Soul and mini vessel soul separately? In the save editor they are separate.
Downloading and installing take a long time.
55% installed. I feel like this should have finished a long time ago but I'm just gonna let it run through. I don't want to risk messing it up again.
So I just updated hk and installed the updated the modding api, got some mods working but whenever I load into a save it can't find a hero ("Couldn't find a Hero, make sure one exists in the scene." repeating in player.log) anyone else having this or know how to solve
Well, imma leave my pc running over night. Hopefully it finishes installing by the time I wake up.
Normal, also happens in boomer patch
This is because of preloading I think
boomer patch uses outputlog.txt
and
repeating in player.log
also
Does it matter which of these I choose?
Yes
If you're developing for HK 1.4, it has to be Framework 3.5
If you're developing for HK 1.5, it has to be Framework 4.7.2
yes, click back, choose class library (.net framework), then either 3.5 or 4.7.2 as above
You'll probably have to download something from the internet to be able to do either of them
Neither of which I have installed. sigh
should be possible to choose though
I went to the Individual Components download selection and it says I have ".NET Framework 3.5 development tools" & ".NET Framework 4.7.2 targeting pack".
Not .NET Framework 4.7.2 SDK though.
4.7.2 targeting pack is what I downloaded, IIRC
Should I just download all .NET things? Or would that not be a good idea.
Well, there shouldn't be any need to
If it matters on the installer it says I have Visual Studio Community 2019 16.11.1
One thing you could try is to simply find the github for any 1.5 mod, clone it through VS, and then VS will tell you what you're missing
Is all modding flowing (for lack of a better word) towards 1.5? So it wouldn't make much sense to make a mod for 1.4.
Yes
Ok
I mean you can still develop for 1.4 - for example it'd be quite hard to play rando on 1.5 right now - but eventually everything will be 1.5
Do you know of a 1.5 mod? I wouldn't know where to look.
https://github.com/SFGrenade?tab=repositories there are 1 or 2, maybe 20
https://github.com/hk-modding/modlinks/blob/main/ModLinks.xml for a few more, has gitlinks, so having the thing up until /release/... will give you the repo
What does benchwarpfix do?
When benchwarping into a scene without a bench, instead of softlock drops you into dirtmouth
How do you Benchwarp to a non bench?
When would that be necessary?
lots of times
people tried to benchwarp into colosseum trials
mainly easymode
If I have doorwarp, I want to be warping to a non-bench. Also if I warp to "set start" in rando
usually the game puts you at like -20k, 20k and one way is i think hazard respawn with debug, not sure how viable though as you can't pause the game, so that is a nice alternative
you'd need to have a keybind ready if you can't pause
Grenade? Why do you only have 7 followers on GitHub? This is a travesty.
5, i'm following 7
no worries
Would the most recent version of ToT be for 1.5? I have the HellMod from the Radiance website so I assume that's for 1.4
yes presumably to both
Idk why it didn't have the versions you said I need. ToT imported just fine.
Although there is a lot of red underlines.
casually gets spoiled about end game stuff by looking at code
oh yea, click onto the project on the left side, so it shows the contents of the .csproj file
then on line 15 you'd need to put the path to your modded 1.5 installation
Where?
when you click on the TestOfTeamwork on the right directly under the solution
VS, why is there no line numbers? 
Found line 15. "<HollowKnightRefs>E:/GOG/Hollow Knight 1.5 Modded/Hollow Knight_Data/Managed/</HollowKnightRefs>"
yes
the path in there should be where your actual managed folder of your modded installation is
I don't have a modded instillation of 1.5. Or even the 1.5 mod installer for that matter.
use this
I have 1.5.68 & 72 & 75 that I can unzip from my archive.
Do I need to compile the Nightly build myself? Because unlike the 1.4 version there is no .exe
Wait
nevermind. I found the Read Me
it's the modding api itself, copy paste your .75 install, overwrite some dll files with the ones from the nightly build and you have a modded 1.5 install
So does the mod installer (and the mods folder by extension) connect to all modded instances?
i have no idea what you mean with that
the installer does not suppport 1.5 in any way
Forget about the modinstaller, if you're developing mods then you're probably computer-literate enough not to need it
Where would I put the 1.5 mods? Is there a 1.5 installer?
oh, manually move them in the mods folder for that installation
Oh. I'm dumb.
but they have to be in a subfolder, because new modinstaller will handle them that way
For some reason I thought the mods folder was in the Saves folder.
so like
Managed/Mods/{ModName}/{ModName}.dll
Yeah, I'm looking at my 1432 mods folder and I see my mistake.
I hope this is the case. Although I am, quite literally, jut getting started.
I copied the files over. Do I need to boot the game once for it to make necessary changes?
i don't think so, but just to make sure it works at all
the api icon you mean
ap-icon
i don't think tc would call their own code š
Why does it have gravy on it? I get the cherry but why gravey?
make sure you do a globalsetting wipe, mainly with customknight if you get it
How does one wipe global settings? I think I have done that before when it wouldn't let the 1.4 installer work. Same thing? Or would it be different because it's a different patch.
would be same thing
Do delete this folder?
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/```
I was getting 1.5 modding stuff so I can test my mod and make sure it's working properly. Not many mods are made for 1.5 yet so I would mostly be playing on 1.4 until they update.
I didn't realize there was actually a clone function. So I just downloaded ToT and opened it in VS. Imma try using the Clone function this time.
I might be missing something but I don't think it did anything. It made a repos folder with a ToT folder and files, but It doesn't seem to be loading anything in VS.
Wait, I had to select the file and not the folder.
What exactly was importing ToT supposed to help with again? Because I don't think it prompted me to download the missing versions.
If it successfully compiled on your computer, then you can make your own mods for sure
It let me open it and look at the text, but I didn't try to manually compile it myself.
I mean, notepad will let you open it and look at the text
I installed the other .net stuff and this is what it says I can use. I'm guessing I am missing something obvious if nobody else had this much trouble.
I'll probably just do 1.5 if 1.4 is gonna be left behind soon.
Ok, text editor is open. Time to read the Radiance page again and hope that explains what I need to do.
Is there an example mod for 1.5? ToT has a lot of stuff and I don't even know the basic structure yet. So trying to understand that first would probably be a bad idea.
Or even which file type to use for that matter.
There is the C# Project File and the Visual Studio Solution.
vs things, making a new file while the solution is selected will bring you the new project thing, while having basically anything else selected will give you the new file dialog, with class (or whatever it uses for c# script files)
Apologies, but I didn't really follow any of that.
on the right you have the solution explorer, you can right click basically anything that isn't the solution, then with new -> add new file, you can add classes
I'm not sure I am on the same page/window as you. I don't see something labeled Solution Explorer.
That appeared when I imported ToT. i don't think I saw it when I made a new project.
I just made a fresh project and this is what I see.
Maybe I have to enable it in preferences.
uh, either under view or window there should be an option to toggle the solution explorer
no need for that tbh
Also this is basically how I expected this to go. All of my road blocks are solely due to ignorance.
Would you say the 2 video tutorials on Radiance is good?
yes
Ok
is bad modding tutorial pt 1 (and presumable any other parts) still relevant/compatible for 1.5 modding?
What's the meaning of CheckCanSeeHero
What is it looking for
what does "seeing" the player mean
Enemy aggro range maybe.
maybe enemies can't see through walls? idk honestly
CheckCanSeeHero: No Eyes - False
I'm in colo so I can't imagine a time the enemy cant see the hero

If you're on the walls some of the grounded enemies don't path find towards you, I don't think.
if you're in the part with the platforms where the giant centipedes go from left to right, then if the enemies is on top, or lower than you they don't attack
I'm looking at shielded fools 
well F
The thin red ones?
Yep
Don't they just kinda wander if you go to the opposite wall and stay up there.
I checked their appearances, there is only one time that there is any platform other than the floor at the same time as them
I'll need to test, thanks 
Np
I once did Colo with Hiveblood being my source of healing. So I needed to find stall areas.
Fortunately I don't really need the canseehero thing
I just hoped it might make things easier
If you needed it wouldn't you know what it did?
Like I said, I don't need it
Right.
What I need are the other things in that state
It just seemed odd that the ai needed to check this bool to do anything
Maybe it's so they don't try and hit you through a wall even if your in aggro range.
Aight I got it
It checks if we're above their hitbox, like you said
If you're on the walls some of the grounded enemies don't path find towards you, I don't think.
This is what it causes
Neat
Yeah, they just start wandering around with a generic walker
once you slide down to the height of the top border of their detection hitbox, they suddenly turn around and start walking towards you
Should be
Well my pc decided to become a paperweight again. So I'm waiting on it to re boot.
btw mandar1jn, i bet a few of them won't even work
?????
What wonāt work?
a few of the mods, because of your comment
What comment?
Ah. That. Didnāt you test them,
I just commented because where you say a few I see a lot
i do test them, but i didn't yet check if they work for others as well
Ok
Can SlashHitHook be used to tell what specifically the nail hit?
Do I need to manually make a Mods folder for my 1.5 modded instance?
Can I do Instantiate(transform.Find("Attack Range").gameObject) to create a copy of a gameobject?
great, achievements broke again
good luck fixing them
that's easy
or is it something else you need to fix that caused them to break?
i just have to repair my gog installation, so my copied 1.5 modded (and vanilla) installations work again
Seems so
Cool
Also real nice of the tutorial to use keyboard shortcuts without saying what they are. 
So I'd say so
Which tutorial are you following?
yep, that did fix it
Any idea what this warning box thing means? I think it means that I don't know something again.
If you try to do Modhooks.Instance.???, instead do Modhooks.???
That fixed it, thanks.
Error: Expects ; and } at line 16
Me: deletes ; that's already there
Error: Expects ; at line 16
Me: Adds back ; in the same spot
No Errors

Modhooks.instance = 1.4
Mod hooks. = 1.5
Oh, what i would give for a 3rd monitor. Too many things, not enough screen space.
I improved the visuals.
How to add the Search window in dnSpy?
the space 
Found it
Anyone know what's wrong here? I have it typed how 56 does and added the references they said to. I also tried without Instance and it still says there is an error.
i
For these sorts of things, there's a cool trick that Visual Studio has. If you type HeroController. and then press tab, it'll give you a window where you can see the list of options of things that can come next
Next time please use more words so I understand you are giving me the answer i need.
But for 1.5 do I need to manually make the Mod folder? Because I currently don't have one.
instance
Thank you.
?
ig yes
Ok, and iirc you said the mod needs to be in a sub folder with the same name as the mod.
name of the folder doesn't really matter, just for easier manual management
Ok
Well, the Modding API is there now. Not my test mod though.
My mod does appear when not in the sub folder.
@fickle sparrow is the nightly build link pinned still the right one?
Ayy, mod works. I am officially a programmer.
Everything in this tutorial breaks due to formatting updates. 
https://hk-modding.github.io/api/ is more for 1.5, but is alot harder to understand
Yeah, that's probably not gonna be much help. Having the compilation of terms does nothing if i don't already know what those terms are.
Well, at least I'm figuring some things out.
Coding is a multi thousand piece puzzle and every piece fits together and they only tell you something is wrong after you try things. I hate this so much. But it's great if you actually know what your doing. Sadly that is not me.
Even reading through Grenades BetterTotems mod I can barely follow. Ugg.
I just realized this is simply pure ignorance. I have to have a tutorial/help to be able to do anything. Because I don't know anything.
what in the heavens below did you do
dw about getting all the pieces to fit immediately; do it in small runs to check every few new lines you add
I took the code from the tutorial and changed it. When the journal updates ie: something dies, it adds 200 soul to the player.
Ohhh
That explains it
It seems to not fill in the soul that was used for casting the spell that did the kill
It does. It's just a visual bug.
Same thing happens if you Dnail an enemy when Gwomb spawns.
Maybe I'll try making a couple small mods before I do things I actually want to do. For practice.
As dumb as it may sound I don't want to ask a bunch of questions as I feel that might get annoying. But I also know you don't learn anything by not asking questions.
i screw up my unity scene, built it and now i can't ctrl+z
of course not
so now i'm setting z values of like 300 gameobjects according to their spriterenderers layer order
Ouch, I hate when big losses like that happen.
Foggy Totem
Couldn't you use data from a prior build and just use that so you don't have to place everything manually again?
meh, i'll just do it now, but organized
before it was like "yea, this a bit more to the screen, this a bit behind"
One benefit to being forced to redo things is nearly every time it gets upgraded.
That's the other tip I'd give 
At some point, for me, I just slid into a project while doing random practice junk
And now I have a comfy colosseum mod I'm working on when all I was doing at the start was practicing things to mod crystal peaks
how would I replace spells with custom made spells?
I dont understand how to use spellControl
Crystal Peaks you say?
makes Lazer Miners shoot EGuardian beams
Use a fsmutilās extension methods to change what the states in the spell control fsm do
one day Iāll make that fsm modding tutorial
aight Ill look into that
ty
just got into hk modding so Im a bit confused on everything especially since the documentation is limited and there are few tutorials
Youāll probably benefit from looking at other modsā source code after reading the documentation
If there is public source code then itās probably on GitHub
For fsms I suggest looking at fsms in fsmviewer and looking at a boss mod that edits that fsm (excluding inferno king Grimm and corrupted kin since they completely recreate the boss)
Imma go now, if you need anything from me feel free to ping
Hello again. Is there anybody around who'd be willing/able to assist me with modifying the Bonfire mod?
I'm 80% certain I know where I need to make modification(between two separate areas, but w/e), but I don't know what exact numbers I'd need to change and what I'd need to change them to
also funny, using sorting layers, it's also possible to have a sprite be rendered in front of basically everything else from HK, yet have a z position of 900, making it also technically be behind everything
That is also how FPS games render guns
Might try and make a fast Millibelle mod.
Doesn't sound too complicated.
Player hit her
Check bank total
Is greater than 0?
If yes set player geo to player geo + (Bank total + 24)
Set bank total to 0
If no return
Why 24?
my achievements broke again, maybe because gog isn't signed in???
Yeah, if you launch the Galaxy install, without Galaxy being turned-on/signed in, then every time you bench it'll give you all Achievements.
best part: you can then repair your game and it does download something, despite nothing being changed according to git
(yes, i did git commit my entire hk installation for that)
Isn't the rng bonus 24 because a big geo can spawn as the last geo instead of a small geo?
I thought it was a flat increase of ~20%? Maybe that was bad info though. I've never cared enough to look into more.
milibelle spawns in waves of
6-10 small
1-5 medium
0-2 large
all at once before checking the bank total again
giving up to 84 extra
yes
I think this seems like a fairly good introductory project
Is there any tutorials about the general structure of the code and how/what can call things? Or would that just be a general C# tutorial and substitute HK "classes" or whatever the terms are.
I think it's easiest to look at example mods
Like, if you can find a mod that does something simple, and look at how it does it, then that would help
I'll see if I can find an example
So don't look at the code of Rando, got it.
I think this is a really good example mod for 1.4, I think we'll need to bully @unborn flicker into updating it for 1.5 though https://github.com/homothetyhk/HollowKnight.InfiniteNotches/blob/master/InfiniteNotches/InfiniteNotches.cs
casually updates it myself /j
millibelle payout is entirely FSM though
Wouldn't infinite Notches just be setting total Notches to the 32 bit integer limit?
Well, there's the number of notches in the save data, and the number of notches that the game sees whenever it asks for the total notch count
Look at the code
I'll do that after I get off work.
It's quite well-commented
Nice, I like me some good explanations.
Also thanks for the reminder. I should put comments in my code.
Maybe you're right and fsm modification isn't the best for an introductory project š¤·
FSM acronym meaning please.
I'll push an update in an hour or so.
Bully completed successfully.
I remember what it looks like, just didn't know if it had an actual name.
Is this the entirety of THK's ai? Or something else.
yes
Finite State Machine. It's a concept in theoretical computer science, but in practice FSM is used here to refer to an implementation by Playmaker for Unity.
Please show MMC for comparison. That would be hilarious.
But breaks over, chat later.
would it be crazy to use vs code to make hk mods?
No
oh my god that's insane
is there any documentation of ModCommon anywhere?
No tmk
Most stuff is pretty self explanatory though
At least the stuff usually used
what do you need modcommon for
no idea bc idk what it does, I'm just starting out and I'm curious what it can do
Itās a ācoreā/dependency mod. It has a bunch of useful features you can use in your mod if you reference it, it includes: the obligatory fsmutil, a bunch more useful stuff that idk since itās been a bit since Iāve used it since I have my own core mod
Most people have steered away from modcommon recently. IDK why
Because sfcore had the same and more?
looking good
Does anyone want to make a skin for the Grimmchild, one that makes it look exactly like a primal aspid? I tried, but I cannot get it figured out.
I know what I'm supposed to do, I just don't have the skills needed.
Have you updated the mods for version 1.5?
Mods are compatible with 1.5 now?
@crude wave
That's ridiculous. Why would you do such a stupid thing?
lmao
oh wait i can just
here is your api
you'll have to compile and get the mods for it yourself
oh and also install it yourself
gl
Primal aspid Grimmchild?
thats a thing already i think
somewhere there? cant remember
Ok yeah, it's called aspid child, just use custom knight and u have it
also we should continue to #modding-discussion
This is more complicated than I was anticipating. Mossy Control be wild.
rip that guy that just got banned
Does anyone know where the MP Cost variable is set in the Knight-Spell Control FSM? I've been hunting for a while but can't find it, I feel like it should be somewhere related to Spell Twister but can't see anything that refers to Spell Twister or charm 33
yeah I looked in ilspy too but can't find anything there either
charm effects - set spell cost
aha tysm
Is there something special I need to do to add a dependency to my mod? I want to use FsmUtil from SFCore or ModCommon
import?
I think saleh means add a
using NamespaceOfFsmUtil
Maybe since I think you do something with import as the equivalent in python?
ayy got some bug fixes for avalonia merged in finally
should fix some crashes on fsm viewer avalonia
Technically it existed once
Wait what
make it :)
Is this the start of a promo for your new MMC mod? Like when redfrog comes in to chat and starts explaining how limited ck is to promote ck+ 
So?
@fair rampart's MMC mod hasn't released yet either
And they're clearly trying to promote it in here
MMC mod. The Chargers form the moss into forms of other bosses and use their attacks. You deal enough damage to break the shell and then have to hurt the Chargers before they go back into the ground.
Or when they slam the ground shock waves appear.
Ngl, I kinda want AnyMMC now.
Or just stop the boss from taking knockback
just add the attack animations MEBI made for it, that would actually be cool
Question for any <@&328354344313421825> :
A dedicated HK modding server was created recently, in order to give mod devs more freedoms and to give non-devs more discussion options and easier-to-maintain resources.
Would it be alright if I posted an invite link here and/or in #modding-discussion ?
(We were trying to get more devs over first, before opening the server up fully, so get as much feedback as possible on it, but honestly we can still change things after more people show up)
nice
I have to be AFK for a bit, so I'm going to go ahead and post it here: **Hollow Knight Modding: ** https://discord.gg/VDsg3HmWuB
I think I've been around long enough for people to know that I'm posting in good faith lol.
If there is a different approach that's preferred, lmk and feel free to delete this.
I am pretty sure we're not allowed to advertise at all in this server

Yeah, without some form of permission/approval, I'm not intending on posting it outside of this channel (although, the only other place I was gonna post it was #modding-discussion). If it was a personal server or something, then I wouldn't even think about posting a link. I help run HKMP, but I don't post direct links to that server here.
The only reason I've posted this one, is because the intention of HK Modding is to literally act like an extension of this server/community- so that the modding aspects of HK aren't limits to a very small space, with very limited resources/controls. Essentially the same reason that HKSC exists.
I agree. Where we now have 2 channels dedicated to modding, in a seperate server we can have a seperate channel for getting started, the modding api, fsmās and seperate mod channels
No it was just a joke lol
i want join
i will join
please keep archives of all modding channels here if modding staffs are going to make that server official though 
casually downloads the entire channel history
Aww but I was super hyped for it
And I think a lot of people here were too
Can't you maybe try to make it??
Hi I'm following 56's mod development tutorial but I can't get the first Modhook to work
I need to write: "ModHooks.Instance.RecordKillForJournalHook += OnKill"
The 'OnKill' has a red squiggly line under it
Here's a screenshot:
You need to create a method called OnKill
idea: Mod where you get one extra lifeblood mask every time you hit something with your nail
downside, getting hit costs 4 of these lifeblood masks
hey just wondering using the custom knight mod that is already a thing could i make my own skin using just photoshop of the base sprite if i had the correct file format or something?
yeah you can edit straight onto the spritesheet
thanks
where can I find their dev tutorial?
I started looking into mods so I can make a parry mod, but i'm not sure where to start aside from just learning how to use unity as a whole
(well I originally wanted to download a parry mod, but there wasn't one so I decided to try to make one... parry atm doesn't really do anything aside from sound effects, because both parties still take damage if their hitbox is in the path of the weapon swing)
there's a parry mod that deals damage to every enemy on screen for 4x nail damage when you successfully parry
intended for use in p5 but it's a bit jank
curious to see if you could solve that
p5?
I'm curious to see if I can do a good job learning in the first place tho lol
but the parry mod I wanted to make was just a simple "parry actually blocks/negates damage"
and then also add settings for other special effects like, increasing the parry window, if you time it perfect it can give you back some soul, or maybe giving you bonus damage on your next attack
if I can learn how to make this, I wouldn't mind looking at the other parry mod
Tbh I'm having a hard time finding that parry mod
It's not in the Google drive, and I don't see it anywhere on Google search or mod websites. Is it in the mod installer? I haven't downloaded that yet
Afaik mod installer takes from the drive so it wont be
search it in this server
also, the modinstaller/google drive is the only maintained source for mods, so don't use nexus mods or whatever
I don't use Nexus mods after the ordeal they pulled off
I was just searching online on every source
There are other mod websites besides Nexus
Would this be it?
yes
but the parry mod I wanted to make was just a simple "parry actually blocks/negates damage"
pretty sure that's already the case, parrying gives you iframes
what you can do is making it more rewarding (like the rest of the ideas you listed)
It doesn't.
In that same line I explained that you still take damage if the enemy's weapon touches your hitbox
Just like the enemy takes damage if your weapon touches theirs
That is extremely not true
The iframes are likely not long enough for some attack animations is the issue
You can use iframes from a parry to phase through an enemy
If you manage to get the parry you do get iframes
I'm pretty sure that the portion of the attack animation that hits you, is only as long as the party animation for the guard dudes.
But if it's true that you get iframes, it seems to be wonky
Because like I said, it repeatedly doesn't work
It only works if my hitbox isn't in the path of their weapon swing (the white line)
At which point, it might as well not be a parry
i've managed to survive some battles on only the fact that parry'ing gave iframes
Maybe you have bias that you believe that's the case, but it was actually just you being lucky dodging
There are three people here confirming you get iframes
Or maybe parrying actually swirls for some bosses, but not some mobs
I'll make a video to show you that it doesn't
I have one that shows it does https://youtu.be/olQzU5Py2sA. Check out the NKG part of that vid
Hollow knight parry compilation 15 likes = part 2
00:00 - Intro
00:13 - Watcher Knights
01:04 - Troupe Master Grimm
01:12 - Nightmare King Grimm
01:24 - God Tamer
01:36 - Hive Knight
01:47 - Extras
01:56 - Outro
IDC how many people compare that it does, it's still wonky even if it does give you iframes. Hence why I want to make a mod for it
Parrying is an optimal strategy for getting through devouts in I believe low% nmg in Beast's Den
Why are they still taking damage in some of those parries?
do you mean the start?
Give me a time stamp
Sure there's several
and it possible the boss hit them, before the parry
Or after yeah, theres a part where he parrys WK and their next attack then hits him because parry iframes just arent on, idk, ddark level of brokenness
The enemy still takes damage from a parry if you hit the enemy
nvm, it was around 0:35 but there's no parry "ding" when it happens
so that doesn't count
and the ones at the start he wasn't parrying
but yeah I'll make a vid to show you my issue, which might just be related to some basic mobs
maybe parrying actually works for bosses
It also works for devouts
hello, so uhh how can i do in visual studio a button that install files?
wait i got the perfect clip let me find it
@fair rampart @proven cipher I used a cheat engine to keep my health at 7, and to change my nail damage to 1, so I would kill them slower. you can see a few times where I get the parry ding, but both sides still take damage. If I stand away far enough, then the parry can happen, but I'm already standing away from the attack so it might as well not happen. I tried parrying a bit later, but then the enemy just hit me before I could parry. If I parry too soon, the enemy still hits me and sometimes it wouldn't parry the attack.
maybe there's one successful parry in there, so I'd still want to make a mod to change the iframe time to something that feels more consistent
oh wait, i uploaded the wrong one
Could you try again but only use upslashes?
sure
HK has an issue with certain damage events where it refreshes them in a crap way
and the second video i'll have to upload to youtube, because it's too big for discord nitrro
(This is why Flukenest is broken)
.
maybe my mod can fix that, if that's the case
sorry I have no idea, I'm just learning how to use unity
https://cdn.discordapp.com/attachments/441521707967184896/831192173219020800/Hollow_Knight_2021-04-12_16-39-46_Trim.mp4
Parrying gives I frames @hushed otter
It could actually be a case that your iframes are being cancelled by the nail knockback
This is consistent, and with other bosses as well
I've already seen a video compilation
from the enemy?
The knockback you get when you hit things with your nail, I mean
If you notice in the WK video they are all upslashes
lemme try changing charms for that one that doesn't have knockback
the Iframes are tiny FYI so if u do get the parry but the hitbox still collides when over, you will get punished. thats why its a bit weird
and in your clip, you hit it too early
I have another one where it happens multiple times, regardless of when I hit it.
It's just wonky dude
It's not, is it with that specific enemy?
Test it with other enemies
I am pretty sure knockback has nothing to do with it
gimme a sec dude, trying to reply to tamijo
Also lets go to DMS since we are clogging this chat
Using the charm that prevents the knight from getting knocked back from their own attacks
I literally had a copy of Sly's Greatslash not erase itself once the animation was over and survived for ~20s in its hitbox by repeatedly parrying it
note that this enemy does 2 attacks after each other, meaning its attack hitbox exists longer, possibly longer than the IFrames you get
it still happens when parrying both
but the damage instance is happening on the first attack, not the second one
attack hitbox exists longer, possibly longer than the IFrames you get
Either way
the IFrames are small, otherwise i'd be overpowered
Parries are hard, and a mod making them better is a reasonable mod idea
But this does mean that your mod is just extending the iframes, rather than adding them, so it's important.
That's what I said at the start
we've already had this convo... someone else already showed a compilation of successful parries
Parrying exists, you'll just make it better
maybe that's just what i'd do then
increase the iframe to 0.3s or 0.4
or just give players a slider that lets them set it to whatever they'd want
BetterParries.globalsettings.JSON
ui 
1.4 
1.4 ui 
should I also try to optimize this? or maybe I could just add a 0.1s iframe at the start of an attack
It seems like that's not what's happening, so I wouldn't worry about it
well it could be related, because my pc is an old PC š
No one?
What exactly is the issue you're having?
Is with me?
Because if is with me I just want to know how do I do a button in visual studio that install files
what type of files, and where do you want to install them from?
and where do you want to install them to?
A folder with PNG into it
Mods custom knight folder
Unless I'm misunderstanding, you don't need visual studio for that?
no is like mod installer install mods in the mods folder i want to do like that like a skin installer or a skin installer its not useful
someone was already working on a modified modinstaller that installed skins
Perhaps you could look at that project ?
Iirc there were two seperate versions being worked on by two seperate people
Anyone know how many frames occur in between refresh?
Or does it not work like that for HK?
frames of what
and what do you mean refresh
the game physics runs at 50 Hz if that's what you mean
So every 0.02s*
My bad, I missed a zero
What is a ārefreshā
I'm probably wording it wrong, but basically the time interval in-between each time the game registers a new event
Do you mean like time between update cycles
Yeah
Then what mickely said if for physics update cycles
It would be for physics, yeah
If you want to get the time since the last physics update then use Time.fixedDeltaTime
Ty
<@&283547423706447872> channel spammer
edit: thanks mods
snek
Cool snek
Can i play online in 1.5?
No
I have a idea for a mod but idk how to do this idea, my idea is do like a mod that shows the damage like numbers not a health bar
If someone can help me
I gonna be happy
Something like this?
#archived-modding-development message
that is like, actually really cool
was that written for 1.4 or 1.5 btw?
Lets ask @worn eagle
That is really cool, actually
1.5


check 1.5 patch notes
If you got the game from steam then they are linked on the steam page for your game
This is not the channel, you should really use #hk-help
My bad i think i was in help channel
anyone knows how do i upload mods I created to the mod installer?
You make a pull request to the mod installer repo if itās for version 1.4.3.2
If for version 1.5 (doesnāt have a public mod installer yet) then make a pull request to the modlinks repo
Also if you donāt mind, what is this mod?
so true bestie xE
rip that guy

Yes, a lot
Nice
Its just one class should be fine
Also hereās the mod installer repo if you need it https://github.com/ricardosouzag/ModInstaller
Hereās the modlinks repo https://github.com/hk-modding/modlinks
Hi I'm trying to figure out how to mod hollow knight so I've downloaded the Hell Mod template, opened it in visual studio but heaps of the things are underlined in red
Is it the way i downlaoded vs or is there something else I'm doing wrong
I'll give you a screenshot:
you have to reference the modding api
to mod hk simply download dnspy & screw with things
ez
Yeah I did but it said the reference was invalid
you can't exactly distribute it at that point but oh well
Yeah I might do that if VS won't cooperate
but I want to try to do things properly first
like I just installed bepinex to get unity explorer running & made some screwey mods with dnspy to just run around & have fun
you know warp through stuff, fly, spam the nail
well unity explorer runs on bepinex which I don't think is used for hk modding but it works with (almost) all unity games
bepinex docs: https://docs.bepinex.dev/master/articles/user_guide/installation/index.html
unity explorer: https://github.com/sinai-dev/UnityExplorer
I really have not looked into it but there may be already existing equivilants with mods that use the api
Thanks
dnspy just hit edit method c#, change it, hit compile on the edit window, & then go to file & save module
nice
mod incompatibility I sleep
?
Do you mean I need to uninstall the mods I have at the moment
also how do the current mods work anyway?
do y'all use like harmony or something?
monomod
ty
@ember furnace I think you selected the wrong .net version
@ember furnace Here's a link to the new modding discord
If you're interested in making mods it will be easier to find resources/get help there
Thanks š
Do you know how I could fix that
If you got it from github, then it should be correct (assuming the game is on the right version)
What version of hollow knight is currently installed
@ember furnace
#879130756146954240 is where they are talking now
Ah ok
Not used to having a different server for that yet
Starting to not like the idea of it as much 
Is there a version of the fsm viewer that works on 1.5 and also has tabs?
1.5: avalonia
tabs: not yet

wait didnt fsmavalonia have tabs?
Actually yes
For a while you had to build it yourself for tabs but iirc there was a release or something
ah yes i was using source, that would explain it
i never updated since 1.5 support lol
Where can I get the source?
thank
wait this has tabs?
If I build
yep
oh yeah maybe I should make a release
nesquack did you also fix the path thingy in a newer commit ?
because on mac the folder is called just Data and not hollow_knight_Data
there's also upper case but all underscores as well
actually I might just brute force instead of checking the os
but gog windows 1.5 has both small with underscores and big without underscores
how can it have both simultaneously
don't ask me
small with underscores only has a config
aaaaaaaaaaaaaaa
ok I'll search for like resources.assets in
Hollow Knight_Data
hollow_knight_Data
Hollow_Knight_Data
Data
I swear there better not be two folders that both have resources
also also @floral blade Managed is in a weird place too right
lemme just pwd it for you
~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/Contents/Resources/Data/Managed
this is where it is
why is it like this
wdym?
I mean why is it like this
why did team cherry and unity team up to make my life hard
that idk but i really appreciate you dealing with the hard stuff for us though 
I don't know how this server takes to requests, but if someone could make a mod that removes the shade mechanic that would be pretty epic. I set up a multiplayer mod server with my friends, and pvp is annoying when you need to go find your shade constantly
Easy mode mod
is there any way to toggle all of the features but the shade thing
This version of the mod has a globalsettings file where you can toggle stuff on and off https://drive.google.com/file/d/1LmLOuPxRhS3Bla2abfm0NuptdW65vCTj/view?usp=sharing
eternal suffering
at least i get only one hollow_knight_Data folder in windows
hey im new on the server and this has probably already been answered but does anyone know how to get to the base game files for modding and stuff on a mac?
Does anyone have a zenitsu skin from demon slayer or dragon ball?
and also from JoJo's?
you could get them by just going into the hollow knight install folder iād assume
nah i tried that and it just leads to a shell program telling steam to launch the game
is this in steamapps/common/game?
naw this is in Desktop/Hollow Knight.app/Contents/MacOS/run.sh
Mac path for the files you want for modding
F mobile has betrayed me
fixed it
56 pls reopen my PR 
ah thanks thats it
how can i go about replacing the music with something else?
I mean, you could just mute the game in the internal settings and play something from your desktop
I think that is missing the point
custombgm
one of the many grenade mods
public static void OnSceneLoaded(Scene oldScene, Scene newScene)
{
switch (newScene.name)
{
case "Tutorial_01":
GameObject maul = Object.Instantiate(Assets.scarletMaulBundle.LoadAsset<GameObject>("Scarlet Maul"));
maul.FindGameObjectInChildren("collider").AddComponent<ScarletMaul.ScarletMaulTrigger>();
maul.FindGameObjectInChildren("ScriptHolder").AddComponent<ScarletMaul.ScarletMaulCutscene>();
maul.transform.position = new Vector3(115.5f, 31.5f);
Fyremoth.Instance.Log(maul.transform.position);
Fyremoth.Instance.Log(maul.activeSelf);
break;
}
}```
I have this code. The object spawns, but doesn't show up in game. The hook is `UnityEngine.SceneManagement.SceneManager.activeSceneChanged`
not even trying to prevent leaks lol
like you know what this is
that doesn't matter
Morning
setactive
F
but maul.activeSelf returns true
I see you are trying to add that
just tried it. It doesn't work
Hmmm
ty
If I have a text renderer, how would I give it the hollow knight font?
perpetua / noto serif
where are the assets files at
resources.assets sharedassets415.assets.resS resources.assets.resS sharedassets416.assets resources.resource sharedassets416.resource sharedassets0.assets sharedassets417.assets sharedassets0.assets.resS sharedassets417.assets.resS sharedassets0.resource
these?
they're at ~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/Contents/Resources/Data
so everything is in Contents/Resources/Data ?
assets files in Data and dlls in Data/Managed?
also I guess I should build a mac os version
hopefully it works, I know a lot of mac things won't build unless on a mac
yes
i have been running it directly from VS after editing the path right now because i dont fully understand how to pack the app so that you can double click it to run
you could prob just open a terminal and type dotnet FSMViewAvalonia.exe
in case it needs to be built on mac and you don't have access to one i can build a version for you
yes but more user friendly to have a double clickable app š
yeah I don't think I can do that besides like making a shortcut
I know there's a way to add the app to the Applications folder or whatever
but it's been years since I've dev'd on mac
i would just steal how MI2 does it tbh
what is mi2
and yeah there is .command file
dunno if it has to be executable or not
and it apparently opens in the user's home directory š
https://github.com/fifty-six/Modinstaller2
from what i can tell the make_app.py is what makes it a .app
how does mac know which file is the executable
i have no idea
i downloaded the osx-64 zip , what do i run?
either ./FSMViewAvalonia2 or dotnet FSMViewAvalonia2.dll
I swear
stupid visual studio
aight hold on it might just crash instantly
i have to individually allow the libs it seems
good user experience apple, thanks!
sudo xattr -r -d com.apple.quarantine /path/to/files
apparently an issue when dotnet is included with program
works!
ye no classdata.tpk
even with it
oh
oh yeah i am on the latest release (not public beta) if that helps
so 1.5 yes
yes
good there better not be no 1.6 I didn't know about
1.5.77 š„“
okay
i still get this You're missing classdata.tpk next to the executable. Please make sure it exists.
and if you type like ls -l classdata.tpk from the terminal it shows up
yes
apparently it dont work if i set the .command to executable & click it. but if i run from terminal it launches
what's the arrow thingy to the right ?
yeah that's normal
oh gotcha
oh the arrow
that's avalonia trying to let you scroll down but it's too small
if it's anything ui related it's always an unfixable avalonia issue
okay and i give it the Data folder or Managed?
but it does not allow me to select the .app
ahhhh what
bruh how am I supposed to do anything then
ok select Hollow Knight folder and let it crash
i can select things inside it
just select the Hollow Knight folder and let it crash
okay crashed
do you have an hkpath.txt file
yep
ok add the .app part to the end
lol
works
is it possible for the folder picker to also have option to select files ? (i suspect that might solve this)
no lol
I suppose I can check if on mac and switch to a file picker
or I can switch it to just select the Content folder inside of hollow_knight.app
aaaaaaa
the picker wont let me open the .app at all
ok updated release info: https://github.com/nesrak1/FSMViewAvalonia/releases/tag/v4
temporary workarounds
but yay tabs
I haven't had any issue with them yet personally
so should be more stable than the wpf version
btw we hit over 100 downloads yay š„³ š like subscribe and comment
woo hoo
interestingly i had to use /Users/<username>/Library/ instead of ~/Library/
using ~/Library/... got me this : ```
Unhandled exception. System.ArgumentNullException: Path cannot be null. (Parameter 'path')
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.IO.File.OpenRead(String path)
oh that's cuz that's bash resolving the path, forgot about that
ye
@jolly oriole pls explain
i start it and hit File -> open, to see which folder it searches in. And that shows me my 1.4.3.2 installation folder
ok, there are apparently differences between just open and the search for scene by name thing
so it may work correctly, i just can't differentiate if it really is gog 1.5 or my steam 1.5
file -> open is the last place you opened a file from file->open
it's not the path it finds from file -> open scene list
yea
ok, it does use the one used (though it didn't autogenerate the hkpath.txt for me)
now it does
So I have a coroutine (IEnumerator) containing this line of code: yield return new WaitForSecondsRealtime(2);, but after waiting for 1 minute nothing happends. Without this line everything works fine.
what do the lines after this do ?
Set text on a Text object
does it work without realtime?
Yes
i meant with yield return new WaitForSeconds(2);
does the object containing the coroutine get deleted before it can finish the coroutine?
afaik the only things stopping coroutines are destroying and maybe disabling gameobjects, so if either of those happens, that might be why
Hmā¦.
Nope. The scriptholder object is always active. But⦠why do I even use it? I can just attach the script to the parent
Nope. Still doesnāt work
hm :/
Even a delay like 0.1 doesnāt work
that does sound like the script gets destroyed
either the script or the go containing the text maybe ?
Iām sure the script doesnāt get destroyed. Itās attached to the root object. Destroying that would also remove the text from the screen but it stays on screen
I found the issue. I disabled the object calling the coroutine.
damn, than i appear to actually be correct for once lol
ah makes sense
You didnāt make it clear that it also happens if you disable the object calling the coroutine
If i want to make mods,where can i find the tutorialš§ š§
probably in the pins
I feel sorry but what is pinsš
?pins
Check the pinned messages for more information - https://cdn.discordapp.com/attachments/187137504393035776/823796522751623168/unknown.png
Oh, thanksš„³
How can i make other bosses' spell appear in this boss?For example, i want to make hive knight's roar appear in maga knight.š¤Ø
Make america grotesque again


ty