#archived-modding-development
1 messages ยท Page 13 of 1
I kept saying to Simo, like how is this still going it was so crazy
But he wussed out
Yeah I think I remember him saying that when we met up
There is no real difficulty curve and the runs aren't varied enough to make it interesting
That's a bold claim
Which sucks because the game at its core is super fun
I remember after testing it before release I was like... I think this game is the best metroidvaina ever... Better than both sotn and super metroid
Being a swashbuckling space pirate zooming through the air
I would now
it's that metroidvania craze
Dead Cells is popular because it makes big promises and generally doesn't fail to deliver on them
making a roguelike soulslike metroidvanialike is hard
Backtracking + roguelike sounds kinda odd to me
in general there needs to be a reason for mechanics to exist. Being a cool idea isn't enough
I agree 753... Something about roguelike never set well with me
There was this recent game which was a metroidvania with "procedurally generated"/modular areas
can't remember what it was called...
but people didn't seem to like it much
dead cells?
no, it was not a roguelike
gotcha
Sundered?
I believe so, yeah
Tsundered
yeah, that's the one @deep pilot
anyway, just glad HK didn't end up going the same route
and with that, I sign off for the day
I believe people felt that the normal enemy combat in Sundered was unsatisfying, with the mobs just overwhelming you at random times.
dead cells didn't feel like metroidvania or soulslike imo ๐ค
but it is fun
Someone who compared Sundered to HK also said he felt that Sundered's upgrade tree was too sparse of good upgrades and that "money" for late upgrade purchases pretty much required finding the equivalent of HK's geo caches since enemies barely dropped any.
Money balance is really hard
But my way is to always balance in the players favour if you are on the fence about something
I remember someone saying that upgrades in sundered felt really unsatisfying
Better to be slightly lenient than slightly strict
I have a secret gaming philosophy that could change gaming
increased sword hitbox size by 10%, decrease enemy hitbox size by 5%
players will never complain and say "I totally hit him and didn't get hit!"
following the whole slightly lenient vs slightly strict
"Players will never complain" good luck
I imagine this has been said before, but holy crap it's cool that actual developers be in here
I'm only the tester for the game but will and ari do stop by here from time to time.
As the lead tester I fairly involved in the balancing of the game tho
ask them to take away enemy collision this game is TOO hard ๐ฆ
Yer wtf
Think I will record a boss rush speed run when I get home
Maybe I'll stream it
I'll try to watch
Won't be for like 2 hours
Yeah that's allg
Stuck at work :(
here is my boss rush speed run
i died on radiance two times lol, not respecting her
Mostly the same as the last one, just with some added hard lock prevention and an option to choose the seed used. Added a README as well
Alright, gotten up to Ancestral Mound and the randomizer seems to be working on Easy (just got dash from the Soul Catcher pickup)
The text unfortunately still states that I picked up Soul Catcher, so that's a bit confusing.
what about stuff like wanderer journals? Are they randomized?
No, iirc
I will say that I got awfully confused and thought the randomizer was broken because my seed randomed into Fury of the Fallen being at the exact same location as in the normal game.
x3
Yeah, text is wrong and it's probably never going to be right
No idea how to change that
just change all the text to RANDOM PICKUP
@warped sinew that feeling when speedrunning the game until its ending took less time than doing a rush
Goes to Mantis Claw, gets Shade Cloak 
item randomizer would be super amazing
it already exists wtf
amazing
I'm so glad I decided to go out of my way to check some charm locations
Thorns of Agony -> Spell Twister
Baldur Shell -> Mantis Claw
Dashmaster -> Crystal Heart
Mantis Claw -> Shade Cloak

All I need now is double jump and I'm essentially set in terms of abilities
Well...Isma's Tear would be nice to have as well
yeah fuck the uumuu fight
Isma's tear is gonna be in the normal spot
It's not currently randomized because there were some problems with it
put isma's tear in lake of unn
I can't really work on it today but tomorrow I'll try to get that working
Haha that would suck, but nah assuming I did everything right all abilities should be reachable
Also @deep pilot That sounds like a pretty crazy lucky seed
Yeah, I'm pretty sure most seeds won't be this good to me
It might not be this way anymore because I changed some stuff, but last night before posting here the seed 123456789 put wall jump at flukemarm
That was fun
lul
Since Kein is off
Is there any tutorial thing of how to make a mod like the Debug Mod?
What do you mean by "like the debug mod"?
I mean, is it possible to continue adapting the Debug Mod for future versions
Using what Kein left us, the latest mod
Yeah, all mods are somewhat open source in that you can decompile the full dll
Is there any tutorial? What software should I use?
But I mean Kein is sending out DMCA notices, it's probably better to make a new tool
That's gonna be the one of the easiest to remake
But also the most tedious
To get started modding you need a program called dnspy
For an idea of how to get started: you'll need to create a new class that inherits from MonoBehaviour, then attach it to a GameObject somewhere early on in the game to make it run
Adding an OnGUI function will allow you to add UI basically anywhere in the game
I have little programming knowlege nor of Unity or Playmaker
I see. Unity is well documented online, but I can't help much with being inexperienced with coding in general
Almost everything in the game is handled through state machines, which ends up being pretty annoying to deal with
Also just Unity in general is annoying to deal with
If I were to modify the spell damages where/how would I do it?
FSMs would be my best guess, Voila. No idea how those work though.
Steven, depending on the type of mod you want to make there are a lot easier options to modify the game.
There's a lot of easy to modify classes even without much knowledge of coding.
I am working on a modified DLL that contains modding hooks at the moment so that we can just host mods without having to host all of the Hollow Knight code as well
If you guys need any specific hooks in there send me a private message with some relevant tagline so that I can look through them later without having to scroll up a ton
stevenlele, if you struggle finding the software for it, then honestly it's probably not for you
The randomizer mod is already working with this, but there's only the seven hooks needed for that right now
I'll look through some other mods and add relevant hooks tomorrow
Kein's debug mod was pretty extensive from what I saw, what would you want to do with your version Steven?
Yeah it's got a ton of features, but none seem too hard to make. Just all together it's a lot of work
@warped sinew i enjoyed the run, insane! will be trying a few similar like that and stop going only nail.
What version of the mod are you using? I'm askingbbecause on the last one, fragile strenght goes for 1600 instead of 1100
is playerData.vesselFragments an int from 0 to 9?
Might be 0-2 then reset to 0 on the third
Easy way to check is by looking at a 100% save
Man, this randomizer seed is spoiling me
Just got Quick Slash from where you normally get Spell Twister
Glowing Womb mod changes so far. https://i.imgur.com/0GkWCJh.png
Basically they all start worse than vanilla but get better than vanilla by the end.
Also added charm interactions for the more useless charms.
I haven't changed the damage of spells yet since I'm not sure how, but for now it's honor system.
also I just noticed a bug. I need to move most of this to another if statement since right now it all happens only if glowing womb is unequipped.
Fixed.
When is CharmUpdates called? Will I have to reload or reequip the charm after I get more health?
I know it's called when sitting on benches
I believe it's called when sitting, loading game and some other weird instances
Don't have the code right now so can't check
I made it call on FinishedEnteringScene() so it would update when you first start the game. Originally I had it only call if glowing womb wasn't equipped so it would equip it, but now it always calls it.
finally got the mod installer configured, now it's ๐ documentation time ๐
Anyone know how max MP and HP works? I'm trying to determine how many mask and soul fragments have been gotten.
The heartPieces and vesselFragments values reset to 0 when you get a new one...
I'm talking codewise... ๐
The problem is I can't check how many vessels have been completed.
I'm using a bit of math to find out how many masks have been collected, but I can't do the same for vessels unless I know the max mp boost that vessels give.
https://i.imgur.com/O8vLzFa.png This works for Health but I can't do the same for soul unless I know the numerical value of a completed vessel
Pretty sure they're 33 mp each
so if I do
(this.playerData.vesselFragments + Mathf.Floor(this.playerData.MPReserveMax / 33))
it should give the total fragments gotten?
MPReserveMax is going to be 33 lower whenever you've died
I don't have a solution to that, though, sorry
But the vessels don't break when you die. Only the main MP pool breaks.
Oh, I see, there is both maxMP and MPReserveMax
I assumed it was all stored in one place
Nope. They're seperate because you have to stop using soul for a moment before it uses the vessel soul
So does that line look right to get the total vessel fragments obtained?
Yeah, I don't see why that wouldn't work
Woo!
Although the floor is redundant
You're dividing two ints so it'll always come out to an int already
^
It actually didn't let me so I had to add an explicit conversion to float and then back to int.
it was annoying
What didn't it let you do?
Divide the mpreservemax by 33
also idk if dividing ints gives a floor value or a rounded value.
It gives a floor
I don't remember the exact wording. x.x I already moved onto testing.
Alright
it shouldn't make a big difference anyway. This is in CharmUpdate() not Update() so I don't need to be quite as careful about efficiency.
But I do recognize that I should always be efficient.
I mean I'm running regex every frame in the main menu for randomizer
So you're probably more efficient than I am
Figure it doesn't really matter if there's a performance hit in the menu, anyway
Is the randomized good to stream? Or are you still working on it
I'm fine with you streaming it
Let me know and I'll watch
It is still a work in progress but I think it's in pretty good working condition right now
if its still a WiP then ill probably wait til after lightbringer to do the randomizer
i wanna save glass soul for last
cause... that deserves to be last
im hoping to knock out at least most mods before grimm troupe releases
Hey does anyone know how the jumping physics in Hollow knight work?
{
if (this.jump_steps <= this.JUMP_STEPS)
{
if (this.inAcid)
{
this.rb2d.velocity = new Vector2(this.rb2d.velocity.x, this.JUMP_SPEED_UNDERWATER);
}
else
{
this.rb2d.velocity = new Vector2(this.rb2d.velocity.x, this.JUMP_SPEED);
}
this.jump_steps++;
this.jumped_steps++;
this.ledgeBufferSteps = 0;
}
else
{
this.CancelJump();
}
}```
Ignore the inAcid check
As far as I can tell from looking at other things that's never actually true
Super jumping when
could you post the part where they initialize JUMP_STEPS
oh oh wait, could you post the CancelJump() definition
oh, and also could you post where they call the Jump function from
I could do all of that but I don't really want to
It's in the HeroController class, you can look at it yourself
You need to decompile assembly-csharp.dll using a program such as dnspy
oh perfect! thanks!~
why does JumpReleased() have
if (this.cState.swimming)
{
this.cState.swimming = false;
}
how can you be swimming and jumping at the same time, and why is that fine whilst your going up, but not down
maybe leftovers from some part of code that got deleted?
because it doesn't make much sense
It's probably something to do with when they prevent the lag from landing / jumping from water
maybe
Pause() and LookForInput() are the methods that call JumpReleased()
so it shouldn't have anything to do with landing on water (at least, judging from this part of the code)
its for when you release the jump button
technically you can do that whilst being underwater
if you do not pause or release the button it shouldn't trigger JumpReleased()
unless they've changed stuff around
{
if (this.rb2d.velocity.y > 0f && this.jumped_steps >= this.JUMP_STEPS_MIN && !this.inAcid && !this.cState.shroomBouncing)
{
if (this.jumpReleaseQueueingEnabled)
{
if (this.jumpReleaseQueuing && this.jumpReleaseQueueSteps <= 0)
{
this.rb2d.velocity = new Vector2(this.rb2d.velocity.x, 0f);
this.CancelJump();
}
}
else
{
this.rb2d.velocity = new Vector2(this.rb2d.velocity.x, 0f);
this.CancelJump();
}
}
this.jumpQueuing = false;
this.doubleJumpQueuing = false;
if (this.cState.swimming)
{
this.cState.swimming = false;
}
}
{
this.PauseInput();
this.PauseAudio();
this.JumpReleased();
this.cState.isPaused = true;
}```
{
if (this.acceptingInput && !this.gm.isPaused && this.isGameplayScene)
{
this.move_input = this.inputHandler.inputActions.moveVector.Vector.x;
this.vertical_input = this.inputHandler.inputActions.moveVector.Vector.y;
this.FilterInput();
.
..
...
if (!this.inputHandler.inputActions.jump.IsPressed)
{
this.JumpReleased();
}
}
}```
it only seems to require that the game not be paused and accepts input
yeah they moved the check from outside the function, to inside it the same update
you used to have to be moving up and have jump_steps remaining
oh
I see
yeah, you're right
it's inside the method now
on another note - look how beautifully named everything is
everything's name tells you exactly what it's there for
this made it SO much easier for me to learn how to mod this game
yeah but why is their FSM not an FSM at all
I really wish it was straightforward to mess with FSM
the only way we have right now is... So much awkward
well its not supposed to be edited from code
nah it really depends how you program it,
you can make an entire game in a single game component using nothing external at all ( besides a camera to render it )
oh
i just got the last things i needed for 100% in blackmoth
and is this supposed to happen
i got an extra % somewhere

new speedrun %
what's blackmoth?
a mod
makes it so your nail does 1 damage, but you always have shade cloak
and sharp shadow
that sounds like hell
it starts off as hell, but it becomes super fun
shade cloak does the damage nail would normally, but nail always does 1
does dashmaster and nail upgrades still make damage up?
dashmaster allows faster dashes, which is really good, and allows you to dash down AND UP
what is this clip you have? ๐ฎ
Can someone dm me the boss rush mod files please?
is there any way to see when i got my first nail upgrade on a save
livesplit i guess
does that work afterwards
no
and besides I'm like 99.999999999999999% sure the game doesn't save any playtime stuff other than the total

whoa
ikr?
You literally increase your replayability for the game to infinity.
now we need map randomizer
not feasible
I know
still would be fckn dope
I think random enemy spawns would do also
all enemis can now spawn everywhere, instead of the normal enemies
radiance spawns instead of gruz mother
Map randomization is actually very possible, just would be a bit tedious
What about enemy randomizer?
I think this would be more interresting for a Binding of Vessel mode
A bit hard but probably still doable
I think to do that you would need to load a bunch of rooms early and cache enemies from them to make copies and place around
So the first load of the game would take a ridiculously long time
But it wouldn't be bad after that
Still no clue how to even code and with what. ๐ค
You need a .net decompiler like dnspy to modify the game code
It's c# and uses unity/playmaker
What mods are there in HK?
check pins
What's debug mod?
1 hit death
What does it do?
1 hit death, damage is increased alongside max health, IIRC.
Isn't that a bit too
Oh ok
what about that randomizer mod
That one randomises your shit. XfuckingD
glass soul doing trial of fools ๐ค
Fuck that
Randomizes?
Yo, tell 753 to put more shit in Lightbringer, and then play Lightbringer. That mod is dope.
glass steel soul
hey @buoyant obsidian tell 753 to update lightbringer
More shit you say?
VA HUNDAAAA
I need more fun charms to play around with.
there should be a mod that makes your nail do no damage
Lightbringer is basically slightly ranged attacks and new charms
I really do wanna work on Lightbringer some more but it's exam week
New charms?
It changes out your basic nail swing to be a mid-ranged lance.
I've done nothing but work all day
And has a bunch of new charms based on that concept.
New charms that augment your attacks
Good luck with your exams @buoyant obsidian.
More range faster cooldowns
Ricochet?
Life leech is a good example of a fun one.
less range slower cooldowns
Or that other one that affects the flow of time.
Half the fun is discovering them, Illusion
Not gonna spoil what they do entirely, but there are some really neat ones in there.
Does it make the game easy?
is there a boss rush mode yet i dont see it
It makes some bosses harder
Lightbringer isn't too hard. It's pretty balanced.
some easier
@muted pine there's a DMCA rush mode
The game wasn't designed around ranged attacks so some enemies aren't equipped to deal with it
whats that do?
Worth noting, you you collect all the charms and notches, the final bosses are really easy.
I'm guessing bosses like lost kin become way harder?
Lost Kin is also easy.
lightbringer makes p much everything easier
The bosses I had a hard time with were anything that flies aside from Radiance.
Without ruining why, it's a bit more rough than normal HK.
Some of the ghost bosses get a bit harder with Lightbringer
You'd think ranged won't do good against lots of enemies at once
While melee just kills them in one swoop
I learned that in bbs
Try out the mod and find out. 
Oh, I know. I've done SS 100%. There's a lot of save quitting. But since you can use that as a get out of jail free card, it's basically a normal run.
I can't even 100% my normal one because of trial of fools
Magic builds, my friend.
Should I give up on healing?
No. But the I-frames on Dive and the sheer damage output of Shriek will help a lot.
only the HD dream bosses eliminate healing's effectiveness
There are very ideal times to heal during Trial of Fools
but don't really try to heal outside of those
@sturdy whale steel soul + randomizer turns your game into a roguelike game
More like a roguelite at best.
I want to make a mod for random enemy spawns. So you can play Binding of Vessel :D
Enemy spawns are still very unknown
meh
alright I have some serious homework to do, cya all
just want the normal enemies to be replaced by random non-bosses
What does randomizer randomize?
All collectibles
From what I can tell, abilities and charms.
Not all, but close
But I've never tried it.
you could get walljump instead of a charm, like thorns
It's every charm except for shops and shape of unn, as well as every ability except isma's tear
Oh and not Kingsoul either
For obvious reasons
So, can I, say, purchase Shaman, and keep it equipped for the whole run?
Won't that best game progression?
I want to do WP to get wayward compass though
Or will it be randomised out?
Yeah you can keep it equipped, nothing is randomized after you get it
And everything is based on a seed that you can set
Also it does break progression obviously, but it never soft locks (In theory)
Oh, it's pickups.
I mean if you don't get wraith in the beginning you cant go to greenpath
That sounds cool.
but you csn go somewhere else
Spells aren't randomized
And yeah you can always go somewhere
It's not completely random, there are checks to ensure there's always a way to get everything
Well then if spells then alright
But here's the question. Will it randomly break a la Blackmoth?
I hope not
Nobody ever heard of legend of zelda randomizer? Ita basically the same idea and yet you cant softlock or hardlock yourself
and you can get heartpieces out of big chests in dungeon, so much randomized it is
Mask shards/vessel fragments aren't randomized right now but I want to add that at some point
Yeah, it sounds like it functions in a similar way so that (hopefully) your progress won't be impeded too much.
What about the Dream Nail and it's upgrades?
Those are pretty important.
Dream nail is not randomized but I probably could add it to the pool
It might cause problems
Isma's Tear causes problems to be in there
It's an annoying pickup
I mean yeah you could if I put that in the randomizer pool, but it's not
Upgrades of other upgrades are problematic because there's no easy way to ensure you don't get the upgrade before the base pickup
Mothwing Cloak/Shade Cloak was a bit problematic because of this same reason, so I ended up just making it so there's two generic "dash" pickups and whichever one you find first is mothwing cloak
Oh right and that reminds me sharp shadow is not randomized because in generation there's no easy way to guarantee that it's accessible
Because of how I handled dash
I don't see randomiser in the pins or the google drive. Can I get a link or something?
Yeah, sorry, I don't have access to pins here for some reason so I didn't pin the link
I'll repost it
<@&283547423706447872>
Thanks. I'll play through this tonight.
I've been meaning to randomize relics among themselves
Did you make that mod Sean?
Yeah, me and @vale zenith
Randomize reliqs, notches and health / vessel upgrades with each other plos
what if you try to pick up a king's idol, but it was really the dream nail?
You should be able to pin now
I wouldn't put relics and abilities in the same pool
That would be dumb
Thanks, Benji
but would it though
No problem
its notches and mask / vessel fragments only
I think that would be good
except the ones you buy obviously
Does anyone know exactly how many of each relic is in the game?
Or at least approximate percentages
We can count them.
14/16/7/4
Bam.
Cool, thanks
what a nerd knowing them from head :^)
There's really more seals than journals?
19 rancid eggs in world, 20 in SS (1 next to tuk)
how can lemm eat ten egg if there are only four? 
yes
Oh! Mix rancid eggs into it also
unless i'm wrong and I've been fucking up my 110% runs
Rancid eggs are problematic because there's that dude that sells you unlimited
Fck him.:X
tuk him
isnt there a possibility to not include him?
huck fim
Yeah, maybe, but I don't really have an easy way of seeing where a pickup comes from
I guess I could check the player's current scene to know if it's from the shop guy, but I don't really want to add rancid eggs to randomization anyway
They're a pretty useless pickup, it would just be annoying to get them
you guys seem to know a lot about the hollow knight video game here in #archived-modding-development
I see :>
so i have a question that i would like an answer towards
how possible is it to randomize textures and other assets?

Not very
i have had very much difficulty trying to replicate my graphical corruptions
and i have only seen one other person report it
You could probably randomize them outside of the game by shuffling stuff in the resource files
But I don't think it would be easy to do in the assembly
i couldn't think of an easy way to do that
i'm sure there are programs for that
but i couldn't find any
Why do you even want to do this?
That door is bretta
HAHA
correct
Interesting
Jesus Christ, that's horrifying.
LMAO
One half is infected and one half isn't 
how did this happen!?!
that door is bretta than it was before
the graphical corruption was caused by updating
Have you posted this before Whomst?
Oh
Tried repairing by steam?
yeah
but i can't do it again
closest i got was a few invisible enemies
which isn't fun
repair the files by steam :< ?
reinstalling?
how would that help?
He wants it to do Bretta Door stuff again
The files.get deleted and redownloaded
I want every texture in the game to be Bretta.
i've posted a lot of this stuff here before
thats probably doable
not in #archived-modding-development though
I want every enemy to be zote LMAO
^
just load bretta once, copy her tk2dsprite, and paste it over every gameobjects tk2dsprite
on load
i want it to be random, though
What does that even mean?
otherwise it isn't fun
Change Bretta for Zote so you save him instead
Attack of Zote.
I don't mod. I just come here to ask questions and get more fun stuff to do. 
here are more things that are bretta
I wish I knew how to mod
same
in unity every object has components, tk2dsprite is what renders sprites, you can copy it to get the atlas and animations, then replace other objects with brettas
same benji
Kill. Bretta.
i flipped her
I'd get into modding... If only I had a mod idea I wanted to make...
โ 
Make every texture Bretta. There's your first mod.
I don't wanna just do a texture replacer
make the room randomizer, all you have to do is, is go into every room, and figure out every possible combination of items to get to every door from every door
Imagine doing any trial and instead of alot of enemies you fight zote and his minions. Primal aspids? More like Sniping Zotelings.:'D
Then do a boss randomiser.
I WANT THIS ZOTE MOD NOW
hmm... room randomizer... zote mode...
zode
this is zote, as we all know and love him
at least the UI textures were fine
How hard would it be to give everything a Zote mask?
LMAO
many
you'd have to edit every characters sprites
yeah just go through thousands of sprites and copy zote masks on every one
everything? not hard, just very, very, very, very, very time consuming
What if we made every boss a collection of Zotes?
and it probably wouldn't fit inside the space
just make a zote-ification AI
If you could replace all enemy sprites with the according zote, it would be alright.
Flying enemies are the flying zotes from zote dream fight
and small buggos are the small zotes
and medium enemies are literally zote
bosses usually are the buffed zote

@royal ridge consider it taken (by me)
rude
D A M N I T
I'd die playing this
is it damnit or dammit?
Dammit
dam it
suddenly zote
consarnit
but then what does zote turn into
Damn it
if everything else turns into zote
darn it
Zote is just zote
Also Zote.
He turns into a vengefly
Unwrap Zote from a web after fighting off a horde of Zotes.
But i cant call it Hollow Zote; The tale of Life Ender if I do that
exactly
ur dum lol
Just find out the the maximum adjectives from the Grey Prince fight are and call it the adjectives mod
change every mention if Hallownest to Zotenest if you are on it already :'D
I got a mod for you, it's called Normal Soul. You play as this empty vessel made from void, god, and root and your goal is to investigate what's causing the infection and put a cork in it
replace every word in the text files w/ Zote
nah, dark souls is with playable jerky
"Zote these words are for you alone."
steel pyongyang
Hollow Noot. You play as Pingu.
Zote zote, zote zote zote zote zote zote.
Surely there isn't that many sprites right guys???

probably only like 500->1000 enemy sprites
now if you were to put a zote face onto literally everything
In zote beyond they speak your name with reverence and regret,
For none could tame our savage Zote yet you the challenge met,
Under palest watch, you taught, we changed, base instincts were redeemed,
A world you gave to Zote and Zote as they had never dreamed.
If I was going to put it on everything ๐ ๐
In zote beyond zote speaks zote's zote with zote and zote,
For zote could tame our savage zote yet zote the zote met,
Under palest zote, zote taught, zote changed, base zotes were redeemed,
A zote you gave to zote and zote as zote had never dreamed.
LMAO
-Excerpt from a zote to zote, by zote the zote 
"Zote.. you hold your nail like a zote" -- Sly
Bapenada Zotedis
zote mask HP bar
I think I'd only do NPCs and Enemies
Is it possible to change the health bar icon? ๐
yeah
and it's only like 4 sprites so it's ez to turn into zote
"zote" dlc
and make him always talk his nonsense lines
3rd playable character more like 1st amirite
instead of being able to play as zote, everything else gets to play at zote
I could give him the mask
when you walk he goes: "Aklame booptis"
does anyone know what the textures look like in the hollow knight directory?
there are resources and assets
and then just "files"
do you mean in unity studio?
I've got work I'll be back later to discuss how I start this journey
what
yeah, the textures are in the resource files
is it only textures?
so i need to extract them to know which are textures?
what i'm asking is whether or not i can seperate the files that contain textures from all of the other ones
well each one will have some textures
like one might contain the stuff used in the radiance room
so it'll just have radiances sprites, sprites for that room, radiances sound effects, and generic stuff like ui etc
that's what i was worried about
if you're looking for a specific sprite, you have to go through every asset bundle
good luck with that frendo
if you want to dump every texture
you can probably hook into the tk2d initialize function
and load a random texture instead
So. Is it possible to replace all sprites manually?
yes
^ understatement
I mean. Just giving all flying enemies the animations of the flying zotelings and so on?
Without swapping all animations manually?
so you want all flying enemies to look like flying zotelings?
including animations?
yes
and all ground enemies like zote. And all small buggos like small ground zotelings
do I jush copy paste the name of this one specific animation onto all other enemies or is it more complicated?
it'll be more complicated
fck :/
A lot of enemies are going to have different sizes/amounts of animation frames
This is not a small task, to say the least
you'd copy the animations from the object I assume
then the real problem is getting it to call the right animation from the fsm
Man I don't know shit about how the fsm works
All I know is it makes everything way harder than it needs to be for modding
I dont care about size. ๐ค
well the way animations work is they have boxes that define a frame and a list of frames that define an animation
so if you put a different sprite sheet in, you'll get the wrong sprite
and mostly only parts of one sprite with parts of another
what would that result in?
it'd looky really glitch
Damn
so you'd have to copy the flying zotes animations over
but each animation has a name, and the fsms call a specific animation to play
so if say aspids attack animation is "aspid_attack", and flying zotelings is "fly_zote_attack" it'd do nothing,
replacing enemies entirely is possible afaik
you just need to get a reference to zotelings
?
so you can't just do
create("Flying Zoteling");
and expect a zoteling to appear
You need to load the grey prince zote fight and cache a reference to a zoteling
no..But instead of aspids there would be zotelings?
unity doesn't let you access anything internal, you have to find a zoteling, copy it into memory then spawn that
It's entirely possible to load and unload scenes during the black screen between scenes
Make a nude mod first 
So you could grab it fairly invisibly
everyone is already nude
It would just look like a long load
and because you're replacing every enemy, you'd just do it once, when you load in and never again
Yeah
You don't see DD's hairy pecs 
inb4 zotelings don't work outside that fight
:(
so they would start chasing you as soon as you enter the area?
I'd assume so
That would be hilarious
enter deepnest.
20 zotes chase after you
it would be a chase
lmao
and every single one of them would be: "Baklava Booptis"
no u
not everyone can understand the magnifience of zotelings
+C
But everyone will
Enter Zotenest
Swapping radiance with buff zote :^)
I'll go and enter unsconscious for some hours
being a useless bum and sleep
[21:29] Seanpr: Man I don't know shit about how the fsm works
[21:29] Seanpr: All I know is it makes everything way harder than it needs to be for modding
best thing I read all day
I have a dream
we'll all wake up one day and have a nice simple modular interface to make HK mods
hey gradow, idk what happened, but when i finished getting everything in blackmoth, i had 101%
you mean you have 101% no idea why
i was thinking it was something to do with starting with both cloak upgrades
I recall a glitch with a pale ore that caused the player to get an extra percent
can't be that
I simply removed the check for the cloak upgrades in order to canDash be true
that's why you can still get them
if the mod gave them to you at game start, you would be softlocked after hornet1
ah its not that hard anyway each FSM has an array of states, each state has transitions and actionData, actionData is what happens on fsm actions like nextFrame or findchild, transitions have an fsmEvent that triggers it, and a destination state it goes to
thats pretty much it for fsms, big chunks of it are private after init though
i also earlier played through again, and decided to fight hornet 1 after beating hornet 2
KDT I took a look at some fsm dumps... Had no idea what I was looking at
@bleak robin here's why:
you mean the json dumps?
Your mod changes max health?
yeah
ohh
starting health is 6
because of starting with 6 masks gave an extra %
because I figured you'd get hit a lot
why not change it to -6
Yeah, easy fix
since you're basically diving face-first into enemies
yeah
I just never thought it'd be an issue
and theres the whole double damage thing without fury and overcharming
oh?
you know... you take double damage at the start
and only way to negate is it to equip fury, and be overcharmed
that... Never happened to me
:x
{
if (this.playerData.overcharmed)
{
this.playerData.TakeHealth(num);
}
else
{
this.playerData.TakeHealth(num * 2);
}
}
else if (this.playerData.overcharmed)
{
this.playerData.TakeHealth(num * 2);
}
else
{
this.playerData.TakeHealth(num);
}```
hold on
Oh
i thought it was just a feature
I thought about both options tbh
I guess with starting health 6 double damage would make it impossible to set up
with double damage on, it's easy to set up
you take double damage by default at the start of the game
you need this on, and be overcharmed to take only 1 mask normally
Looking at the code Gradow posted that doesn't make sense
that should only trigger if you have fotf equipped
here's what it's supposed to do -
- if it's not equipped: nothing
- if it's equipped and you are overcharmed: take normal damage
- if it's equipped and you are not overcharmed: take double damage
well, i took double damage without it on
that's the only instance in which damage is calculated in HeroController()
let me take it off and check
@solemn rivet did you try putting the json into a json viewer like http://jsonviewer.stack.hu/
organises it much better, easier to understand whats going on then
right now i got this
So the charm is used solely for equipping charms that cost 4 or more that would normally cause overcharm?
thanks KDT! Will try that
hmm, i only took one damage, let me test some a new file, maybe i just misundertook everything
as I said, I had literally no idea what to do, and wanted to experiment with my newfound mod powers
it's not a good mod
okay, starting up a new file to check
okay, it seems like its working fine, i must have just imagined everything
Ah
for one last thing, im gonna check my stream archive
if it IS a thing... Then I have no idea
I figured the extra 1% might come from that extra mask...
but fotf should work fine
okay yea, i guess there is no issue with it, and i just misunderstood how fury works
i think its cause i put it on when i first got it cause i didn't have any other charms at the time
question, if im using the mod loader, and i have a save file for 1 mod, unload the mod and use a new mod on a new file, then unload that and go back to the first one, will the first file still be functional?
er yeahish
oh if you never load user1 in the second mod, and only use user2.dat
yeah user1 will be fine
okay, that's what i was talking about
most of the time using mods wont do anything to your save
yeah
lightbringer sets your damage to 1, which you can manually fix anyway with the editor
and the randomizer would probably softlock you
Randomizer does not effect old saves in any way
But it's probably a bad idea to load a randomizer save in vanilla
Actually nah that would work fine, it would just unshuffle all the pickups and it would be as if you had gotten them the intended way
so if you pickup mantis claw in randomizer and get something else, then unload randomizer
mantis claw is just gone from the game
btw, is the randomizer in pinned most recent one?
Yeah
I'm trying to get Isma's Tear into the randomizer locally, so I'll post that if I ever get it working
Isma's Tear is annoying
how so?
It's just handled differently from other abilities
Normally if you do something like pickup dashmaster but get mantis claw instead, I can just selectively return true or false on both of those in PlayerData.GetBool to ensure all the proper results
And I do that by looking at the current stack trace to see where the GetBool is being called from
But for Isma's Tear the stack trace is always the same thing for some reason, so I don't have any way of knowing what is asking about it
oh
Like if the menu asks about dashmaster I want to return false so that it can't be equipped, but I also want to return true when the game is asking if it's been picked up so that the pickup stays gone in the world
And the reverse of that for mantis claw
yeah
The best idea I've had for isma's tear is to just completely bypass the actual logic for it
Create my own isma's tear bool, and replace all acid damage boxes with water if it's true
But that's not really working out
sounds like it should work
Well the problem is that you can't actually change the size of a transform easily in Unity
You can just change the scale
can you, say, make it not do hazardRespawn, and instead just change damage to 0?
or does acid not behave like water?
It doesn't behave like water normally
If you get rid of the damage it's just not there except graphically
I see...
just set the hasIsmasTear bool to true
Then the pickup goes away
And it needs to still be there because something else will be swapped to it
Yeah, I guess that's the best option
so make a bool that checks if the actual Isma's was taken
and if hasIsmasTear is true, but that other bool is not, you drop the shiny
and set it to be whatever isma's would be
I don't actually know how to create shiny objects but worst case scenario I can copy one from another scene
surely it only checks to spawn isma tear whilst the level is loading
surely
Actually yeah, that's smart
That's a better solution than looking at the stack trace, I'll switch everything to that if it works
I'll try in a bit, working on another thing right now
hope it works! This is one of the mods I'm most excited for!
yeah, I know
it also randomizes relic items right?
Nah, not yet
But that's super easy to do, I just haven't gotten around to it
It would be tedious to actually shuffle them around so what I'll probably do is just give a random one with the same percentages as the actual counts
Using some combination of the room name and the current seed

inb4 a seed with all of them being kings idols
if it works like that, cant you get super lucky and get only arcane eggs
oh yeah
Yeah but that's unlikely as fuck
arcane eggs even
just keep resetting
yeah it's really useful to have too much geo at the end of the game
It would be roughly a 10% chance for any given relic to be an arcane egg
well, it allows you to get more things early on
so that's like a 1.3% chance to get all arcane eggs
yeah nvm
So basically 0%

yeah
I guess that's still a chance, though
I really wish I was into probability and stuff
to know the expected amount of resets to get that seed
A lot
oh
it's easy to calculate
since it's a geometric distribution
should be 1/p where p is the probability of it happening
so, not a very interesting result

Yeah
yeah since any outcome is equally likely
it's funny how math can be so useful and accessible sometimes, but also so boring that people don't use it
only some math is boring
if X={# of resets till you get that seed with all Arcane Eggs}, then E(X)=1*p+2*(1-p)p+... So it's simply 1/p
@hidden gull the only math I hate is anything involving dynamics or differentials
and as a math student that says a lot
I love pretty much all math, but I'm most interested in computability
and some specific arithmetic-based systems that I'm writing about at the moment
abstract algebra ftw
NICE
I hate calculus for what it does to summation
i was so good a math... then i reached calculus 2... and everything changed
relegates it to "finite calculus"
wait no, it's discrete not finite
this is the highest concentration of math students I've ever known in a game community
maybe people who like math are attracted to metroidvanias?
isn't everyone a math student if you think about it
y'know unless they don't have access to education
There are a lot of math geniuses if you use those viral basic arithmetic problems as a metric
haha
god I hate those
and some of those are plain wrong
like, "complete the following sequence: 10=1, 11=4, 12=9, 13=16, 20=?"
and everyone comes up with solutions
when there's a freaking theorem that literally says there's no unique (in fact, there are infinite) solutions to those kinds of problems
That's where the self-aggrandizement comes in though
Cause when you say "obviously it's 121 because 10 = 1^2 and 10 + x = (x+1)^2" you get to be right
and you have to use numbers as functions because people lose their shit when you say f(x)
oh
I was thinking to add both and then square the result
your solutions looks nicer tho
anyway
point=proven
also correct lol
xDD
that would be great if it led to a conversation about intuitionism but people don't like to think that math notation can be subjective because math supposedly can't be
yeah
so you're saying i can use f''''(x) on my homework
only if differentiation is nilpotent over the function
You see Jimmy, subjectivity means that literally all language, philosophy, and discourse is rendered meaningless because that's what Karl Marx wanted when he invented sociology.
Is it at all hard to change both the dialouge of NPCs and any sound effects?
they are just text in resources
sound effects are just audio files in resources
you can probably find them in game via code though
I think I'll actually look for that
That would be really useful for the randomizer
To make everything show the correct pickup text
I didn't bother because spells / charms have different pickups and the icon is different for each charm
Yeah, the images will be wrong but it's better than nothing
I know for a fact, you can hook into langauge.get
AutoLocalizeTextUI.RefreshTextFromLocalization
I should be able to change anything there
I can just do something like:
if (text.Contains("Mothwing Cloak")) text.Replace("Mothwing Cloak", "Dashmaster");
only works in english

