#archived-modding-development
1 messages · Page 84 of 1
For quick focus I wanna add a "spot dodge" like mechanic (if you know what that is from smash bros), in addition, perfect dodges (with the spot dodge or shade cloak) would heal you one mask
can't you get spot dodge by just adding another dash button but have the dash length be 0
i remember setting dash length to 0 and it effectively doing that iirc
That's the idea 56, but not another button
I was thinking dash into ground or something
dashmaster downdash but not useless
wavedash dashmaster when
Mite b cool
My sprint master mod would increase movement speed, remove walk zones, and remove hard falling
wow an actually useful sprintmaster wtf
Hmm, apparently I have some interesting charm ideas in the middle of the night when I'm high on sleeping pills....
I haven't looked at these since I wrote them
oh nice
Hm, thoughts on this idea; soul catcher turns your spell into the mage homing balls, spell twister increases cast speed, combined they change dash into omnidirectional mage teleport
Crazy is some of the other shit on here
Idk what I was thinking for some of this
"Hiveblood: Gain the powers of the hive. Movement abilities enhanced."
Literally all I have written down for that
Flight maybe
Or, Deep Focus: all abilities now have crystal properties instead of soul"
Maybe
This next one is fucking nuts tho.
Dream wielder: unlocks the dream side of the game.
Like, what
Maybe you meant how the dream nail was originally going to work
Where you could go into anyone's dreams
how would you even make that
But that's a lot of work
The only thing I can think is that I had an idea in my head to apply a filter and spawn some slightly modified enemies
And make the dream nail the only way to fight
that sounds more doable
Even still tho
Yeah it sounds like a lot
I ended up taking inspiration from the crystal spells charm idea and made a charm for changing spells into each "element"
Cyrstal, life blood, infection, soul, void
sharp shadow gives void powers?
Fire (it's kinda implemented)
Uh for sharp shadow i wrote: quick (slash? I think) more or now? (Notes were degrading at this point) in all ways, become the power of shade w/ other movement skills
Well that's just gibberish as far as I can tell
Yeah
The first bit makes no sense, and for the second bit you already have the shade powers
Since it just has your powers
Maybe you'll be able to remember what you wanted at some point
A few of the weirder ones I've been able to figure by the general theme of the related charms
Unrelated to the current discussion, but I'm trying to make nice UI buttons by copying the existing ones
What I've got mostly works, except the navigation is broken
Maybe hiveblood can slowly turn soul into hp via movement
private void EditUI(Scene scene, LoadSceneMode mode)
{
if (scene.name == "Menu_Title")
{
MenuScreen playScreen = UIManager.instance.playModeMenuScreen;
MenuButton classic = (MenuButton)playScreen.defaultHighlight;
MenuButton steel = (MenuButton)classic.FindSelectableOnDown();
MenuButton back = (MenuButton)steel.FindSelectableOnDown();
MenuButton randomizerBtn = UnityEngine.Object.Instantiate(classic.gameObject).GetComponent<MenuButton>();
randomizerBtn.name = "Randomizer";
randomizerBtn.transform.SetParent(classic.transform.parent);
randomizerBtn.transform.localScale = classic.transform.localScale;
Vector2 pos = steel.transform.localPosition;
pos.y += steel.transform.position.y - classic.transform.localPosition.y;
randomizerBtn.transform.localPosition = pos;
classic.navigation = CreateNavigation(steel, back);
steel.navigation = CreateNavigation(randomizerBtn, classic);
randomizerBtn.navigation = CreateNavigation(back, steel);
back.navigation = CreateNavigation(classic, randomizerBtn);
}
}```
CreateNavigation is just this
private Navigation CreateNavigation(Selectable down, Selectable up)
{
return new Navigation()
{
mode = Navigation.Mode.Vertical,
selectOnDown = down,
selectOnUp = up
};
}```
Oh, not helpful, but the menu title has a constant in the hk game if you wanted to reference it
UIManager.instance.playModeMenuScreen already seems spretty constant
Or do you mean the scene name?
Sean what do you think of the idea of making the rooms that require a ability (shade cloak, ismas tear, crysta ldash etc) randomly require other abilities
like alter the room itself to change the requirement
I don't think that really sounds worth the work
But maybe if I'm happy with everything else in the mod I can try something like that
fair
Also thanks Kerr, using Constants.MENU_SCENE now
Ok now the navigation for my new button works, everything else is still broken
Could you stick that code into a unity project and see the navigation Map it draws for you
I have no idea how to use Unity editor at all
Ah. For this it would fairly simple and show you what Is janky about the navigation. Let me see if I can find a link
It's weird, the arrow keys just don't change the selected button at all
Like there's something wrong with the Navigation objects I'm making
But they're so simple

Now to solve mystery #2
That new button is way too high up even though I'm just doing steel y + (steel y - classic y)
Maybe their origin points are fucked or something
Different z order?
What would z even do in this context?
I think all of hk s cameras are 3d, so a bit of difference in z makes things closer/farther/offset/etc
Alright
Well I'm using Vector2 so any z info would be lost
I'll switch that and see if it changes anything
Someone should make a mod that makes english text move faster so its the same amount of time as the chinease language isnt faster
Hmm, yeah you're using rect transforms. So z shouldn't be too much an issue
Mayne the anchor is wrong or pivot
@rain cedar ik
Maybe*
but make it so if your using english
it scrolls faster
so the time is about the same
Maybe
Probably not too hard
But also not sure what the target audience of that would even be
Rect top/bottom seem to be deprecated
Guess I'm meant to use yMax/yMin now
Actually, makes more sense to look at center anyway
Ah forget it, there's too many things controlling render position to figure this out nicely in code
I'll just hard code some number that looks good through trial and error
So I logged the components in all the children of the button object
Even when there's no FSMs the game is still spaghetti
That's unity ui for ya
Is slash hit hook only called whenever you hit ANYTHING, like even destructable terrain stuff?
Just tell it to log whenever it's called
I think it's called whenever something that deals damage is created (ie, slash, spell etc) not necessarily when it hits something
so i just have to filter it again like the other method i mentioned last time? of any attacks containing "slash"?
Oh, sorry, you're talking about slash hit
Yeah, that gets called whenever nail hits iirc
You can always take a look a the code using dnspy and see where the hook points to
yeah it usually has small descriptions like "gets called whenever x happens"
was just wondering if SlashHitHook was for EVERYTHING that it hits, not just enemies exclusively
Kek
did it the dirtiest way possible, since buildUp happens every frame like you said, setted a boolean to prevent an increment +2 my int buildUp every frame, i think i got the barebones working now, all i need to do is polish it a bit and balance it, again huge thanks for all the help guys
Hint - do like I did for crit in bonfire
I was having this issue where crits were happening WAY more often then they should
it turns out that, like we already discussed, HitInstanceHook gets called multiple times per second for the same hit, so it was rolling like 8 times per hit to see if the hit would crit
what I did instead was listen for button release - and then roll the dice
works like a charm
oh so its the controls that you directly took where the rolls would take?
lemme show you
im checking ur stuff at dnspy right now
oh, github is outdated
private void Instance_HeroUpdateHook()
{
if (GameManager.instance.inputHandler.inputActions.attack.WasPressed)
{
critRoll = UnityEngine.Random.Range(1, 100);
}
}```
and then, inside a HitInstanceHook,
if (hit.Source.name.Contains("lash"))
{
LogDebug($@"[Vanilla] Damage for {hit.Source.name} = {hit.DamageDealt}");
hit.DamageDealt = ls.NailDamage(Settings.StrengthStat);
LogDebug($@"[Bonfire] Damage for {hit.Source.name} = {hit.DamageDealt}");
Log($@"Crit chance: {ls.CritChance(Settings.LuckStat)}. Rolled {critRoll}.");
Crit = (critRoll <= ls.CritChance(Settings.LuckStat));
if (Crit)
{
hit.DamageDealt = ls.CritDamage(Settings.DexterityStat, hit.DamageDealt);
LogDebug($@"[Crit] Damage for {hit.Source.name} = {hit.DamageDealt}");
spriteFlash.FlashGrimmflame();
hc.carefreeShield.SetActive(true);
}
}```
Gradow, I think Moose was affected by the same bug as me
Where when you get hit while doing the dash, you'd fly away and wouldn't be able to use controls
oh
Btw, some emenies aren't dashable.
I thought you were talking about big bois not being dash-though-able
yeah, I reported that
because, as you can see in the YT vids, it definitely was not the case prior to TGT
well, think about it
in vanilla, you never face those guys if you have shadow cloak
they long ded by then
also, holy shit that hpbar looks huge on your screen
Yeah ur code actually looks more efficient, ill try that when i start cleaning up bits of my code, also why didnt i think of using the hpbar mod as well
and btw I fixed the installer, 69, so now you should thoeretically never need to update the installer again
not efficient, TTacco, just works
dunno, maybe im over thinking the amount of allocation my boolean method takes compared to yours, so i shouldnt really over think this lol
plus it looks cleaner so thats a plus
I mean
I don't have any compsci background
so I literally just do what seems intuitive to me
(and that's generally bad)
....
it's been a bug since basically day 1... But it used to happen only when using Grubberfly Elegy
It's kinda gamebreaking....
The controls don't even work when you get hit
I also put off the mod because TC has yet to fix vanilla sharpshadow random cut outs.
btw how do you even get hit while dashing?
^
I'd like to know too
I guess it's at the end of the dashing animation.
Like when the ghost comes to a brief pause and you do it again.
I guess that small little window is enough to bug the game?
that's what I thought, too, so I added a small window after each dash in which you're invincible
Btw, somethings do kill when you're dashing, eg - Spikes, and sometimes explosions I think
Look into it and see what you can find
You added a small window?
dashInvulTimer = 0.3f;
it would be too op
Well, how would we fix the bug?
And dashing is already a bit op on it's own in BM mod
Hence "fixing".
thats not fixing
It's not a perfect solution
In the meantime that could some what suffice, don't you think?
im assuming gradow wants to fix the bug, rather than fuck with balance to hide it
if I can "sweep it under the carpet" while keeping things as clean as possible, that's what I want to do
^
^
^
Okay.
1 nail damage and a buggy dash is overbearing though... 😓
I'll put the mod on hold for now.
ok
What this game really needs is a mod that uploads player deaths to a text file/database, then reads those out and uses that info to put an inspectable mask on the ground where they died saying what killed them
And maybe custom player notes
CharmUpdateHook is always called on bench resting or only when you toy with the charms? i cant find a BenchRestHook in the API but maybe i should check harder (Okay nvm im probably just dumb, i blame lack of sleep for this, just reread the hook, most likely its the latter)
what zip program do you use
also you downloaded this from the repository right?
from repository?
nope
its just the program that installes modes automatically, in the gdrive there is no such mode, no such that ive seen it
works perfectly fine to me
ahh you using crossroads?
cuz manually seems to be working for me
yeah i think its a crossroad problem, try asking the modders if theyre online
try reenabling disabling it agian via crossroad just to be sure, maybe the download just screwed up
i've already tried that
TTacco: you were right, CharmUpdate happens evry time you sit in a bench
ty ty, i can finally reset damage on bench hassle free
@waxen widget maybe the dl link for that mod is wrong, give me a sec
yeah, it is
fixing it
okay thanks
should i like redownload the program?
it should work
okay
nah, just reset it
<Link><![CDATA["https://drive.google.com/uc?export=download&id=1BeFOhGulOCOzbuSdHgOUpnKZ8oRFvxeJ]]></Link> fricking "
Gradow, let me know if you ever wanna edit crossroads with anything, I can add you on the repo
do you know where your hk installation folder is?
yea i have it on steam then should be on steamlibrary right?
also, when you load the game, is there anything on the top-left of the title screen?
modding api 1.3.1.5
only that?
yea
then the mod is not installed
I just checked the link on my installer and it works fine
I think so, yeah
weird
anyway
go to your installation folder
then go to hollow_knight_data/managed/mods
Could try hitting the redownload button on it
this was installed using the xml link, so it should be fine
already done that @pearl sentinel
also
0.1.0
that's waaaay outdated
I'll have to update it on the drive
but it still works
huh
weird
<ModLink>
<Name>EnemyHPBar</Name><!-- API MOD -->
<Link><![CDATA[https://drive.google.com/uc?export=download&id=1BeFOhGulOCOzbuSdHgOUpnKZ8oRFvxeJ]]></Link>
<DefaultInstallPath>/</DefaultInstallPath>
<WritesOverAssembly>false</WritesOverAssembly>
<Dependencies>
<string>Modding API</string>
</Dependencies>
</ModLink>```anything wrong with this, Kerr?
it worked fine for my installer tho, and it's getting the links from the xml
Xeno - see if you can install any other mods
Yeah if it works for you it'll work for anyone, install-wise
And if the modding api installed for him that should also back that up
I can go try it rq too, let me put pup away
Is that...is that related to GnG, isn't?
yeah, enemy randomizer sets your background to that
:3
@solemn rivet i see the problem
your zip doesn't have a folder structure in it, just the dll. in that case you need to put the install path here:
<DefaultInstallPath>/</DefaultInstallPath>
so that would be hkdata/managed/mods
Just place the dll manually
oh
yeah, sorry for that
I made my installer completely disregard folder structure when installing, so I didn't bother to add one to the zip
then it'll also fail to to install with blackmoth and bonfire imo
done, updated the link
Xenocit - if you don't mind, try it now
done, all my mods now have proper folder structure
What do you guys think of a quality of life mod that reduces gathering swarm and wayward compass notch cost to zero?
well, I don't really use either of these...
and I think it was a deliberate choice to make compass cost notches
as an incentive for players to learn the actual levels
I hate that idea. It rewards players using a crutch
If you want to walk for 2 more seconds, or actually pay attention to reading a map... Boom. 2 free notches
I usually equip gathering early on
and then as soon as I need the notches, it's the first charm to go bye-bye
The game has so fucking much geo anyways
And the room layouts on the maps are so good
Don't need compass at all
yeah
only place I'd need compass is deepnest
I actually enjoyed being lost in my first playthrough, and trying to find myself just by looking at the map layout versus the screen topography
kek
I'm the opposite
I can climb to the top of deepnest with my eyes closed
but I always have trouble finding the entrance to Herrah
You can usually just reach Herrah by running around blindly for 2 minutes
I can't find Failed Tramway without the map though
?
does anyone know how to get the bonfire mod to work?
did you install the api?
does the game run?
yea
what does it say on the topleft of the title screen?
did you install the api correctly
im pretty sure i did but ill check
modding
ikr
56
in the steam files
BonfireMod.dll
then you didn't install the api correctly
it should be a file named Assembly_CSharp.dll
put it in the managed folder
just above the mods folder
the one from 2017?
no
what
i think so
so, basically
if you override a method using those hooks-on-demand, there's going to be issues
but otherwise, they work fine
the mods enter a list and get called in order
sceneLoaded is really the only hook anyone needs, anyway
Just modify objects to do what you want
Easy

I mean, "there's going to be issues" IF more than one mod use that same hook
otherwise, no biggie
if more than one mod uses it then doesn't only one mod work
Yup
what does the api do w/ multiple mods overriding values
does it have the value changed by one mod then the next mod then the next mod?
also the monomod hook thing works if you call orig too, right?
monomon haha
If applicable the API passes the modified value into the next hook
So the changes stack
neat
yeah, that's why you cannot override
if you don't call orig at some point, the chain stops there
it could prolly handle it like the API does too
make an invocation list
now that I think of it
api doesn't really handle overrides that well too
I mean, if mod 1 overrides/skips a method call
and mod2 calls that method...
say, DashPressedHook (HeroController.HeroDash)
blackmoth overrides the default method and implements its own dash
if a second mod were to only alter some of the original dash's parameters, the dash would be called twice, I assume
Use DashVectorHook instead for minor changes
yeah
then again, when an API hook overrides a method, it doesn't provide a way to call the original method
so that never happens
so you cannot do csharp void overrideMethod(param a, param b, Method orig) { a = whatever; b = whatever; orig(a,b); }
unsubscribe from the hook at the end of method, call the method, and then subscribe again


Check stack trace and call if it doesn't contain your function
You'd have to ignore your code entirely if it contains your function, actually
Sounds like good code
Have you heard of super mario 64 chaos edition? (Romhack)
hm... Don't think so
nope
what's it do?
I think it just fucks with you randomly
Basically
Yeah
It just randomly toggles glitches and codes
oh
Watched someone stream it a couple weeks ago and it got me thinking about a hk version, since fucking with game objects is pretty easy
I've seen that for Yoshi's Island
That throw looks OP
Is that even dodgeable, then?
it is
Neat
just gotta correct fast
mostly it seems to matter if you try to pogo off her while she throws
@pearl sentinel are you gonna work on other bosses after this?
Dunno, probably hornet 2 since it's almost a copy of 1
And I can make her meaner since the player can have all skills
Should make the trial of fool rematch
So its a proper hard 1v1 rather than a marathon then a freebie
Trial of the fool with enemy randomizer is pretty bonkers
Tho the version out right now makes you unkillable on accident
Whoops
A false knight fight that isn't piss easy would also be nice
Unlikely I'll do him. I don't find him interesting enough
Fair
I think I'm more likely to take all the code after I do hornet 2 and try to make a playable version of her
Is there enough animation sprites for that?
Nice
You don't even need much besides walk, jump, and some attacks
^
How will abilities work?
You could make a crystal dash for her with the grapple ay
She has a mid-air dash that's really op already
Oh, and the spike ball things
That's a pretty good set of abilities
Maybe try to make her some needle arts if I ever get it working :p
Maybe if she hits the spike balls with an air dash they explode Hive Knight style
Yeah, there's possibilities
Honestly the grapple movement interests me the most tho
oh, this is character, not upgraded boss
So, because of how they set things up, her corpse has the actual grapple animation
So I have to figure out how to pull it into her main sprite and use that for the grapple pull
For now I'm just using air dash which is why she holds a needle while grappling
I guess that makes sense
Feels like the corpse should just be the same object, though
Yeah, they should. Even with playmaker around they didn't need to separate the fsms into two objects. Basically her "corpse" is also her escape/outro animation
Figured
I like the new Hornet
Ty, I hope it ends up being fun
But you know you don't have the dash so, are some attacks dodgeable?
The needle throw isn't dodged with dash, anyway
_gitgud
And I usually dash away from those
They're still really doable
But they cam be buffed in the 2nd
Yep
That's what I was trying to say
In the 2nd fight I will actually add skills
Making them have gravity would be a really annoying buff
Like, traitor lords smash attack effect to her landing of the air dash
@pearl sentinel could you make an option to make the harder version a dream fight triggered by the dead hk with the dash?
Maybe, don't really want to tho
Ok
And do you have an idea when it will be finished or will it be like the Switch release?
Sounds soon enough
Hah, yeah sean, I could make the spike balls bouncey. That would be rage inducing
That's even worse than what I had in mind
Can't wait for them to have physics so I can hit them with heavy blow
Lol
Guess it's my turn to show off the night's progress
Fully functional UI, just none of the settings do anything yet
Very very nice
It's really easy to get more buttons after you've done it once
Just that first time figuring out how it all works sucks
Ended up making a bunch of shortcut extensions so this wouldn't end up being like 1000 lines
The only skip I don't like that made me originally want to modify randomizer is the aspid skip to hornet 2
But that one isn't even bad
So if you have an option to remove that then yey
Mag skips 
Right now that would be under misc, which is kinda broad
can anyone help me out here? i was pretty sure i was doing everything right but it seems like the mod won't load.
Do what it says
i installed the api and put EnemyRandomizer.dll in hollow_knight_data > Managed > mods
Get the file modlog.txt from %APPDATA%\..\LocalLow\Team Cherry\Hollow Knight\ and post it here
I know for sure that there is a -40 API, maybe kerr is using something from that
Update API
https://cdn.discordapp.com/attachments/327461802311155714/436399641379078144/ModdingAPI_1.3.1.5_beta.zip
isn't this the most updated version?
No, get it from google drive
ok, thanks for helping!
What version is the bpss ruah mod?
It'll work fine with the boss mods
I wonder when someone will make a bingo mod with added hud/menu elements
There's already an OBS overlay for item tracking
If something like that is what you mean
something like that
but like
maybe on the oppisite button you use for the quick map
it shows the bingo
i think it would be r1?
What's the opposite of F on a keyboard, though?
L1 - Quick Map
L2 - Crystal Dash
R1 - Quick Bingo
R2 Dash
does keyboard use alt or something?
¯_(ツ)_/¯
seems pretty easy to find a button for keyboard
And can the False Knight in Crossroads be buffed?
If the game's code was a bit more normal it would have been a few line change, but I dunno:
His shockwave to be made bigger
He should be a bit faster
Failed champion exists already so it's not gonna be high on anyone's list to buff the weak version
I'd do it myself, but the snips ans bits of code posted here are alien to me
ok, i installed the latest version of the api but enemy randomizer still doesn't seem to work
(Can you make Failed Champ deal 1 damage?)
hopefully someone makes a proper dream mantis lords
And then put him in Forgotten Crossroads
Can you post modlog again @livid estuary ?
That error usually means incompatible versions in some manner
You've got the most up to date enemy rando as well, right?
Is modding bound to a certain programming language?
Not necessarily, but currently yes
To use anything but C# you'd have to write some kind of C# interface to load your script file
ok, is this the latest version or am i being stupid?
Pretty sure that's latest
yes
than i don't understand why the mod won't load
are you on the beta
i don't think so
if you are, the newest version is 1.3.1.8
if not, uhhh must be an out of date mod or something
it's enemy randomizer
@pearl sentinel
@rain cedar what does the charm notch mod do?
It's just a tiny thing that gives you the salubra notches for free when you qualify to buy them
Ahk
how do i check with HitInstanceHook that i only hit valid enemy targets, like anything as long as it isnt a breakable environment object?
or at least exclude them from being registered
For Enemy Randomizer mod, there is Scenes.rar and EnemyRandomizer.zip.
What does Scenes.rar do?
So how do you get the mods? Every folder on google drive is empty.
you sure? theres a zip file inside each folder
every one of them is empty for me
if i refresh the page a file appears for a second then vanishes
TTacco, when you hit something check if the target has a HealthManager component
oh wow i fixed it
adblock blocks the files from showing up o.o
that is the weirdest interaction ive ever seen with adblock and a website
Oh OK then
actually they still disappear if i clock them but its enough for me to right click and hit download
OnSlashHit(Collider2D otherCollider, GameObject gameObject) should be the one right? otherCollider (wait nvm i think its gameObject pertaining to the thing you hit) pertaining to the thing you hit, then i just use GameManger.GetComponent with it
then if check if the health manager is null, which means if it is, the object has no health so its not an enemy type
just do
if (gameObject.GetComponent<HealthManager>() == null)
{
// Stuff
} else {
// Other stuff
}
this is still with the slash hit right?
yes
onSlashHit
also oh yeah i just literally learned about generics just a few days ago, now i recognize that <> part
good job me for not actually applying it in programming
Also, I'll ask kerr later to add the target as one of the parameters for the hitinstance hook
For now, you can use monomod to listen to calls to the Hit method and get the target from there
{
buildUp += 2;
canBuildUp = false;
}
this is a weird case, i seem to be building up when i set it to == null
so naturally, i set it up to != null, which means it will return a true if the object does contain HealthManager
but with that my damage stays constant
@livid estuary you need to have the ModCommon.dll installed, in addition to EnemyRandomizer.dll
where do you get that gameObject from?
Kerr - would what I mentioned before be possible?
if you're using SlashHit, I'm pretty sure the gameObject is just the knight's nail
Oh goddamn
lemme check, brb
ModHooks.Instance.SlashHitHook += buildUpOnHit;
buildUpOnHit is then the method that calls that stuff i typed in above
Sorry I just woke up, would what be possible?
And the slash hit hook is just for normal nail slashes yep
eh, the HitInstanceHook
it currently gives us the fsm(hitter) and the hitinstance(hit)
I was asking if it would be possible to also show us the target
@floral furnace
yup, the gameObject is the nail
dang it i thought SlashHitHook's gameObject is pertaining to the target getting hit, didnt know it was pointing to the nail lmao. Oh well, its the only problem I have right now anyway, trying to get the buildup to happen on enemy hits only
The rest of the stuff is working out fine
try otherCollider.gameObject
this should give you the gameObject which has the collider you're hitting
a just append this to the same call right?
the uhh gameObject.GetComponent i mean
if (otherCollider.gameObject.GetComponent<HealthManager>() != null)
{
//do stuff
}```
alright ill try that
also
add Log($@"Hitting Game Object {otherCollider.gameObject.name}");
so you can debug
do you have onscreen debug console active?
oh yeah i forgot about that, you mentioned about opening some file in teh save folder right?
well i did check it, all i found was a json file which i dont even understand
yes
locallow
etc etc
can you do that rn, or is it a bad time?
oh yeah i can definitely check it out, dunno what you mean by "is it bad time time" tho
aight im here
so uhh, what now
if you're busy with other stuff...
ok!
opening mine
do you have a "BoolValues" field?
(i have no classes anyway and ive been focused on modding HK for the past 2 hours, in fact im worried about YOUR time if your busy lmao)
nah, it's fine
i found it
"keys": [],
"values": []
},
yup
add a key
"ShowDebugLogInGame"
with value, well, true
here's mine:
"BoolValues": {
"keys": [
"ShowDebugLogInGame"
],
"values": [
true
]
},```
after that, just save the file
then add log("stuff like this will pop out during game");
IN the source file i mean
not the settings we just saved awhile ago
yup
private bool Instance_OnEnableEnemyHook(GameObject enemy, bool isAlreadyDead)
{
HealthManager hm = enemy.GetComponent<HealthManager>();
HPBar hpbar = hm.gameObject.GetComponent<HPBar>();
if (hpbar == null && hm.hp < 5000 && hm != null && !isAlreadyDead)
{
HPBar bar = hm.gameObject.AddComponent<HPBar>();
LogDebug($@"Added hp bar to {enemy.name}");
}
return isAlreadyDead;
}```
that's something from enemyhpbars
in your case, you can just use Log instead of LogDebug for now
whats the diffbetween tho
there are logging levels
also i cant believe im giggling like an idiot just because of how convenient/easy this actually makes the debugging process now
in that same json you just edited, there's this field
"IntValues": {
"keys": [
"LoggingLevel"
],
"values": [
2
]
},```
which determines the (duh) Logging Level
0 is the minimum, it'll log everything
mine is at 2, so it won't log "Debug" and downwards logs
ahh so you can filter out some of the irelevant stuff
not "irrelevant", but yeah
if you want to find out all the log levels, just type anywhere in code LogLevel and see the auto completions
it'll also tell you the corresponding number to each one
Fine < Debug < Info < Warn < Error < Off
ill keep that in mind, also your otherCollider method seems to worked, the increment has only started proccing on enemy hits instead, so at this point i think stuff like polishing, balancing and other features are in order, again huge huge thanks for helping me out on this lol
np! Glad to hear it works!
Gradow, I don't have access to the modding api. So I would just be making another pull request to add that hook, same as you could too. I can do that later though if you want but it might be faster if you just made it. Do you know how to do it? I can walk you through it, it's super easy
@delicate ether if you use one of the pinned installers you should find getting mods much easier
I can make the pull request, Kerr
I'm going to need to look at doing a pull request on the api tho to see if I can show a descriptive error for mods missing dll dependencies
Nah, I got same as you. It was just easier during the beta since I had been keeping track of it all
Now with puppy I have spent like a total of 3 hours doing stuff in the last 2 weeks. It's like having a baby 
kek
I'm gonna ask again, hopong someone has one
I can't get the dumper to work, does anyone have a dump of the game code?
no
last time I checked, 56 had a dump of some FSMs and it was a few hundred MBs of data
Can you ask them when they come
heres 1 of 5000 odd
there's literally no point in us sending you those
both because you can get them yourself and because they'd be no use
there's no way you're looking through all of them
@pearl sentinel where can i find that (ModCommon.dll) file? it doesn't seem to be in the drive
Should be. Maybe I forgot to upload it? Give me a few minutes
yeah, it's on the drive
and i fixed the infinite health rq on enemy rando
as long as i dont lower the attack speed too much, it shouldnt render some of the areas like the bounce sections unbeatable correct? also the regular nail range is literally the lowest and you cannot lower it any further correct?
also whats the requirement for uploading a mod?
Post a .zip here. Include a Readme in the .zip. someone can probably upload it for you
no stuff like "quality of the mod must be this" or something like that? or as long as it isnt a shitpost mod (which i will say, shitmodst is a modern masterpiece) (also ill probably upload mine or something once i try it and it doesnt play like crap)
about nail range - I have no idea, would have to check the code
about nail damage - as long as it's bigger than 0 it should be fine
checked the starting "player new game" method or something, it was set up at 0 by default in the beginning, so i assumed it as such
if (this.mantis && this.longnail)
{
base.transform.localScale = new Vector3(this.scale.x * 1.4f, this.scale.y * 1.4f, this.scale.z);
this.anim.Play(this.animName + " M");
}
else if (this.mantis)
{
base.transform.localScale = new Vector3(this.scale.x * 1.25f, this.scale.y * 1.25f, this.scale.z);
this.anim.Play(this.animName + " M");
}
else if (this.longnail)
{
base.transform.localScale = new Vector3(this.scale.x * 1.15f, this.scale.y * 1.15f, this.scale.z);
this.anim.Play(this.animName);
}
else
{
base.transform.localScale = this.scale;
this.anim.Play(this.animName);
}```
this is how Longnail and MoP work
this is in Assembly correct?
yup
the point is
inside SlashHitHook you can just scale the gameObject
gameObject.transform.localScale = Vector3.Scale(gameObject.transform.localScale, new Vector3(xCoordinateScaling, yCoordinateScaling, zCoordinateScaling);```
something like this should work
Vector3.Scale multiplies two vectors coordinate-wise
alright i wasnt planning on toying with nail ranges but i may try it if i think the mod is a little too op on its own
ok, so now enemy randomizer "works" but after pressing the load enemy randomizer button in the top left of the screen the game crashes before it finishes loading
crashes or freezes?
both
Send modlog and outputlog
I'm not exactly modding Hollow Knight, but I am making a HK mod for the game Starbound. I do have some materials and resources I need, but it would be a lot helpful if I had spirtesheets for characters/weapons.
If anybody could show me how to find them/send them to me, I would be really grateful! ;w;
try to check the pinned messages, maybe there's something about it there
doesnt art have sprite sheets?
imo pinned art
yeah check over the pinned messages on art
is it working GnG?
nope
send the modlog.txt and the output_log.txt
first is in the saves folder, second is in the hollow_knight_data folder
output log
you need to send the file
mod log
instead of sending a million prints
wut
"bigCatHitTail": true,
"bigCatHitTailConvo": true,
"bigCatKingsBrandConvo": true,
"bigCatMeet": true,
"bigCatShadeConvo": false,
"bigCatTalk1": false,
"bigCatTalk2": false,
"bigCatTalk3": false,
Bardoon u dungo
yup that's him alright
🅰 🇷 🇩 🅾 🅾 🇳
s
why the fuck is bardoon denoted as cat
he kinda looks like one?
there's also this:
not
"MUMCAT_encountered": true,
cat short for caterpillar smh
and I have even less idea what that one is because it's only 1 line
You should tell them that
"why did you guys use whatever terms you wanted in the code? Should have used better ones, imo"

no i honestly thought they meant cat tho
the charm cost is there. I CAN MAKE ALL CHARMS FREE
never occured to me it was a short term for caterpillar, makes sense now tho
I like it better to think that Bardoon is a cat
@young walrus dunno, but it's interesting
Doesn't matter
like
GnG: DynamicHeapAllocator allocation probe 1 failed - Could not get memory for large allocation 67108864. DynamicHeapAllocator allocation probe 2 failed - Could not get memory for large allocation 67108864. DynamicHeapAllocator allocation probe 3 failed - Could not get memory for large allocation 67108864. DynamicHeapAllocator allocation probe 4 failed - Could not get memory for large allocation 67108864. DynamicHeapAllocator out of memory - Could not get memory for large allocation 67108864! Crash!!!
there's 3 places called fungus
download more ram
Greenpath, Fungal Wastes and Queen's gardens
Close chrome tabs
oof
Fungus1, 2 and 3 respectively
That's kinda how Dev stuff works for anything
I see
Cornifer is called "Corn" in the code
korn
Start with stuffs, things evolve, but changing syntax later is a waste of time
shrugs
The fluff dudes
The one singing about the Radiance?
Above the trap floor entrance to deepnest
Moss Prophet and his weird dudes
^
But what do they mean by transformed, he's ded in the file, I'm sure
The three dudes become infected
They are
"transformed"
it should be true then
From being alive
it's stated as false, as if they're still alive, but they were pretty dead last time I checked
"defeatedMegaJelly": true - Uumuu?
Yup
theyre not dead by the time you find them tho, so that would state the false part of the transformation
defeatedVys true
Yup

Nothing is really needed
tru dat
tru dat as well
"foundGhostCoin":false <- what's this tho?
Some code or something
you can find all of these in code, you know
who is Hegemol in the code?
False Knight
probably Failed Champ tho
"falseKnightDreamDefeated": true this one's Failed Champ
wat
maybe it's the Hunter's Journal
ye
journal entries are labeled differently iirc
Or maybe they changed names later
Maybe ogrim was originally hegemol
@young walrus but both were set to true
What was it... Like great slash is actually cyclone, and whirlwind is actually dash slash
Something like that
what the heck
yup, something like that
They don't reference what you think they would
only a "AllNailarts" thing that's supposed to trigger Sly
just occured to me, how much can you actually change or alter the stuff related to nail arts anyway?
not much
hmmmm
it's all fsm
thought so
not much probably
not until those are ported into code, that is
you still won't be able to change the animations tho
got it
hegemol is herrah
there's "Xun" in the code a few times
if (pd.lurienDefeated)
{
Dreamers++;
}
if (pd.hegemolDefeated)
{
Dreamers++;
}
if (pd.monomonDefeated)
{
Dreamers++;
}```
Lol
Oh
Makes sense. Kek
I thought I recognized the name
yup
another dreamer
like I said, it's all in code
everything you're reading are actual PlayerData variables
so you could just read them using dnspy
I'm looking for the only important thing - a way to save Myla
search for miner
oh wow didnt know CH was her trigger for being hostile
@young walrus in previous versions it was possible to Nail pogo to Brokwen vessel
just don't ever go to Crystal Peaks imo
What triggers her "slowly getting infected" phases tho
Lookit this guy, telling me what's possible for skips. Lul
I'm relatively new and most things are interesting for me tho
I'm probably just annoying for you
I've been here forever, so telling me something was possible before is kinda funny. Like recounting history to someone who was there
this is in setupnewplayerdata: csharp this.lurienDefeated = false; this.hegemolDefeated = false; this.monomonDefeated = false; this.maskBrokenLurien = false; this.maskBrokenHegemol = false; this.maskBrokenMonomon = false;
but by before I meant that I haven't been able to redo it again on later versions
so, yeah, hegemol is Herrah
@solemn rivet Cool
this isnt a oversight, this is lore it in its purest form /s
Kingdom's pass is, and I just now notice, how many lines of code down, called Tutorial...
I just noticed at the Grubs Saved thing
there's also Flames collected
and this is all I could find on Myla: csharp this.metMiner = false; this.miner = 0; this.minerEarly = 0;
what happens if you change those? can you make her OK again?
maybe, idk





