#archived-modding-development
1 messages ยท Page 67 of 1
Does anybody know how to create your own hook?
Having some trouble here.
Yeah Gradow showed me what to do. Also, I don't use Github much. But I think I know what you mean.
On second thought, no idea what to do. I just want to get the hook I made added to the API. Do I need someone to give me permissions to the repository?
nah you make a fork and you merge changes
This button
i love source control
^
Okay, so if I did everything right, I just wait for my commit to be merged?
So watching graig's vod of the randomizer stream, he hit this weird bug that causes your jump to stall out. I thought it was caused by something in my mod, but apparently it's an issue with the base game that is fixed in the remaster 
Yeah every speedrunner knows the frustration of that
It's when other shit touches the ceiling
Or the walls
Or anything, really
And sometimes just when the game feels like it
pretty much every glitch is when the game feels like it
I just tried out my health hook, and it works! It's first thing I've ever made that didn't cause 15 errors when I compile the first time!
gj!
so, this new hook gets called whenever you heal?
OH
i figured out why the first crawler of the game is never randomized
it has a totally unique name
from all other crawlers
"Crawler Broken" is its name now
gonna try adding the blue health bugs into the logic somehow
maybe i could make them drop from certian enemies
what a disappointment
actually i was thinking of randomizing the geo chunks a bit (big maybe here)
so some could be blue health
that would be cool actually
@rustic stag - Just reviewed your pull request. Won't be accepting it as is, see the comments ๐
^
in an FSM somewhere probably
probably the recoil fsm
oh @young walrus graig said that he heard one of the playtesters tried to do float on the new version of the game and couldn't
(see his vod from last night if curious)
just an fyi
just means you'll need to find new bugs 
or a new game

or just downpatch?
its alright at this rate cp3 will never come out anyway :^)

looks correct to me
in a perfect world, the igt works first patch, and we never have fsms so they don't go away from them and completely change the speed game a year in,
Ty!
what's an FSM and why do you all hate them so much?
I googled it but there's lots of them
like fecal sludge management
so idk which one to read up on
thats the one
you got it
fsms are finite state machines
basically flowcharts that tell the game what to do
and it sucks big time
The problem is that its hard to mod something using FSM.
they are... Somewhat inaccessible
i mean, a normal FSM probably wouldn't be too bad
the problem is that PlaymakerFSM is something that is stored in data and meant to be edited/modified in unity/in a tool
so from the modding side where we just have code, that makes it a nightmare to mess with
using FSMs the way that Playmaker does is like using a rusty spoon as a toothpick
https://cdn.discordapp.com/attachments/318739392787251202/423592687673933844/unknown.png We need a mod where every enemy becomes the spear guard
genuinely terrifying
Combine the abilities of lance sentry along with soul twister, crystal hunter, mantis petra and primal aspid into one enemy and make that the only enemy
Yeah, like that
kerr said he might add the option to control which enemies can be rando'd in enemy randomizer
so you can choose all the worst enemies
or have only crawlids and vengeflies
Might? I will definitely do that. The only reason I haven't yet is that I'm trying to add more enemies into the rando rotation. Hopefully crystal guardian will be working by the end of the weekend (fingers crossed)
does anybody have a link to Gradows mod that actually workds
works*
as in the mod installer
the one that is pinned
Is that Crossroads?
Yes
It isnt working for me
Win10 1.2.2.1
Steam?
Yes.
Check if there is a file called ModLog.txt by your save files
I check the boxes on Modding Api and Boss Rush then click apply. Then it says "Installing files for Modding API and never changes
Is your internet connection just extremely slow? Could be taking a while to download
It is quite small, though
Alright that's no issue
what is the location for my saves?
Press win+r to open run and put in
%appdata%\..\LocalLow\Team Cherry\Hollow Knight\
I do not have the ModLog file
Yeah, figured since the installer is the problem here
I'm not sure if that has any debug output
I've never actually used either installer
I'd recommend just trying a manual installation
Sure, there's a video in the pins
watching now
Ok I got the mod to work
I beat the first two bosses in it
why do I not have dash after beating Hornet>?
It's random rewards
oh geez
hard to do some of these guys without dash haha
you wanna tell me how to do soul tyrant without dash? lmao
guys
when i install the boss rush mod it says there is a new version and i can't toggle the mod at all
i need help
pls
its also the same with debug
Version checking can't be trusted to be accurate right now
The github certificate in it is out of date and I don't know how to generate a new one
Wyza set that up
So far the only case I'm aware of that has the mod installer failing is when someone tries to run it from a windows Temp path or from inside the extraction window of a zip or similar program. According to my friend who worked at MS, there's some special rules with what actions you're allowed to perform from Temp. I have an issue in to add something that tells at the user about this on the next version...
Mine should fail... Idk when
so, it's not a certificate issue, cause the certs are still valid and match
gotta be something else
question is, what
i'll try and figure it out
(btw, i just used openssl s_client -connect api.github.com:443 to get the cert for it. nice and simple, the cert itself should be valid till 2020. I'll add the command to the comments in the API though so that we don't forget ๐
also, @rain cedar - I saw that you said the post-build was failing for you, but you still got the dlls. If you can send me the log output from the build, i'll see if i can figure out what it is.
im playing with enemy randomizer why cant i turn off v sync or turn on full screen
my cursor is above the v sync option but i cant change it
doesnt work with arrow keys either
no its above particle effects
just play with vsync easy
go to city of tears
Umm isn't vsync supposed to fix tearing, and not cause it?
hmmm
Remove my mod, toggle vsync. It is a bug and I will look into it
fuzzy fake news
I mean, I just got the mod last update to a mostly stable place. Optimizations and bug fixes will be coming but I appreciate the bug reports so I know what to fix
so, i know why the version checking broke
Gtihub disabled TLS1.0/1.1. i hope the version of mono that HK uses supports TLS1.2...
and, that's a big fat nope
not only does it not support it
the most recent version of unity 2018.2, still doesn't work with 1.2 right
wtf
That one will be fixed in 2018.2, code for this is on the way to our main development line but sadly won't make it to 2018.1
like
wth
f2
TLS 1.2 has been around for literally 10 years
it only closes it partially ๐ฆ
F1?
sigh well, i guess for now, i'm gonna have to disable version checking ๐ฆ
i'm sure there is some other option like bundling an SSL library with the modding API, but I really don't want to deal with that across linux, mac and windows right now
K, i've pushed a new version of the api up and uploaded it to the drive. The GithubVersionHelper now always returns version 0.0 regardless of what name you pass it. This effectively disables version checking for the foreseeable future. Not much we can do about it for now.
o o f
which mod allows me to create a spawn point i can respawn to/tele to? i know the game isnt meant to be played this way but im not having fun running back to soul master lol
Debug mod. And the run back to soul master only has 1 soul twister in the path if you take all shortcuts
i see mightve missed some then
Literally right next to him
Ya. Then take the elevator on the left of the next room, then the shortcut above the 3 soul twisters in the 2nd room after that
hmm been trying to figure out debug mode for like 30 min or so, you can only set a spawn point in your current "map", if you tp to the spawn from a different area it bugs out
its intended?
spawn point is hazard respawn
which only works per room
if you want to set teleports, put down a dream gate
you can have infinite of those down and chose which to TP to
ohh ofc im retarded
just select which one you want to go to on the top right
ye got it now ty alot
๐
is the infinite dream gates a debug mod thing?
yes
I'm curious about this enemy randomiser
and these other mods
I don't want to mess up my 106% save, and I doubt there's any way to only get these mods to affect one save file
also I'd like to know a bit more before jumping into these mods
just don't go on your 106% save when the mod is installed
just having it installed won't fuck up your save
hmm okay
@fair rampart
You can back up your saves if you're paranoid
what's the 110% mod?
i get mods all the time and my 106% is still vanilla
adds some more %
like all geo clusters
probably
yeah
it's pretty neat
i kinda think enemies should drop more geo so you can balance normal geo usage and levelling
instead of just grinding
what do these do, if you don't mind me asking
Blackmoth (Gradow)
Charm Notch Mod (Seanpr)
Dreamshied Co-Op (753)
Empress Muzznik (753)
Lightbringer (753)
Player Data Tracker (KDT)
ScaleMod (753)
oh wait
oh
blackmoth turns your main attack into your dash
basically makes nail do one damage
and shadow dash available from the start
and it does damage
and nail charms affect dash
uhh
charm notch mod gives you salubra's charm as soon as you get them
dshield co-op is pretty wacky it just allows one player to control dshield and one controls knight
its local only
yeah
whoa
you can apparently pick up the knight too with dshield idk
like super mario galaxy and that star thing
lightbringer makes your attacks ranged
adds a lot of other content too
play lightbringer
new charms and stuff
pretty cool
yeah it's great
what are the "new bosses" in lightbringer?
empress muzznik
i think it tracks player data
scalemod lets you control the knight's size
yup
Just another day in the Hollow Knight modding community. http://www.moddb.com/mods/hollow-knight-lightbringer
gruz mother has never been so scary
Bonfire does make enemies drop more geo and have more HP tho
Also, blackmoth adds other dash functionalities
Ye
Spoilers: it's boring
yeah that makes sense
Nightmare God Grimm (KDT)
FSM (kcghost)
?
is it possible to scale per boss
Try a Str/Dex build with some Luck and Res points... It's gg
nightmare god grimm is a mod that basicaly makes nkg actually unfair and stupidly hard
ngg makes him faster and the spikes attack always happens
No, makes NKG actually a challenge
no ones ever done it
I found ngk hard enough
yeah literally no one has beat ngg
Not in single segment at least
you should do original radiance
But no one has beaten flukemilf nail0 single segment as well, so...
graig said they had to nerf it to what it is now
constant overlapping
and a random amount of homing balls
also, I don't think NGG is unfair
I think it's theoretically possible to beat it no-hit
i mean its basically the nkg fight but you can stand in one spot
how would you do the last phase no hit
just ddark spam and get lucky by hitting both health pools
I still think flukemilf n0 is the ultimate boss
fluke...milf?
how dare you block zote, our god
woo, fixed the slash spider enemy (devout)
now they will viciously hack at you once again
i made a component that tracks the current states of an enemy's FSMs and keeps track of what state it's in and when it transitions and what event triggers the transition. Used that to figure out that the slash spider was getting stuck in a "waiting" state. Added functionality to send a "WAKE" event for the slash spider (devout) when it gets in the stuck state and poof, be's back to being deadly.
now to use this to fix a bunch of other enemies...
That tool sounds neat (devout)
It's super handy
I should've done this a long time ago
Having a component that runs on an enemy makes it much easier to do things
still waiting on GnG, but depending on how much is changed on the FSM scene, I might need to do something similar to make multidirectional superdash work
yeah, i was just thinking "this is gonna be handy and probably useless real soon"
sad but true
not sad! We're (probably) gonna be finally free from FSMs!
seriously, i pray that it becomes completely useless, because that means our lives are gonna be alot easier
enemy controllers are staying fsm
not really a surprise there, but it'd be nice if alot of the other stuff wasn't ๐
Damn. So modifying enemies to any significant extent will still be a pain in the butt?
So good news for enemy randomizer: I got crystal guardian working
nice
He's really deadly in a tight space
If there's more than one the beams are weird because by default they reference the same beam prefab, so I need to fix that
Then you can fight a room full of them
do CG and CG2 rando separately?
I haven't tried to add cg2 into the rotation at all since it'll feel about the same
But yes it would
I'm hoping eventually that I can shuffle all the minibosses around, so you could fight crystal guardian in place of brooding mawlek, for example
oh that would be cool
Then maybe I can make a super brooding mawlek for part 2 if it does a swap like that
when rando choice gets added i might do a playthrough with only bosses and minibosses
does anyone know the button to hide ui in debug mod?
f1
the health bar
what health bar
enemy health bars?
there should be a toggle if you look in the binds
if not you can just manually disable it
how? im new sorry
you talking the MC's hp?
just click through the menu
there's like 10 pages of binds
were can i find those?
the main box
in the middle
click the pages button
should say like 1/10
or something
depends on you
I kind of just want to dick around
Randomizer + EnemyRandomizer is probably what you want then, or debug mod
Or all of the above
what's the difference between randomiser and enemy randomiser?
Items / Enemies
so like charms?
charms and abilities are rando'd
in normal rando
any charm can be any charm or any ability
and any ability can be any ability or any charm
what do you need shade cloak for?
oh sorry I mean mothwing cloak
then you use dj
there are precautions taken to avoid softlocks in rando
on hard rando you'll have to do some difficult skips
but usually you aren't just blocked off from progression
^^
definitely recommend playing on easy
otherwise you're going to have a bad time
hard is intended for speedrunner use
or the very strong-willed
hard isn't that difficult imo
especially if you're lucky
the most i had to do is a couple shade skips and a fireball skip
The worst hard seed I had put double jump behind hornet 2
And the tear T shade cloak
At*
I ended up doing like 80% completion trying to find everything
It was my first randomizer tho, so I didn't know how to do the skip to get to hornet 2
the best skip is going through the spike gauntlet in crystal peaks
See that one I could do bc it's just spikes
Can you?
yup
Randomizer CH with only wings/dash https://clips.twitch.tv/IntelligentNimbleGalagoBudStar
Oh ok, I was thinking you meant without wings
even if somehow you got to the top of the CP climb, there's that tall wall in the way
need wings to get over that

nice try
Do the mods work on both Steam and GOG copies?
Do the mods work on Microsoft Windows, Mac OS X, Linux?
which mods
api mods should work on windows mac and linux
non-api mods i dunno
not sure what works on GOG
Will mods ever be on the Steam workshop?
Why do some people put Steam mods on the Steam workshop and some people just link them on Discord?
Is there a difference between the 2 practices?
I see. What factors need to happen for a certain game (not just Hollow Knight specifically) for a Steam workshop to exist?
Bingo code is obfuscated lol... https://github.com/kbuzsaki/bingosync/blob/master/bingosync-app/generators/hollow_knight_generator.js
I dont understand how you can make a bingo generator that doesnt consider how long a goal takes. XD
devs have to actually add Steam Workshop support
the bingo code is wtf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf @vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf @vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf
@vagrant leaf

@slate owl so make your own
Or actually offer feedback
@young walrus Is there a reason why the code obfuscated? (Aka intentionnally made illisible.)
The list?
I made the list, I didn't make the first part. That was added by the dude who made the site so it fits in his system
The list is intended to be balanced in and of itself.
Like it's done on the OoT bingo for example. Which was also obfuscated by the site even though bingosync didnt even write the code for it XD
Which is why there's a lot that isn't included
The easiest way to balance things out is to add a difficulty to each goal.
And you try to balance the sum of the difficulty for each row/col.
To generate a short bingo, you make the difficulty sum lower than normal.
We're not generating different lengths tho.
i don't think the bingo stuff had a programmer work on it?
(might be remembering wrong)
All it does is pick 25 from the list. That's it.
And I'm by no means a programmer
But I wanted that shit done
So I did it
With a lot of help
On the actual coding
I could implement the system rainingchain is suggesting if you supply goal difficulties
See how it works out
Oot Bingo already has the code for it actually, that considers difficulty.
I hear ya mickely ๐
But the code isnt the nicest to say the least...
So just fucking fix it
dude just wanted to play some bingo, so he made himself a bingo
it's not
I took the source code from the guy that coded the OoT bingo.
The guy that made bingosync just took his OoT code and obfuscated it.
@copper nacelle yeah that's just how it was programmed
wtf
hm, looks like that was just the code that was used as a starting base then (shrug)
what's the point of open sourcing if you're going to obfuscate your code
Exactly XD
interesting thing: i disassembled like 20+ steam games the other day to poke around in their source
and only axiom verge had used an obfuscator
You looked at the salt and sanctuary source?
i got it, haven't looked in it much yet
Might as well be obfuscated for all the sense it makes
lol
but i was going to
Fuckers love magic numbers and switches
man, i can believe it
i've seen switch statements like you wouldn't believe
which reminds me, have you seen the article "how to get fired using switch statements"
Player and monster sharing same class is normal.
I haven't
Oh...
reminds me of the old monolythic architecture where the EVERYTHING was a base class
i remember seeing a lot of old games that were like that
base class bloated with every property, so doors had health and damage etc
Sounds awful
it was dark days
I did a bit of coding for OoT.
In MIPS.
Kinda impressive what ppl could do 3D with assembly.
from the reddit thread on that article last year, someone posted this
switch (!0) {
case (createAccountForm = forms.filter(createAccountForm), !!createAccountForm.length):
createAccountFormFn(createAccountForm);
processQueryString(createAccountForm);
break;
case (addNewProperty = forms.filter(addNewProperty), !!addNewProperty.length):
addNewPropertyFn(addNewProperty);
processQueryString(addNewProperty);
break;
case (!!templates.length && templates.is(contactUsFormTemplate)):
contactUsFn(forms);
break;
case (!!templates.length && templates.is(loginFormTemplate)):
loginFn(forms);
break;
case (!!templates.length && templates.is(forgotPassTemplate)):
forgotPassFn(forms);
break;
case (!!templates.length && templates.is(GetSecurityQuestionTemplate)):
resetPasswordFn(forms);
break;
};
what the fuck
also has great comments: https://www.reddit.com/r/programming/comments/59p689/how_to_get_fired_using_switch_statements/
Oh no
i learned about some atrocities reading that
but i feel better knowing they exist now
in case i run into them
I think my favorite part of that is it's switching on a constant
like
#include <stdio.h>
int main() {
int i = 0;
switch (i) {
i += 100;
i += 5 + ({ case 0: 7; 5; });
}
printf("%i\n", i);
}
it's just scary
why
What is that even meant to do?
apparently, it prints 10
wtf
About the bingo.
I think the first task would be to add approximative difficulty to each goal.
probably, someone just needs to do it
I feel the bingo and the randomizer are closely connected.
Randomizer is NMG only though.
So probably doesnt work well actually...
a bunch of glitches will be gone/changed really soon anyway
Because ideally, for each goal, we have the dependencies.
Then for a row, we have the list of dependencies.
And we can estimate how long each dependencies take.
doesn't sound complicated, my small amount of time is going into my enemy randomizer right now though
Is the bingo meant to be played NMG mostly or any%?
NMG
The specific problem you're worried about isn't really an issue because we only really do double line bingo, lockouts, drafts, or blackouts, which normalizes the overall difficulty far more than single line does.
Question.
For every scene, is there an instance of the Knight, or does one Knight move from scene to scene?
@pearl sentinel
Do you just use dnSpy to do the disassembling?
i did
probably could have used any number of tools
so i was just reading through this PlamakerFSM's states and found this
\----PFSM StateName: Blow Chunks
i found that way too funny... i should go to bed
lol
especially since its actions are to fling objects
ohh it's the corpse state machine
i was confused because it also had stuff like
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintPlayMakerFSM(Component c, String componentHeader) :::: \----PFSM StateName: Corpse Gone Goop
success!
after fixing crystal guardian, also fixed these little guys
nice
tomorrow i fix mages and electric mages
man enemy randomizer is gonna be a lot harder
probably
you're the only one who's gotten there
else i feel i'd have more reports about that
cool
Enemy randomizer doesn't really incentivize actually beating the game
It's more fun to just go around everywhere looking at the crazy shit
I mean why would I go fight bosses that are the same as without the mod?
for invisible thk
well, once all the enemies are working, i intend to spice up the bosses
Collector random spawns would be really cool
Ah ok haven't tried in a while
do lost kin spawns work now
choose rando enemies when
i just don't have time to test
once all the rando enemies work
the toggle list is next after "make everything work"
lol
I've just seen lobosjr posting his DS2 SOTFS enemy randomizer run, now I'm even more excited for HK enemy rando
it's comin' along
so, can someone explain to me why we don't have cheat tables for HK like we do in some other games? How is HK different from those games?
cheating is bad
I don't mean tables for cheating, but some games use CE to actually implement mods
I started making a cheat table but stopped because it was too hard compared to dnSpy
Mmmh... What is FSM mod?
fsm dumper mod?
dumps FSMs
(finite state machines)
useful for modding so you know what to change
I'm planning on making a few videos showcasing the mods we have, showing some features, some gameplay etc.
will be useful for all those people asking "what ze mods do"
inb4 remaster kills everything
not for long, I hope
yeah
inb4 remaster doesnt change anything
it most surely will
can someone help me with crossroads
with what mod?
enemy randomizer
what's your problem?
the enemys are normal
have you enabled the mod
yeah
it's disabled by default
have you pressed the big "Turn on Enemy Randomizer" button?
in the top right corner?
ayy no prob
Is there a specific mod that allows you to put all the charms you want?
debug mod
what happened
I followed the instructions of "READ ME"
but probably I did something wrong
lets go to reinstall
just make sure to actually extract the installer before using
it won't work in the temp folder
one question: if I have my user.dat.bak files saved.
I'm sure my games are safe??
the installer has an option to backup saves
and the .dat.bak is not what you want
they're usually terrible backups
copy the user.dat files somewhere you want to keep them safe
also, if you don't load a save while using a mod, nothing will happen to that save
not telling you not to backup
but at the same time, you don't need to worry too much
ok
Would be cool if the nail upgrades could be added to the randomizer pool (sequentially for each item picked up). Also so some trolly seeds could have progression at Nailsmith ๐
Nail upgrades pose a problem on hard seeds due to a lot of the trickier skips relying on multiple pogos off enemies
It could potentially halt progression
I guess they would be added to the logic of the seed if required for those hard skips
That would almost be too OP. Cuz youd have to put non progression items behind the actual nail upgrades potentially too
The only truly useful time to get a nail upgrade would be when you have the win condition movement abilities
So at that point it would be pointless
True True, then maybe add Maps to dilute the item pool then too? Lots of Conifer places to check
that would add too much value to shops again
cuz you wouldnt even have to talk to him
just go to the shop and buy them
ah yea... It's too bad shops are so OP in this particular randomizer
i just tried out the resize mod, and when i rested at a bench i fell through the floor
whenever i rest at a bench, it forces me to maximum size and i fall through the ground
omg, after 999h, I finally reintall the game. Why am I so bad doing this things?
these*
what's wrong deibe?
let us help you troubleshoot this
also, Graig, is this your final form?
is there a fix for the problem i stated earlier about the resize mod?
I... don't think so
don't play the mod
how much health does the highest health boss have?
anyone know ish off the top of their head?
How do you look at the menus for the debug mod? i closed then and don't know how to open them back up
press f1
just turns sound off
radiance has 3k
awesome, ty!
though 1300 is when you're smacking her shit
so if i set something's hp to 10k that might be a bit high
Hoolp me
restart the game
but it's F1
like the first 5 function buttons hide different menus
F1 does all of them
those are the default bindings
I did
It is, i restarted once
Whenever I get around to working on mods again I'm gonna remove that hide menu button
Because apparently it's not clear enough that "hide menu" hides the menu
With that gone, it'll be impossible for anyone to close the menu without knowing the key to reopen it
Unless they just button mash or some shit
Also your problem is you're on a laptop
@fair rampart
Press fn+f1
Basically, yeah
?help
Same
will it going to be mods that add lots new charms to the game ? :c
Really depends on how much someone wants that to be a thing
More effort than it's worth in my opinion
oh
What you were meant to take away from that was "He's not going to do it but I can because I really want it to be a thing"
But I think what you got was "He's not going to do it so it's never happening"
It's probably just called something like boss control
The more I think of it, the expression "dumping FSMs" makes more and more sense
lol
why does it have low resolution?
I dont understand almost nothing
you don't understand what
"i don't understand almost nothing"
so you understand everything?

what resolution is your game at?
Mmmmh... Sorry, im spanish so its normal
"all charms" "kingsoul: 4" "grimmchild: 2" "Heart Fix" "Greed Fix" "Strength Fix" "overcharm"
numbers are levels
fix are for fragile charms
Aaaa. Ok ok
kingsoul 1 = 1 fragment, 2 = the other fragment, 3 = kingsoul, 4 = voidheart
Thanks guys!
iirc you're playing celeste, right?

Yes, I am
Mmmh... Is it possible to put all the charms at the same time with debug mod?
never tried it...
dunno tbh, maybe?
if not, that's not hard to do yourself using the save editor
save editor?
it's in pins
Its easy to use, but how can I save the changes?
there are Backup, set save location, add folder and new savefile
you have to open a file first?
?
I havent that button
yw
This is hilarious
but you dont even need mods for this
just use good old cheat engine
thats how I beat the game

Reduced extra geo on enemies by about half.
Fixed mage knights from ambushing you at room entrance.
Added crystal guardian and laser beam miner.
Fixed slash spider (devout).
Optimized the randomization a bit.
Added toggle for custom enemies and added first custom enemy. (it's a surprise).
Added baulder and centipede hatcher. (Their spawns might be randomized)
Moved laser crawlers from under the ground, now they will rotate around in the air and at least be a threat.
Moved tiny spiders into the wall crawler category for randomization.
NOTE: This is a candidate build, it needs a bit of testing before I put it on the drive.
Added debug key to print the scene to modlogs for when testers/players encounter weird stuff (Press T)
ok... i think that's all
it may or may not be related to the primal aspid
FUCK
also it might be a boss
F U C K
that's all i'll say for now
first iteration of this custom enemy
we'll see how this goes
Actually I wanna make that one day if possible
This one is only slightly modified
wait you added custom enemies to randomizer?
singular
One right now, but creating it forced me to start the logic for custom enemies
Also the foundation for randomizing parts of enemies
parts
how do you get an fsm from only its name
what do you mean by "parts"?
PlayMakerFSM fsm = FSMUtility.LocateFSM(gameobject,"fsmName");
but what if I don't have a gameobject
i think it's playmakerfsm.fsmlist.find
which takes some weird predicate thing
Uh, the fsms are attached to a game object
you need the game object
you could iterate over objects in the scene until one has the desired fsm
that's what most mods do (at least mine)
Linq is powerful
Linq is cool
I'm sadly not used to it yet
I can use it to do some easy stuff, but nothing too complex
Oh, I made the first part of room randomizer today
Probably the implementation
I made a script that turns a scene into a grid of open space/filled colliders
huh
And exports that to a png
A collision map
Then added A* pathfinding to connect entrances using the grid
that's an interesting approach
Idea being to import the collision maps and modify the A* to find paths
Using a few rules for skills etc
That sounds like it would be hard to get right
How about you do something easy instead? Like:
Run a player through the room 100000 times with random inputs and every combination of skills
Would probably be done by 2025
The only thing I have to do is write the different cost functions for the A*
Won't be perfect, but it'll probably be able to map the majority of rooms
You would need to add a fuck load of special conditions to get it to map everything right
Probably
Even if you get it to where like 70% of the mapping is right it's just as much work to find the 30% that's wrong as it would be to just map everything
Maybe, but much more fun to play with pathfinding than manual mapping
how would we even know the mapping is right tho?
Yeah can't argue with that
we still have to manually check
guess and check
The maps print the paths and collision maps to pngs
You can see it visually for all paths and maps
unless
I could see that being a lot less work, then
Looking over images you can tell for the most part if something is right
you could make the game actually test for you
like if it finds a path, he actually spawns a knight and tries to do that path with it
That sounds hard
Maybe? Idk about having the cpu play it
The only nice part about doing all rooms manually is that it's exhaustive for all possible scenarios, including skips
But that would be neat
but it's kinda in the way kerr and mick were going with the record inputs thingy
Yeah, the A* won't get skips
Probably easier to just do stuff like steal the knight's jump arc from the game
And dash distance
Just use stuff like that in the pathfinding
That's kinda what I was thinking, something like that
It doesn't sound like you're getting stuff like breakable objects but you could also try to include those as jump modifiers
it wouldn't account for pogoing off of enemies tho
yup
Just get the easy stuff
Yeah, I'm just going for basic paths, like, I don't think it would be possible for it to map path of pain
at the very least, having a collision map with (some) paths drawn would be very neat
But all the normal areas should be possible
I wonder what the minimum for some of those path of pain rooms is
It would be fun to get one right at the start if there's a way through any of them dashless
Now that would be mean
I think I can remember a screen where you could possibly do it with claw and wings
oh, no, there's a small gap you need to dash through at the end
nvm
so if I wanted to add a shockwave to stuff
would I just have to load a scene with an enemy that has a shockwave?
The spell fsm is always there, try stealing the ddark side things
That's shockwavey
Probably pulls from some prefab idk
do you mean the visual effect or the actual impact?
like the actual impact
if it's only the visual effect, should be easy
trying to add it to the mantis slam thingy
and which shockwave do you want to borrow from?
any tbh
you can try using the shadowRingsPrefab
that's what I'd used for crit in earlier versions of bonfire
it's the shockwave for when you're hit by a move that deals 2 damage
Oh thanks for the prefab reminder, I need to look through those again
I did it when I started enemy randomizer looking for enemies and was sad to find none
I wonder if there's one for the boss Roar
I was trying to steal crystal guardian's earlier
no success, I assume?
The particle effect or animation is embedded in the Beam Miner state machine
It'll take more fsms sleuthing to pull it out
i just dropped 50 feet through an acid pool
Doing what?
jumping into it
did you accidentally remove the floor beneath it?
i don't think so
Some acid/water doesn't have ground under it
Updated enemy randomizer link on google drive and github
does it have that dump fsm thing now
oh, i mean, i have something, it's not great tho
what do you want specifically to do?
i can paste the debug stuff for you
list the fsms of an enemy
yeah, it can do that
you'll want stuff from 2 files
this function:
public static void PrintSceneHierarchyTree( this GameObject gameObject, bool printComponents = false )
and most of these
then call that Print with a true for print components
example output will look something like this
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintTransform(Component c, String componentHeader) :::: \--Transform Position: (36.4, 14.6, 0.0)
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintTransform(Component c, String componentHeader) :::: \--Transform Rotation: (0.0, 0.0, 0.0)
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintTransform(Component c, String componentHeader) :::: \--Transform LocalScale: (1.0, 1.0, 1.0)
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintComponentType(Component c, String componentHeader) :::: \--Component: MeshFilter
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintComponentType(Component c, String componentHeader) ::::
er
wrong part
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintComponentType(Component c, String componentHeader) :::: \--Component: PlayMakerFSM
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintPlayMakerFSM(Component c, String componentHeader) :::: \--PFSM Name: FSM
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintPlayMakerFSM(Component c, String componentHeader) :::: \--PFSM FsmDescription:
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintPlayMakerFSM(Component c, String componentHeader) :::: \--PFSM StateNames
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintPlayMakerFSM(Component c, String componentHeader) :::: \----PFSM StateName: Initiate
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintPlayMakerFSM(Component c, String componentHeader) :::: \----PFSM ---- Transitions for state: Transition on FINISHED to state Reset Rotation?
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintPlayMakerFSM(Component c, String componentHeader) :::: \----PFSM ---- Actions for state: Actions on Initiate ::: GetOwner
[INFO]:[EnemyRandomizer] - ComponentExtensions.PrintPlayMakerFSM(Component c, String componentHeader) :::: \----PFSM ---- Actions for state: Actions on Initiate ::: AudioPlayerOneShotSingle
use
public static HutongGames.PlayMaker.FsmState GetFSMState( this GameObject gameObject, string stateName, string fsmName = "" )
to easily get and edit a state
or
public static T GetFSMActionOnState<T>( this GameObject gameObject, string actionName, string stateName, string fsmName = "" ) where T : HutongGames.PlayMaker.FsmStateAction
to get/edit an action (or the plural version if there's multiple)
example of editing an action to change how far primal aspid flies from you:
HutongGames.PlayMaker.Actions.DistanceFly df = newEnemy.GetFSMActionOnState<HutongGames.PlayMaker.Actions.DistanceFly>("Distance Fly","spitter");
df.distance.Value *= 1.5f;
i've had very little time to clean anything up, so sorry for the mess
i did make a coponent to print the states of something at runtime, including when it transitions and what events cause it to transition
if you snag the DebugOnWake class from
https://github.com/Kerr1291/EnemyRandomizer/blob/master/EnemyRandomizerDll/EnemyRandomizer/EnemyRandomizerLoader.cs
and use the function in that file
public DebugOnWake AddDebugOnWake( GameObject enemy, string fsmName = "", List<string> wakeEvents = null, Vector2? customColliderSize = null )
and set
public bool monitorFSMStates = false;
to true, it will print all the live state info on an object
woah
it's still a work in progress, but it's how i've fixed most of the broken fsms so far
since you can see where the fsm gets stuck
Btw Iโm in full support of an orbiting vessel mod
how would that work?
tfw the on-screen modlog is cut off
I switched to running tail -f | grep whatever on the modlogs
wait no it isn't
or is it
it was cut off but now it's not i think
setting a message to appear every frame was a mistake
smh my head
shaking my head my head
I just copy from the zote mistake channel, blame zote
He should sanitize his mistakes 
lol

