#archived-modding-development
1 messages · Page 68 of 1
dunno why, but WSL's interface for file locking doesn't handle the fact that tail shouldn't lock a file
also wsl bad
if you try and copy or move a large folder
it breaks
and you have to uninstall it
except it also breaks uninstalling
so you have to manually do weird stuff
eh, i've had decent luck with it in alot of cases
is it as good as pure linux? no, but it's often better than running a VM if the requirement is that my main OS is still windows
o
at least, i'm guessing that is it
yeah, that isn't super messy at all /s. yay unity
I'm using console2 with cygwin and have had no problems with modlog writing when tail is running on it
Unless it's bc my tail is accessing modlogs through a cygwin symbolic link?
@copper nacelle cool boss updates to the mantises. Simple but already adds a lot.
thanks
Let me know how my custom boss goes if you decide to try it
(It's not very custom yet)
inb4 it's just a huge aspid
Just turn on the option in the menu then go to dirtmouth graveyard
should i have upgrades
Yes
Very much yes
It will spawn any time you have the option on and enter dirtmouth, but shouldn't attack unless you go over to graveyard
neat
probably my fault
i was cleaning out my saves folder
TypeLoadException: Could not load type 'tk2dFontData' from assembly 'Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
except 500 of them
Weird
oh nvm figured it out
I was using the fsm dumper and forgot to finish changing it back
rip invisible thk
@rain cedar About the Randomizer, couldn't you make it so key items can't appear in shops?
Just make the requirements to get to the shops = Claw + Dream Nail + Crystal Heart
That way, it's guarateed to have non-key items.
Maybe not all shops, but maybe just remove Salubra for example.
In response to @maiden moss saying the shops are too OP in the randomizer
Fixed crash with crystal guardian & added crystal guardian to a size list so it will spawn properly.
Added zombie beam miners' scene to the loading list.
Fixed issue with custom boss and reduced its health.
Correction* the laser guys aren't broken, but their laser beams are again. CG will happily jump into you though. Oh well
I think I fixed it. Unrelated: I'm doing a fresh test run and the room with the worms in crossroads randomized into the exploding bats and the electric mages from colosseum. I've died like a dozen times trying to get through it so far omg
Whelp.
Gruz mother just memed me.
All her spawns were city of tears flying sentries with hoards of javelins
I'm having trouble downloading and installing it through ModInstaller (though that might just be due to the fact that I have no idea how to properly use it)
Which one
Your mod, using the latest version
Which installer?
Pinned version
Ah, I'm using Gradow's
Gotcha, you'll wanna @ him then, or try Crossroads, or just do a manual install
Going to give Crossroads a try first
Crossroads I can help you with of that doesn't work. Make sure you don't try to run it from a Temp folder.
Np
Crossroads won't download new versions of mods automatically yet. If you want a new version you'll need to uninstall the mod and then delete the zip in the cache of the old version.
But almost no mods are coming out until after the new game update
can somebody help me with installing born fire mod ?
i try some step then openned the game and its crashed
Elaborate
@civic bough what was the issue with the installer?
@narrow night there's a video with instructions in pins. You can also try using one of the installers, also in pins
I think I just didn't know how to use it; I didn't have any kind of API installed, and wasn't sure where to pick one up
are you fucking legit rn
i mean yeah, dream wielder is the only one that is remotely ok
take grimmchild, bug out collector
dream wielder is pretty damn good
Outside of boss rush it's easily one of the best charms in the game
In boss rush where there's no notch costs for anything it's still good
But not as amazing
how is it amazing
How is it not?
2/3 soul meter refill, faster swing
it doesnt increase my dps so its shit
Yes it does lmao
except it does....
instantly get 2/3 of a full soul meter? that's pretty damn good
because no cost
how much does it reduce the swing speed by?
The cost is missing whatever the other options were
like.... 2 seconds?
hm
Nah I don't think the slow swing speed is even 2 seconds
it becomes like 3 times as fast
Maybe like 1 second faster
it's still a huge increase in swing speed
and double the soul collection
for 1 notch
with good dream nail swings, you could almost double your dps. 
obvious exaggeration
hm'
i guess it's not completely useless
but still
compared to picks like hiveblood or plain upgrades
yes exactly
hiveblood is a godsend but it's held back by its notch cost being monstrous
#balance
me: "hey i think i can take on crystal guardian now"
also me, seconds later: "why did i try that"
wow jfc first 3 bosses down and i have mothwing, monarch wings and lifeblood core
out of mantis lords, soul master, dung defender and crystal guardian, what would you say is the safest pick?
soul master is easy if you cheese
hm
now that i think about it, is there a single boss fight that requires mantis claw to be safely beaten
You need claw or wings for radiance
It makes uumuu and radiance platforming more of a pain but yes
also is it guaranteed to give you shadow dash at some point? because that would kinda suck if it didnt give you shadow dash for radiance
The drops are predetermined from a seed and cycle through the entire loot pool
oh i see
But if you're really unlucky you can get both cloak upgrades at once and miss it from not getting damageless
Still a chance it would give you it again after exhausting the loot pool, though
oh so damageless gives 2 upgrades
that explains a lot
rip me i was 1 damage from doing flawless soul master
woulda been nice to get both desolate dive and fragile heart
You don't need shade cloak for radiance either. Just dive into the floor for iframes

implying i have the timing to do that
mmmmmmmm now i have to pick between shade cloak and my boi howling wraiths
cloak
i mean yeah obviously cloak but i just really want howling wraiths for personal reasons
it says something about how piss easy Nosk is that i am trying and failing at getting myself killed
wait hol up
is it impossible to not get at least lvl 2 grimmchild
oh wait it went back to lvl 1
nice, means i dont have to worry about staggers being broken by the bitch
between Hornet 2, Watcher Knights and Crystal Guardian 2, what should i pick
CG2 is easiest
hmm
but CG2 can also go suck a major fat one because it does 2 damage per hit
dreamshield or thorns?
Depends on if you've fought collector yet
Radiance is a safer pick than NKG, right?
i can't beat either of them
oh nevermind i forgot, i have to beat Radiance last
NKG it is then
hey at least i have my HUD back now
i say NKG is easier than radiance

Hug King Grimm
Can someone nab me some game files? I need Bass Crystal Peak, Action Crystal Peak, and Main Crystal Peak but idk how to grab them.
The sound files that is.
there was a reddit post not long ago with all of them
dreamshield co-op
there's a dreamshield coop
Gradow you mean Unity Studio
someone should make a mod that makes parrying more viable
re
Should definitely implement the riposte as part of the player fsm so you can storage out of it
I imagine that would be very broken
I'll do you one better: Salt and sanctuary has parry teleportation
You can teleport anywhere horizontally in line of sight
Well I just figured it out
long jumping in HK when
so, you basically store the riposte by long-jumping?
You don't have to long jump
Just roll or jump same frame as the riposte
We knew that did crazy shit from a long time ago but couldn't really control it
oh
First time something useful and reproducible has happened
that's nice
It's ok
What I really want is a way into still palace without fighting skourzh
Only thing stopping reverse boss order runs
@buoyant obsidian
just noticed, when you get all the mask shards, it still leaves the slot empty on the inventory rather than a full mask
i think it might be the mask it takes away in the beginning
👀
👀
:*:  :*:
gay

So does anyone know if there's any way to play lightbringer with any of the other mods? I want to try it with the randomizer mod.
I thought so, but just wanted to make sure there wasn't some kind of loophole.
there is
you could port it to API
there's that loophole
(but be nice and ask 753 first, obvsly)
It would be pretty simple to do a barebones port of it
With just the ranged attack change
Animation would be wrong, though
Maybe we could put the right thing in an asset bundle and change the grubberfly prefab to use it
instead of changing the grubberfly prefab, can't we just reference the asset directly?
was supposed to be chinese
oof
lightbringer attacks don't work
you just swing in the air and nothing happens
this.grubberFlyBeam = this.grubberFlyBeamPrefabR.Spawn(base.transform.position);```
can't we just change that to an asset?
What does Spawn do?
dnspy has no idea
public static GameObject Spawn(this GameObject prefab, Vector3 position)
{
return ObjectPool.Spawn(prefab, null, position, Quaternion.identity);
}```
Normally you use Instantiate with unity, it looks like that does something similar but different?
Like an extension around instantiate?
For object pooling I guess?
maybe it's different for prefabs versus objects?
curiously, there's a modhooks tied to that
Hm
public static GameObject Spawn(GameObject prefab, Transform parent, Vector3 position, Quaternion rotation)
{
GameObject go = ObjectPool.orig_Spawn(prefab, parent, position, rotation);
return ModHooks.Instance.OnObjectPoolSpawn(go);
}```
let's take a look ad orig_Spawn...
It's probably used a bunch in the game and so was a convenient spot for something?
Interesting
I wonder if using that might fix a couple enemies I'm trying to create
would it be possible to create a prefab from an external asset?
Mages have something in them that's broken with their fsms and its been driving me crazy
I managed to figure out most of it so far
Apparently mage scenes have these things called Teleplanes
So I copied those out for them, and the mages really suck at waking up, so I put my own collider with a wake event in (same fix I did for mage knights)
But now they just go into a weird state where they're awake but not "visible" so their raycasts fail and they go back to sleep in a loop
In a weird freak behavior, electric mages now work, but are invisible so you can't kill them and they just spam electricity
The fsms are frustrating.
is quitting out supposed to kill monobehaviours
my update stops working after I quit out
cp3 but the catch is if you quit out you dont have cp3 anymore
if you quit you have to buy the game again
re
Yes quitting kills monobehaviors
Apparently they're changing a lot of the internal stuff.
With Hiveblood.
Hopefully a lot of switching over from FSMs to C# scripts.
Enjoy the new code

I look forward to seeing what you guys can do with it. Also @copper nacelle ddark works like this, I frames have been reduced over all. If you cast a second ddark during the first ones I frames you lose the I frames on the start up of the dive
Basically you can't spam them
Though in my testing I could still kinda spam it. I might ask will to decrease I frames a bit more. Anyway see how it goes
cool
compiled the api w/ new assembly
debug works
mantis gods died
hp bars still has its output but i think the enemies got renamed
all I got was '2dtk Blanker'
also quitting out breaks the game
lol when
now
i thought you're waiting for remaster
got bored
you have a vid?
ye
looking through a diff of the code a bit, will prob do more in the morning. looks like the game has some networking stuff added?
needs more investigation...
OH
nvm
that's switch stuff
neat
sweet baby jesus
i see non-fsm monsters
public class Climber : MonoBehaviour

helloooo there
public class CheatManager : MonoBehaviour
interesting
looks like it's for easier testing on switch
yo that cheat manager is neat
and looks really handy
this.dungDefenderAwakeConvo = false;
this.dungDefenderAwoken = false;
this.dungDefenderLeft = false;
new little convo with dung defender? 
and i guess elderbug won't be repeatedly making noise at you now
this.elderbugFirstCall = false;
reduced some kills required for journal entries, nice
nice

woahhh
holy shit
this new class
public static class WorldNavigation
example piece:
public static readonly WorldNavigation.SceneItem[] Scenes = new WorldNavigation.SceneItem[]
{
new WorldNavigation.SceneItem
{
Path = "Assets/Scenes/Tutorial_01.unity",
Name = "Tutorial_01",
Transitions = new WorldNavigation.TransitionItem[]
{
new WorldNavigation.TransitionItem
{
Name = "top2"
},
new WorldNavigation.TransitionItem
{
Name = "top1"
},
new WorldNavigation.TransitionItem
{
Name = "right1"
}
}
},
entrance randomizer here we come
and
public class HealthManager : MonoBehaviour, IHitResponder
is not an FSM thing!

ok, i gotta get back to bed
will mess around more later
(Heavy Blow is now good... just kidding)
will looked at this update and decided to meme it
and it's literally salt in the wound since i gave him this nice leaflet on how to balance heavy blow specifically qw q
bad idea tbh
how to balance heavy blow:
don't
pls
heavy blow has a thing that no other charm has
its not a very useful thing
but its a thing
make it so that when heavy blow is equipped the Knight gets heavier
and drowns in water
I'm having an issue with getting mods to work
using the public beta?
no i switched that off
im sure simo is having the same issue
It was working fine yesterday
mods won't work on the public beta (not all, anyway)
but i turned the mods off to play the game normally
and now they just won't work again
I do have beta off btw
any ideas how I might fix this
how did you turn them off?
the crossroads mod manager thing
can you show me a screenshot of the main menu?
I am trying to have boss rush, randomizer, and enemy randomizer on
if any of those are incompatibale or something
uhhh
also modding API of course
I think, maybe
boss rush could be incompatible with randomizer, because of items and stuff
but maybe not
also, it makes no sense to have boss rush and rando at the same time
boss rush already randomizes items
I know I just wanted to have it on if I wanted to try boss rush some time
hmm still not working
try it with boss rush only
nope
am I missing a step
I am just selecting the mods, hitting apply, and once they are installed starting the game up
it was working the other day
but I dunno I could be missing something
did you install the API?
yeah
maybe the beta is still messing it up even though I turned it off
it could have changed something in the files which didn't change back
ok the mod manager is crashing now
maybe I should try reinstalling it
because it crashed twice and isn't working
that's weird
also, there's still a lot of FSM
sadly

public void PreventCastByDialogueEnd()
{
this.preventCastByDialogueEndTimer = 0.3f;
}
there's this too
kek
I'm dumb whats FSM
oh, that's not directed at you, sorry
fam, shit memes
I just wanted to put that out there
Is that to stop people casting before the boss starts or some shit?
afaik it also prevents some storages
0.3f is like 2 frames
not much tbh
wait
nvm
I'm stupid and can't do basic maths
quickmaths
got my mods working
Thats at 60 right?
just reinstalled crossroads and now its fine
great!
yeah, 60
speaking of cheats...
public void GetAllPowerups()
public void ActivateTestingCheats()
found dev exit
super dash is still fsm
if (this.superDash == null)
{
Debug.Log("SuperDash came up null, locating manually");
this.superDash = FSMUtility.LocateFSM(base.gameObject, "Superdash");
}```
they moved all hero timers to update
nice
also, why is backdash still a thing?
if (this.rb2d.velocity.y < -this.MAX_FALL_VELOCITY && !this.inAcid && !this.controlReqlinquished && !this.cState.shadowDashing && !this.cState.spellQuake)
{
this.rb2d.velocity = new Vector2(this.rb2d.velocity.x, -this.MAX_FALL_VELOCITY);
}```
I can't remember if this is new or not
was there not fall acceleration before?
nah it was constant
open inventory bam acceleration
that's fucking dead now tho
VibrationManager.PlayVibrationClipOneShot(this.dashVibration, null, false, string.Empty);
Hi I'm both new and an idiot. How complicated would it be for someone to mod out the foreground spiders in Deepnest? The in game sprites and models don't need changing, just the stuff crawling across the screen
why would you
someone close to me is highly arachnaphobic but is in love with the game's aesthetic on the whole and doesn't want to miss out on the chance to experience it?
tell them to blink for an extended period of time every time you know the spiders will crawl
That's completely unhelpful, thanks.
lol
in reality, I'm not sure how hard it would be
if it's part of the scene itself, it'd probably be a pain
if they are just unhittable npcs, maybe not
Wait
I'm both sad and happy with this new beta
happy that, yay!, fsms are gone!
sad that, no, not all fsms are gone
particularly, the fsms that I'm concerned with are still there

Would you say the update's a game-changer though?
for the modding scene, at least, sure!
things are way better now
from a gameplay perspective tho...
I like the map markers
but I don't think that's "game changing"
and the other changes are basically negligible
map markers are kinda pointless tbh
they are nice for a first playthrough
but even then, they are not needed at all
and don't add much to the overall experience
I mean what are you gonna mark, vessels/masks/charms
why not just add automatic markers for those instead
unreachable paths/doors
^
the map does a good job of that already
that's mostly what I'd use markers for in a metroidvania
yeah, but maybe there's a ledge you can't reach... Stuff like that
if theres a door on the map and you haven't seen the other side off
its probably an inaccessible door / ledge
stuff inside a scene which wouldn't show on a map
like, an item out of reach
but, then again, even then I don't like markers
because the point of these games is to actually backtrack and try to find new stuff
if you have it all marked down already, I feel it kinda subtracts from the overall experience
but, at the same time, I'm not against markers because, hey, that's just how -I- want to play HK
it doesn't mean everyone has to play it like that, and if they want to have markers, then... Sure
Fucking Christ the spider guy is still at it
He's been asking for that on and off for most of the game's release
Honestly, spider change would probably be easy
But it requires someone to go investigate the deepnest unity scenes
Basically, likely you can turn it off in a day's worth of work, so if spider guy wants, he could do it himself with help from a modder on where to look
That's all I'm saying
can probably just iterate over all gameobjects in the scene on load
if name == spoder
destroy(gameObject)
Yep
Not even destroy. Just turn off on scene load
I'm gonna investigate the scenes today and dump each one to a file, to check the all the enemies for randomizer, so I might even know after that
Most people who come here to ask for a mod simply want modders to do it without them having to put any effort into it
True, but if he's passionate about it and done that several times...
Also, first thing I need to do now is update crossroads with a small change to support versions
spider guy? I've never been here before
Also, is anyone working on the updating the modding api and mod hooks (just so I don't double up on work here)
sorry ._.
Speaking of update, seems like bonfire and blackmoth will still work with no changes
Yay
Oh, o have both hollow knight solutions in a nice diffable format if you want them gradow
Or anyone else
For 1.2.2.1 and 1.3
What do you mean?
Like, 2 visual studio slns with all files
You can use a diff program
Ike meld
Like*
Or whatever
And see what changed in the code
also I'm an idiot and if I can't figure it out or figure out if it's feasible for one of my low tier intro-to-coding friends able to do it, I figure a full fledged mod scene would be able to or at least know how to and if that info doesn't transfer over I could pay someone to do it (again it's work) I just didn't know if it was actually difficult or not. Again, I don't code. I'm an idiot.
Just search for game objects with spider in the name and get rid of them
Probably good enough
Ah, that's good kerr! When I'm home I'll send you a DM
Kelesti, most of the work is looking through a list of 10000+ things and then figuring out which one to turn off, loading the gamr and trying it. Repeat as nauseum
So we can help you set that up if you're willing to try
And then we can make the change in a mod
@feral summit it's not that hard to do. I had no coding experience pervious to making blackmoth, and I still made it
Once you identify what
that sounds real fun
but if it's part of the environment foreground, is it not an object but an attached asset that get scalled regularily? What happens when the call happens and the target's not there?
That's why you turn it off, not remove it
It'll juts be "off" and do nothing when the code calls it
!!
Best solution seems to be kdt's
Or the code that calls it breaks and the game doesn't crash bc unity is awesome like thay
Just search for the specific object on scene load and turn it off
If there's no such object in scene, nothing happens
Poof!
Magic
okay, thank you! I'll get to that this evening 😃
I can give him a function to print scenes I wrote that's bound to a key
^
Also, sorry for the harsh reception, but we're tired of people just coming here to say "you should do such and such" but never wanting to actually do some work on it
Yea, that's why I tried not to ask like that. I value people's time and work, and don't want to make more work for them; I'm a dirty commie, their labor is not free to be taken advantage of.
(so failing ability to get it to work, I'd offer cash to someone who could do what I needed to because again, it's doing labor and folks would deserve to be compensated) but I'll try and see what my idiot self can do thank you
It's mostly a lot of time with these things. Like I spent 8 hours last Sunday last weekend trying to fix 3 enemies, and with the update we all need/want to fix our mods
As soon as I'm home again I'll try and see if my mods still work
Do we have an eta on the api?
2018
@feral summit no promises but I'd give it a shot for $10
woah there buddy
you trying to steal my market of low effort mods at affordable prices?
tbh i would buy lightbringer for $75.30
What program are you using to get the scene data?
Oi
anyone know hive knight's health here?
beta broke fsm dumper 
We = ded
why is everything a 2dtk blanker re
PlayerData and HeroController are way better imo
Much more consistent
But still backdash
Umm where's the mod installer?
No link won't work.
Never mind, I'll install the Bonfire mod manually.
How do you level up?
I'm at a bench but I can't level up.
@feral summit I have successfully removed the foreground spiders
The spawn animation for the other spiders looks like this but you said enemies weren't a big deal
The spiders won't climb over your screen anymore
unless they're actually enemies
these little guys exist too even though they aren't enemies
although I guess I could remove them if you want
nice
@still ruin then you didn't install it correctly. What does it say on the title screen, top left?
Sorry if someone has already asked this, but if I go to open beta will my current version of hk (with api, debug, and boss rush) break? If so, would it be possible to put the open beta in a different location?
Nothing is in the Top Left @solemn rivet
updating to open beta overwrites api
I think hes talking to me coffee
copy pasting the hk folder would probably work
then just rename when you need to launch either version
yw
This is by far my favorite discord server ive ever been in
does anyone here happen to know how to get the Hive Knight sprite? Y'know, for the wiki?
you can just dump it at runtime
so I just need to use unity studio, look for the hive knight sprite and then I can download it?
you could do that if you like menial work
why, is there a simpler solution to getting it?
dump it at runtime
onsceneload list all enemies
look through that list
find the one thats hive knight probably hiveknight
get component tk2dsprite
get that texture
save as png
uabe / unity studio has no info about any of the spritesheets
so its just atlas0
https://github.com/Kerr1291/Crossroads/releases/download/v00.51/Crossroads_v.51.zip
Updates:
Added "Re-download Mod" button to allow for updating mods.
Updated UI to use the Hollow Knight font.
Added error message to indicate the loader cannot be run from a windows Temp path.
so i'm trying to make a build of the modding api with some updated functions using the new code
the new hollow knight version has a few lines in GameManager.cs like this:
if( !Platform.IsSaveSlotIndexValid( saveSlot ) )
which is causing visual studio to tell me this
1>C:\Programming\CurrentProjects\ModdingAPI\HollowKnight.Modding-master\Assembly-CSharp\Patches\DRM\GameManager.cs(215,18,215,26): error CS0433: The type 'Platform' exists in both 'Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' and 'MonoMod, Version=17.4.6533.34390, Culture=neutral, PublicKeyToken=null'
any ideas? is there a way to get the monomod Platform reference out of here, or use monomod to rename the hollow knight one?
@buoyant wasp ?
should we ask TC to wrap it in a namespace? 
hmm
it's used in GetSaveStatsForSlot()
i'm trying a hybrid of the old modding code and the new stuff as a workaround atm
can you not just fully qualify Platform?
both are in global apparently?
I actually can't find it in MonoMod
i was going to try an alias or also do that
It's in the MonoMod namespace as an enum
ahh
but still
I'd think being able to do
SomeNamespace.Platform, should work
unless both are namespaceless
mmhmm
it's fixable, but we'll need to either fork monomod or get the author to fix it
i've forked it before, since i had to originally to fix some of the assembly stuff when we started using it
well, i think i'll be able to use the old code to replace the Platform lines in the meantime, the only one i'm suspicious about working is this one:
MemoryStream memoryStream = new MemoryStream(Platform.Current.ReadSaveSlot(saveSlot));
Honestly, looking at how it's used, wrapping it in the MonoMod namespace probably won't break anything
which the old code is
// BinaryFormatter binaryFormatter = new BinaryFormatter();
// FileStream fileStream = File.Open(Application.persistentDataPath + saveFilename, FileMode.Open);
depends on what is in "ReadSaveSlot"
like, if it does basically the same thing, yeah, it'll work. but if they screwed with how saves are being persisted, then not so much
looks like this
public override byte[] ReadSaveSlot(int slotIndex)
{
string saveSlotPath = this.GetSaveSlotPath(slotIndex, Platform.SaveSlotFileNameUsage.Primary);
return File.ReadAllBytes(saveSlotPath);
}
i guess i could just pull that code out
well, except another platform ref, but that's an enum i could replace with an int
eh, gonna see if i can fix monomod real quick before i have to leave
Might fix the platform issue, or might make the thing explode, hard saying.
just drop that into the MonoMod folder in the repo
well
unzip it
but you get the idea
yeah, gonna try it now
let me drop this error log, i'm not sure it's monomod but something is unhappy
from the build log
oh wait, i'm a derp. just a missing file? i think
maybe, i'll close out my stuff
yeah, i noticed that
in any case, i gotta head out for an about an hour and a half.
if you still have issues i will take a look when i get back
alrighty
thanks for your help
curious, it still throws those errors, but does generate an assembly csharp?
and it did patch
weird
(shrug)
oh well, seems good now, thanks for the monomod fix 😃
i am scared to this this button
here we go i guess
Initialize engine version: 5.6.3p2 (b3d7a6428558)
inb4 it works perfectly
woo
they updated their unity
holy crap it loads fast
i wonder if this is bc things are failing...
yep....
beta killed mantis gods
well, not faililng
but enemy names changed
like
oh, wait, i think i know
it's bc health manager isn't an FSM anymore
that's how i was identifying enemies
should be an easy fix
just need to go print some scenes
also rip mantis gods
i think i might have a mostly functional modding api now tho
can't even check new fsms because fsm dumper died
i have a mostly working api too
i just deleted like 6 lines that gave errors
did you update the functions in game manager?
yeah
does your api break when you quit out
yes
imo sharing is caring
haha
sure
Since they moved up unity versions, you could use that if you want a mod to work in both 1.2.2.1 and the newer
I think it's like #if UNITY_5_5_OR_LATER
Or something close to that
haven't seen that
It has all scenes and their exits
yeah
mantis lord fsm seems the same
i think it was just moved to be part of Mantis Battle\Battle Main\Mantis Lord
yeah it looks like only some fsm were taken out
and health manager fsm is dead
yey
#if UNITY_5_5_OR_LATER here i come
don't think so?
make sure you have the modding api
and aren't on the beta branch
No the mod works fine
ah
But I don’t have the option to turn it on
Yes
then you go to a new game?
Yes
after selecting new game is doesn't show a seed? then it might require steel soul
if it doesn't show up then, then it probably requires steel soul
which you can use debug mod to unlock, i think
or if you can't, just download the save in #hk-discussion and kill thk real fast
No biggie I’ll just load a HK practice save
omg this is such a good change
old code:
//TODO: wrap in #if/#else for case where playmaker is gone
PlayMakerFSM fsm = gameObject.GetEnemyFSM();
if( fsm != null )
{
fsm.FsmVariables.GetFsmInt( "Geo Small" ).Value = (int)( fsm.FsmVariables.GetFsmInt( "Geo Small" ).Value * multiplier );
fsm.FsmVariables.GetFsmInt( "Geo Small Extra" ).Value = (int)( fsm.FsmVariables.GetFsmInt( "Geo Small Extra" ).Value * multiplier );
fsm.FsmVariables.GetFsmInt( "Geo Medium" ).Value = (int)( fsm.FsmVariables.GetFsmInt( "Geo Medium" ).Value * multiplier );
fsm.FsmVariables.GetFsmInt( "Geo Med Extra" ).Value = (int)( fsm.FsmVariables.GetFsmInt( "Geo Med Extra" ).Value * multiplier );
fsm.FsmVariables.GetFsmInt( "Geo Large" ).Value = (int)( fsm.FsmVariables.GetFsmInt( "Geo Large" ).Value * multiplier );
fsm.FsmVariables.GetFsmInt( "Geo Large Extra" ).Value = (int)( fsm.FsmVariables.GetFsmInt( "Geo Large Extra" ).Value * multiplier );
}
well, the setters are public
the getters are private
time to use reflection
does GameObject.find not find child gameobjects
that searches all acvtive game objects in the scene
active*
that's why i made the extension one
FindGameObjectInChildren
public static GameObject FindGameObjectInChildren( this GameObject gameObject, string name )
{
if( gameObject == null )
return null;
foreach( var t in gameObject.GetComponentsInChildren<Transform>( true ) )
{
if( t.name == name )
return t.gameObject;
}
return null;
}
that'll check inactive game objects as well

HealthManager hm = gameObject.GetEnemyHealthManager();
if(hm != null)
{
hm.SetGeoSmall( hm.GetGeoSmall() * multiplier );
hm.GetGeoMedium( hm.GetGeoMedium() * multiplier );
hm.GetGeoLarge( hm.GetGeoLarge() * multiplier );
}
new code
er
meant to put set in
that's about 50 times better looking
but you get the idea
oh wait it isn't getting them
it's trying to get them
wait
i wrote dumb code

lol
oof
the screen just shakes
oh ho
i see
he has a new name
"Zombie Beam Miner Rematch"
seriously tho
the loading times
it's like 3x faster
sweet
other than missing enemies i still need to go find, it works
hey @copper nacelle try these
some enemies will be missing, but i'm curious of your load times
afk rn
I'll try them when I get home
lol
What's busted about it?
dunno yet, i built it against the modding api i'm using
and nothing randomized, the seed selection worked at the start
also, i couldn't access any menu
and when i sat on a bench the charm notice popup said "PRESS (blank) TO OPEN CHARM MENU" or w/e the message is, just had no key at all showing
i'm busy fixing stuff in mine or i'd look at it more
Very nice
Are item pickups still fsm?
If not I'm just gonna rewrite everything anyway
you on pc right now?
I'm on my phone
k, was gonna send you the soultion if you were
Send it anyway, I'll take a look in a bit
so i made a thing
it's all the scenes in hollow knight dumped into text form
including listing all the components on each object and all the FSMs on each object
_Enemies\Abyss Crawler
\--Component: Transform
\--GameObject layer: 11
\--GameObject tag: Untagged
\--Transform Position: (39.0, 213.9, 0.0)
\--Transform Rotation: (0.0, 0.0, 90.0)
\--Transform LocalScale: (1.0, 1.0, 1.0)
\--Component: MeshRenderer
\--Component: MeshFilter
\--Component: tk2dSprite
\--Component: Rigidbody2D
\--Component: tk2dSpriteAnimator
\--Component: AudioSource
\--Component: SetZ
\--Component: BoxCollider2D
\--BoxCollider2D Size: (1.5, 1.1)
\--BoxCollider2D Offset: (-0.1, -0.4)
\--BoxCollider2D Bounds-Min: (38.9, 213.0, 0.0)
\--BoxCollider2D Bounds-Max: (40.0, 214.6, 0.0)
\--BoxCollider2D isTrigger: False
\--Component: SpriteFlash
\--Component: Recoil
\--Component: EnemyDreamnailReaction
\--Component: InfectedEnemyEffects
\--Component: EnemyDeathEffects
\--Component: HealthManager
\--Component: ExtraDamageable
\--Component: DamageHero
\--Component: Crawler
\--Component: RandomAudioStart
\--Component: PlayMakerCollisionStay2D
\--Component: PlayMakerCollisionEnter2D
it has no FSMs 😮
(example piece of output from one of the scene files in that rar)
i think i might be able to actually serialize these things to a file now
\--Component: Transform
\--GameObject layer: 18
\--GameObject tag: Untagged
\--Transform Position: (179.4, 17.0, 0.0)
\--Transform Rotation: (0.0, 0.0, 0.0)
\--Transform LocalScale: (1.5, 1.5, 1.5)
\--Component: SpriteRenderer
\--Component: Animator
\--Component: PlayMakerFSM
\--PFSM Name: Shiny Control```
Fuck
Yeah, we'll see
Either way I should rewrite the randomizer, honestly
It's horrible
It just guesses when to lie to the game about your loadout
And somehow that doesn't break all the time
Sharpshadow and superdash are also still fsm
So once again our insider information is completely wrong
Pretty sure graig said enemies would be the biggest thing still fsm
Yet here we are
There's some more stuff in HeroController and PlayerData, but I couldn't spot any big changes
It kinda makes sense to use fsm for bosses
All timers are under FixedUpdate now, which is neat
More than anything else they use it for, at least
It wouldn't even be hard to create boss ai as an actual coded state machine
Playmaker sucks ass
Tbh, biggest change I found using dnspy was the markers
our insider info wasn't wrong about fluke getting nerfed though
oh, did it? Haven't played the beta yet
Who was the insider?
iirc graig
ah it's always Graig
15 hits? Only that?
Dang, that's fast
Yeah, my scene dump I just did, I loaded all 421 scenes
Bc it was so fast
nice
Oh, one of the scenes was titled "back dream" or something
Should check it out
Backer *
does debug work with the beta?
I think someone said it still works
Yeah enemy list looks for fsm shit
Some other fsm stuff like nail damage might be broken idk
is modding better now?
Yes it should be much better
Yeah health manager component is awesome
Still waiting for that item pickup component
I wonder if you could write an item pickup component
(w/ debug)
And have it remove the item fsm on scene load
And replace it with the item pickup
Sounds like such a pain in the ass
Maybe worth it, though
It would be just as much of a pain to hardcode finding every pickup in the applicable scenes and modifying the fsm to be the right pickup
Ugh

