#archived-modding-development
1 messages ยท Page 89 of 1
doesn't count imo
Dang
What states you lads in? SA here.
Meh, could be worse, could be Adelaide the "Unemployed/Forgotten City"
#insert thinking meme#
NSW
It took me a few seconds to get you meant "New South Wales" and not "No Star World"
:)
That shit is stopping the coroutine I'm running for the item popup which stops it from sending the FSM event to give back hero control
This new big item popup component has good meme potential
Consumed the Gathering Swarm
william pellen? wut
Nice sean! Did you get all sprites during runtime, or are you loading them externally?
okay, I'm gonna start looking into making a canvas textbox
thats not my problem 
no, it's not, I'm looking into the documentation you made for canvasutil
oh right
hey guys, sorry i didnt mention anything but i got bonfire to work. Thanks for the help. Where do I level up my knight?
uhh, bench correct?
it will pop up when you walk near a bench
Is there any mod that allows me to refight nightmare grimm?
there's savefiles for nkg going around, so you could just reuse those
Do you know where can I find one of those?
there's a 6 flame file in the pins in #hk-discussion
you could get the other three flames pretty easily
then keep a copy of that at hand
it also allows you to fight regular grimm right off the bat
cant you respawn bosses with debug mod?
Can you? If that's an option if would be faster but I guess I can use the save, the flames are easy to get
not nkg methinks but i could be wrong
It's just that I loved the boss and wanted to fight it more
There is options for it, but ive never used them
you can respawn NKG, yes
Oh ok ty for the info
the tent is invis tho iirc
^
just put a dreamgate in there
when you load the randomizer when youve beaten the game
when it does the heart beat on the title screen
the sound of the heartbeat is effected by the audio effects in the scenes that are loaded lol
like if a scene loads with reverb, the heart beat gets reverb
thought that was funy
flying sleeping gruz mother
seems legit
we seriously need an exception for this kind of thing
and its on room mode so this is stuck this way
i dont know of a way to beat this without cheating
do you have wall jump
no lol
also if you hit the front one don't they all explode
if you hit the middle one they will all explode but you might only take 2 hearts
then wait for the guy to shoot the babies
idk if the babies are randomized thouhg
the babies are the guys that explode
lmao
what if you run the explody guys into the big baddy
they dont turn around
he will duck and become invulnerable
oh right
You can change it to chaos mode during gameplay if you run into that. Or turn both chaos and room off for normal mode
Either option will change what it's spitting
oh i cant change it on the fly or mid playtrhough? didnt know tha
chaos doe is too easy
Yep
Both off = types shuffled
or if you get knocked out of a room
Room = types per room shuffled
i like room, with room, if a traitor lord spawns in a small hallway you have to use a lot, oh well, deal with it
Both off that could happen too
how does that happen with both room and chaos off?
doesnt the mod jsut do nothing at that point?
Both off = normal mode. Types ate randomized only. Aka, if a buzzer is brooding mawlik, all buzzers are brooding mawlik
Room = all buzzers in one room are something else, and buzzers in another room are a different something else
is there api for current version, drive seems outdated
1.3.1.5 is not current?
i ran it and was in 1.3.2.7
i must still be in beta lol
I have like no time rn, so I haven't been doing anything with the api
So no eta builds from me
you are still in beta
Beta*
op fixed unity being stupid
correct
next question, where does it dump them
%appdata%/../LocalLow\Team Cherry\Hollow Knight\sprites
aight
So, I'm working on a simple berserk (a la Nier automata a2) mod. Currently you lose hp if you do not hit stuff for 10 seconds and you deal 1.75x damage. Any ideas?
add like 5% movement speed
There's a fluke monobehaviour
it uses damagesenemies instead of an fsm now for spikes
There's a consts file now
oh yeah
this might be nice for enemy hp bars
there's a health manager on death event
It might fix a few lingering issues with hpbars lingering after some enemies
Neat
Also Gradow I'm embedding a ton of stuff, not finding things at runtime
You can see it all here https://github.com/seanpr96/HollowKnight.RandomizerMod/tree/master/RandomizerMod2.0/Resources
The only thing I need to grab at runtime is the shiny item object
For sticking in chests, if applicable
are you guys just replacing instances of items with other items? not actually adding new instances of items
like can you add a shiny to any spot you want, or does it have to be already there and you just change whats there
thats how the darksouls randomizer works, i dont think they can add new shinies
I can add new ones, yeah
But I wasn't planning to, other than putting them in chests that normally have geo
also, enemy randomizer. the big dudes who spawn the rollers, they dont have a limit to how many mobs they spawn, this is about 20 enemies stacked ontop of eachother
with another stack behind them
and the dude just keeps spewing them out
uploading video this is kinda funny
Amazing
many a soul
Best geo farming spot
one hit completely filled my soul meter
i died though when i got hit
when i came back, he spawned normal rollies, though he did spawn them in bunches
shouldve made it primal aspids
I want an elder baldur that spits more elder baldurs
not before the collector that spawns collectors
that mid bench in the tall shaft in greenpath spawns 4 soul tyrants in one room, fun times
also using the enemy randomizer menu in game breaks the esc menu
i can no longer use the esc menu
so if i want to close the game i have to alt f4
correction, it fixed itself when i sat at a bench
That's not an enemy randomizer bug
Team Cherry broke shiny items
Sometimes when you grab them it doesn't give you back your pause menu
it wasnt from grabbing an item
it happened when i tried to close the enemy randomizer menu
i hit escape and the game continued but the menu was still over my screen
when i hit escape again (to get the mouse) i clicked back on the ER menu and then it went to the normal esc menu
the options menu*
when i hit esc again, it went back to the ganme, but the options menu was overlaid on my screen
and i couldnt get back in to the menu until i sat at a bench
Oh, ok
that's a modding issue, not specific to enemy rando
Debug has the same issue
you have to manually quit
like, click "back"
if you esc out of mod menu, it stays on top
I have to modify 5 FSMs to get the dream nail plaque thing working properly
health drains at the rate of 1 per 10 seconds, but timer is reset when you hit enemies
in nier you can heal by hitting enemies
thought that might be op, since you already get soul
Interesting
all damage dealt by the knight is scaled by 1.75x
berserk, random, enemy rando, darkmod, glass soul, steel soul 100% speedrun go!
also subject to change
but the thing I really need an input on is
do I make it always on or toggable (via charm or button combo)?
i was going to say make certain charms give extra bonuses
fury of the fallen comes to mind
Always on you'd be half dead just walking past dirtmouth at the start
my initial idea was to replace fotf with that
since you get that at the start and all
you could also make it fotf
but have an "overberserk" ability of some sort
so if you have full health and you hit enemies, you get soe bonus
like damage up
but so long as you have this bonus maybe your health falls faster
I think it would be cool to repurpose the hiveblood hp icons to show the draining of the hp
and the bonus goes away when you get hit
sorry if thats way more than what you asked for lol
that's a nice idea too, mechazawa
but it would be difficult in areas with logn stretches of no eneies
as someone mentioned
I think instead of triggering on full health, it would be better to tie it to hit combo
if you get a 10 hit combo within a certain window, you go into overberserk mode
not necessarily 10, just a random number
maybe change it to red if thats possible
Anything is possible with ms paint
or have hollow knight yell something
make hollow knight do the grunt soul tyrant does when he hits overB
holow knogiht
hollow nugget
ok, looking into the hiveblood fsm
wish me luck
if I don't comeback, plz send mems
Righto
it's a float compare
now I need to know what it's comparing to
"name": "Recover Time",
"tooltip": "",
"showInInspector": false,
"networkSync": false,
"value": 5.0
huh
does it only take 5 seconds to change the hive health state?
from empty to partially filled
10 seconds
ok, so it's 5 each
ok
seems easy enough
just reverse the order
it's nice that my current berserk timer is also 10 seconds
Works out nicely
Does FSM actually stand for flying spaghetti monster?
oh
Finite state machine
because that shit is confusing
Some kind of spaghetti
flying spaghetticode monster
wait - does that code you just sent me allow you to completely remove an fsm's transitions and actions?
Yeah it's some handy extensions for working with FSMs
Here's an example of a place I use it
//Remove actions that activate shiny item
FsmState spawnItems = fsm.GetState("Spawn Items");
spawnItems.RemoveActionsOfType<ActivateAllChildren>();
fsm.GetState("Activated").RemoveActionsOfType<ActivateAllChildren>();
//Add geo to chest
//Chest geo pool cannot be trusted, often spawns less than it should
spawnItems.AddAction(new RandomizerAddGeo(fsm.gameObject, geoAmount));
//Remove pre-existing geo from chest
foreach (FlingObjectsFromGlobalPool fling in spawnItems.GetActionsOfType<FlingObjectsFromGlobalPool>())
{
fling.spawnMin = 0;
fling.spawnMax = 0;
}```
but, yeah, I'll think I'll just make a new fsm with the relevant components/states from the hiveblood one, otherwise I would break the hiveblood charm
Just makes everything so much easier
I'm not sure how I want to handle additive items in randomizer
Behind the scenes, I mean
Pretty obvious how they should work for the end user
hive = FSMUtility.LocateFSM(GameObject.Find("Health"), "Hive Health Regen");
this returns a nre
I know it's supposed to be a child to the Knight gameobject
but it wasn't finding it, so I tried a more "broad" search
still nothing
this fsm list I have is from 1.2.2.1, so maybe it doesn't exist anymore
Just loop through PlayMakerFSM.FsmList
yeah
Log them all
ugh
hive = PlayMakerFSM.FsmList.Single(f => f.name.Contains("Hive Health Regen"));one last try before logging them all
well, that throws a weird error
TypeLoadException: Could not load type '<>c' from assembly
it's caused by that line I just posted earlier
I remove it, it compiles and runs fine
I add it, it compiles and NRE's during runtime
literally that single line
Idk, do it without linq
ok, last try for tonight
I'll upload the code if anyone wanna give it a go
https://github.com/Ayugradow/BerserkMod/tree/master/BerserkMod here's the git if anyone cares
I gotta go now
Say, Radow, how many games have you modded, mate?
Name change inc
So I get what it doesn't like here
But why doesn't it like that?
There's no ambiguity between the two obj variables anywhere
You use obj below in the outer scope
Just put some { } around the lower section of code and it will stop bitching
C# is Hella dumb about scope rules
I don't know about anything he's worked on since Hollow Knight but I'm fairly sure this is the game he started with, 69.
Same with me, this is the first game I ever modified seriously.
Yeah I realize it's because the outer scope has obj
That's just fucking stupid
That should be fine
Like the only reason to have that error is that the inner scope potentially hides the value from the outer scope
Which should be a warning, in my opinion
From stack overflow
The scope of a local variable declared in a local-variable-declaration is the block in which the declaration occurs. It is an error to refer to a local variable in a textual position that precedes the local-variable-declarator of the local variable. Within the scope of a local variable, it is a compile-time error to declare another local variable or constant with the same name.
(Emphasis mine.)
In other words, the scope for the "later" variable includes the part of the block before the declaration - i.e. it includes the "inner" block containing the "earlier" variable.
You can't refer to the later variable in a place earlier than its declaration - but it's still in scope.
Still dumb, imo
I keep playing Risk of Rain. From the core stuff in HK there'd already be two equivalent characters to Mercenary the vessel and kind of to loader Hornet


does ngg work with 1.3.1.5
if you don't patch down you have to deal with shittier damage anyway
so it'd be even harder on this patch
Ive noticed any rooms with enemy randomizer that spawn marmus, tends to be very crashy. As in, ive only ever crashed in rooms with marmus (and one other time, but not with ER)
I dont know if this is ER per se, or just marmus being out of their default scene though.
Is there any way to change the seed of a game with ER?
someone mod the game to turn the night into sans
You can edit your save file, I think, to change the seed. Otherwise the seed is only changeable before you start a new game in the enemy randomizer menu
or, you know, just turn on Chaos Mode, which is basically the same
chaos mode makes it too easy, i like room mode, i was hoping to change the seed for one room, but i guess i'll just deal with it every time i go past that room
can you use debug mod to fight nkg multiple times?
yes
This is a super noob question but are there any tools/ways to enumerate/list a given FSM's components and their default states?
cool thanks
literally exactly what I needed thanks for doing that Kerr
well almost
it'll be good enough for what I need to do.
does simply loading a save with bonfire alter the save in any way?
a save that was started without bonfire*
I think bonfire mod ups enemy health even in games its not loaded in
That's not really possible
I think he might be faking enemy health increase by lowering nail damage
That would stick after uninstalling
my nail damage was 5 according to debug menu, but enemies that should take 3 hits took 5
like wandering husks
i removed the .dll for bonfire and the damage went back to normal
and this was before i acidently loaded the saave with bonfire activated
Oh ok I see what you mean
when i loaded the save by acident, it showed me as like level 12 or so
The mod is still loaded
so what i think happened is the level info was tied to the SAVE SLOT, not the save game
because the previous save in that slot had bonfire
lol I love how they advertise that they delete the files after a short time as a feature
What stuff do I have to set on a new RigidBody2D and BoxCollider2D to get object physics to work?
Actually nah that's overcomplicating things
Where's the GetState function to return an FsmState from a string state name?
Yeah I realize that I'ma write one I guess
use fsmutil
and the extensions
makes fsms much less horrible
https://github.com/seanpr96/HollowKnight.RandomizerMod/blob/master/RandomizerMod2.0/Extensions/PlayMakerFSMExtensions.cs
and
https://github.com/5FiftySix6/Mantis-Gods/blob/master/Mantis Gods/KDT/FsmUtil.cs
the fsm dumper?
sh nobody saw that
anyway thanks for the link not gonna lie it's in an awkward spot though
?
probably would have not found it on my own
yeah
is everyone's mod gplv3?
i think so
Because I want to make mine gplv3 and don't want any licensing problems
true but if I'm using other people's code I don't want to unintentionally relicense it under something they wouldn't want.
Most people don't care but I only bring it up because there's the occasional dev (like the zfs people) who get really upset by these kinds of things.
I don't know who that is
but you're right, better to just ask
If I cared about keeping my code proprietary I wouldn't put it on github
yeah it has a license that explicitly says you can't use it in a GPL project or something
which is why Linux doesn't have zfs support
ree
That's dumb
except as a 3rd party kernel module
everything is MIT or gpl v3
no one cares
if it doesn't have something just ask
e z
yw
not everything
my fsm viewer is unlicense 
also there actually is a function to get state from name, HutongGames.PlayMaker.Fsm.GetState(name) does it
although tbh if I was to actual do some FSM hacking now, I'd just make custom actions and replace the target states actions with stuff that did what I wanted
That's what I'm doing, mostly
Otherwise I'd have to deal with all the weird garbage objects
Like FsmOwnerDefault and FsmVar
Simple actions like this already suck
SendEvent openGate = new SendEvent
{
eventTarget = new FsmEventTarget()
{
target = FsmEventTarget.EventTarget.BroadcastAll,
excludeSelf = true
},
sendEvent = FsmEvent.FindEvent("BG OPEN"),
delay = 0,
everyFrame = false
};
childFSM.GetState("Destroy").AddFirstAction(openGate);
childFSM.GetState("Finish").AddFirstAction(openGate);```
That's just saying I want it to do PlayMakerFSM.BroadcastEvent("BG OPEN")
oh that is a lot of garbage
More complex ones are just no
Then I clearly work at Team Cherry because no sane modder would do that
So I just use the visual editor
are the nail arts even worth using in Lightbringer?

Hey Seanpr. I've spent the past couple hours playing around with that file 56 mentioned: https://github.com/seanpr96/HollowKnight.RandomizerMod/blob/master/RandomizerMod2.0/Extensions/PlayMakerFSMExtensions.cs and I've found it really useful. Would you mind if I included just it in the mod I am making?
Yeah go for it
it shouldn't do, its just generic array functions
like if you google stackoverflow remove item from array
a 1:1 copy would come up
i mean the saving a lot of time
ok but it saves me time not having to look into the details of FSM data storage and allocation.
which you probably should if you're going to manipulate them ๐ค
also for GetState you can just call playmakerFSM.Fsm.GetState(name)
does the exact same thing
why is setstate a thing you can call directly from a playmakerFSM but you need to .Fsm for getstate?
like it's playmakerFSM.SetState() and playmakerFSM.Fsm.GetState()
Because playmaker is a mess
I assume they thought users would have no need for GetState
and its only needed internally
dunno why its public though
Hmm playmaker seems popular on the asset store but HK is the only game I have downloaded that uses it.
Hearthstone uses it
supposedly yeah
pretty it uses it for card mechanics
so the designers can drag and drop mechanics without having to code each card
it doesn't seem bad or anything for the developers at least
makes sense considering thats the perfect use for a composite fsm system
I do find it interesting HK programs enemy AI through it.
ai is fine to programmed through fsms
It makes more sense for enemies than anything else they use it for
infact its one of the only actual use cases of fsms
The enemy FSMs are still awful, though
makes sense I guess idk I've never worked on any big game engine games before so I'm not sure the good and bad ways to do things in them
generally you'd stay away from libraries or anything that'll "make your life easier"
Take it a step further and just avoid libraries entirely
Well I'm all for using libraries in my code but it depends on which ones they are
I hate relying on 3rd party code to work
Like I've done a few projects that use ncurses for graphics.
and I feel ok using that since it's old, reliable, stable, and ubiquitous on every OS with a decent terminal.
and theres some things you just don't want to reimplement like decoding video files for example, which is why libraries like ffmpeg exist
or do y'all mean different kinds of libraries
dunno why you'd be using either of those in a game engine
Well I am sorta trying to work on a roguelike
only library you should be using either opengl or directx tbh
and I'm using ncurses for that
and maybe something to sanitize inputs 
And many video games have cutscenes which are video files, so having a video decoding library is helpful for that
Anyone ever tried ENB or reshade with hk?
they probably don't work
I'm gonna go with it might possibly work
I was thinking of a limbo mod for HK would be cool
it's dx9 and you can drop your own dx9 dll into the hollow knight folder
i mean you could probably get some effect running
but I doubt any presets or anything would do anything meaningful
well, raise the contrast super high and lower saturation would give a close effect
you could probably write a single shader and attach it to the camera, and render stuff black / white depending on z buffer distance
not sure how you compile shaders in a mod though
I've never tried
you could also just change your monitor contrast and saturation
ive done similar with cheat engine and darksouls games, but those have light engines and such
a 2d gane as colorful as HK could have a lot of interestinf visual themes id there was a way to impliment them
you can attach shaders to any object you want
you've just gotta precompile them afaik
How do I get started with stuff like, forcing your nail slash sprite into the red one whenever you use FotF?
You can use monomod runtime hooks and just set fury true before NailSlash.StartSlash
Actually there is already an attack hook, set HeroController.instance.slashComponent.fury = true in there
It's private so you'll need reflection
alright thanks ill try that
Okay I have no idea what Reflection is so I tried learning it a bit, so far Im gonna try this:
typeof(NailSlash).GetField("fury", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(hc, true);
the bolded letters is requiring a non null instance, at first i thought using HeroController hc, but HeroController contains NailSlash slashComponent which is an instance of NailSlash object.
So should that mean the bolded part has to be HeroController's NailSlash instance?
@copper nacelle how did the glitched playthrough go yesterday? you know how to make it into a mod or something so i can try it out?
hey there guys, i trying to install the boss rush mod. but 1 says there a new version available in the top comer and it the mod options says there are no mods. -> https://puu.sh/Agy0y/065d886ee9.png
yeah that was gonna be number 2
you can actually play on lifeblood
just get debug mod and noclip out of the floor
i only tested a few bosses but I think it should work
noclip out of floor and then what?
okay so how do i do that?
there's a guide in speedrun.com
Hollow Knight - Downpatching the game using the Steam console - by seanpr
so then 1.2.2.1 is the version i want?
yes
Alright I think I got it from here thanks for the help

how hard is it to create my own fsmevents?
Inverting color woah
when i try to load enemy randomizer on the main menu, it gets to 20% and crashes without an error
prolly oom
if its out of memory, you need more ram
i have 16 GBs of RAM
is it all available?
what Windows do you have?
I know 32 bit windows only allows you to use 3.5
i have 64 bit
(saying from personal experience, I can't run some stuff because of that)
It's not ram probably
i have windows 10
๐ค ๐คท
there's 32 bit windows 10
but they said it's 64 bit
what do i do now
I dunno
i think fi you do dxdiag it will tell you for sure what bit your system is
yeah next to OS
its 64 like i said
though this doesnt help you if you are on 64bit anyways ๐
are you on the beta of hollow knight?
no
then i dont know, you'll have to wait for one of the mod authors to see your issue
๐ข
nooo
ok
i had boss rush
so lets see
oh
it doesnt work
does it need api?
i forget
this is my crash report btw
if it's not lightbringer or dramshield co-op
there's a 99.99% chance that it needs api
i have api
ree
what action must i take to fix this
no, 56, make that a hundo
tury - send us modlog (in saves folder) and outputlog (in hollow knight data)
appdata/locallow/tc/hk
techically the fsm dumper isn't api
thx
but it's technically not a mod either 
and here
welp
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!!!```
oom
download more ram
close some tabs m8
check htop

idk, Kerr did once say it needed around 3gigs of ram
randomizer?
it crashes on my 32 bit windows which only gives it 3.5GB ram
and says "not enough ram"
so I think it'll need 4 or more
but I may be completely wrong
idk
I only have 8GB, and mostly only have <4GB free, and it used to run fine
didn't try on newer versions tho
they use more RAM?
Is there a hook that happens before the game deletes game objects?
Stick a component with OnDestroy on the object
uh but how do I stick anything on the object when currently that object doesn't exist by the time my code runs
(sorry if stupid question)
also isn't OnDestroy for the component not for a game object that the component may or may not be manipulating
find it earlier
and if its your component it isn't going to get destroyed unless the gameObject is destroyed
its not mine it's one in the game. It's gone when I try to use UnityEngine.SceneManagement.SceneManager.activeSceneChanged.What's earlier than that that runs on scene transitions?
no its on your component, you add it to the gameobject
what object are you trying to find that gets destroyed before the scene loads
the door to the grimm circus room in dirtmouth, so called: room_grimm
And how are you trying to find it?
GameObject.Find("room_grimm")
But also I printed out a list of GameObject.FindGameObjectsWithTag("TransitionGate") and it or anything similar didn't appear there.
how do you even know its there if you can't get a reference to it ๐ค
probably kerr's scene dump
because I know there has to be some TransitionGate that leads to where grimm is (just making the tent appear is not enough) also I looked at kerr's dump for the specific name
ok
use monomod runtime detour
detour playmakerFSM.ctor or OnEnable
check against fsm.name
return fsm.gameObject if it matches
Thanks will try
Or maybe I should just recreate the door instead of using the game's door?
if the game object is inactive, Find won't find it, because unity makes inactive objects return null on a null check
you have to do something like GameObject[] objects = GameObject.FindAllObjectsOfType<GameObject>(); and check the array for your object
that seems like a more likely explanation thanks. the other objects I searched for were all active but hidden.
Parent objects aren't really ever inactive in this game
There's always just some FSM that sets them inactive after load
But the hook should be before that
that's what I thought yes but I guess wherever my hook is isn't early enough
actually should I be using ModHooks.Instance.BeforeSceneLoadHook instead of UnityEngine.SceneManagement.SceneManager.activeSceneChanged?
No
The Unity hook is exactly when the scene loads
The mod hooks are before/after the game tells unity to load
ok well good because ModHooks.Instance.BeforeSceneLoadHook doesn't even work for me
what are you even trying to do actually
can't you just set the playerdata variables to be ones that allow the tent to spawn as you load into dirtmouth
then set them back after load
I guess that's a possibility but I'd run into the same problem of the hook being too late. Plus if the person saves and quits I'm worried it might not retain their playerdata value
well you'd do it frame before the scene loads, and reset it the frame after
its impossible to save during a load
not only that
theres a hook
for overwriting bools as they are read
without overriding the actual value
well then.....
ModHooks.GetPlayerDataBool(string name) iirc
just check for started grimm troupe bool and defeated nkg bool
instance
set prior to true, latter to false
ModHooks.Instance.GetPlayerBoolHook
you probably only want to do that when scene is dirtmouth though
although should matter for fighting nkg ๐ค
nah I'm doing a lot of different stuff inside the tent.
if (blob.transform.position != Vector3.Scale(def, Vector3.right * PlayerData.instance.health))
{
Log(@"Updating health");
blob.transform.position = Vector3.Scale(def, Vector3.right * PlayerData.instance.health);
}```
I have this under FixedUpdate
any ideas why it isn't updating when my health decreases?
def never changes, btw
nvm
was getting an nre, preventing the code from reaching that
berserkmod is ALIVE

just a few small tweaks left
I have to make the health animation reset when I hit enemies
also when I sit on benches
looks super neat
Is there any way to get details about the specific actions a given FSM state calls?
like beyond just the action name
You can use the fsm dumper thing (unfamiliar with it) or try my kinda hacky printing extension for game objects in mod common PrintSceneHeirarchy(string outputFile) prints to /Mods
ok
Paired with looking at the action classes in dnspy to see what the data is used for
Also, some actions don't have their data populated until their state has been hit in the fsm
on second thought Ima save fancy FSM stuff for a more ambitious mod.
tbf it's not that hard to edit fsms if you know what you're trying to do
kerr's PrintSceneHierarchyTree is a godsend for that
I prefer printing them tbf
so, I suspect that my berserk mode is killing the hiveblood charm
if it is, I'll have to remove the charm's functionality entirely so as to not interfere with the mod
nbd anyway, the charm sucks
so, right now, the health drain is completely functional, minus the Hiveblood charm being ded
as soon as I have more free time, I'm gonna start working on the visuals
would be nice to have that heartbeat effect from fotf
Wait is there no easy means of implementing the outer/edge low health effect? (regardless of your health ofcs)
this is my favorite part o the code so far: csharp foreach (FsmState state in hive.FsmStates) { state.ClearTransitions(); state.RemoveActionsOfType<FsmStateAction>(); }
what do you mean, TTacco?
I mean youre gonna implement the FotF heartbeat effect regardless of health levels?
Unless im misreading this lmao
Will it be posted to the Mods Folder?
sure
I can post an ugly working version
btw, since I need to break the Hiveblood charm for this to work, I've decided to simply repurpose the charm
and give it to players on a new game
wait, you changed the code to Lifeblood so that now every time u equip it the mod works, but it stops when you take it off?
Your mod is a "if you dont hit then anything you lose life" or something like that right?
I think hes saying is the mod is activated whenever you equip hiveblood, and it deactivates whenever you take it off
yeah
basically
that makes more sense than having it always on
here it is. You need modcommon and the hooks dll for this to work btw
I'm p sure you can find these in the gdrive, but here they are
so, if it is directly related to Hiveblood that way
can you make it function like Void Heart
where, once equipped it's stuck
but why
well, they said the mod is bound to a charm, so, I guess for the mod to always continue working?
I dunno
what
the mod uses hivebloods hp visuals
that's all
and I think it now requires you putting on hiveblood to work but idk
" the mod is activated whenever you equip hiveblood, and it deactivates whenever you take it off"
"yeah"
"basically"
that part
is it made a part of Hiveblood intentionally
because if not, I suggested taht as a way around
So what is hooks for?
it's the monomod runtime detour hooks
w/ all the required mono dlls merged w/ it for convenience
So there's a some c# code on a github called harmony. You could add the code to modcommon, or I could. It allows you to add a hook before, after, or change a function call at runtime. And it wouldn't require additional dlls
wouldn't that effectively be the same thing tho
Yeah.
But no extra dl
Dll
Like, the code is basically "patch this method"
It could probably go in the modding api
Then you wouldn't really need extra hooks ever again
var harmony = HarmonyInstance.Create("com.company.project.product");
var original = typeof(TheClass).GetMethod("TheMethod");
var prefix = typeof(MyPatchClass1).GetMethod("SomeMethod");
var postfix = typeof(MyPatchClass2).GetMethod("SomeMethod");
harmony.Patch(original, new HarmonyMethod(prefix), new HarmonyMethod(postfix));
That's real simple and easy
Anyway, just an idea to cut down on extra dlls
imo that's what my pull does
But wtv
Btw now that I think of it, my mod doesn't really require modcommon, I just used to for debugging
what's wrong with extra dlls?
People can't even install mods with the amount we have now
you're just gonna make a monstrosity that's harder to maintain if you merge everything though
More people complaining
Ffs mobile
But if the usage of installers (which automatically install all dependencies) becomes more prominent, that will be a non issue
imo everyone should just merge all their mods directly into assembly-csharp.dll and just have a different dll for every single mod combination
oh btw I found out why NGG doesn't work on lifeblood
grimm doesn't have the "boss" tag anymore so it can't find it.
inb4 dreamboss
oh no it's there but they changed it to a sub-object
instead of the one that you need to control to edit variables
So you wanna find "Grimm Control" but the boss tag is "Grimm Control/Nightmare Grimm Boss"
aaaaaaaaaaaahhhhhhhh
I was doing GameObject.Find("Mantis Battle")?.FindGameObjectInChildren("Mantis Lord")
hey I spent about 2 hours trying to hack a tent in this morning not realizing there's a hook for temporarilly modifying player variable checks.
fuck that shit, ill just runtime detour the fsm ctor
and check for name = grimm control

well I'm not fixing your mod because mine is probably gonna conflict
what's yours?
nggg
imo what does it do tho
I'm trying to make it so you can refight NKG after the first time and that refight goes on forever getting slightly harder and faster the more damage you do until you die at which point you get rewarded with geo and stuff. But this is only after you beat it once for real.
neat
oh it's small but I think they also changed health_manager_enemy -> HealthManager
oh good
dumb question, but do you guys extensively research or at least learn the very source code of HK for these
not really
you know some of it just because you've looked at it before
but you can just dnspy whenever
at least for me
I only know the things that make no sense
Like the NonBouncer component which is just a bool
tf
They could just stick it in Breakable instead
so you know everything about the game then
Close to it
fuck grimm, ya'll need to make flukmarm or uumuu harder
Uumuu, the NAmeles King. Flukmidir.
and charms
you won't
was increased to 10
pf, i lift bruh
ill make crawlids harder
make the water acid, and raise/lower it during the fight
that would just make the fight more annoying
remove the platforms imo#
hey sometimes you just need a bed of chaos fight
i still think giving him a berserk mode where he becomes immune to phsyical but damaged by magic is a cool idea
and immune to magic when not berserk
ban yourself kthx
๐ฆ
that's like saying ancient wyvern is good
honestly the stretch running towards it because that titanite demon blocking it was more frustrating than the boss
the arms on the last phase was horrible tho
bed of chaos is probably the worst desgined bos fight ive seen in a video game
my save is at that demon
nibba its literally just those big guys with titanite poles
my save is literally at that guy
theyre just tougher enemies, not a boss
just run past
no i mean
#notwroth
run past
i didn't go past him
oh yeah that one, also, theres no way to salvage flukemarm
well maybe make it better
but its still an overall lame fight imo
make it spawn nkgs
i thought it was a funy fight, didnt find it hard or anything, some people apparently got stuck on flukmarm
@delicate ether I'm not making grimm harder, I'm making grimm replayable because it's a fun bossfight
watcher knights is the only real fight that made me hit a brick wall
no I'm making it harder the longer you last
o
it resets in hardness when you die
so he has infinite health?
yeah
but to make up for it you will get geo based on how much damage you do
so you can track how well you did
thats... an interesting way to make a fight "replayable"
imo good way
well making it replayable was different that was just removing the check to see if you killed it already
more arena fights would be nice
imo you do it when
my coding skill is about as good as your skill at driving a tank
i'm literally a tank operator
are tanks even that hard to drive
tbh you probably don't have to worry about other cars
or the road
they probably arent ๐
or people you don't like much
help I can't debug the fight because I only have KB&M and I can't last more than 15 seconds with it
like driving any track vehicle
why is playing without a controller so hard
boi i play kb+m only
my first time beating hollow knight with with mousae and keyboard, that shit was rough
would beat him first try
died 20 times instead
KBM best controls, precise on its own
I play with mouse buttons only
how intuitative is using mouse as your attack anyway
very
imo it's super intuitive
imo better to just go full keyboard
i have lmb as attack, rmb as dash, and middle as quick cast
i have lmb as move left, rmb to move right, scroll up to jump, scroll down to attack
literally perfect controls
but using spacebar is shit tho, i think its starting to wear out as well
i used space to jup
good luck
i also use spacebar, but sometimes it goes to that blurry line of "should i jump" or "the player never let go of the jump button so no jump for you"
i have 3 extra buttons on my mouse
my muscle memory was trying to do controller input while my hand was on a keyboard, thats what made it so hard
I use standard keyboard controls for everything
can you rebind the controller keys tho?
i use joy2key
same DS1 and 2 with keyboard only boi
i could probably play mouse only 
PoP included
hollow knights controller implimentation kinda sucks
i mean you could play mouse only with the normal 2 side buttons
its not theres
and scroll
I want to try controler soon, but I think I'll take way too long to get used to it
its some 3rd party library
or have side be jump and attack
and scroll be cdash and dnail
which would be easier i think
you need either dash or cast
it drops my controller a lot, or if the controller is unplugged, it requires a game restart to recognize
infact you need cast
oh yeah that controller bug, ive read other users having it
click both side buttons simultaneously for cast
they have to plug it first before starting
click middle button for dash
and dont get me started on the clusterfcuk that is steam controller support
inc darkmod nkg mouse only
when i had steam controller support enabled, it would not let me hold buttons down
lol
