#archived-modding-development
1 messages · Page 23 of 1
@rain cedar - how would @leaden hedge get the relic randomization on his side since it isn't in rnd.js? or basically would it be that when you see a relic event occur, you need to look at playerdata.instance to get it?
(in which case I can do that easily enough just by re-requesting the relic data)
Re-requesting relics makes sense
Relics aren't pre-determined, even though they are the same every time
So I can't really put them in the rnd.js
yeah, i was thinking about just adding those to the SocketServer
it's easy enough to do
i can take care of it, mostly just needed to know the "right" approach to getting the data 😃
thanks 
yo wyza, ready to try shit out? lol
sure, gimme like 2 minutes
okay, so here's an idea for the bonfire mod
make the relics behave like soft levels
like
Black Pearls in salt and sanctuary
you can trade them for a free level
instead of trading them with Lemm for geo
but if you can duplicate them for geo, you'll get infinite levels either way
ye
but i feel like all this does is allow people to save up relics until the geo cost is inhibitive and just save a bunch of money by just trading a hallownest seal for a level which would otherwise cost a couple thousand geo or something
makes sense
except you wouldn't make free levels increase geo cost 
trinket1-4 is correct
yup
just found it
so, for now I'm simply gonna use it as it is
but later I'm gonna have to figure out how to make lemm pay 0 geo for them
find me the lemm fsm and ill look into it
ok
yep, in resources.assets
thats very weird if thats the case
that'd imply every language could have different prices
@leaden hedge - updated PlayerDataDump.dll that handles the relics command. (the code on github is now updated on the master branch).
I don't think it's item cost
there are two item costs, and both deal with color
check the Item Cost variable
anything yellow is a literal, anything blue is a variable
this is what I get using the viewer
wow nice every shop is generic
does that appear on room load?
yup, it got dumped when I entered the Lemm scene
if so doing fsm.FsmVariables.GetFsmInt("Item Cost").Value = 0
should do it
although theres probably 4 of them
one for each trinket
there are equivalents of this FSM for Rlc 2, 3 and 4
does that look the same
oh wait
the first one is for the actual list
and is looking at the rlc fsms
try
fsm.FsmVariables.GetFsmInt("Cost").Value = 0;
fsm.SetState("Init");
for the Rlc1 -> 4
wait a second
@solemn rivet check ShopItemStats in dnspy
specifically specialType and cost
you should be able to change that code to say
using System;
using UnityEngine;
// Token: 0x02000792 RID: 1938
public partial class ShopItemStats : MonoBehaviour
{
// Token: 0x0600253E RID: 9534 RVA: 0x0001BD70 File Offset: 0x00019F70
public int GetCost()
{
if( specialType >= 4 && specialType < 8)
return 0;
return this.cost;
}
}
and all relics should cost nothing
The installation instructions of the randomizer mod tell me I need the modding dll but I can't seem to find it
Can anyone help?
it's the Modding API in another folder
Seanpr & Firzen - Modding API
contains the assembly dll required for any mod that works off the API
There are folders in the modding api zip and in the randomizer zip that already exist in the game files
yeah, because you have to overwrite the game files with the modded files
the folder setup is to make it as easy as dropping into the install folder instead of having to go deeper
drag and drop the modding api zip's data folder into the game's install folder so that it merges with the game's data folder
then do the same with the randomizer zip's data folder
replacing any files the computer says are already in there
With hard you basically need to be prepared to do some serious sequence breaking
I got monarch wings as the first item
I have ismas, crystal heart, dash and dream nail before even reachingcity of tears
that means you're in go mode 😃
you can complete the game with these items
oh wait
you miss the claws
Hey look, you found my charm
that happens with the spells so that they will still exist where they've been moved
you can pick up the spells like this again, but it won't do anything except waste time
yeah they don't
oh, hmm, that's useful
yeah its because fireballLevel never gets incremented its _fireballLevel
yeah but it shows everyones real name 
yes, but that's there regardless
not much for it with this system
unless you setup a alternate google account
i was just pointing out that the issue the main screen's "last modified" date being misleading can be partially solved by using the little "!" icon
you guys can change your shown name so that google only shows your first name (or username if you prefer)
depends on which you want, but most of it is "right-click -> settings"
if you don't want an icon at all then you drag that icon into the red box labeled "disabled"
yeah, in edit mode, it doesn't hide (since if it was, you couldn't find it to unhide it)
Can I get a link for the randomizer?
@buoyant wasp https://i.imgur.com/laTtRJV.png
thats not right?
because the items where still there on my stream
^
ohh
suppose i could add an option to disable an entire box
that wouldn't be terribly difficult to do
How do I install mods on mac?
most of the mods are version specific
if the mod has a mac version it should come with instructions
but most don't
Ok, thank you!
can you maybe add an option to reduce the spacing between items?
but if I reduce the size, the space gets bigger
you can just resize the browser capture in obs
maybe its just not well displayed when the charms are empty
that'll keep the proportions
yes, cause the size of the dot for a missing charm is much smaller
but the image for that dot is still the size of a charm
hmm
no, that's not right
k
i can fix that
what'd you change the size of the charms to?
thanks 
15 right now
k
wyza, was that bug with the items fixed?
should be
need to redownload anything?
if you're still running it locally, yes, if you've switch to the normal URL (the github.io one), then no
@modest ice I can make a mac version of bonfire if you'd like
Thank you! Too generous of an offer. I would love to get that mod, however it seems as if the port would sap both time and resources. @solemn rivet
I should also mention that I'll be purchasing a new computer soon, so the mod would be useless
@leaden hedge - is there an event we can hook into to send when charmSlots and charmSlotsFilled changes?
the set / get int functions
hmm
the only then i get sent when i equip a charm is the "equippedCharm_#"
oh
right
it's filtered
derp
ye
@modest ice wouldn't be that much of a hassle
and it would also be good for any other mac users
the only reason there isn't a port already is because I don't have a way to test it
that tag looks broken
Yeah he tagged the wrong guy
@leaden hedge - Sends along the 2 notch events. Version # updated 22/10/17.b
why did i get pinged
does charmUpdate() run every frame if you're sat on a bench?
probably not
I think I've found another way, anyway
I needed a code to run somewhat frequently and reliably, but not every frame
so I put it in BeginScene()
if that doesn't work, I'll just use CharmUpdate()
ir works
okay, so soft levels are go
sadly it breaks old saves because of how levels are calculated
well, it doesn't "break", it just resets your level counter while retaining your stats
here's the .dll if anyone wants to try it out
I'll make the drmfree version and upload both of them to the gdrive in about 9 hours (gotta sleep)
Is the notch-update now "officially" in the randomizer or a seperate mod?
Separate mod
When I stop being lazy I'll make a readme and get it in the drive
Until then, here it is
Gonna download it when Im off from work 👍
I think mickely did one or two runs yesterday. I think he liked it
speaking of the randomizer
sorry if it has been asked before, but why aren't rancid eggs, keys and pale ores considered for the randomized pool?
if it would be included into the charm pool, it would be very annoying to look for every possible spot to find the one item you need.
On the other hand, if it would be added to the artifact pool, it would kinda screw up the geo route and would maybe lead to geo grinding for the lamp etc
Mainly just because they're not unique pickups
Can't really put them in without a list of where they all are and I'm not gonna be the one to make that list
they're all listed on that interactive map someone made
but yeah I guess
on the other hand it would make for an interesting "impossible" setting for the randomizer
Don't know what that is in this context
The internal names of the rooms
Oh yeah, that would be annoying to find
well I was just curious more than anything
although yesterday when I did a randomizer run, I was kinda disappointed that some of the things weren't in the pool
like white fragments or collector's map
the insane sequence breaking I was able to do by obtaing the abilities early was very fun in its own right, though
do you mean pale ore or the kingsoul with white fragements?
I'm a bit burnt out because I've been working on it every day for close to a month
But I'll add more items to it later this week, probably
Just not immediately
I mean like I said, I find the mod very fun already
it was just weird that pale ore wasn't in the pool, for example
doesn't seem that different to the things that already are
I think nail arts and kingsoul stuff are higher up on the todo list than ore
makes sense
I guess I mentioned rancid eggs because as of now, the pool doesn't really have any bad items in it
and part of what makes randomizer runs fun is when you're struggling to reach a certain item, only to find something useless there
Like 3/4 of the charms are bad items
nods
I mean
sure
but it still counts towards getting a charm notch from salubra, for example
also it kinda sucks if you look for money and grab a kings idol which turns out is a wanderes journal 
true
hmm, when you try to "speedrun" it, you usually ignore those anyway
shit I feel bad cause it seems like I came here only to complain
we had that discussion yesterday. Thats why there is right now a seperate mod to give you automatically charm notches, as more charms you pick up
@plush notch don't worry, we all came here only to complain

the notch mod is great, still vote that makes it into the randomizer vanilla
o/
agreed
it was fun to have in the rando
didn't feel too op
made collecting "garbage" charms more rewarding
anyway, i'm gonna compile the relic/mask/notch/egg/ore (basically secondary items) list with scene names sometime after grimm troupe. My luck is that they'll move some of them or something and i don't want to redo the list
okay, finally, Bonfire Mod has been updated! This update includes the ability to level up using Relics instead of Geo (and makes them worth 0 geo when trading with Lemm)
if anyone's interested in a mac version, please DM me
@solemn rivet Taking a pretty big performance hit with that mod
~100 fps instead of 300+
think i just figured out how to make it so that you won't need to copy the URL back and forth to configure the overlay and to make the overlay update in real time when moving stuff around in chrome. will have to investigate more tonight... 
that is weird... My pc is pretty bad (I usually get around 80 fps) and it doesn't impact me so badly
I'll remove all "write to debug" things
see if it helps with performance
@rain cedar
Doesn't seem much better
Not a big deal because my monitor is 60 hz anyway
The only reason I even noticed is I couldn't make the jump in king's pass after the first mosquito
maybe you have the dump fsm mod installed?
I don't
weird...
but thanks for telling me!
I'll see if I can find anything behaving weirdly
Just loaded up vanilla to be sure it's the mod causing it and I'm at 375 fps
and the only thing running out of the UI is hp/geo dropped calculations in BeginScene()
which should only run once per scene....
@rain cedar GameManager.BeginScene() (enemies' hp/dropped geo), HeroController.CharmUpdate(), .Attack(), .doAttack() (nail damage, crit calculations, atk speed)
LevellingSystem is the class responsible for, well, the levelling
and ModData contains all variables in the mod
aside from that, there's a small change in PlayerData.UpdateBlueHealth() to add blue masks, NailSlash.OnTriggerEnter2D() to show crit effect and SpriteFlash to add a sprite flash for crit
You're running Resources.FindObjectsOfTypeAll<Font> every time in LevellingSystem.OnGUI
Just run it if the fonts are null
ffs
thanks
{
foreach (Font font in Resources.FindObjectsOfTypeAll<Font>())
{
if (font != null && font.name == "TrajanPro-Bold")
{
this.trajanBold = font;
}
if (font != null && font.name == "TrajanPro-Regular")
{
this.trajanNormal = font;
}
}
}```
Should make it a lot better, yeah
if that doesn't work, I'll just put it inside the if for the GUI
should at least let the game run fine while not levelling up
It worked, I'm getting normal fps
found a bug
0 hp enemies aren't dying in one hit
prolly due to me messing up with HP
will just add a clause to leave it as is if the enemy has 0 hp
those little flies that spawn when their mother is killed have 0 hp iirc
boggles
my mistake
those have 5 hp
now I know what the issue was
they have 5 hp, so it becomes 5*1.4=7 hp with bonfiremod
that's why they needed 2 hits to die
So the issue is it's working exactly as it should?
yes and no
for some reason they don't behave like they took damage at all
they probably don't have it coded, since they should always die in one hit, no matter what
so I thought the game was bugged
Yeah Lightbringer has the same issue I think
they're not really coded to take small amounts of damage
I can just change their HP to 1, like every other "kill me pls" enemy
I think I'll do that
Saying that in all caps isn't to make any difference.
If they want to put it on moddb, they will
If they don't, tough luck
we can't
Cause of licensing issues, right?
several mods are changing the dll for the game
so putting it on moddb would be putting the game's dll up there
Yeah, I remember that convo from earlier
So how can I find the mods sorted properly here?
click on the pinned messages and go to the drive?
like we've said
it isn't like there is a ton of them
it's like...12?
Several of them also only work on previous patches as well
Some of the mods have even been DMCA'd and are only distributed secretly
^
DRIVE link?
it's pinned
look at the top of discord
there is a pushpin icon
click it
magic happens
There's really only one of those DMCA'ed mods which hasn't been reincorporated in the new Debug Mod for that matter
Current Mods:
110% (kcghost)
Blackmoth (Gradow)
Bonfire (Gradow)
Cut Content (kcghost)
Debug Mod (Seanpr)
FSM (kcghost)
Glass Soul (753)
Lightbringer (753)
Modding API (Seanpr & Firzen)
Player Data Tracker (KDT)
Randomizer (Seanpr & Firzen)
Unending Dreams (MaxTCC)
Yes, and?
he learned copy and paste
Where's boss rush mode
That was one of the DMCA'd mods
yup
myluck
if you read the rest of the pin...
Kein's mods are no longer on the drive folder. Most of his mods have been remade in Seanpr's Debug Mod, except for Boss Rush, which I will provide to anyone upon request in a direct message.
You can still get it, but only through basic level reading comprehension
@dapper folio - but reading is hard
I bolded the key words for a reason
oh? i thought your keboard keys just got stuck randomly around whole word boundaries
or you were trying to send a coded message
maybe
I'm not trusting someone who says he's providing a direct link, mods upload into moddb are checked by moderators and scanned for trojans
Gotta link this discord to team cherry
Bye
TC already knows
Did you not see that there are literally Team Cherry members as part of this discord?
Mods uploaded to moddb aren't really scanned at all.
Some people just can't be reasoned with 
also, TC has stated that they prefer this over having everything on moddb
also also, what's the difference between me uploading the mod directly through discord and providing the drive folder?
That person apparently thinks that moddb is the only way to get safe mods
bahahaha
Download count and bragging rights
So they won't take mods from either GD or Discord DM
They probably downloaded "Minecraft server hack" from some direct link and it gave them a virus
so now they're afraid
eh, whatever, I'm gonna go get some food
Doesn't mean they should be dumb about it
i mean, to a certain extent, a little bit of caution isn't bad
but it's all zip files, those can be scanned before being interacted with
yup
UPLOAD TO MODDLKJAJGHWEIW: PLOX NOW OMG DO IT IM YELLING
I kinda want them to send a message to tc, just to see what happens
Considering the devs have linked the Discord in at least one of their blog posts, you'd think they'd realize the Discord is relatively trustworthy
But based on the fact they're going to personally message TC, they clearly didn't see that blog post
"some guy on this discord tried to give me exactly what i asked for"
also also considering a bunch of us have downloaded and used those exact mod links with no issues.....
"it's a HACKING TRAP"
lol wyza
"SUE DISCORD SO THEY UPLOAD ON MODDB"
lol
hehe, well, that was a fun diversion, but now back to work sadly
IM TELLING ON YOU GUYS WITH THE DEVS
I mean, that same person complained days ago about how they refused to use Discord
WHO HAVE SHOUTED OUT DIFFERENT MODS BEFORE
So I wasn't expecting them to come back, but lo and behold they did today
Oh I remember him now
oh yeah, that guy

@buoyant wasp how do I get back to the edit-page for the tracker?
if I copy the shortened link from OBS its just the "white" preview page
nvm
got it
hmm something doesnt seem right
bottom is how it supposed to look like
or I have it setup on the page
nvm, I see the mistake
how can I catch a variable change?
say I want a certain method to be called when hornet1 is killed
seems like I need to understand how hooks work...
Look for hornet1Defeated in SetBool
depends on if you want other people to be able to respond to it with their own hook
if your not making a modding api mod, it literally doesn't matter
I've changed it all to use Set/Add/Increment/Decrement since I plan to make it compatible with the modding api
back on track, how would I look for a bool in SetBool?
just compare the parameter it sends in
I mean, yeah, but how would I know the game is even calling SetBool?
are you using the modding api?
no...
@summer tapir - The containers for icons are separate entities. They don't interact with each-other or are even aware of each-other when not in editing mode. (the ability to drag/drop/sort is where they get their knowledge of other containers, so in non-edit mode, that doesn't exist). If you found a good way to make it work the way you like, great, if not I can see if I can make it so that you can do it the way you are. I can see a reason to make a container wider without having the icons spill over (basically a thing to say "new row after X icons", like 9 for the charms.
{
FieldInfo field = base.GetType().GetField(boolName);
if (field != null)
{
field.SetValue(PlayerData.instance, value);
if (ModData.OnSetBool != null)
ModData.OnSetBool();
}
else
{
Debug.Log("PlayerData: Could not find field named " + boolName + ", check variable name exists and FSM variable string is correct.");
}
}```
I keep getting ambiguity between ModData.OnSetBool and ModData.OnSetBool when trying to compile... Any ideas?
what are you even trying to do
just do ModData.OnSetBool(boolName) right at the start
It looks like you're trying to use events
I don't see why that would be necessary here
I thought that I could attach a method to SetBool if I simply subscribed it to an event and made SetBool trigger that event
but I could simply run that event inside SetBool
duh
*method
yeah, makes no sense
sorry
also, Sean, do you know if there is an event related to when you pick up a relic and it showing the relic's name and icon on screen?
I know, but I want to show on screen
"got relic"
just like the game shows when you pick up a relic
the notch mod is 👌
well, turns out calling OnSetBool() in PlayerData.SetBool() breaks the game
[20:04] Gradow: why am I not surprised...
Put a try catch block on it and log the error
okay, got it
Alright, cool
although it won't work for none charms obviously
Wouldn't surprise me if relics were in there too
Since it's the same pickup text/image placement
I believe this to be the relevant fsm for pickups
ah the charms create an object though
where as this doesn't
I think this prefab must have a few sprites on it
if this never gets reset
you could actually get alot of stuff to work nicely
just by changing the transition targets
I tried using this to make the "got Wanderer's Journal" overlay to appear, but didn't work 
because I want to reward player progression with a free level, but I also want the player to know they just got a level
was it untagged object with shiny control FSM?
yup
oh
or you can just copy it
although actually
you couldn't because you could pick them all up 
I wish it was as simple as broadcasting an fsm event
@rain cedar when does SceneChanged get called?
At the end of LoadScene and LoadSceneAdditive
I don't even use that hook for anything
UnityEngine.SceneManagement.SceneManager.activeSceneChanged is more reliable
@rain cedar
this should work for everything except spells
although stuff thats in a chest doesn't seem to work atm
Probably because it's not there on scene load
yeah
the chest has to say hey
im open
then spawn it
public void sceneChanged(Scene from, Scene to)
{
PlayMakerFSM[] fsms = UnityEngine.GameObject.FindObjectsOfType<PlayMakerFSM>();
foreach (PlayMakerFSM fsm in fsms)
{
ModHooks.ModLog(fsm.FsmName + " | " + fsm.name);
if (fsm.FsmName == "Shiny Control")
{
ModHooks.ModLog( "SHINY CONTROL: CHARM" );
ModHooks.ModLog( fsm.FsmVariables.GetFsmBool("CHARM").Value.ToString() );
fsm.FsmVariables.GetFsmBool("Charm").Value = false;
fsm.FsmVariables.GetFsmBool("Mantis Claw").Value = true;
}
}
}
vars of interest
charm,
charm id,
dash cloak,
mantis claw,
super dash,
pure seed,
Trinket Num,
so I don't think it'll work for djump or shade cloak either
Yeah, I'm looking at the fsm gradow posted
Makes sense those aren't in there
They're not shiny items
Although neither is super dash so idk
Weird
but I guess every shiny pickup working as intended
is better than none
and you can just keep spells and djump / shade cloak as is
I assume the child object, Inspect Region that it gets in Init, has a playmakerunity2dproxy
so can probably hook into there to fix chests
also pretty sure this could have been used to fix ismas
by changing PD Bool Name to whatever ismas would give
if it works it works
I'm returning false for hasAcidArmour whenever you're in the isma's tear room
Manually switching the acid fsms to look for a special _true value if applicable
And deleting the shiny item if you have what isma's is swapped to
It's messy as fuck
@rain cedar - something weird i've seen in the logs:
Sharing violation on path C:\Users\user\AppData\LocalLow\Team Cherry\Hollow Knight\ModLog.txt
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0
at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) [0x00000] in <filename unknown>:0
at System.IO.StreamWriter..ctor (System.String path, Boolean append) [0x00000] in <filename unknown>:0
at Modding.ModHooks.ModLog (System.String info) [0x00000] in <filename unknown>:0
at blahblahblah
Probably because this is happening on application close. I'm doing a log on close of 2 distinct items.
@solemn rivet If you do create it send me a download link and I'll beta test.
The bonfire port that is
If anyone wants to play with a new feature for the overlay, I came up with a solution wherein you can change stuff in chrome and have it instantly reflected in OBS without having to re-copy the URL. Here's the beta URL: https://rawgit.com/iamwyza/HollowKnightRandomizerTracker/dev/Index.html (you can take your existing ?editing=true&config=blahblah) and it'll load it up. You'll need an updated PlayerDataDump.dll (see below). One other difference is that HK needs to be running when you edit your layout now. (because the way I'm doing cross browser communication and profile storage is via PlayerDataDump, which only runs when HK is running). The updated tracker also now has a notion of "profiles". Each profile's settings are stored independently in your %APPDATA%\LocalLow\Team Cherry\Hollow Knight\ folder (next to your saves).
Hey
Doesn anyone know to can i get infinite health
Just for one boss fight
No actually sorry
Doesnt anyone know how to put benches
Next to boss fights
Since obviously retarded devs couldnt figure out how
try gitting gud
lol
None of the bosses are even that far from benches
there is a debug mod, that lets you do a variety of things, like placing dreamgates almost anywhere, infinite health, respawning bosses, etc
Soul Master is probably the worst but he's easy
not enough people know about the secret wall to Soul Master
you mean the one below the elegant key door?
I'd argue that Traitor Lord (if you consider them to be a boss) is the worst in terms of placement relative to a bench
Cause to get to Soul Master once you open all the shortcuts, you only have to deal with 1 teleporting guy if you know about the secret wall and 2 if you don't
Soul Master was really long for me, even after (I think) I got all the shortcuts.
I died several times along the way.
There's only 1 teleporting guy along the entire path though
I had two. Don't know what you mean with the secret wall.
Left side of elevator shaft leading up to the Elegant Key door has a breakable wall
Wait, three guys actually. Two at the same time.
Leads straight to the bench
Hmm, I guess I never found that? I don't remember now.
And if you go past the Soul Warrior mini-boss room, you don't spawn one of the teleporting guys
So there's literally only the one teleporting guy that spawns when you head up after the Soul Warrior mini-boss room
Okay. Might check it out when I try to finish the game. I can't remember if I beat Soul Tyrant yet.
Traitor Lord is much more annoying cause of that platforming room that you're forced to go through from the closest bench (Queen's Garden stag station)
I got Traitor Lord on my first try, so I didn't notice that. 😛
With Soul Sanctum, you can just move quickly and avoid all the enemies
Teleporting guy won't even get a single shot off if you go fast
Yeah but I wasn't as experienced in the game when I tried it the first time. Hopefully my second playthrough will be smoother.
So I kept running into the enemies/their projectiles.
Sure, Traitor Lord is the easier of the two in terms of the boss fight itself, but the walk-back if you do die to it is more annoying than the walk-back to Soul Master imo
Yeah but you also get there much later in the game, so you're more familiar with the platforming hopefully. I think that's why it doesn't stick in my mind.
Except the level of platforming you have to deal with in Queen's Gardens is of greater difficulty than most other areas in the game, and that room in particular loves to lose me 1-2 health before getting to Traitor Lord
I'm not going to argue that, I'm just saying that earlier on you're less experienced, so objectively simpler challenges can become subjectively harder as a result.
This is the platforming room which I'm talking about:
If memory serves, the last bit was the hardest for me, but even that wasn't too bad.
This is way more likely to cost me health than traversing the whole of Soul Sanctum after the shortcuts are opened
It's different for everyone I guess.
My path through Soul Sanctum:
Only place a teleporting guy spawns is the white triangle
Ah, I was misssing that first secret passage. But then I thought there was also one in the big area before the triangle too.
I had to fight two at once.
Or deal with one first and move on.
There's a bunch you have to deal with in order to open the shortcuts
yea
But once you open the shortcuts up, you only have to deal with 1
Oh, I think I always took the right side since it seemed quicker.
I never tried to check on the left.
Welp.
there's that "shortcut" you can open on the bottom right
but it's slower cuz of all the enemies
^ this is something I figured out after trying it a couple of times
It's much easier to just walk past the Soul Warrior mini-boss room cause there's way fewer enemies
also #speedrunning ? or #hk-help? dunno if this really is a mod problem anymore? 😃
so wyza. when i copy the url from OBS to a browser source to edit it, do i just need to add "editing=true" to make it not the white preview screen?
yup
kk
it's white otherwise because the background is transparent and chrome's bottom level is white
makes sense
so if i take the URL i have now and pop it in, that'll contain all the updates you've made?
or does that not include the beta version you have now
the beta version has a different base URL (everything up to the Indext.html?), everything after it should be the same
it'll prompt you saying "hey you're importing a config, which profile should this be saved as" pick profile 1, and it'll load it in. Going forward, you won't need to copy the url back and forth anymore
you'll just have blahblah/Index.html?profile=1
and any changes you make in chrome under profile 1, will be automatically pushed into the obs overlay
that'll be nice
once this comes out of beta, will the url change?
i want to play with it a bit tonight
it'll be the same url as the current Live version
yup
that's what i do, i have the "live" source and the "dev/beta" source and just hide/show depending on what i'm doing
What are you streaming? Modding?
@tawny lynx - not streaming modding. There is a UI overlay KDT and I wrote that is for OBS so that viewers can see what charms/spells/skills/items you have without it cluttering up your gameplay. It's primarily used for Randomizer runs since it's hard to keep up with what a player has and hasn't found (especially in a race)
Oh nice.
in this case we're talking about 2.1 Beta of it that makes some improvements to how configuration is stored 😃
It's a really cool idea.
I'd still like to mod this, but I've come to terms with the fact that I probably won't because I get too busy with other things, and people here are already doing really neat things anyway.
hehe, i tried to resist the temptation to do any coding here. I couldn't though.
How does modding work now? Is it still using dnSpy to edit individual methods and classes piece-by-piece, or do you use a decompiled project?
There is an api you can use to mod now
Provided by the developers or as a mod?
Mod
That's good. I remember there being talk about such a mod a few months ago.
Does the Boss Rush Mod exist yet?
It says I have to ask for it
yes, send me a direct message and I'll provide the mod's zip
Not allowed to host it in the drive folder anymore, but I still provide the mod upon direct request
btw, @leaden hedge , I forget, but did you ever tell me how you managed to make all spells(- fireball) do no damage?
I can implement a semi-functional Int stat at least
if i'm really irresponsible with simple keys, can i hard lock a randomizer save? sly's key on jiji, and city storeroom's key on city hotspring. is it possible to reach all of those locations, and yet the key in ancient basin is inaccessible until i access royal waterways?
does royal waterways have any alternate entrances?
there is a way to enter waterways from the drop to the ancient basin
looks like you can get in through the tram to kingdom's edge too, but then you'd have access to ancient basin.
do you not have access to basin?
this is a theoretical situation.
yeah
I can't find the video
but I'm pretty sure it's possible to enter waterways in the descente from COT to basin
NMG, i assume.
I think so
is it that trick where you pogo on spikes and fireball to cancel momentum, then dash, or something?
I don't think it's as complicated as getting womb tho
It's pretty tight and very annoying with downdash.
nice. so that requires cloak and dashmaster, right?
I don't think cloak is needed
since you need 2 dashes anyway
I don't get how to stop the nail's knockback tho
huh? you don't need mothwing cloak?
You just cancel the pogo momentum with dash
You can get in there with dashmaster, fireball, or wraiths
but why does that not work for glowing womb then?
gotcha
And yeah you probably could get stuck in randomizer if you're dumb with keys
Same as if you skip fury
If fury is mantis claw and you skip it there's no way back up there
Ever
never skip fury
Basically, yeah
i mean, never save in ancient basin unless you can get out 
That bench is gone if you don't have wall jump
The only way to save down there without it is getting shade cloak
or city of tears at quirrel bench.
yeah, i saw the code. i'm trying to imagine eliminating all hard locks, even ones where you're dumb.
it's hard.
the CoT hotspring leads to the shaft between resting grounds, kingdom's edge, and king's station. that can't be significant for routing in randomizer, can it?
Nah, that place is useless
disable jiji and CoT hotspring until the waterways is opened doesn't seem like a bad idea. but also, meh; doesn't seem terribly urgent.
sean, are you deliberately waiting for grimm troupe before working on randomizer anymore? and are you planning to update to the latest version or continue on 1.1.1.8?
I wasn't waiting for that specifically, but it's not a bad idea
Just a bit burnt out on it
And I'll definitely update the api to grimm troupe
is there something specific that's burning you out? like could i help by developing a tool that did something? maybe an fsm visualizer or something?
KDT already made an fsm visualizer
And I'm just burnt out because I spent 3-4 hours daily on this for almost a month
But if you want to improve something, you could work on adding nail arts or something like that
next on my list is to get familiar with the debug mod. basic stuff like "what room am i in?".
i also need a better understanding of get/set player int/bool. like is the word "player" a red herring, and that's also where breakable wall state is stored, or is breakable wall state somewhere else?
The hooks in the api are for bools/ints in the PlayerData class
Something like a breakable wall would be stored in SceneData
does the API have hooks for SceneData?
No, not yet
any other FooData classes that you're aware of?
Just the two
SceneData is different in that it can store an indefinite amount of things
PlayerData has a set amount of named variables
is there documentation for all the fields in PlayerData? (yet?)
No, but you can just look at it in dnspy to see the fields
Although I suppose it's not always obvious what they do
i'm thinking something like http://anodyne.wikia.com/wiki/Save_File
There are also a number of copies of your save file that have no effect scattered about your file system. They are created as "backups", but aren't ever read by the game, so they can be safely...
These are the most useless variable names I have ever seen
This game at least tries to have descriptive names
right, so maybe not as necessary for this game. ( ͡° ͜ʖ ͡°)
i'm still a little confused on what the randomizer is doing with quake/quake1/quake2, and the like. i'm not sure what's normal behavior, and what the randomizer is doing differently. some kind of explanation of the normal behavior might help there.
Spells are stored as an int from 0-2
With 0 being no spell, and 2 being the most upgraded one
is that vanilla or randomizer or both?
Picking up the upgraded spell unconditionally sets it to 2
That's how it works in vanilla
In randomizer I'm storing two separate variables that get added together for the total spell level
That way picking up the "upgraded" one will just give you the normal spell if you didn't already have it
Instead of just giving you both levels like in vanilla
but with dream nail, awakened dream nail, dream gate, that strategy doesn't fit as well.
If you pick up awoken nail or gate first, it just gives you nail instead and swaps the pickup locations
so why not do that with the spells too? simpler to do the adding thing instead?
oh. this effectively turns spells into 2 bools instead of 1 int. that actually makes everything more consistent. cool.
Yeah, basically
so in vanilla, if you pick up shade soul first, you fire shade soul bullets. then if you get vengeful spirit second, you'll be downgraded permanently?
its impossible to do in vanilla
It is possible to get shade soul first
Just not nmg
And nah, vengeful spirit can't be picked up second
The game just assumes you have it
ok cool.
and i assume the ancestral mound gate being open/closed is in SceneData, not player data.
Probably
if you actually want to mess with the fsm visualizer @broken fable
https://github.com/KayDeeTee/HK-FSM-VIEWER
theres a few things that would be nice,
the svg should resize to the size of the loaded fsm so you can't scroll off the screen
the hovered state data should be movable so it can't obstruct your view,
lots of variable types don't work like floats or gameobjects,
be able to drag a json dump onto the page to load it, rather than renaming a file to data.json and ading var = fsm to the start
If you really want to, the ability to create fsms in the browser and dump the state to some csharp code that'll create it
@leaden hedge thanks. i'll take a look
this visualizer looks pretty cool so far. i'm learning more by the second. 
oh my god. the fsm states have their x y coordinates stored in them for displaying in a visual editor
. That simplifies the displaying code quite a bit then, doesn't it. I thought this visualizer would need to do some kind of graph embedding algorithm.
nope its literally just a dump of the data the fsm creation tools use I'd assume
because its literally just a dump of the data, the tools to create it use
and thats a visual editor
makes sense
that has the position of each state on it
the lines don't have coordinates, so you're just drawing them behind the states connecting the centers.
You could at least draw an arrow in the middle of the line
yeah, and arrow would be good. especially since there could theoretically be two-way transitions, which currently isn't shown.
Should usually be visible
yeah theres plenty of 2 way transitions
line could be a gradient color from start to finish.
what's this Odd Key i see? Variable name hasMenderKey. Is that related to the Menderbug?
i'm guessing some of this is unused. like waterways key.
(just scrolled up to the most recent data.json i could find here to view something.)
it's a case of handling a shiny object pickup in the fsm. i'm guessing it's unused.
Yeah, probably
has there been any discussion of how to include mask shards, soul vessel shards, and charm notches in the rando? one issue is that some vendors (sly, salubra) sell them in an order assuming they are all interchangeable.
we have a new way to handle notches that several of us have been playing with
at least for the salubra ones
where you automatically get the notch from salubra when you reach the required charm count
is this the "notch mod" i've been hearing about?
it's not in the randomizer yet, though i think several folks are hoping it will be (myself included)
yup
so that eliminates paying salubra and going to salubra?
well, paying and returning to her
for those
it's just "you got your 5th charm, here's your notch"
that doesn't sound appropriate for rando, tbh. that's like a convenience thing, not related to randomization.
what about a mod that gives you immediate cash when you pick up a relic.
the problem is, notches health and soul is completely useless
making you have notches gives you flexibility when the randomizer gives you weird charm combinations
@leaden hedge, i'm not so much concerned about getting health when you don't need it or want it. i'm interested in the player going to get the health pickups to see if it might be something good. i'm interested in the locations, not the items.
otherwise, everyone is always going to have 4, or at most 5, notches
so 90% of the time, you'll never use more than 2 charms, 3 maybe
the problem is adding another 26 items to the pool
most of which just cost money
whats the point
@leaden hedge, yeah bloating the shops seems bad. maybe sly's mask shards and soul vessel fragments and salubra's notches should be left out. but what about the rest of the locations?
adding more locations from mask and vessel shards wouldn't at this point add much value
plus the runs can be long anyways at 2-2.5 hours
it's in a really good place now with the number of items you're required to check
plus the next thing is to add in Kingsoul to the pool, which would require you to go check the queen's spot, adding more value to QG and an additional boss
hey
this isnt really related to hollow knight but to coding in general
can i ask here?
what charm did we decide we would lock in WP again? not the compass now that there is a plan to make it useful. i suppose we could put...hmmm, oh what if the mask shard in mawlek was moved to WP and mawlek got added to the pool. it's not a pad place
i think we just decided to make it a dead place
ah
but don't we need another place to put something ?
i think one of the most interesting things about rando is using or being forced to use unusual strategies. giving the player more notches serves that purpose. putting nail arts in the pool does as well.
what is WP?
nail arts is next on the list
we need to put something there so that it can take something elses place
White palace
oh, the quill
HOWVWOULD U DO THIS
you could put the quill in WP and then make the quill an item
lol.... "do my homework"
yeah. i don't think we need that
me?
still think swapping mask fragment at mawlek would be good. gives you a reason to see another "boss" that isn't super hard, but is also never seen
have you tried implementing all 3
what do people think about randomizing which vendor sells which inventory of items? like sly might be the nailsmith, and leg eater has salubra's inventory.
and seeing what comes out 
that'd also probably be much harder to code
probably
and add little value to the rando
dang so can I ask my Physics HW in #off-topic too??
the answer is 42
k wait up and I will take a picture of it /s
@pine condor in all seriousness, your question is too vague. can you ask something more specific, like is there part of it that you don't understand? if you just want the answer, then that's effectively cheating on your homework, which is dishonest, and it's not very interesting for us to help you in that way.
I'd suggest following @leaden hedge's advice. write those functions out, and see what their output is
you'll gain a much better understanding if you do it
if you can, step through it in a debugger.
I'll give you the answer for $1
sorry, i didnt mean it that way. i have a very basic to none understanding of coding, which is why i legit have no idea what this is talking about. can you possibly explain? it doesnt have to be this problem literally any possible info
why is this in your work then?
if the book is explaining it, wouldn't it have the answer on say, the next page?
nope
that's a crappy book
so a for loop takes 3 parameters
the number to start with, when to end, and what to do each loop to that number
so for( int x = 0; x < 10; x++ ) is saying set x to 0, and whilst x < 10, increment x
for( int x = 0; x < 10; x++ ){
system.out.print(x)
}
will print everything between 0 and 10
this is the maybe third page of my book
either go back and read the book's explanation, and if it doesn't explain, then the book is not useful. get a different book / watch a youtube tutorial / something like that.
oh
@pine condor no, they're all crap. i have a dream to someday make a good programming tutorial video. someday.
for loops are a standard
do you have a java ide?
Sit in on a college class, they probably won't care
a college course wouldn't even notice
i cant go to college
I go to a lot of classes I'm not in yet
^
In hopes I can get in later in the quarter
im in hs
you don't need to go to class to learn to program really
IntelliJ is my favorite IDE for Java; it really helps to have an IDE if you get serious about it.
can i still sneak into college classes?
theres plenty of information online about programming
Eclipse is awesome
intelli j
for completion
there's no age restriction to be in a room
netbeans 
Yep
technically, you're not supposed to be in the class, but no one who would see you is incentivized to care.
the best way to learn programming is to do it
Hmm, my school would care. One of my teachers complained about it.
reading does very little without application
what would be a starting programming?
An IDE is basically Notepad for running code
program*
Python or Java would be decent starting languages
its fine to just program whatever your book asks you
its legit filled with questions like the first one
well implement them, see what the print out
I can't imagine learning code through a book
okok
edit it and see what happens
self learning is fine for programming
if something doesn't work just search for stackoverflow with your exact problem 
Google is your best tool
i've been programming for 15 years, 95% of what i know, I've learned by trying stuff, and asking google.
pick a language you want
just dont ask anything on stack exchange, they will rip you apart
woah whats that
I'd recommend downloading Eclipse IDE and starting to learn basic Java
or visual studio community and learn basic c#
although I've heard starting with Python is easier yeah
i went with eclipse
what is your end goal?
I learnt with pascal 
i went with eclipse
But python is really different from other languages like Java, C#, C++, C, etc...
not fundamentally
syntax is
do you want to do websites? or desktop apps? or games? or....?
Not that I know it
my end goal?
It's not typed for one thing.
sure its interpreted and weakly typed, doesn't use {}
but the concepts are the same
That's something entirely different then
website deisgn or basic animation
JS then.
those are 2 wildly different things 😉
LOL
you'd have to look up AP Comp Sci curriculum
java sounds like the way to go
AP Computer Science is based off of java
website stuff you should be looking at HTML/CSS/TypeScript(or Javascript).
Java and JavaScript are completely different, btw. completely different.
nah for loops are like day 1 stuff
One is for websites
they are completely different languages
they are entirely different languages
Everything but the name.
I don't even know the difference haha
same haha
Though they both use C-like syntax.
JS is for websites and Java is for programs
java and javascript are similar like car is like carpet
javascript is a scripted language primarily used for client side code in websites
LOP
lol
is it possible to explore both options
you can do whatever
java is compiled language that can run back end software like servers, (which can serve websites), or desktop applications
Learning one language will make it easier to learn another.
whatever you learn in javascript will apply to java
err just stick with Java if you want a 5 on the AP comp sci
yeah if you learn one you kinda get the other as a bonus
just the syntax will be different
Most concepts apply to other languages.