#archived-modding-development
1 messages ยท Page 32 of 1
^
menu graphics just draw it normally
I believe you could hook CharmIconList.GetSprite(int id)
and return your own sprite for charms
as for elegy what are you doing?
I know it changes to a spearish shape
pretty sure the fireballs and stuff are the actual fireball object
Elegy's spritesheet is replaced with the lance, that's about all that's happening. The rest is just resizing / adjusting Elegy prefabs
The audioclip for it is changed slightly too
but you can probably do something like
tk2dSprite tk2dsprite = elegy.GetComponent<tk2dSprite>();
Texture2D tex = new Texture2D(1,1);
tex.LoadImage(imageData);
tk2dsprite.Collection.textures[0] = tex;
I need help making the crit work as intended
the crit effect, that is
if (this.slashAngle == 0f)
{
if (layer == PhysLayers.ENEMIES && (otherCollider.gameObject.GetComponent<NonBouncer>() == null || !otherCollider.gameObject.GetComponent<NonBouncer>().active))
{
if (otherCollider.gameObject.GetComponent<BounceShroom>() != null)
{
this.heroCtrl.RecoilLeftLong();
FSMUtility.LocateFSM(otherCollider.gameObject, "Bounce Shroom").SendEvent("BOUNCE");
}
else
{
this.heroCtrl.RecoilLeft();
if (this.heroCtrl.crit)
{
this.heroCtrl.shadowRingPrefab.transform.SetScaleX(0.5f);
this.heroCtrl.shadowRingPrefab.transform.SetScaleY(0.5f);
UnityEngine.Object.Instantiate(this.heroCtrl.shadowRingPrefab, otherCollider.gameObject.transform.position, base.transform.rotation);
}
}
}
}```
That's inside NailSlash.OnTriggerEnter2D(collider)
there are four of these, one for each slash direction
what I did was add csharp ModHooks.Instance.OnSlashHit(otherCollider, base.gameObject);
at the start of the method
and subscribedcsharp public void CritHit(Collider2D otherCollider, GameObject go) { if (crit) { hc.shadowRingPrefab.transform.SetScaleX(0.5f); hc.shadowRingPrefab.transform.SetScaleY(0.5f); UnityEngine.Object.Instantiate(hc.shadowRingPrefab, otherCollider.gameObject.transform.position, go.transform.rotation); } }to it
and although that DOES reference the hit enemy, it also references the nail and the hero
Exhibit A: https://puu.sh/yiqvO/55b91fbaa9.gif
I think I got an idea
how and when are you doing the subscription?
if (otherCollider != null)
{
ModHooks.Instance.OnSlashHit(otherCollider, base.gameObject);
if (this.slashAngle == 0f)
{...}
}```
I think I got it
I put it before the layer check
so it's firing for every collider
public void CritHit(Collider2D otherCollider, GameObject go)
{
if (crit && otherCollider.gameObject.layer == 11)
{
hc.shadowRingPrefab.transform.SetScaleX(0.5f);
hc.shadowRingPrefab.transform.SetScaleY(0.5f);
UnityEngine.Object.Instantiate(hc.shadowRingPrefab, otherCollider.gameObject.transform.position, go.transform.rotation);
}
}```now it shouldn't
and it did work
okay, if shield works, Bonfire mod is officially on the brink of release
you figure out saving?
that's why it's "on the brink" and not "released"
bossrush is on the brink too 
oh, I'm stupid
Lightbringer is on the brink of updated
forgot to replace the assembly with the updated hooks
everything is on the brink
wish the automated injection of the modding hooks into the assembly was on the brink
pretty sure what I know what i'll have to do now, but it suckkkkkkssss
I only need to test GPZ / WD / THK
turns out, the scripting API for dnspy doesn't let you have access to the editor to change the decompiled code programatically
woohoo!
now all that's left is to make the save system work
and that's using the new API
Browse Hollow Knight: Lightbringer mod for Hollow Knight files to download full releases, installer, sdk, patches, mods, demos, and media.
Lightbringer has been updated, I'd appreciate if somebody could test it out before I spread the news
Just if it loads up / appears to work
easy enough
For some reason I've had a weird issue where my mods become linked to my PC and can only be used on my PC
and crash for other people
It's a Steam issue I think
Of course, and thank you for being so dedicated to your work
and it was lightbringer that "inspired" me to make my own mods
don't remind me of work
I have a seminar to prepare for next week and here I am, working on vidyagam mods
Seminar? What for?
my phd program
Oh shit good luck
thanks
I'll need it
okay, I'll test it now
btw 753, is that the actual font, or a similar one?
I just use Perpetua
oh
I found a hilarious bug already
The game still plays when you pause
welcome to Dark Souls
Yeah because of the way I coded timefracture
oh
I'll just give myself every charm to check if they all work
but so far no crashes
Perfect, thanks for the help
okay
aside from time continuing on the pause menu, everything seemed to work fine
also
Oh good I thought you were gonna say you crashed
is time fracture not meant to impact mana regen time?
It's supposed to help mana regen, did I screw up again?
beacause it made no difference
at least, not that I could tell
I can use a stopwatch
what mods work on the latest version
all api mods
as well as Glass Soul and Lightbringer
Yeah it is lol
without time fracture: 30.25s
with time fracture: 8.73s
that's "time to get 1/3 of the orb filled"
Oh fuck I knew it
I accidentally made it double double
Oh well let's pretend that's a feature, after all Time Fracture messes with the space-time continuum
heheh
How can I add lightbringer to my game? I want to try to fight Radiance with it.
Simply download it from here: http://www.moddb.com/mods/hollow-knight-lightbringer/downloads
Browse Hollow Knight: Lightbringer mod for Hollow Knight files to download full releases, installer, sdk, patches, mods, demos, and media.
there are install instructions in the zip
Then follow the installation instructions in the readme.txt file
It's just moving a folder into another folder and hitting replace whenever it comes up
also, 753: I took a look at the output_log.txt to see if there were any exceptions or whatever, but there were none
so yay
okay thanks
can anyone quickly test this
load the game kill false knight,
kill flukemarm
then try to load hollow knights room
I'm getting out of memory errors, want to just know if its me
just a sec
testing, one moment
omg i was trying to use this earlier but I'm stupid so I couldn't make it work
geez, it grew 670k ๐ graphics ftw
that or because I was trying to use an API file
omg the damage
NullReferenceException: Object reference not set to an instance of an object
at BossRush.BossRush.onCollider (UnityEngine.GameObject go) [0x00000] in <filename unknown>:0
at Modding.ModHooks.OnColliderCreate (UnityEngine.GameObject go) [0x00000] in <filename unknown>:0
at PlayMakerUnity2DProxy.Start () [0x00000] in <filename unknown>:0
nah thats fine
the error is I put -6 instead of +6
you should spawn above ground now
nah it works fine
its just because you go straight from FK -> stage 2
and the sprites get updated on load screens
so it's fixed now?
btw, I hadn't realised up til now that HK follows you when you walk around the arena
I can't actually test the THK fight to see if it works
eh
DynamicHeapAllocator allocation probe 1 failed - Could not get memory for large allocation 536870912.
DynamicHeapAllocator allocation probe 2 failed - Could not get memory for large allocation 536870912.
DynamicHeapAllocator allocation probe 3 failed - Could not get memory for large allocation 536870912.
DynamicHeapAllocator allocation probe 4 failed - Could not get memory for large allocation 536870912.
DynamicHeapAllocator out of memory - Could not get memory for large allocation 536870912!
Could not allocate memory: System out of memory!
Trying to allocate: 536870912B with 16 alignment. MemoryLabel: GfxDevice
Allocation happend at: Line:62 in
Memory overview
[ ALLOC_DEFAULT ] used: 602395460B | peak: 0B | reserved: 632149252B
[ ALLOC_TEMP_JOB ] used: 0B | peak: 0B | reserved: 2097152B
[ ALLOC_GFX ] used: 128226439B | peak: 0B | reserved: 137176663B
[ ALLOC_CACHEOBJECTS ] used: 2064684B | peak: 0B | reserved: 12582912B
[ ALLOC_TYPETREE ] used: 0B | peak: 0B | reserved: 0B
[ ALLOC_PROFILER ] used: 0B | peak: 0B | reserved: 0B
[ ALLOC_TEMP_THREAD ] used: 62941B | peak: 0B | reserved: 3801088B
Could not allocate memory: System out of memory!
Trying to allocate: 536870912B with 16 alignment. MemoryLabel: GfxDevice
Allocation happend at: Line:62 in
Memory overview
[ ALLOC_DEFAULT ] used: 602395460B | peak: 0B | reserved: 632149252B
[ ALLOC_TEMP_JOB ] used: 0B | peak: 0B | reserved: 2097152B
[ ALLOC_GFX ] used: 128226439B | peak: 0B | reserved: 137176663B
[ ALLOC_CACHEOBJECTS ] used: 2064684B | peak: 0B | reserved: 12582912B
[ ALLOC_TYPETREE ] used: 0B | peak: 0B | reserved: 0B
[ ALLOC_PROFILER ] used: 0B | peak: 0B | reserved: 0B
[ ALLOC_TEMP_THREAD ] used: 62941B | peak: 0B | reserved: 3801088B
I only get the exception Wyza already posted
ye its because you haven't hit a loading screen
normally when you load into the 9 bosses arena
also, how did you manage to use the controller for that selection screen?
magic
well
i could focus to heal
but once i used up my soul
then nothing
logs just has this
NullReferenceException: Object reference not set to an instance of an object
at BossRush.BossRush.createLabel (UnityEngine.GameObject go, Int32 i) [0x00000] in <filename unknown>:0
at BossRush.BossRush.onCollider (UnityEngine.GameObject go) [0x00000] in <filename unknown>:0
at Modding.ModHooks.OnColliderCreate (UnityEngine.GameObject go) [0x00000] in <filename unknown>:0
at PlayMakerUnity2DProxy.Start () [0x00000] in <filename unknown>:0
if (BossInfo.bossInfo[bossOrder[currentBoss]].VarName == "killedHollowKnight")
{
if (BossRush.gm.hero_ctrl.spellControl.FsmVariables.GetFsmBool("Dream Focus").Value == true)
{
killedHK = true;
BossRush.gm.hero_ctrl.spellControl.FsmVariables.GetFsmBool("Dream Focus").Value = false;
}
return killedHK;
}
you get no focus from hitting him
the NRE's are just from it trying to spawn shinys
yeah, i can't hit him, i can dream nail him, but get no soul
thats super fucking weird that it didn't spawn items
the code that disables the focus sets him to be dead
nah i've got no logging for this
ded
oh you got items
shape of unn boi
does the stage select work after picking them up?
yup
try and click radiance
i'm literally just sitting here watching him spread the infection over the entirety of kingdom ๐
@solemn rivet kill bosses until you can click radiance, you should have to do all the others
before you can do the radiance
and all you've worked for was pointless the end
does lightbringer only work on a fresh file
also, i love that you can triple stagger false knight
and he only has to bang the ground once
my connection is almost literal shit
lol its fine
@leaden hedge will do that
@buoyant wasp I found that on Lightbringer
the damage up from glass soul was enough to stagger him before he could attack
so I stunlocked him forever
also
will it break the damage if I pick up sharp nail?
no
same thing, killed him, no drops, could regular focus, but can't dream focus
also, should I follow the same boss order?
ok
in final stage kill them in whatever order you feel like
you should get soul from fluke
oh yeah I added angry eyebrows to the vanilla dream bosses
because they don't have unique sprites
ST: HUD not showing
oh yeah HK disables it
and disables pause
I really can't debug this shit because my computer literally won't load THK's room
yay a new release again ๐
load it up with logging and i'll be happy to run it through
this might fix it I dunno
I put in a line of logging
if (BossInfo.bossInfo[bossOrder[currentBoss]].VarName == "killedHollowKnight")
{
if (BossRush.gm.hero_ctrl.spellControl.FsmVariables.GetFsmBool("Dream Focus").Value == true)
{
killedHK = true;
BossRush.gm.hero_ctrl.spellControl.FsmVariables.GetFsmBool("Dream Focus").Value = false;
if (!BossRushUpdate.spawnedItems)
if (BossInfo.SpawnAll())
BossRushUpdate.spawnedItems = true;
else
Modding.ModHooks.ModLog("Couldn't spawn HK items");
}
return killedHK;
}
are you running any other mods
https://github.com/KayDeeTee/hk-bossrush heres the code if you want to look through it
if you think a log at a certain place would help you debug i'll put it in 
lemme take a look
oh
fuck
I know what's wrong
thanks
this showed me one of my hooks is not working
specifically, the SoulGain hook
no dice
return 0;```duh
nice
there's no change in nailmaster skils in lightbringer
Yeah, that would be fairly complicated to implement.
I suppose
yeah, i've had that happen
you're not locked
sq?
you just can't see what you're picking up Kappa
just pickup an item
your still in control
just can't see anything
heh
well, no sound effects as well
oh, found one
and hiveblood is working after dying
it does
same thing after Lost Kid
Radiance: take one
Rising Light is pretty good against Radiance if you struggle
got to the platform fight.
Yeah it was really good
Maybe I shouldn't use it to add some challenge
The glass soul description is a little scketchy. You need to be at a bench to equip charms, so you'll be at full health when you have it, but you die in one hit. So maybe you can say that "
you can take out the damage being amplified based on current health
holy shit
NKG without longnail and dash is hard
had never fought him like this before
btw, blackscreen
What boss is that in non-acronyms
Nightmare King Grimm
@leaden hedge all bosses worked for me, aside from the black/white screens after dream bosses
It straight up says you'll die in a single blow
I'm not sure how much more clear that description can be
im saying make it more concise
could you do radiance after killing all the other bosses?
I didn't get Mantis Claw/double jump, so I was doing all of them to try and get it
Is NKG even possible without dash?
I mean could you start the fight
but I forgot that I also need dash/double jump for ST
and yes NKG is easy without dash
I didn't even try, because I knew I would need claw
and got stuck on ST
the hardest part surely wasn't the lack of dash
getting used to longnail is what made it much harder
and he surely is possible - I just beat him
I don't think a actually used longnail or mark of pride for that
well considering the strat for NGG doesn't use dash (the intended way), I'm going to say NKG can be done without it 
IMO sprintmaster makes it a little harder
because of the ground attack
I don't think I could do it since I've used dashmaster most of my playtime of this game
@Zenex Glass Soul is worded like that so clever players take advantage of health charms / lifeblood to increase the bonus damage
I've still gotta learn NGG
Okay. thank you
when I have more time, I'll spend some of it with this fight
well I literally can not test THK or Radiance, so I guess I'll just release as is
did you remember to reset naildamage and boss order?
yeah
weird you're getting OOM errors
I get them, in black egg, final boss room, soul sanctum entrance, moss knight arena in greenpath
do you have debug mod running or just bossrush?
just boss rush
maybe it's your version of the api?
I'm also using that one, but with my hooks
it happens in vanilla
that I get OOM when I load certain rooms
weird
I have 5GB memory free
the only OOM i've ever had was debug mod in the howling cliffs
so dunno why its complaining
that is actually weird
cause my pc is really not good
and I have no memory issues with bossrush
anyway, off I go
oh, before I go
wanna take a look at my logs, KDT?
see if you find anything helpful?
well it works for you
@buoyant obsidian Bloodlust is good with Burning Pride. I should've used Quick Slash and Time Fracture as well.
And for some odd reason my 106% completion turned to 107%. Maybe because of the charms but I don't really know. Just thought I'd mention it.
you get more hearts
- Feature List -
- Changes your character from melee to ranged
- SOUL regenerates passively instead of from hitting enemies
- Nail damage drastically decreased, ranged attacks deal normal damage
- Adds several new charms that augment your ranged abilities and more
- Increases the number of charm slots you start with by 1
- Decreases your starting health by 1
- Dream Bosses and Warrior Ghosts will respawn when sitting at a bench
///////////////////////////////////////////////////////////////////////////
yes but because your health is reduced by one
your completion is hearts - 4 instead of hearts -5
so you get an extra heart
I don't really understand whaat you're trying to say but it really feels like your right since charm notches apparently don't matter directly for %
ill make it really simple
you start with 4 hearts
so you can only normally get a total of 8
but you have 9
so you have an extra percent
it says it decreases starting health though
boi
the completion percentage added by the masks you get is total masks minus base masks
you already finished the game and got 9 masks, but lightbringer's base HP is 4 instead of 5, so the game thinks you got 5 additional masks, adding 5% to the completion tracker
okay I understand now after your first message
No guys that isn't it at all. He's just 1% more complete than everyone else.
Lightbringer update? I'll update the gdrive
Also, @rain cedar I noticed that Speedrun.com's HK resources page has the gdrive link. Gonna add something to 753's mods' folders so that people coming from there know to download from moddb over gdrive
Alright
I doubt that link gets much traffic
I just have it there because it's where debug is and that's super helpful for learning runs
yeah, i figured, but i figure it's a good idea too
for people who dont read the pins
Oh shit my website got added to http://www.boredbutton.com/
it's that for anyone interested
can you unpaint him blue
Why would you even want to do such a thing?
F5 is your best option if you wanna be cruel
ctrl+w
here's the "solution" i'm thinking of
mod folders updated, lightbringer 1.2.1.4 added, any other mods i should update?
bossrush maybe? except i still think it's buggy ๐
boss rush get an update in the past 2 days? i last updated on the 7th
honestly, i don't know that it's ready yet, @leaden hedge
if it is, then the last one he posted
you can search for from:KDT has:file
will do
i'll do some more extensive plays of it tonight. see if i can break it ๐

@leaden hedge - if you kill soul master on the far right side of the room, the right charm spawns outside of the room
I actually did find the mods folder before joining this discord, so some descriptions and stuff would be helpful imo. I was immediately lost in there.
mod descriptions, too? I'm not a god
that's what mod readmes are for
I just host the things
Sorry by "descriptions" I mean "readmes"
is anyone making a mod where your only method for attacking is sharp shadow
i wanna play it
!!!
Didn't it just get updated?
ah i found it!
ill download and give it a crack
accidentally includes it in the actual steam drepository for hollow knight
it's good mod
@solemn rivet
Stupid question, but is there a way to download mods without having all your saves effected by it?
Probably not like you want it to.
keep save backups
never open a save you don't want affected while the mod is installed
yup
it won't break a save just by having the mod, it could break a save by loading said save with a mod
in general there are about 200 too few save slots for my tastes
if you add a filename hook
I'll extend the save select to let you press L / R to cycle pages 
ok, so, he HK dropped items
i picked them up
well it
boss screen comes up
can't select radiance ๐ฆ
weird
I like the eyebrows
if (BossInfo.defeatedBosses >= 18 && BossInfo.defeatedBosses < 26 && (BossRush.selectX == 2 && BossRush.selectY == 2))
skip = true;
9 + 9 + 7 = 25 
ye theres no sprite for the vanilla dream bosses
pro
so I made them look ๐
angery
this one is maths%
so other than that, the black/white screen stuff and the dropping a shiny out of bounds, seems stable
is joni's still broken?
does it hurt to get them? or do they just not work
jonis caps your hp at one blue
lol
hiveblood does nothing until you die
ok, so joni's = very bad, k
honestly, now that kingsoul is in there, you could probably just exclude joni's until you can fix it, or never, w/e
I might just manually fix it
set blue hp to 1.5x maxHp
something
i'm not super worried about vet players of the mod, it's mostly the newbie experience. "pick up joni's. wth?"
unrelated, where would you need the save hook to be at if you were to do the L+R save rotations?
cause adding it shouldn't be a big deal
semi-related. Now that we can modify saves from a mod, i wonder if we couldn't add some code to the save game area to signify that a given save was made with a given mod or mods
and pop something up if you try to load a save with a different set of mods saying "hey this save was made with the randomizer, but you aren't running the randomizer, confirm?"
you could probably put a dict of string -> int
where string = modName, and int = major version
then you could iterate over it,
check if key exists in loaded mods
if not return missing mods
if it is check that major version matches
and return either made for an older or newer version
yeah
it's actually already that easy basically. cause I already have the dictionary of string,int as storable. the code to do it would be fairly easy from the modding api side. I was more wondering if it's possible on the UI/UE side
you probably don't even need ui stuff to confirm it
just write the mod names/versions on top of the save slot?
just add a label that says somthing like
Incompatible Saves: HIDDEN
press {KEY} to show incompatible saves
hmm, that could work.
yeah, though still a {KEY} to force unlock
so if you really wanted to load the save, you could
save wise, I think we'd just need to add a new method to UIManager that would run this
yield return new WaitForSeconds(0.165f);
this.slotOne.ShowSaveSlot();
yield return new WaitForSeconds(0.165f);
this.slotTwo.ShowSaveSlot();
yield return new WaitForSeconds(0.165f);
this.slotThree.ShowSaveSlot();
yield return new WaitForSeconds(0.165f);
this.slotFour.ShowSaveSlot();
hmm, maybe not
but yeah a hook around the GameManger.GetSaveFilename(int saveslot)
that returns a string for the filename
and sends an int for the slot and bool to say if its saving or loading
hmm, we'd need to also call SaveSlotButton.LookForSaveFile for each of the slots
when you hit L/R, in order to update all the info on the save
so the code i showed above is totally wrong
well I'm going to assume
UnityEngine.UI.SaveSlotButton is in the mainmenu canvas somewhere
i guess you don't even need a hook really
nah you do
k, so the hook should be public string GetSaveFilenameHook(int saveslot, bool isSaving)
?
it should send if its saving or loading
although actually
public static int page = 0;
public static int minPage = 0;
public static int maxPage = 10;
public Update(){
if( key == R )
page++;
if( key == L )
page--;
page = page % maxPage;
uimanager.slotOne.GetSavestatsForSlot(1);
uimanager.slot2.GetSavestatsForSlot(2);
uimanager.slot3.GetSavestatsForSlot(3);
uimanager.slot4.GetSavestatsForSlot(4);
}
getFileName(int x){
return "/user"+(page*4)+x;
}
should work regardless
as page shouldn't change after loading the save
eh, it can't hurt to have a bool for indicating save vs load. and it provides the ability to have different behavior later if needed
oh, hmm, where would you get whether or not it's saving or loading from?
cause GetSaveFilename only gives us the int of the slot
it gets called in 2 different places
well 3 I guess
oh and ClearSaveFile
hmm
so you'd probably need 4 different checks to say
save / load / stats / clear
and I'd actually like to know about save + clear now that I think about it
save to increase maxPage if its on the last page
and clear to decrease it if its the last one on the last page
makes sense
so you don't have to scroll through empty pages
just not sure how to accomplish it...i wonder if the action is being tracked somewhere already...
can you call the same set of events from different places
if so just put it after each of the 4 calls it has
you can, just trying to keep it simple ๐
oh, actually, i think we can accomplish knowing what its doing without additional hooks beyond the name one
there is already this:
ModHooks.Instance.OnSavegameClear(saveSlot);
hmm, except that happens at the beginning of ClearSaveFile
so it'd get called before the file is actually gone
oh, but you could set a value on that event
hmp
nope, just gonna have to be a second hook that happens after the clear happens
the SaveGame part we already have a viable hook for
how much damage do the weblings do?
SavegameSaveHook```
2
that's called right after the save has been written to disk
so that will let you increase your maxpages
just 2?
but there's 4 of them! and they hit like once every 3 seconds, it's almost a nail0 hit
๐
the only thing that isn't on there is the scale of dream shield with dreamwielder
is it per contact or does it sustain the longer they stay in contact?
ok, so, load and stats, we don't need to hook for, but save and clear we do, we ahve save, need clear...k, sec
the only 3 values that aren't on the wiki are
dreamshield + dreamwielder = 1.15x size
sprintmaster = 8.3 -> 10 speed
sprintmaster + dashmaster = 8.3 -> 11.5 speed
[HookInfo("Called after a savegame has been cleared.", "GameManager.GetSaveFilename")]
public event AfterClearSaveGameHandler AfterSaveGameClearHook;
[HookInfo("Overrides the filename for a slot.", "GameManager.SaveGameClear")]
public event GetSaveFileNameHandler GetSaveFileNameHook;
[HookInfo("Called directly after a save has been saved", "GameManager.SaveGame")]
public event SavegameSaveHandler SavegameSaveHook;
ModApi 1.2.1.4-3 (BETA)
and GetFilename is hooked in:
public string GetSaveFilename(int saveSlot)
{
string apiFilename = ModHooks.Instance.GetSaveFileName(saveSlot);
if (!string.IsNullOrEmpty(apiFilename))
{
return apiFilename;
}
//...rest of code is vanilla
seems good
the whole not being able to chose items after dream bosses is really annoying
well, despite having picked up joni's cause i couldn't see the items for 5 bosses, not bad. was able to finish boss rush for the first time without it bugging out to the point where i was softlocked ๐
the boss select stuff makes life so much nicer when the drops hate you
I dunno what to do about the white / black screens
they seem random
and I dont do anything that should cause them
does the code that teleports you possibly be running during the normal transition between dream/normal and it's just load times where sometimes if the load from dream/normal is fast, you get stuck in between?
no it explicitly doesn't run during dream sequences
also for some reason
uim.slotOne.LookForSaveFile();
doesn't do anything
as if its skipping the entire thing
hmm
so, LookForSaveFile calls GetSaveStatsForSlot which calls GetSaveFileName which has our hook in it, and i assume the hook doesn't get called?
no the hook gets called
but none of the values get updated
but if I update them manually
it works fine
when are the values getting set?
or
rather, when are you trying to set the values?
also, what are you using for the filename?
public void Update()
{
if (uim.menuState == GlobalEnums.MainMenuState.SAVE_PROFILES)
{
//ModHooks.ModLog("[MoreSaves] UPDATE");
bool updateSaves = false;
if (gm.inputHandler.inputActions.paneRight.WasPressed)
{
currentPage++;
updateSaves = true;
}
if (gm.inputHandler.inputActions.paneLeft.WasPressed)
{
currentPage--;
updateSaves = true;
}
currentPage = currentPage % maxPages;
if (currentPage < 0)
currentPage = maxPages-1;
if (updateSaves)
{
ModHooks.ModLog(currentPage.ToString());
uim.slotOne.HideSaveSlot();
uim.slotTwo.HideSaveSlot();
uim.slotThree.HideSaveSlot();
uim.slotFour.HideSaveSlot();
uim.slotOne.LookForSaveFile();
uim.slotTwo.LookForSaveFile();
uim.slotThree.LookForSaveFile();
uim.slotFour.LookForSaveFile();
uim.slotOne.geoText.text = "1";
uim.slotOne.ShowSaveSlot();
uim.slotTwo.ShowSaveSlot();
uim.slotThree.ShowSaveSlot();
uim.slotFour.ShowSaveSlot();
//uim.GoToProfileMenu();
}
}
}
the filenames are correct
public string getFilename(int x)
{
return "/user" + ((currentPage * 4) + x) + ".dat";
}
changing to page2 does nothing
but slot1 in this case geo gets set to 1
hmm, that's different than the way they load them normally
return "\\user1.dat";
\ only works on windows iirc
i'd have to have a mac/linux version of the dll to see if they did it differently there. i know that / and \ behave differently on windows in some cases (I don't know that you can mix them, unless they already use / for everything and just inconsistently used \ here for some reason)
so, the only reason i could see it not updating is if saveStats is null or mySlotId < 1
well I ran my own version and it works "fine"
so the only reason it should be breaking is mySlotId being 0 for whatever reason
perhaps instead of /, using System.IO.Path.DirectorySeparatorChar
it just doesn't update the button's ui
well yeah
but doing
MoreSaves.LookForSaveFile(uim.slotOne, 1);
does
and thats just an exact-ish copy
minus setting private members
alright
so
if (updateSaves)
{
uim.slotOne.enabled = false;
uim.slotTwo.enabled = false;
uim.slotThree.enabled = false;
uim.slotFour.enabled = false;
uim.slotOne.enabled = true;
uim.slotTwo.enabled = true;
uim.slotThree.enabled = true;
uim.slotFour.enabled = true;
}
this updates if both src and dst pages have a save on the slot
but otherwise does nothing
so it won't set the state / create a save slot
but it will update the text
what's weird, is that enable/disable just ends up calling the LookForSaveFile method.....
well, enable does
if (updateSaves)
{
uim.slotOne.enabled = false;
uim.slotTwo.enabled = false;
uim.slotThree.enabled = false;
uim.slotFour.enabled = false;
uim.slotOne.enabled = true;
uim.slotTwo.enabled = true;
uim.slotThree.enabled = true;
uim.slotFour.enabled = true;
uim.slotOne.HideSaveSlot();
uim.slotTwo.HideSaveSlot();
uim.slotThree.HideSaveSlot();
uim.slotFour.HideSaveSlot();
uim.slotOne.ShowSaveSlot();
uim.slotTwo.ShowSaveSlot();
uim.slotThree.ShowSaveSlot();
uim.slotFour.ShowSaveSlot();
}
and this kinda works
sorta had to explain how it works
when you do HideSaveSlot, it starts the fade out
and blocks any fade ins
so you 've gotta go from page0 -> 1 fades out
whilst its fading out go to page0 again
then go back to page1 so it fades in
and it works
wonder if thats why they put a delay in the code
the delays make them come in
one at a time
if (updateSaves)
{
//Instantly
uim.slotOne.HideSaveSlot();
uim.slotTwo.HideSaveSlot();
uim.slotThree.HideSaveSlot();
uim.slotFour.HideSaveSlot();
//After all faded
uim.slotOne.enabled = false;
uim.slotTwo.enabled = false;
uim.slotThree.enabled = false;
uim.slotFour.enabled = false;
uim.slotOne.enabled = true;
uim.slotTwo.enabled = true;
uim.slotThree.enabled = true;
uim.slotFour.enabled = true;
uim.slotOne.ShowSaveSlot();
uim.slotTwo.ShowSaveSlot();
uim.slotThree.ShowSaveSlot();
uim.slotFour.ShowSaveSlot();
}
this is what i'll probably have to do
makes sense, but i also just realized it's like 220 AM and i've been up for 19.5 hours. so my brain is probably well past mush at this point
you can now have up to 8589934588 saves maybe
What's the api version for this? I need to add its hooks
its only 8.5b
@solemn rivet you use l1 / r1 to change page, if you're on keyboard its whatever you use to change inventory panels
Ok
It's easier to add those hooks to mine than otherwise
I'll send my hooks to wyza later to make it official
@rotund ether if you want to try blackmoth, please use the api version. The other version is buggy, out of date and discontinued.
that is completely unformatted
this is how it looks for me
this reminds me to change the install instructions to those of the API
done
I'll add the readme to the root folder of the gdrive, so you can read it without downloading
@late sphinx see if this works for ya
no, there is no hardcap
oh nice
> : C
1.2.1.4
but what does drm stand for
Don't ReadMe
o h
if that was a serious question, sorry, drm means "digital right management"
can you install the debug mod and check their hp for me?
oh
nvm
can you send me the output_log.txt?
yup
Zombie Guard has health_manager_enemy FSM.
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)
Total geo for Zombie Guard : 20-0-5-0-0-0
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)
Enemy HP multiplier: 1.87089893785141```
should work
how much attack do you have?
can you send a screenshot of the level up screen?
great husk sentry u dungo
oh!
no just husk sentry
if it's the latter, it should be obvious why they die so easily
you kill them in two hits
huh
or, actually
without mods the flying ones took more hits
i mean ,less
not mroe
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Enemy HP multiplier: 2.40163994843443
so it's roughly 52, 54
should die in 4 hits
which is harder than it should be at any point in the game
what
"""at any point in the game"""
at nail 0 - 5~6 hits
nail1 - 3 hits
nail2 - 2~3 hits
nail3 - 2 hits
nail4 - 2 hits
"at any point after upgrading"
is that total hp or additional hp
okay, I'll add the more saves hooks now
Suggested API with logger hooks, save file hooks and bonfiremod hooks
also, are the more saves'-hooks only on GetSaveFileName and ClearSaveFile?
or did you change any existing hooks?
i don't think so, i think those were the only 2 i changed/added last night.
also, the reason your stuff was formatted weird is likely the editor you used was using Unix line endings \n vs windows line endings \r\n
notepad can only do windows ones, but notepad++ does both
I'll review the dll after work to make sure it all looks good, can you post somewhere the changes you made? I want to make sure they are all ported back into source code (especially since we're gonna get a new patch in the nearish future)
@leaden hedge / @rain cedar - Assuming the new save paging stuff works well. Thoughts on including that with the modding API by default (it'd still be a separate mod in the mods folder, but have it be part of the standard distribution. ) seems like it'd be something pretty standard that people would use.
v0.2.0
Clearing saves now correctly removes the last page, if both the last and 2nd to last page are empty.
Added a label to display which page you are on.
I have no problem with you distributing the mod with the API
i haven't loaded it, but are there indicators anywhere that show that there are pages and how to move to them?
it should hopefully be intuitive
as its the same button the game uses to change pages
If this mod is compatible, have you considered just having it auto-installed with the API? Unless there is some downside
nice, yeah, that looks perfect and using the same inventory buttons is great
it almost looks as if it's part of the game ๐
it could do with fading in / out
i look forward to testing it out when i get home
Out of curiosity, what programming language does HK use?
thank you
Does that even work on keyboard? I don't think there's any buttons to swap pages on keyboard
I just press left/right until it's on the arrows
It's works on keyborard supposedly. It's the keys you have to switch tabs in the in-game menu
That's the thing, I don't think there are keys for that on keyboard
I've done it
seems like an oversight if there isn't
look at your settings. @hazy sentinel fight me
Ok it's [ and ]
Not in the settings, I just pressed everything until something worked
okay. good for you then I guess.
well its not in the settings for keyboard for somereason
@buoyant wasp what kind of documentation would you need?
yup
so need to know where they are in the HK code (GameManager.Something, or PlayerData.something, or HeroController.Something) and where they are in the Modding namespace.
gotcha
I'll write a simple .txt file, would that be fine?
I don't have any prior experience with documenting things, to
that's fine
it's mostly so i don't have to go looking around trying to figure out what was added ๐
v0.3.0
holding l1/r1 causes it to quick cycle through pages ( 5 a second )
and you can now repeatedly press directions to keep going without loading the save,
although once you start loading a set you're locked for half a second until the animation finishes
is there any guide
or list or anything
that says what levels in hollow knight data correspond to
?
i couldn't begin to say, but the other modders might know
as i understand it, asset replacement is one of the more difficult things to get right
or at the very least, the most time consuming, and also volitile
since the placement of the assets on the asset sheets changes each release (or so i'm told)
Did Whomst ever reveal his secrets?
no
can't I just put random garbage on it
like
it'll just take out the parts on the right parts of the sheet
right?
i've asked here before
i'm telling you, it isn't nearly as simple as it sounds
here we have an image of the only other confirmed case of the bug
that was magolor5000
interesting
there are maybe a few others but none nearly as sever as ours
ours?
me and magolor
ah
if you are active on the subreddit, i'm sure someone would have posted it if they had it
I am active, though I try not to be
at least I try not to post because every time I do post something:
I've got an important question
are all your other posts like that post you posted about Grimm
this is probably not relevant
but my game was on a public beta build in june
but magolor's was on an actual release shortly after
he claims he was on 1.0.3.7
those don't look very downvoted tbh @ornate rivet
@copper nacelle , yeah most of my threads dont get down voted, my comments do though
not that I care, as long as I can post i am fine
cool
wtf
I beat soul tyrant
and the hollow knight window disappeared
and it's back
Playing the randomizer. What upgrade can you get while having nothing?
shops, VS, Fury, soul catcher, dream nail, shield
I got Fury of Fallen, Vengeful Spirit, Soul Charm, Map Seller charm, Shop charms.
Sly
and compass
Oh, salubra with shade skip?
yup
that's practically required
in almost every seed
at least, almost every one i've seen or played
what do you actually have ?
Btw, is steel soul viable?
yes
steel soul disables pathways where shade skip is required
so there would always be a way to get to salubra eventually without it
but depending on what you have so far, greenpath might be open
When does getting lantern become useful?
and you can get to the SEER
never
How do you get to crystal peak?
Really?
sean changed it
yes. that was changed for the rando
Oh.
there are also like 8 ways to get into greenpath
It doesn't make anything easier to make the toll always usable
Just removes 1800 geo grinding
And crystal peak content can be accessed only I got mantis claw?
there's a lot of different CP requirements
you can get a big chunk of CP with just double jump and dash
all of if with double jump, dash and claw or CH
Dream nail with nothing but jump?
yup
Oh. You can fall to resting grounds.
and that's 2 items over there (nail and the thing below seer)
the shield
in CP, you can get the shop key with just dash (though i prefer to have wings if possible)
is that even in the logic?
That doesn't sound right
to get up there w/o d ouble jump?
i don't think you can even get up in that room w/o double jump
maybe off a pickaxe pogo
you can, it sucks, but you can
if you kill the guy and open the room, there is still a piece of background you can pogo off of
no thanks on doing the spike gauntlet w/ only dash
but yeah, it's doable, just terrible
i mean in the shopkeeper room itself
oh, yeah, pogo ๐
Got monarch wings ๐
The spike gauntlet isn't possible with just dash
and don't you need wings there too?
down where the deep focus is?
you can't pogo up there
deep focus you just have to s&q if you go in without wings/claw
there is no way out of that
that i know of
no. the wall where that guy is that leads to deep focus
you can't make that jump with just a pogo
brb, double checking i wasn't hallucinating when i did it
lol
pretty sure you can't do the spike gantlet with only dash
don't think you can make the first part even
I just softlocked at dreamers...
hahaha
Screen shaking like crazy.
Btw, after getting vengeful spirit, it takes a very long time before getting up.
yeah, thought it always took a while
there's a useful one for getting to lost kin, but i'm pretty sure its not in the logic
Yeah, that one isn't
It's not a good idea to assume people can hit their shade without killing it
there's one to get to spore shroom down in fungal
What about adding a hint button that tells you an accessible upgrade?
we've talked about adding a thing to the easy mode where if you got compass it'd do that at a bench
Id add it to hard mode too.
There's also people who want compass to always be in white palace
But there's a bigger issue in that the game just updated
Hooray broken mods
facepalm
What about replacing the witch atthe right side of Town.
I think someone else suggested that
Instead of giving back shade, it would give an hint.
gimme a few minutes and i'll get you the first half of the api built on the new version
I don't like the idea of incentivizing jiji because using keys poorly can soft lock you
Theres always one thats acciesble from shop.
Yeah, and sometimes you're expected to use it on waterways
Without any other key accessible
I think you only need wings to get 2nd key.
Ya, thatd also work.
So, Id say jiji always open.
Give a rancid egg for hint.
Hint is random.
Probably possible by modifying her fsm
Or cheap way is.
When map == jiji, loop every frame and check if rancid egg count got changed.
why would you do that
theres a hook for set int
you could just check for rancidEggs
I'm thinking change her fsm to always think you've died so she'll always take an egg
Then change state transitions to not try spawning the shade
Then make the text proper in the language hook
They fucked up input queueing in this patch
Attacks after the dialog even though I'm only holding dream nail
