#archived-modding-development
1 messages Β· Page 34 of 1
i have no idea how to use it though. only of its existence
i think @buoyant obsidian has used it, @leaden hedge is it's author
It's too complicated for me
lol
I could figure out where stuff was and what was going on, but couldn't really apply it.
Has anyone managed to mess with health and damage values?
Yep
oh, yeah, lots of that stuff
Those are the main things I'd like to deal with
Are those values listen somewhere?
I found some basic stats for the player
Nothing about enemy health, though
Gradow#9473 could probably help you with that kind of stuff
Cool
his Bonfire mod changes enemy health to scale up with player level
Interesting
Testing my first mod now
Not responding
Either it will, or I did something wrong
Ay, it works
Now to update the mask drawing code
did you manage to make the FSM viewer work?
ok
if you need help with health and damage values, I might be able to help
KDT and Seanpr are the most qualified to do so though
Oh yeah, any idea where to find enemy health values?
yeah, it's in fsm
GameObject[] array = UnityEngine.Object.FindObjectsOfType<GameObject>();
for (int i = 0; i < array.Length; i++)
{
PlayMakerFSM playMakerFSM = FSMUtility.LocateFSM(array[i], "health_manager_enemy");
if (playMakerFSM != null)
{
FSMUtility.SetInt(playMakerFSM, "HP", value);
}
}```
sets is to "value"
Are we able to edit FSM?
Also, fairly unrelated, but anyone know where the HUD drawing code is?
afaik we can only edit FSM indirectly like this
Oh, FSM utility
also, if you aren't. I'd suggest using the modding api to mod
Might do that
in general, it makes life easier
What does it do?
basically instead of you having to edit Assembly-Csharp.dll, you make your own DLL and the api loads it
so then when a new release comes out, one of us will update the API and all other mods basically work
(minus things like having to account for new charms or fsm changes)
but otherwise, when a new release comes out, you have to reapply all your changes to assembly-csharp again
worst case - you do the same amount of work every time an update comes out
Oh, that's nice
best case - you do nothing
I'm fine with this for now because I'm not doing anything serious
Might use it later, though
Also, I'm confused as to where charm and upgrade code happens
i think kdt posted a "Example Mod" here a while back that has the basics.
charm is in playerdata
Analyzing things like nail damage tells me that it's only set in the new player setup code
gotCharm_#
and there is an equipped array
But not where the charm's effects are applied
I think that's uhm. HeroController.Attack or HeroController.DoAttack
looking at the api code, yeah, that seems right
charm's effects...
it depends
some are on HeroController.CharmUpdate
some on Attack and some on DoAttack
Oh wait
some on HeroDash
I have seen a few
and some are simply not on code, but only on FSM
But what about upgraded nails
there is no central place for all of them
?
Upgrading to a new nail should set nailDamage, right?
nailDamage is set in FSM to be 5+nailSmithUpgrades*4
you can just set nailDamage to something directly too
Lol
yup
like, most charms
we can
idk, i just know you can
FSM viewer is really helpful
I don't even know where it is, honestly
you can deal with them by trial and error, mostly
But does it allow modification or only viewing?
only vieweing
Where are the FSM files?
Oh, I see
FSM Viewer to understand them
and then you edit their behaviour indirectly in the code
it's ugly, but it works
finite state machine
finite graph with transitions
and transition rules
lemme see if I have any handy
I believe this is the FSM for sharpshadow
visualized in the Viewer
bonfire uses a few FSMs, but not too much
I believe rando and bossrush are the go to examples on how to abuse FSM
so, from that we get that the Sharp Shadow FSM has a damageDealt field
and in Blackmoth I use that knowledge here:
FSMUtility.LocateFSM(this.sharpShadow, "damages_enemy").FsmVariables.GetFsmInt("damageDealt").Value = this.dashDamage;```
Oh, I need to look more at FSMUtility
public void GetSharpShadow()
{
if (sharpShadow == null || sharpShadow.tag != "Sharp Shadow")
foreach (GameObject gameObject in Resources.FindObjectsOfTypeAll<GameObject>())
{
if (gameObject != null && gameObject.tag == "Sharp Shadow")
{
this.sharpShadow = gameObject;
break;
}
}
}```here's how I set the sharpShadow object
so, here's a quick rundown of why FSMs are hard to deal with:
- you have to figure out their objects, tags, names, fields and transitions in order to do anything with them
That makes sense
I'm going to try to make a serious mod tonight
Something more difficult than Glass Soul, maybe?
Either that or something easier than normal
make a mod exactly as difficult as the vanilla game
Replace all common enemies with bosses π
2x double damage double hp radiance with twice the spikes, lasers, and lances
nah just make the game 2x faster
Now I wanna make an x2 mod
do x1.5, 2 is too much imo
3.5x fury 
How about Wooden Soul?
Every time you die your max health reduces by one. If you die when you only have one max health, the run ends
how about no
Easier than Steel Soul, tougher than original, and it gets harder the worse you do
how is wood between steel and normal though
wooden soul would be like
every time you die your HP increases by one
I chose wood because it's something that can wear down over time
Considered ice, but that implies that it's fragile
i feel like the brittleness of the material correlates with the difficulty though
Yes
normal (whatever the heck that is), steel, glass
wood isn't brittle
unless it's very old
Exactly, that's why it's between normal and steel
Because you can die
Although wood isn't tougher than steel
But there really isn't a material that's both tougher than steel and also wears down
Wait, could be something like monolith soul
Strong, but worn over time
kevlar soul
primal aspids don't damage you but everything else is the same 
teflon soul
Lol
can't equip any charms
I considered doing that one, actually
How about void soul
You can't unequip any charms, but they still use notches, so choose wisely
And if you overcharm it's permanent
Backwards soul - start with full upgrades and lose them as you progress
how would that even work
I don't know but it's a stupid idea anyways
sounds like it'd hardlock everything
Yes
start with all charms and when you pick it up it removes it 
Gonna try it, but it will be a surprise
Radiance can be beat with just shadow dash and mantis claw
Mantis claw is needed to start the fight because shitty platforming placement
But there is a level 0 fight of radiance with just shadow dash
0 damage taken
I forget who but probably fireb0rn since he's psychotic
It was razhork
Playtime on that character went from 16 to 52 hours of purely attempting this. Also raised my blood pressure by too damn much. Edit: Shadow Dash is NEEDED fo...
Testing my horrible mod now
Needs fine-tuning, that's for sure
I think you all will like this when it's done
Which will be about 45 minutes from now
Or maybe less
maybe try polishing it for more than 2 hours
most mods that you see here have had dozens of hours of work and testing put into them
I'd do that for more of a serious one
The big difficulty here is figuring out the right slope for my model
Think I gotta do a quadratic
I missed solving quadratics
Wait, never mind
3-variable linear equation
No, this won't work
Because I may run into a case where some of my points are on opposite sides of the vertex
AAAAAH
I think I'll get geogebra and figure it out that way
nice and visual
yes
Not nearly as much as I wish I could
Im stuck in randomizer at the start...
Unlocked vengeful spirit. Got: fury, vengeful spirit, soul catch, dream nail, dreanshield, hornet 1,
Map shop, sly and salubra.
so, no dash/wings/claw/tear/ch?
Where is random seed saved?
Its the rnd.js ?
809107062
it's in modlog too
Its a json.
What is available?
How can I do mantis?
Ah
Oh he has vs
Yeah, you can get over to fungal
then that gets you leg eater, claw and dashmaster
Does shade skip works there too?
is it possible to get to baulders with just VS?
thought so
But any will work
Any video about the vs jump to fungus?
Seems a lot harder than mosquito skip equivalent.
OH it is
it is
Note to self: parentheses are important.
@rustic fossil fsms are a class that look kinda like this
fsm: //(HutongGames.PlayMakerFSM)
array of states: //(HutongGames.PlayMakerFSM.FSMState[])
state[0]: //(HutongGames.PlayMakerFSM.FSMState)<- this is just a holder for the below data
array of transitions //(HutongGames.PlayMaker.FsmTransition)<- this is an event system that listens for an event and changes state to another when it hears it
array of actions //(HutongGames.PlayMakerFSM.FsmStateAction[])<- abstract class thats casted to a single function encapsulated in a class (HutongGames.PlayMaker.Actions.?), like set velocity (HutongGames.PlayMaker.Actions.SetVelocity)
array of local variables //(HutongGames.PlayMakerFSM.FsmVariables[])<- abstract class thats casted to FsmInt, FsmString
state[1]: //(HutongGames.PlayMakerFSM.FSMState)
array of transitions //(HutongGames.PlayMaker.FsmTransition)
array of actions //(HutongGames.PlayMakerFSM.FsmStateAction[])
array of local variables //(HutongGames.PlayMakerFSM.FsmVariables[])
array of global variables: //(HutongGames.PlayMakerFSM.FsmVariables[])
thanks for respecting formatting discord 
And you can get to claw without dash?
yes
And thorns
True.
the less stuff it opens the better
Except if theres another random vs jump skip or sahde skip.
atleast you know where you have to go 
Can you do thorn with double jump?
you can do it just fireball 
Pfft. TAS only you can
Got claw from thorn. That was easy lol
modding api 1.2.2.1 doesn't seem to be working for me. it's not showing the mod list in the top left corner of the title screen.
Normally, claw is my last mandatory item.
What version do you have
1.3.1 randomizer
think he's talking to frenzied
The most recent MOD api wasnt put on the drive yet was it?
no, it's still experimental
but the latest working api is up on the drive
1.2.2.1-6
Okay. Well dash 6 is most recent in my mind. Lol
then, yes 
the bottom left corner says 1.2.2.1. the zip i downloaded for the modding api is called 1.2.2.1. idk where i would find out what the final dash number is.
Try downloading it from the drive again
That version only went on the drive like.... Yesterday
Or today
"recently"
downloading again gives me the same file
Where did you put it
i put Assembly-CSharp.dll from it at C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight\hollow_knight_Data\Managed\Assembly-CSharp.dll
i didn't extract any of the desktop.ini files. i assume those aren't required for the api to function 
Nah. Just need to replace the game's existing assembly dll
i renamed the existing Assembly-CSharp.dll to Assembly-CSharp_vanilla.dll and left it in the same directory. was that a mistake? 
probably
i also switched Steam into offline mode. is that necessary?
not really
Offline mode doesn't matter
i usually rename my vanilla to Assembly-CSharp.vanilla.dll, it could be that the _ causes the vanilla one to be loaded
or
something else is wrong entirely
post your output.txt + ModLog.txt (if it exists)
K, note that when I say I'm testing my mod, I don't mean making sure it's possible to finish
ok, i completely deleted the vanilla one.
Just that it works as intended
You can always get the vanilla one back by verifying files anyways
when i delete the modded .dll, the game doesn't boot, so i know the dll i'm giving it is being loaded and used.
can someone verify that they have the same file as me? md5sum? sha1sum? crc32? file size?
^someone for whom the api works
Will the api mod display version number even if no other mods are installed?
ok, i know what the bug
is. if you have a file handle open on ModLog.txt, then the API crashes on startup. That wasn't the case with the previous version of the modding api i was using.
so, now my workflow is to kill tail -f everytime i start hollow_knight.exe. ugh.
how do other people read the ModLog.txt output?
works fine in sublime text
Works fine in note pad
it's because the old API opened the file every time you logged
notepad doesnt real time update
which caused weird concurrency issues with stuff like player data tracker which has threaded calls
shrugs I don't need real time updates
incidentally, if you tail -F on output_log.txt, it will prevent that file from being created entirely
notepad++ works too, next time you click into it it says "hey this file changed, reload?"
gotta love win32 programming.
eh, i might be able to tell the file handle thing to ignore open reads, but my guess is the issue is that WSIL isn't perfect
tail -f worked without the game losing focus, so any editor with a "this file has changed" prompt is not as useful.
@buoyant wasp now that the file is open constantly, is it being flushed on every call to ModLog?
it flushes whenever streamwriter decides it needs to flush
but in general, probably
it doesn't seem to be a performance issue
we were logging stuff every .02 seconds without issue when i was testing stuff in the more saves mod
i have a dream of using a bidirectional terminal of some kind (telnet?) in a mod. maybe it's time to look into implementing that 
do we know what was causing @young walrus lag on the save file screen?
ok.
woah. is the ModLog.txt in UTF-16? 
it is.... i didn't know notepad could read that.
pretty sure it supports JP text atleast
UTF-8 supports everything, and it's ascii compatible. I think the only compelling usecase for UTF-16 is when your text file is mostly chinese/japanese.
but whatever. i can still read this; it was just a surprise.
in .net it's "Unicode"
don't remember what the default of unicode is
could switch it to UTF8
Unicode is not an encoding. if Microsoft is calling something Unicode or ANSI, they are liars. which they are.
i just used whatever it was before i started working on it
using (StreamWriter writer = new StreamWriter(file, Encoding.Unicode))
nice.
well, it's just like what they do with an int
an int isn't an int, it's a int32
so probably Encoding.Unicode is just an alias for something else
I have no care one way or another what format it is
yeah. Unicode means utf16 according to the docs
i guess i'm the only one who cares.
it's one of those "does it break something currently" things π
utf8 is the end all of character encodings.
and yet, they also did UTF7, UTF16 and UTF32
everyone knows CP932 is the best encoding 
and a bunch of UTF8 variants
@leaden hedge does that have box drawing characters? 
if it were up to me, we'd all be using LF line endings, soft tabs, and Linux. so take what I want with a grain of salt 
using (StreamWriter writer = new StreamWriter(file, new UTF8Encoding(false)))
Alright, I'm calling this done. Uploading now.
I won't say what it does because it'll be a cool surprise, but I will say 2 things
- It affects the entire experience of the game. (It's a gimmick)
Surprise mods? I like that idea
- Those good at the game might not notice what it does for awhile
Oh is it just wood?
And it's called the Burden Mod
lets see, a surprise mod dll with no source and nothing else. yeah, this seems like a good idea to put in
Guys you have the wrong idea
Look at point 2.
It encrypts some of your hard drive every time you get hit
It's a burden because it bricks your pc
good players might not even notice until they get hit quite a few times
and can't open apps
Source?
The source is literally in the file
Just dnSpy
That's the best I can do
Nobody is going to search the entirety of the assembly for changes
And it would be a pain in the ass to export the code to a project and check changes programatically
You really think I'd make the .dll malware?
Your Discord avatar is Chad
I don't know what you would do
Chad always wants to fuck me over
I feel like there would be easier ways to get malware on your computer than modding it into Hollow Knight when many methods can't even be edited in anything but IL
Also, I've been here for a bit
Talk mostly in #hk-help
A bit in #hk-discussion
theres only one thing you'll ever need to edit with IL
and thats stuff that has
UnityEngine.SceneManagement.SceneManager.sceneLoaded
Ah, nice
Any event, not just that
See, I come from Rain World modding
Like 60% of the code doesn't work in C#
I only started modding Hollow Knight tonight
But it was easy because it's exactly the same concept as Rain World modding
Didn't use the API because I didn't know about it when I started
But if you're legit worried that it would be malware I can DM you with what it does
I just think it's more interesting if you don't know what to expect
Heck, I could even screenshot/paste the one method that's changed
You just had to make a first impression with a cute anime avatar
Probably
btw, @leaden hedge - I think there is an object/memory leak in the more saves mod
Lol, this one is a recent avatar, came from a joke
or boss rush, currently trying to figure out which one
So is anyone going to believe me and be willing to try it, or do I have to spoil the surprise and say right here what it does?
I wouldn't install a mystery mod without knowing what it does. Seems like a waste of my time
Then I wouldn't bother.
i doubt you'll find any takers
its something to with being in acid
oh I see I made a mistake with the filter 
Seems like a larger waste of time to spend writing the mod if nobody is going to play it because they don't know what it does
Marketing is important too
I'd probably be a lot more willing to just say what it does if I wasn't immediately (seriously, it seems) accused of putting malware in it. (Yeah, adding malware in like 30 minutes. Super easy to do. And obviously the best way to infect people's computers is to not tell them what it does, because then they'll be likely to install it, clearly.) But I think I won't bother. I know it was worth my time, and if no one else agrees, then it's their loss.
Personally, I think it's preposterous that anyone even suspect that. And you know what? It's not a good way to greet newcomers, even if it does turn out to be true. Which again, would be preposterous.
I don't actually think it's likely there's malware
I do think it would be a waste of my time to try out a mystery mod that could take hours to discover the purpose
Like I said, it affects the whole game
Unless you do glass soul regularly, you'll see what it does in minutes
I thought we were being sarcastic about the malware part.... Hence the 
I thought so at first as well, but then it didn't seem like it
But also, I think I've made it obvious what the trigger is
Even though I didn't want to give that much away
So with that in mind, anyone could figure out what it does in 5 seconds if they really just want to find out and then leave it
Sounds like getting hurt slows you down
That would be evil
Lol
Because you wouldn't be able to recover if you got hit
(Not glass soul, sorry, 1 health, no permadeath)
I think what it actually is is more interesting, sort of balances out
Anyways, I'll leave it there, if someone wants to try it, they can, if not, fine by me
Any chance we can pin it so it doesn't get lost?
if (this.cState.inWalkZone)
{
this.rb2d.velocity = new Vector2(move_direction * this.WALK_SPEED * (float)(5.3333 / ((double)this.playerData.health + 0.3333)), this.rb2d.velocity.y);
return;
}
if (this.inAcid)
{
this.rb2d.velocity = new Vector2(move_direction * this.UNDERWATER_SPEED * (float)(5.3333 / ((double)this.playerData.health + 0.3333)), this.rb2d.velocity.y);
return;
}
if (this.playerData.equippedCharm_37 && this.cState.onGround && this.playerData.equippedCharm_31)
{
this.rb2d.velocity = new Vector2(move_direction * this.RUN_SPEED_CH_COMBO * (float)(5.3333 / ((double)this.playerData.health + 0.3333)), this.rb2d.velocity.y);
return;
}
if (this.playerData.equippedCharm_37 && this.cState.onGround)
{
this.rb2d.velocity = new Vector2(move_direction * this.RUN_SPEED_CH * (float)(5.3333 / ((double)this.playerData.health + 0.3333)), this.rb2d.velocity.y);
return;
}
this.rb2d.velocity = new Vector2(move_direction * this.RUN_SPEED * (float)(5.3333 / ((double)this.playerData.health + 0.3333)), this.rb2d.velocity.y);
}
this is what it does 
Yep, that's the code change
That makes it obvious I think
As long as you're good mildly ok with rational equations
Yeah, but very different dynamic
This way you have more of a chance to recover if you're low on health
One health makes accuracy difficult, 2 as well to some degree
If you're fighting one of the later bosses and have 9 masks, you'll probably effectively have 5-6 health since moving that slowly would make it difficult.
Or it will give an opportunity to be creative with Dashmaster
also @buoyant wasp MoreSaves I'm almost positive has no leaks (atleast not caused by me (maybe the internal save function leaks)),
and boss rush shouldn't unless either
a) the shinies are leaking
b) the labels are leaking
neither should because they should get destroyed on load
is any part of the UI overlay from saves mod running outside of the main menu?
so far, in testing, i seem to get intermittent lag spikes during fights with saves mod enabled, but not if it's disabled
nothing in the logs though that would indicate some sort of failure that i can see though
float t = Time.realtimeSinceStartup;
if (UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneLeft).skinType == ButtonSkinType.SQUARE)
{
MoreSaves.rectLeft.sizeDelta = new Vector2(58, 58);
MoreSaves.rectRight.sizeDelta = new Vector2(58, 58);
}
else
{
MoreSaves.rectLeft.sizeDelta = new Vector2(98, 61);
MoreSaves.rectRight.sizeDelta = new Vector2(98, 61);
}
MoreSaves.imageLeft.sprite = UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneLeft).sprite;
MoreSaves.imageRight.sprite = UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneRight).sprite;
MoreSaves.textLeft.text = UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneLeft).symbol;
MoreSaves.textRight.text = UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneRight).symbol;
this is the only code that runs outside the main menu
you could try putting the entire Update function inside
if(!GameManager.instance.gameState != GameState.PLAYING)
and see if that helps
also you could put all this into a hook
if (UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneLeft).skinType == ButtonSkinType.SQUARE)
{
MoreSaves.rectLeft.sizeDelta = new Vector2(58, 58);
MoreSaves.rectRight.sizeDelta = new Vector2(58, 58);
}
else
{
MoreSaves.rectLeft.sizeDelta = new Vector2(98, 61);
MoreSaves.rectRight.sizeDelta = new Vector2(98, 61);
}
MoreSaves.imageLeft.sprite = UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneLeft).sprite;
MoreSaves.imageRight.sprite = UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneRight).sprite;
MoreSaves.textLeft.text = UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneLeft).symbol;
MoreSaves.textRight.text = UIManager.instance.uiButtonSkins.GetButtonSkinFor(GameManager.instance.inputHandler.inputActions.paneRight).symbol;
InputManager.OnActiveDeviceChanged += activeDeviceChanged;
what namespace is InputManager in?
InControl
meh, w/e stupid dnspy not being able to handle hook names properly. we'll see if the update() game state check will fix it. (though I agree in your thinking about moving the image buttons to the hook, no sense in checking every update if there is an event)
@leaden hedge this is basically the same thing that can happen with soul master. probably should just hard code the positions of the drops for all bosses rather than drop them at the players feet to avoid these this kind of thing.
probably
Happens at collector too
so yeah, current known issues i've found:
Grimm 1 seems to drop items only 50% of the time, the rest of the time he drops nothing
Mantis Claw doesn't work (submitted a PR for that)
Collector is still annoying as hell breaking half the time with alot of the charms you might pickup
Several places where shinies fall out of bounds
Dream Fights intermittently stay black/white
Jonis, the forever broken one
Hiveblood sort of works, if you die
Sometimes you spawn in the Fallen Knight's fight where the fight engages and he jumps on you while the teleport animation is playing
thoughts on other things that could be added
Like the randomizer, a screen that shows up before the credits that would give some fun statistics. For Example
Boss Kill Times, # of flawless fights, # of deaths, # of somethings., average boss kill times. and of course some sort of credits to KDT π
#of times wyza bothered the author for features
Please specify a role to self-assign.
.gr modders
modders is not a valid role.
gottem
not that the role does anything
It makes you fancy green
other than let you delete messages and pin stuff
mostly the green
It allows people who pin messages here (also delete, comes with the permission)
Same with Art Crew for #art-discussion
and srcom mods for #speedrunning
well, it's up to the other modders here.
and mods with everywhere
Whats up to the Modders here?
as it is now, @ Modders is just the name for the sub-moderators for this channel. We haven't considered a modder role for people who make mods
like how Art Crew is the people moderating #art-discussion, not the only artists allowed
nvm, don't really care that much then π
hmm... 
@ Modders --> @ Modding Mods
make mod maker role (literally does nothing, maybe another shade of green)
make artist role (literally does nothing, maybe another shade of purple)
modderators π
π
why you ignoring my pun doe @royal ridge
we are making a new role
ooh
ty
just put mod mods as admins
No problem π
But all the big mod makers already have the modder role
Quick question though, who is Kgcghost and what did he make?
Because he has been stripped of the Modder role
He made the fsm mod and some other stuff I care way less about
Yeah I see Wyza in here every day he deserves it more
Just use your newly found power for good not evil and we're all good 
I encourage abusing your powers for self gain
purge the entirety of the mods channel 
lol
That would take like a year
just write a bot to do it
._ clear
we're all programmers here 
not I
I've read/played/watched more than enough to know that abusing your powers for slef gain never ends well
and yeah the discord API is pretty easy
I know enough to understand that I know nothing
^ the true realisation of self intelligence
I used to be able to cheat in blocks on minecraft with a command, am I a programmer? 
I know enough to convey what's needed to programmers and to understand what they're doing or if they're having problems. in a vague sense
oh yeah, forgot to add that to my list KDT, doing to CG2 still teleports you to the start of the game and soft locks you π
But seriously I love the work that comes out of this channel keep on doing it π
Just don't die you fuckin nerd
git gud
right
my only thought is that if you somehow make it back to king's pass, it calls the teleport funciton to wherever you were going last
Yeah, storing the last boss should be pretty simple
thank you
well the good news is adding this made the preformance problems go away
public void Update()
{
if (GameManager.instance.gameState == GameState.PLAYING)
{
return;
}
the bad news is that doing this somehow broke the mod back to where after you save/exit, it doesn't show the buttons anymore
fucking nice
they are π
ANGERY MOD
holy shit how did i do nkg first try
saved radiance for last
cause
yknow
final boss
you can't do radiance before killing everything else
oooh
that's why i couldn't select it
i accidentally selected it
but nothing happened
radiance beaten
i think i took more damage at radiance
than at nkg
my time was like
55:14
depends on what you got, if thats a good time
I think a good time is closer to <30m
does fragile heart break forever when you die
its unbreakable
so basically 2 free hp
woah i never knew quick heal made shape of unn you move sooper fast
tfw you accidentally do dream zote zero dmg
um
i've been softlocked
the items at thk never dropped
and the skip button doesn't work
the skip button only works if the items drop
gg
i had an ok time too
better than last time
i hadn't died once either goddamnit
i keep forgetting if i beat a boss without taking damage i can take 2 items
and i keep thinking it's a glitch
so
funny story
i'm trying to record me doing new and improved boss rush on steel soul mode
i fail so many times
and i'm physically hurting
so i decide to try it on not steel soul mode
and then it softlocks on me after grimm
and now i'm here
wanting something to die by my hands
yeah theres like a 50% chance grimm drops nothing
wh y
THK randomly doesn't drop anything either
its some bug
most of my bossrush runs are between 25 and 35 minutes. but i've had some where the first 9 bosses dropped garbage and it was nail0 or nail1 with no spells. those are dog slow
nail builds are actually viable in boss rush due to having all the charms available. nail4+fury+fstrength+gluberfly+quickslash+mop+longnail is really strong
well it helps fury works at 100% hp
I might even nerf it so it only works the first time 
that would make it worthless
for all but the best of the best players
basically fireborn, trinomi, a few others. for everyone else, it'll be a useless charm because you're gonna get hit at least once at some point
I'm having a hard time understanding the rando requirements for getting to King's Station. I can infer from a few different sources that it's something like just Mantis Claw or Monarch Wings, but I don't understand that route. See here: https://github.com/MyEyes/RandomizerMod/blob/f793b917a07da7ebd8a45ea6f8747c159306224e/Randomizer/randomizer.xml#L542
knowing how to get to King's Station isn't required for the rando logic per se, but it would be a good reference to branch out to several other locations.
specifically, i'm trying to verify that those abyss shriek requirements are correct and come up with requirements for dash slash.
claw, or wings, or dive
shade skip to blue lake means King's Station is free in Hard Classic. In Hard Steel Soul, you can't do shade skip. so claw + CH can get you to blue lake. how about through the city crest entrance? that's going through the baldur's gate into greenpath or clawing around cliffs or dash/wings into fungal directly to get to the city crest gate room. then either CH or (claw+(dash or wings)) to get through that room. then you'd need to navigate sewers, which i think requires claw or wings, but i don't even know if you could get into CoT from the dung room without claw.
"technically" you can do it too with just VS or wraiths, but nobody wants to put that in the logic
can also get there with the tram
options are blue lake, tram, or sewers
sewers requires claw or wings
same for tram
you can get to tram pass without claw?
i've never seen deepnest without claw. when i try to do it, i get stuck right before the drop into the hotspring.
is that where you shade skip?
oh, so you don't go to hotspring at all
you do
no
you go past spore shroom
not into hotspring
wait.... that drops you into hotspring
you don't go into fungal core
fungal core just takes you to the same place as mantis lords
yeah. which isn't useful
that's the shade skip
oh way back there.
ok, then you use background object at the part i was stuck on before.
and i think the route from mantis lords absolutely requires claw. there's a tall vertical shaft i don't think you can get up with a shade skip. (unless maybe you had a lot of hp)
it does require claw
Hey, who is in charge of the mod folder?
better question, why do you ask?
good news - Bonfire Mod API ver is -almost- release ready
yeah, talk with sean or some dragons. they can help you there i think.
"some dragons"
He's not wrong
You get a bunch of dragons on your side and I'm not getting in your way no matter where you want to add your mods
anathema: does your mod synergize with Sprintmaster?
also I should steal his mod and make it into a charm
On a totally unrelated note, anyone remember the Panic Necklace in Terraria, that sped you up after being injured?
hi there, sorry to bother but i would like to ask where could i get the bossrush mod
pins
ty
@rustic fossil why not make it so that damage also scales with inverse health?
why not soul gain too while we're at it?
sure
and leg eater discount 
0 nail damage at full health
where your move speed is 0 at full health. the first wall in king's pass starts open so that the crawlid hits you to get you started.
I actually really like that idea
-1 nail damage at full health
Frenzied that would be such a cool way to introduce the mod
does -1 damage actually heal the enemy, or does it do nothing or something?
is nail damage even a signed int
idt
knows what an unsigned int is. 
in Java they are. FUNgineer
and in assembly, operations are signed or unsigned, not data.
damage has to be at least 1 to be able to interact with things
chests, levers and stuff
unless you mess with FSM
i recently turned on save_fsm, and
there are a lot of fsms. hundreds/thousands.
There's actually infinite FSMs. Every week Team Cherry digs through them and finds the best ones to add for the new content packs.
i'm debugging why nailmaster mato persists in giving me cyclone slash even though rando is hijacking hasCyclone and updating hasNailArt appropriately. i'm going to need to debug the fsm for npc nm mato next. 
what dat
probably the fake panic necklace
WIP Panic Compass
are you adding a charm, or repurposing one?
can't really add charms
Removing default compass
can you make a charm cost 0 notches? does that work with the equipment screen and everything?
I think so
is there an API hook that just runs every frame of physics?
i don't think so
or maybe there's a unity hook for that?
you'd have to be pretty careful with that, if it exists
cause "every frame of physics" is alot
yeah, i'd just do something simple like if (equippedCharm_1 && state == AIRBORN) pd.hardFallTimer = 0; or something simple.
not gunna like load an xml off of disc or something.
won't every hero frame work?
what does that mean?
HeroController.Update()
i wonder if you could use the collision hook to do what you want
i don't know enough about how collision works
Final art for Panic Compass, opinions?
but it seems like there should be a better way to check every physics frame and instead hook on the event that checks whether or not to have fall stagger
Final art for Panic Compass, opinions?
You don't get it Verulean
I'm only pretending to copy Terraria's Panic Necklace so people ignore the fact that I'm stealing the other guy's entire mod
it's not stealing if you reimplement it from scratch.
copyright law makes so much sense!
and this is why everything i do is under MIT π
And this is why I am numbers and not a person
Numbers can't be held accountable for theft
KayDeeTee is letters
isn't every name letters if you think about it
Not yours obviously
isn't every name UTF-8 if you think about it
No
can someone help me im having trouble loading mods through the launcher, when i opened the launcher i selected the assembly-csharp.dll but idk what to rly do next(dont know if this should be asked in help or in modding)
launcher?
mod installer*
i've never used the mod installer. is it up to date?
don't use it
you'll have a much better time
pop lock n drop it
so i just drag the extracted folder i get hollow knight data into the game's folder?
also, check if the mod you're using says [API] (or "Requires Modding API")
^^
huh, well thanks i guess, idk why i went through all that trouble with the mod installer
if it does, there is a second download you need to grab from the drive
aight
the most confusing things about installing mods are: google drive's download button is kinda hard to find. the zip files need to be extracted into a particular folder so that the directory structure merges properly. most mods have a README.txt at the top level that you might not want to install, because it'll collide with all the other mods. the modding api zip has desktop.ini files.
so overall, pretty easy.
i downloaded the 590mb pack and it has Seanpr, Firzen, _ Wyza - Modding API folder
590mb is.....not right? lemme go look
you may have downloaded the entire shared directory of mods.
yeah that
sorry if im causing trouble by my stupidity cuz i cant figure out what to do at times
i think tonight i'm just gonna do the video i've been threatening to do
i dare you
@ivory rapids installing mods could be easier. i empathize with you.
cause it's fairly trivial to do mods once you've done them and understand what to do
but that first step of getting it can be, confusing
in my opinion getting to the goolge drive link is the hardest part. requires making a discord account.
yes well, if we could host the mods publicly, we would
there is no 1.2.1.1 api file,(dont kill me im using a pirated version i cant afford to buy it atm π’ )
ez solution buy the game
......
yeah, sorry, we can't really help you there
mods are sensitive to particular versions of the game. the best experience will be if you're on the latest version, as long as it's been out for at least a few days.
there is no 1.2.1.1 version of the modding API, and there never will be
not the least of which is because that HK release was pulled from the store because it was buggy
o well, gonna have to wait till i buy it i guess
might get it this black friday steam sale
it's quite a bargain. way underpriced, imo.
no i mean
amusing at best. I remember back in the day when all games were priced at the same and were about 65-70$ in current US dollars
in a way its a lot of money for me, i agree that the game should be worth more
i just cant come by money easily cuz im just a kid in highschool
i say this having done this myself when i was a teenager. go mow your neighbors lawn π
literally once
^
@ivory rapids no worries. i do recommend buying this game though, because it is fantastic, and Team Cherry
needs/deserves lots of money. 
not that i'm bashing you, just saying you won't find a super warm reception to piracy here regardless of the reason.
doesnt rly work like that, yeah i know ive been wanting to buy this since release but i held onto pirated versions for some reason idk
regardless thanks for ur help sry for bothering, ill just buy the game when i can
and ill fully enjoy it
@ivory rapids come back when you do. i'm sure someone here will help you get started with mods 
was interested in mods especially the boss rush cuz one of the better parts of hollow knights are the boss fights and after u defeat one boss u cant realy do it again on the same save file
@ivory rapids did you do the white defender and grey prince repeat fights? you can do those multiple times.
yeah but they arent as enjoyable as many other fights tho they are a challenge
again sorry to bother, i appreciate the help, have a wonderful evening
understandable have a nice day
Panic Compass added, testing would be appreciated.
float panicSpeed = 1f;
if (this.playerData.equippedCharm_2)
{
panicSpeed -= .1f;
int missingHealth = this.playerData.maxHealth - this.playerData.health;
panicSpeed += (float) missingHealth * .05f;
}
There's everything
is the new update compatible with drm-free versions?
what about damage scaling?
None of that for now
also I'll see if I can get a DRM free version, give my 5 minutes for testing
Could somebody on DRM-free test this for me?
k
is this working
There's no way to tell from the menu necessarily
not loading saves
just creates black screen
I didn't make a new save
idk about existing saves
try again on a backed up existing?
existing saves don't work
me?
hey
yeah if possible
I have a slight issue installing bonfire mod
do I just copy the entire thing?
even tho the folder directories don't seem to add up?
works for me
what
loaded
version of the base game are you runnning?
ok so it's not working on new saves either for me
@swift cairn are you on 1.2.2.1? GoG?
Humble?
Humble might work and GoG might not
oh there's 1.2.2.1 now?
don't have the retextures tho
dam I gotta update
Yeah I'll package the retextures
@trim nimbus what game version?
there's not 1.2.2.1 version yet tho
I'm currently working with Wyza on it
it currently runs, but doesn't save
oh, ok
Somebody buy me Discord Nitro so I can upload this here ;)
Lightbringer should work with DRM-free copies now, could someone confirm?
what is grubberfly's elegy supposed to be
because it pushes me back when i equip it
Makes them bigger
and increases damage
did you install the full package? It should include charm descriptions
oh, try out the one on moddb
you'll get everything
and it'll show if it truly works or not
NOOOOO
holy shit how broken is this mod
Fun broken
It's pretty good
endgame is just like
Bloodlust charm is ine i'd prefer
@solemn rivet My idea for the mod was that masks would have weight. I'm not trying to make it impossible if you get hit, just adding an interesting dynamic
vanilla but nail hitbox is 20x bigger
one
wait, why did I get tagged? Did I say something?
Yeah, about 2 and a half hours ago
I didn't get to it until now
You mentioned having damage also scale with the inverse of health
wow
make it a new charm
call it
fury of the fallen
genius i know
i don't know where i get these ideas
ah, yeah
True creativity at its finest
no, not impossible
I meant it like FotF
the less health you have, the more damage you deal
the more health you have the less health you have
Lol
there we go
kill me
Fixed issue where some enemies and bosses could break when being killed by extra sources of damage eg. Dreamshield, Flukenest
Finally
when will TC fix the issue where dreamshield costs 2 too many charm notches
patch notes?
wait don't tell me this patch is live already
it's beta
oh thank god
wunderbar
Are maps created by hand or by the game?
The in game maps don't actually match the game world exactly
They can't because stuff overlaps
So I'd assume hand made
Wait, which parts overlap?
I dunno, just stuff everywhere doesn't match up
https://rainingchain.com/hollowknight/map
You can see here that the map is disjointed and there's lines drawn between loads that don't make sense
It's just not worth the effort to make a game world that maps perfectly to a single scene when it's done as individual rooms like this
Yeah, none of the indoor places are on this map
@rain cedar - So came across an interesting bug while helping gradow with bonfire api port. He uses Gui to display this leveling stuff. However it has the odd effect of anchoring the mod version info that we have in the API to the center of the screen when paused. I'm guessing that both the API and bonfire are using the same overlay. So question is, do you know how to segregate the api's overlay into its own so that mods won't step on it?
It should already be different
Pretty sure I'm setting my own matrix to make sure it works
@anathema#2880 i looked into modding the in-game maps, and it's kind of a mess. tons of hardcoded stuff. it will require lots of modding api effort to be able to mod that properly.
so that's the current code
Yeah
Oh I see
here's the code from bonfire: https://github.com/Ayugradow/BonfireMod/blob/master/BonfireMod/LevellingSystem.cs#L35
Yeah I need to be setting my own font stuff too I guess
yeah, but even font wise, i don't get why it'd change the anchoring point for the display
