#archived-modding-development

1 messages Β· Page 29 of 1

buoyant wasp
#

i looked at the code, but the only thing i could think of is that the unity random generator isn't working the way we expect

#

ah

#

yup

#

gotta reset the seed on the generator

#
 Random.seed = System.DateTime.Now.Millisecond;
leaden hedge
#

nice

#

you'll have to wait a while

buoyant wasp
#

meh, no worries

leaden hedge
#

cause I literally just finished recoding 80% of it

buoyant wasp
#

haha

leaden hedge
#

and it doesn't compile hollowface

buoyant wasp
#

it's not a huge thing, having to restart the game is only annoying, not breaking.

#

oh, one thing while you're rewriting stuff, can you make those 3 guys in false knight not exist when you teleport in?

vale zenith
#

@buoyant wasp I'm fine with MIT

buoyant wasp
#

sucks to get teleported and hit immediately

vale zenith
#

I assume Sean is too but ask him as well

buoyant wasp
#

honestly you could probably steal the seed generation button from the randomizer

#

πŸ˜‰

leaden hedge
#

wow this actually worked

buoyant wasp
#

bonus there is that folks could share boss rush seeds

#

"wow this actually worked" is basically how i felt last night when i finally solved the API thing. honestly didn't expect it to work πŸ˜ƒ

#

lol, found a way to soft lock, don't go left at false night

#

if you fall down, you're just screwed

leaden hedge
#

yeah

rain cedar
#

@buoyant wasp Yeah I don't have any problems with that

buoyant wasp
#

bleh, got stuck in the floor of the soul master fight

#

also, if you quit out and reload the game, you're served with the loading screen forever

#

license added

leaden hedge
#

because I don't save your progress in the save

#

so It has no idea where its supposed to be

buoyant wasp
#

hehe, well you can now πŸ˜‰

leaden hedge
#

I'd just disable saves all together

#

its only supposed to take 30m

buoyant wasp
#

yeah, in my case i wanted to try and unstuck myself

noble trout
#

Wait what is going on

#

Is boss rush being remade?

rain cedar
#

Yeah, KDT is working on a boss rush mod now

buoyant wasp
#

So i wonder, now that we can compile the API and merge it, rather than having to hand add it......would it be worth looking at using something like log4net when looking at updating the logging system? Instead of re-inventing the wheel, leave it to a library actually designed to deal with logging and concurrent writes and levels and all that.

leaden hedge
#

its playable, but certain stuff doesnt work how I want

#

although it fixes mobs spawning inside you

#

and the random seed issue

buoyant wasp
#

interesting, so now that you are storing boss order seperately i assume you're opening the door for shuffling the order down the road?

leaden hedge
#

should be very easy to randomize order now

buoyant wasp
#

guessing each of the commented bosses present some technical challenge ?

leaden hedge
#

soul master is buggy,
thk is buggy after kill
WD / GPZ have no issuses, but I haven't bothered to go get the positions

#

but I'm not sure on the difficultly to set WD / GPZ

#

and theres 1 more main issue

#

theres 22 bosses and 66 items atm

#

3 items per boss = 66 items used

#

more bosses = crash

buoyant wasp
#

I would put WD in the same category as Tyrant, LK, and FK

#

hmm

#

what if you made it so that once you've gone through the available pool, any items not picked up would get reshuffled back into the pool

#

also, perhaps putting in the unbreakable versions of the 3 fragile charms would give you 1 more bosses' worth

#

but basically, lets say someone perfect kills the first 22 bosses and gets 2 items per boss. there are now 22 items left that haven't been picked up. those 22 could then become the new pool for the remaining bosses

leaden hedge
#

I guess I could recode assignItems() and only call it before spawning the items

#

but yeah the only bug atm is ItemData.activate()

#
            if (!ItemInfo.upgrades.ContainsKey(varName))
                ItemInfo.upgrades[varName] = 0;
            ItemInfo.upgrades[varName]++;
#

this doesn't seem to work, which breaks shadow cloak

buoyant wasp
#

hmm, how does the randomizer do it?

leaden hedge
#

it uses if hasDash ? "hasShadowDash" : "hasDash"

#

which I could also do

#

but

#

        private string getName()
        {
            if (!ItemInfo.upgrades.ContainsKey(varName))
                ItemInfo.upgrades[varName] = 0;
            if (lanSheet != "RAW")
                return Language.Language.Get(lanKeys[0], lanSheet);
            return lanKeys[ItemInfo.upgrades[iternName]%lanKeys.Length];
        }
#

allows me to have multiple names for items as they get more levels

#
itemInfo.Add(new ItemInfo("nailLevel", "UI", "nailDamage", 4, "INV_NAME_NAIL2", "INV_NAME_NAIL3", "INV_NAME_NAIL4", "INV_NAME_NAIL5"));
#

as you can see here

#

fk

#

I'm retarded

buoyant wasp
#

lol, I have insufficient data to either agree or disagree on your mental status

leaden hedge
#
        private string getName()
        {
            if (!ItemInfo.upgrades.ContainsKey(varName))
                ItemInfo.upgrades[varName] = 0;
            if (lanSheet != "RAW")
                return Language.Language.Get(lanKeys[ItemInfo.upgrades[iternName]%lanKeys.Length], lanSheet);
            return lanKeys[0];
        }
#

well whatever it works better than I expected

#

considering I completely recoded the entire thing

buoyant wasp
#

lol

#

better than what we had before, which was nothing

#

oh, interesting, you made the fragile charms unbreakable?

leaden hedge
#

yeah

buoyant wasp
#

nice

buoyant wasp
#

@rain cedar - is there ever a situation in which 2 things could call ModLog from separate threads/concurrently?

rain cedar
#

Unless the mod maker goes out of their way to thread something, I don't think so

#

MonoBehaviour.StartCoroutine might thread things

#

I'm not 100% sure on that

buoyant wasp
#

k

buoyant wasp
#

waffling on the logging thing. I know right now fast concurrent logs can end up causing it to break (we did it with the overlay mod). Thinking it might be best to use something like ConcurrentQueue<string> to handle it.

scarlet brook
#

Hi, I'm new in all this and I was messing around with dnSpy trying to find and change some values. However, I couldn't find where some charm effects are coded (I know most of them are on HeroController) nor where some constants are defined. Is that me or Assembly-CSharp.dll is sort of cut down?

buoyant obsidian
#

There's a lot you won't be able to find unless you start looking through FSMs.

#

dnSpy will only get you so far

scarlet brook
#

I see. I'll have to look that up, I guess.

#

Thanks.

timber gale
#

I remember someone said that glass soul kills you after getting hit, not necessarily taking damage, so does that mean that Life Ender/Zote could kill you?

rain cedar
#

I would assume no

#

Also to save people the trouble of looking it up like I did: He means Zote

timber gale
#

I fixed it

buoyant obsidian
#

Glass Soul kills you when you take damage, not when you get hit.

#

Although I guess that could also mean it kills you when you take 0 damage? But I don't think Zote kills you.

leaden hedge
#

why this one gotta be a dick

buoyant wasp
#

lol

#

so the first one is "inspect" the other 2 work?

#

cause....reasons?

trim totem
#

interdsting

leaden hedge
#

the weirdest thing is, they are spawned C, L, R

#

so the middle one doesn't work

leaden hedge
buoyant wasp
#

so it just magically started working?

leaden hedge
#

no

#
        public void updateText()
        {
            SetTextMeshProGameText[] textMeshPro = shiny.GetComponentsInChildren<SetTextMeshProGameText>();
            foreach (SetTextMeshProGameText tmp in textMeshPro)
            {
                tmp.name = "FSM NO LOOKY HERE";//this is new
                if (tmp.convName == "INSPECT")
                {
                    tmp.convName = "INSPECT" + id.ToString();
                    tmp.sheetName = "item" + id.ToString();//this is new
                    //Modding.ModHooks.ModLog(tmp.convName);
                    tmp.UpdateText();
                }
            }
        }
buoyant wasp
#

lol

leaden hedge
#
        public string PromptOverride(string key, string sheet)
        {
            if (key == "INSPECT")
            {
                BossInfo.updateText();
                return BossInfo.itemName(1);
            }
            if (sheet == "item0")
                return BossInfo.itemName(0);
            if (sheet == "item1")
                return BossInfo.itemName(1);
            if (sheet == "item2")
                return BossInfo.itemName(2);
            return Language.Language.GetInternal(key, sheet);
        }

and I changed it from looking at the convName to sheetName

buoyant wasp
#

well, whatever works

leaden hedge
#

but I'm not sure if that acutally fixed it

#

or if the BossInfo.itemName(1) did hollowface

buoyant wasp
#

is this version ready for playing yet?

#

also, not sure if this will apply to your new code, but i just had an instance where i kill gruz without taking any damage, but could only pick up 1 charm. does your "damage taken" thing check for mask loss or could it count damage that would have been taken while invincible (such as with dive)?

leaden hedge
#

that should be fixed

#

unless the hook doesn't correctly send damage values

lusty lantern
#

Why do I feel like I'm looking at java code.

rain cedar
#

It's c#

lusty lantern
#

Or that.

leaden hedge
buoyant wasp
#

Ascend!

#

that's a new super secret buff that elevates you to god level of power right? πŸ˜› /s

fair rampart
#

ooh

#

what mod/cheat is this

lusty lantern
#

Think they were doing some boss rush.

buoyant wasp
#

yeah, i was being sarcastic about the buff. if you want the god buff, install debug mod πŸ˜ƒ in this case, he's working on buss rush, yes

timber gale
#

Hollow knight does not like 2 radiance existing

#

Only seems to have issues when switching phases though

#

It was doubling the attacks just fine as far as I could tell, but when one if them got to the spike rain the game crashed

buoyant wasp
#

@leaden hedge - found another bug with the old version to check for in the new. If you kill the boss and die in the same time frame, you'll respawn, but the shinies are gone, so softlock πŸ˜ƒ

mellow zinc
#

Is the boss rush mode functional? I'd love to try it but I'm completely new to HK mods and I've got no idea how to install it. Readme doesn't help.

leaden hedge
#

install the api, then put the dll in Hollow Knight\hollow_knight_Data\Managed\Mods

leaden hedge
#

Text should work now, and you shouldn't be able to softlock by dying as you kill the boss, although dying AFTER will

#

oh and items should be pooled, so when you run out, it'll put old ones back into the pool

copper rover
#

OwO what's this ?

#

It's been a while since I came here

#

Are mod actually doing great changes now ?

late sphinx
#

well boss ruch changes stuff

#

rush

copper rover
#

Is modding safe ?

#

And by safe I mean reversable easily ?

leaden hedge
#

just make a backup of assembly-csharp.dll

copper rover
#

How do I make a backup of my saves ?

#

Also how do Boss rush works ?

leaden hedge
#

%appdata%/../locallow/team cherry

#

boss rush just teleports you to each boss
you kill it, and it drops 3 upgrades and you get to pick one of them, (unless you kill it without getting hit, then you get 2)
then you go to the next boss

copper rover
#

Alright made a backup

leaden hedge
#

you need to play with an empty save anyway

copper rover
#

I need to create a mod folder right ?

#

And put the bossrush file in it ?

leaden hedge
#

you need to install the api

late sphinx
#

oh i thought i got to get 2 upgrades as a glitch

leaden hedge
#

the api makes the folder for you

late sphinx
#

didn't know it happened if you defeated a boss without taking a hit

copper rover
#

Where is the API ? Sorry if those question sounds dumb but I never did HK modding before.

leaden hedge
#

its in the gdrive pinned in this channel

copper rover
#

Latest version is 1.2.1.4 ?

leaden hedge
#

yes

copper rover
#

Hmm... What do I do once I've merged the old files with the new ?

#

Do I run the game ?

#

Alright it's working. Thanks for the help. I've always wanted a boss rush mode.

copper rover
#

Hmm

#

Not sure if bug but when you start a new save it takes you back to the same boss.

#

Also Grimmchild doesn't seem to be working.

#

So it's useless as a reward.

leaden hedge
#

every time you pick it up you get a level

#

it doesn't do anything until lv2

copper rover
#

Oh ok...

leaden hedge
#

the only items that are actually broken are joni's and hiveblood

copper rover
#

Also how do I reset it ?

#

Starting a new save takes me to Watchers Knights

leaden hedge
#

install that one

#

old one had that bug hollowface

copper rover
#

Thanks

#

lul Early Quickslash

copper rover
#

Hmm

#

I think Watchers Knight is a bit hard as the 5th boss

buoyant wasp
#

so, found a softlock

#

if you die to grimm1, then go over to get your shade (which is outside of grimms room), he'll still start the fight, but then you're locked out of his room.

leaden hedge
#

get it after the fight hollowface

buoyant wasp
#

well, yes, but there's no way for a new player to know that

#

and since you can't save/quit/load, you're just screwed πŸ˜›

#

also, i don't htink you've quite figured out the labeling stuff

hazy sentinel
#

legible

buoyant wasp
#

more that somehow flukenest was listed twice

hazy sentinel
#

double flukenest ez

buoyant wasp
#

wth...flukenest again

#

which was dreamwielder...

#

yay, i'm playing randomizer bossrush apparently πŸ˜›

#

3 flukenst = cast once and the entire screen should be nothing but flukes πŸ˜‰

#

and got no items at all from mantis lords

copper rover
#

Anyone got tip for the Watchers Knight ?

#

I feel like it's way too hard that early on unless you highroll upgrades.

leaden hedge
#

hit him

#

and don't get hit

buoyant wasp
#

eh, honestly, focus on getting double drops from the first 4 bosses,

#

also, i think the new code for shuffling items back into the pool is broken, i've had shape of unn show up like 4 times in the same run

#

and sometimes shape of unn is something else, like dreamshield

leaden hedge
#

hmm

#

I wonder if theres a desync between what its showing

#

and what it is

#

I'll revert that and see if it fixes anything

buoyant wasp
#

also, i need to test it, or oyu can, but kill false knight, then quit, start a new game and kill him again, city crest now drops (1st time it doesn't)

leaden hedge
#

ah it only destroys it first time, because it uses the fact I don't have a shiny yet to determine if the shiny is city crest

#

so second load I already have a reference and it doesn't detect it

buoyant wasp
#

yeah, but i'm wondering if that messes up your labeling

#

like since there are now 4 shinies

#

it can't rewrite the labels for them correctly

leaden hedge
#
        public void Spawn()
        {
            shiny = Instantiate(BossRush.shiny);

            if (position.x < -900)
                shiny.transform.position = new Vector2((BossRush.hc.transform.position.x + (id == 1 ? -2.75f : 0) + (id == 2 ? 2.75f : 0)), BossRush.hc.transform.position.y);
            else
                shiny.transform.position = position;
            PlayMakerFSM shinyFSM = FSMUtility.LocateFSM(shiny, "Shiny Control");
            shinyFSM.FsmVariables.GetFsmInt("Trinket Num").Value = id+1;
            FsmUtil.ChangeTransition(shinyFSM, "PD Bool?", "COLLECTED", "Fling?");

            updateText();
        }
        public void updateText()
        {
            SetTextMeshProGameText[] textMeshPro = shiny.GetComponentsInChildren<SetTextMeshProGameText>();
            foreach (SetTextMeshProGameText tmp in textMeshPro)
            {
                tmp.gameObject.AddComponent<SetInspectText>().id = id;
                Destroy(tmp);
            }
            SetInspectText[] sits = shiny.GetComponentsInChildren<SetInspectText>();
            foreach (SetInspectText sit in sits)
            {
                sit.id = id;
            }
        }
#

the only issue I could imagine it being

#

is if for somereason unity is pushing my changes back to BossRush.shiny

copper rover
#

Double drops ?

buoyant wasp
#

@leaden hedge yup, having city crest definitely screws it up. it got labeled as howling wraiths, the left was howling wraiths, then killing gruz howling wraiths was labeled on the right, which when picked up granted nothing, then the next boss dropped nothing at all

#

@copper rover - if you take no damage in a fight, you can pickup 2 of the 3 items instead of 1

copper rover
#

Ooooh

leaden hedge
#

oh wait

#

this breaks it completely hollowface

buoyant wasp
#

also, using dive still counts as taking damage through the invincibility frames

copper rover
#

Are you saying I should get gud

buoyant wasp
#

uhm......i'm not usually in that camp, but...purple? hollowstare

leaden hedge
#

also you really shouldn't lose flawless from dive

#
        public int tookDamage(ref int type, int d)
        {
            if (d > 0 && (hc.damageMode != DamageMode.NO_DAMAGE && !hc.cState.invulnerable && !hc.cState.recoiling && !PlayerData.instance.isInvincible && !hc.cState.dead && !hc.cState.hazardDeath))
            {
                flawless = false;
                if (PlayerData.instance.health - d > 1)
                {
                    BossRush.hc.normalSlash.SetFury(false);
                    BossRush.hc.alternateSlash.SetFury(false);
                    BossRush.hc.upSlash.SetFury(false);
                    BossRush.hc.downSlash.SetFury(false);
                    BossRush.hc.wallSlash.SetFury(false);
                }
            }
            return d;
        }
buoyant wasp
#

i'll test the new one here in a bit, have to go put a bed together apparently

#

also, in that image there, i picked up the left one, which should have been fireball, but was nothing

slate owl
#

@rain cedar About the debug mod. The mouse cursor is not visible so it's very hard to see what you're clicking. Any chance to add a hovering effect on the buttons?

leaden hedge
#

press escape

slate owl
#

Ah.

rain cedar
#

I didn't even know you could click them without pausing

leaden hedge
#

with the new input beta you can press buttons with the controller

#

for some reason

#

attacking toggles my invincibility

rain cedar
#

Sounds fun

slate owl
#

Btw, mods that are open-source should have a link to the github repo in their README.

rain cedar
#

Makes sense

slate owl
#

Wait, you created the buttons of the top menu from scratch?

rain cedar
#

Yes

slate owl
#

Why not use GUI.Button?

rain cedar
#

Mainly for it to be easily distinguishable from Kein's debug mod

#

Don't want him trying to claim this is his or anything

slate owl
#

Ok.

#

Has someone made a GameObject dump yet?

timber gale
#

Yeah, I was finding that sometimes controller would click stuff and sometimes it wouldn't

copper rover
#

Is there a mod that adds a custom made Hornet ?

buoyant obsidian
#

Lightbringer is the closest thing to that, but it's not updated for Content Pack 2 yet

copper rover
#

What does it do ?

buoyant obsidian
#

Instead of slashing with a sword, you shoot out little projectiles

#

and there's a bunch of new charms to go with them

#

It's probably nothing like Hornet is going to be at all but I've seen a few people compare the two

buoyant wasp
#

@rain cedar - Want to add a version# to mod API (so that it shows up with the other mod's versions), you want it in ModHooks or ModLoader?

rain cedar
#

ModHooks already has a version attribute which is of type GameVersionData

#

Probably best to add it there

buoyant wasp
#

k

#

do you want to just append the GameVersionData? Like 1.2.1.4.something?

#

just thinking it'd be less confusing to say "Mod API v1.0.0 for game version 1.2.1.4"

rain cedar
#

GameVersionData has a field gameVersion

#

I'm thinking you could have a similar field like modVersion

buoyant wasp
#

yeah

#

interesting, looks like you must have added that with the 1.2.1.4 release, cause when i exported these out of the 1.2.1.0 API, it didn't have this field :/

#

wonder what else i might have missed then

rain cedar
#

I think I put it in the 1.2.1.0 one on the drive

#

But I guess it wouldn't be in the github project

buoyant wasp
#

yeah, no biggie, i'm gonna add it

leaden hedge
#

also I found the problem
Object Pool attached to GlobalPool has run out of Arrow Prompt prefabs, Instantiating an additional one.

#

so instead of actually using the Arrow Prompt attached to the gameobject im copying

#

it just picks a random one

buoyant wasp
#

lol

#

so does that happen when you have 4 arrows on the screen?

#

or does it just happen randomly?

leaden hedge
#

it overflows randomly

#

everytime an arrow prompt is required but the pool is empty it creates a new one

#

but otherwise it just picks a random one

buoyant wasp
#

Beta version of the Mod API (1.2.1.4-2). Includes completely rewritten logging system (look at ModHooks.Logger) which allows for different levels of logging. FINE > DEBUG > INFO > WARN > ERROR. Also now adds Modding API version # to the list of versions on the main menu. Right now logging level is hard coded to be DEBUG or higher, need to put in something to make that adjustable...

kindred palm
#

You gain your health-2 damage to your Nail in exchange for not being able to use Fury.ο»Ώ (Glass Soul) - fireb0rn
So if you have 5HP then your nail damage is boosted +3?

#

@buoyant obsidian

buoyant obsidian
#

I think so yeah

kindred palm
#

Isn't the mod made by you πŸ€”

buoyant obsidian
#

I was double checking

kindred palm
#

Wait! - How do you have health in Glass Soul?

buoyant obsidian
#

The health is still there, you just die in one hit.

#

And nail damage is equal to base+health-4

#

So that means +1 damage at the beginning, but fireb0rn gets the lifeblood at the beginning of his run so it ends up being +3

#

Useless charms like Thorns of Agony give you movement speed in 1.1.1.8, but I'm probably taking that out for the next version

#

I'll update Glass Soul right now since it's relatively simple

kindred palm
#

I see

#

Nail upgrade works?

buoyant obsidian
#

Yep

kindred palm
#

So it should be Base+HP-4?

buoyant obsidian
#

Yeah

kindred palm
#

Great

buoyant wasp
#

@leaden hedge most recent dll seems to introduce a fair amount of lag when you kill a boss

orchid venture
#

so saying you have all masks and jonis blessing is a +10

#

if someone would be mad enough to do that

buoyant obsidian
#

Yeah you can get some serious bonus damage

#

Like +25 if you really wanna gather every lifeblood cocoon

kindred palm
#

That would really be a long journey

buoyant wasp
#

@leaden hedge - Whatever is causing this (might be what you found about the arrow), is murdering FPS. I have thousands of these in the output_log.txt

NullReferenceException: Object reference not set to an instance of an object
  at BossRush.ItemData.updateText () [0x00000] in <filename unknown>:0 
  at BossRush.ItemHandler.updateText () [0x00000] in <filename unknown>:0 
  at BossRush.BossInfo.updateText () [0x00000] in <filename unknown>:0 
  at BossRush.SetInspectText.UpdateText () [0x00000] in <filename unknown>:0 
  at BossRush.SetInspectText.Update () [0x00000] in <filename unknown>:0 
leaden hedge
#

its complaining that SetInspectText doesn't exist

#

because instead of using the actual children of the prefab I copied

#

its just remaking them

buoyant wasp
#

anyway to prevent NRE there? exceptions are slow (i think catching an exception takes like 50-70ms)

leaden hedge
#

probably, I'm just gonna recode this entire thing in csharp

#

zzz

buoyant wasp
#

i thought it was already in c#?

leaden hedge
#

I mean the shiny object

buoyant wasp
#

ah

#

yeah, was confused

leaden hedge
#

quality design btw

#

every single arrow prompt has every single possible label hard coded into it

buoyant wasp
#

lol

leaden hedge
#

rather than just setting the string

buoyant wasp
#

that's alot of overhead

leaden hedge
#

_____SetTextMeshProGameText

#

has a function

#

to set the lookup text

#

soooo

buoyant wasp
#

did you change fury to work at full HP (since it was counterintuitive to have when you're trying to kill bosses without getting it?)

#

or is it a bug that my blade is red?

leaden hedge
#

its supposed to work

#

but apparently the damage multiplier is seperate

buoyant wasp
#

so its red, but it does nothing? πŸ˜ƒ

leaden hedge
#

yeah

buoyant wasp
#

lol

leaden hedge
#

I guess it tells you if you lost your flawless bonus

buoyant wasp
#

well, there is that i suppose, but doesn't really make it worth picking up either πŸ˜‰

buoyant obsidian
#

Anyone here remember that easy way to remove the overcharm backboard?

buoyant wasp
#

not sure if this is part of the normal game logs, but i also see a ton of this in the logs while in boss rush:

FSM not Preprocessed: Particle Rock Large Pool(Clone) : rubble_push

buoyant wasp
#

and....stuck in soul master's thing again

buoyant obsidian
#

Glass Soul should be updated for 1.2.1.4 if anyone wants to test it out for me

buoyant wasp
#

is sporeshroom in the rando logic for getting into greenpath?

leaden hedge
#

should be

timber gale
#

Is there a way to add/subtract charm notches in the debug mod?

rustic fossil
#

What can be done so far in modding? I have yet to take a look at the files

#

I technically haven't finished the game yet

#

Or maybe it would be easier to ask is there anything major that can't be done at the moment?

hazy sentinel
#

can't really add content to the game

#

just change existing stuff

solemn rivet
#

let's ask the other way around

#

what you wanna do?

rustic fossil
#

Add content :P

solemn rivet
#

what kind of content?

rustic fossil
#

Like, I'd be curious about doing map editing or adding charms

hazy sentinel
#

you can change up the existing charms

#

can't really expand the map

solemn rivet
#

just for perspective

#

we're having trouble trying to add a new empty inventory page

rustic fossil
#

Ah, that's understandable

solemn rivet
#

so

#

if we can't do that...

rustic fossil
#

I imagine it's sort of similar to Rain World modding

#

Because they're both mostly dnSpy

solemn rivet
#

yeah

#

the thing is, though, that most of the code is not on the assembly

#

if it was, we could change it, even with dnspy

#

most of the code is on finite state machines

#

which are a mess

#

and not directly editable

buoyant wasp
#

let's not forget that the code we do have access to is also a mess

#

πŸ˜›

solemn rivet
#

could be worse, wyza

#

most things are reasonably named

#

and are somewhat reasonably placed

buoyant wasp
#

let me refer you to the gist that KDT posted earlier about the label/arrow things πŸ˜‰

#

but yes

timber gale
#

Weren't the devs talking about a full rework at one point?

buoyant wasp
#

they could have compiled it with code obfuscators and digital signing that would make it a great deal harder

solemn rivet
#

wait, wasn't the arrow thingies mosttly fsm?

buoyant wasp
#

idk

#

it was just a long list of nested stuff in what i'm assuming is some sort of psuedo code

#

this

#

or a call stack or something

solemn rivet
#

oh, that

#

ehh

leaden hedge
#

its a dump of a game object tree

#

-'s are game objects length is depth

#

_'s are components on each branch

#

so, Shiny Item, is made up of a transform, sprite render, animator, fsm, rigidbodt2d, boxcollider2d, some fsm stuff, and audio source

#

and has an inspect region as a child

#

and thats made up of a transform, boxcollider, fsm stuff

#

and has prompt marker, and arrow prompt as children

buoyant wasp
#

interesting

solemn rivet
#

oh

#

object dumps are the future

slate owl
#

I already made a object dump.

#

Used it to hide certain game object to create the Hollow Knight map.

#

Btw, one useful thing to add to the Mod API would be subscribing to key press.

leaden hedge
#

you don't need to do that

slate owl
#

How to call a function when a certain key is pressed?

leaden hedge
#

gm.inputHandler.inputActions.attack.WasPressed

#

assuming you want in game controls

slate owl
#

I want unused keys.

leaden hedge
#

Input.GetKey(KeyCode.A) will be true if A is pressed

slate owl
#

That means I need my own loop.

leaden hedge
#

ok

solemn rivet
#

you mean keyboard keys, not controller buttons?

leaden hedge
#

make a class

public class button : MonoBehaivour{
    public void Update(){
        if(Input.GetKey(KeyCode.A){
        //dostuff
        }
    }
}
public override void Initialize(){
     GameObject go = new GameObject();
     GameObject.DontDestroyOnLoad(go);
     go.addComponent<button>();
}
#

tada

#

you have a loop

slate owl
#

Ya, but thatd be nice to have it directly from the API.

#

Also simplify unloading as well.

leaden hedge
#

seems odd to make an api for specifically this when you can do it via creating a script and attaching it

#

do you want a delegate for every single key combo?

#

including presses, releases, holds and modifiers

slate owl
#

I think everythings that is very common should be there.

#

So people dont resort to hacks to make it work.

leaden hedge
#

what I did isn't a hack

#

thats literally what you'd do if you main a game in unity

#

and wanted to get the A press

slate owl
#

Adding a fake invisible button to check for input is kinda a hack.

leaden hedge
#

its not a button

#

its just a script

slate owl
#

Ya, I guess.

leaden hedge
#

it does literally nothing but listen for a keypress

broken fable
#

@rain cedar It looks like you're going to beat me to the xml changes. i've made changes already to my xml and i'm partway through the C# code to interpret it.

rain cedar
#

I changed the xml but I don't have code for parsing it

#

Not at home to do that right now

slate owl
#

Turns out making a mod with the API is easier than I thought.

#

C# is magic lol

broken fable
#

@rain cedar I'm not sure you're going to like one of my changes. It's to switch from using easy, hard, and hardpermadeath mode filters to using "Shade Skip" and "Hard Mode" as pseudo items that you start with in certain modes. I think it makes the logic way easier to understand, and much less verbose.

#

for example, here's the requirements to get to salubra:

<or>
  <requirement>Mantis Claw</requirement>
  <requirement>Mothwing Cloak</requirement>
  <requirement>Shade Cloak</requirement>
  <requirement>Monarch Wings</requirement>
  <requirement>Crystal Heart</requirement>
  <and>
    <requirement>Hard Mode</requirement>
    <requirement>Vengeful Spirit</requirement>
  </and>
  <and>
    <requirement>Hard Mode</requirement>
    <requirement>Shade Soul</requirement>
  </and>
  <requirement>Shade Skip</requirement>
</or>
rain cedar
#

That's pretty similar to how I ended up doing it

#

Except I was planning to just have a logic string instead of tags

broken fable
#

oh, and then parse with parentheses matching and stuff?

rain cedar
#

Yeah

broken fable
#

can you give me an example of the syntax? I think I can implement that faster than the xml thing I've got going.

#

well, actually the xml stuff isn't that hard. i've already gotten past the hardest parts. but strings sound cool too.

slate owl
#

Btw, whats the goal?

#

For every key location and key items, write the list of requirements?

broken fable
#

this is for randomizer. so the requirements to get to each location are important so that the randomization doesn't make the game unbeatable.

buoyant wasp
#

the xml already exists, they are rewriting it to be less overly verbose and easier to manage and maintain

broken fable
slate owl
#

You want to change the syntax?

#

The mod has an easy and hard mode?

broken fable
#

@rain cedar like this kind of syntax? (Mantis Claw || (Vengeful Spirit && Shade Skip))

#

that's not too bad to parse.

rain cedar
#

Yeah, similar to that

#

You can do it your way if you want

slate owl
#

Whats the problem with the current syntax?

buoyant wasp
#

@slate owl yes, there is easy/hard. easy means far fewer difficult skips could be required like several shade skips, CP without claw, etc.

#

the current syntax means the XML is 1700 lines long πŸ˜›

slate owl
#

How often will it get updated?

leaden hedge
#

.replace("\n", "") hollowface

#

now its one line hollowface

slate owl
#

lolol

#

Do you know zelda bingos?

broken fable
#

and if there's a new way that's found to defeat baldurs (like grimmchild or something), then it would need to be added in about 11 places.

buoyant wasp
#

the logic will be updated as often as someone finds some new way to get to something or as often as TC releases some small patch that breaks half the game πŸ˜‰

broken fable
#

(and then it got renamed, so the history doesn't follow as cleanly)

slate owl
#

I could start working on a bingo for Hollow Knight. Thatd be neat.

#

In short, its a 5x5 grids with random goals. And the first player to complete a row/column of goals win.

timber gale
#

Wouldn't that just be RNG though?

slate owl
#

What do you mean?

timber gale
#

Like depending on who gets the easiest set of goals to make 5x5

slate owl
#

All players have the same grid.

timber gale
#

Ah ok, that makes sense

buoyant obsidian
#

Bingo sounds neat

slate owl
leaden hedge
#

hk has one

#

it sucks

slate owl
#

Really?

broken fable
#

has that bingo been raced?

leaden hedge
#

no its awful to play

timber gale
#

far right column is hell

leaden hedge
#

literally no direction here is an enjoyable run

slate owl
#

Why would stag station be banned?

timber gale
#

The center row might be... ok?

leaden hedge
#

col1: free all grubs
col2: fill 75 journals
col3: no benches and ToF
col4: 35 grubs
col5: palace and flower

slate owl
#

Short card: Clear White Palace lol

leaden hedge
#

also a lot of them are really annoying to track

#

like free 35 grubs

#

as if theres an ingame tracker for that

slate owl
#

Isnt there a player tracker?

timber gale
#

I feel like if you removed the super hard ones it would be fine

#

but as a compromise

slate owl
#

Imo, a bingo should last at most 1 hour.

solemn rivet
#

random bingo with randomizer mod hollowwoke

timber gale
#

This is like 30 min for 4 objectives then find all white palace radiance spirit trees

broken fable
#

bingo with debug mod hollowface

leaden hedge
#

also it does stuff like this

timber gale
#

the center space should be "crash the game" with debug mod

broken fable
#

is that bingo project open source?

slate owl
#

Ill go ask in the speedrun channel.

leaden hedge
#

no its some random one

timber gale
#

I feel like boss rush could work pretty well for bingo for fun if you got good rng

broken fable
#

so && isn't a good choice for xml. it would need to be &amp;&amp;. I'm going with AND and OR now.

rain cedar
#

I was just using + and |

#

I'm home now if you want me to just send you the xml I have

#

Instead of you having to make all the changes yourself

broken fable
#

i've got a script that converts the layout.

#
  • and | make sense.
#

yeah, send me your xml.

rain cedar
#

I'm using HARD, CLASSIC, and KEYITEMS as keywords for stuff

#

HARD meaning hard mode obviously, CLASSIC meaning not steel soul, KEYITEMS being the keyitems tag at the top

broken fable
#

cool.

#

is CLASSIC better than SHADESKIP or something? is shade skip the only difference between steel soul and classic?

rain cedar
#

Yeah, that's the only difference

#

How I would probably go about this is do a first pass loading all the logic strings but not parsing them at all

#

Then a second pass where you parse the logic out

#

So that you can check if items exist in the entries dictionary while parsing out the logic

#

Due to version differences

broken fable
#

is there a ModdingAPI function to get the game version?

buoyant wasp
#

there is now

#

It's ModHooks.Instance.version

broken fable
#

cool

slate owl
#

So whats exactly left to do for the randomizer?

rain cedar
#

Not much

buoyant wasp
#

The logic for the XML parsing needs to be redone so that the XML isn't parsed on game load every single time. (right now the XML is deserialized every time the game starts and it's time consuming, needs to be deserialized once, and then stored in some sort of binary format for future loads.) The randomization itself needs to be redone to only happen once and then store the result in the save file rather than on each save load. rnd.js needs to go away. the overlay needs to handle those new changes.

#

but all those things are fairly small

#

the core functionality works quite well πŸ˜ƒ

rain cedar
#

From a gameplay perspective it's pretty much done, yeah

buoyant wasp
#

unless someone can solve the icons and make it so that when you get a spells/skill/item it shows the right icon

slate owl
#

Tbh, I dont think its a big deal to parse it everytime.

leaden hedge
#

I already solved that for everything except djump and spells

buoyant wasp
#

the randomization on load is expensive

rain cedar
#

Yeah, modifying the fsms is too big of a change for what you get from it though @leaden hedge

#

In my opinion

slate owl
#

Does it happen once in the entire playthrough?

buoyant wasp
#

the xml part is once, the randomize on load is every save and quit

slate owl
#

lol

buoyant wasp
#

causes a 2s lag on every S&Q

rain cedar
#

Honestly just moving that into a load screen instead of main menu is probably good enough

#

Still there, just nobody would notice it anymore

slate owl
#

Dont know why itd b e so long to parse it though.

rain cedar
#

The randomization is only like .5s for me

buoyant wasp
#

Β―_(ツ)_/Β―

#

running on a core i7-6770k, so not a potato dunno why its slower for me

#

but if we ever decide to do an actual tournament, getting rid of all the stuff that lets you easily dump the randomization values would need to happen imo

rain cedar
#

Yeah

#

If you're fine with decompressing the save for the overlay that's an easy change

buoyant wasp
#

well, should be able to just add a hook to the OnAfterSaveLoad event, and get it from there.

slate owl
#

So what exactly got swapped?

buoyant wasp
#

yup

#

cause the events that come out of the game

#

don't match what you get

slate owl
#

Currently playing the mod.

buoyant wasp
#

so the game says "You got Fury"

#

but the overlay needs to know that "you got mantis claw"

slate owl
#

Could swap grub too.

buoyant wasp
#

yeah...that's been killed as an idea

#

and masks/vessels/notches

slate owl
#

Why? Too complex?

buoyant wasp
#

the current system makes runs about 1-2.5 hours

#

if you swapped grubs

#

you could easily make it much, much longer

#

the average run time is about 1.5-1.75 hours depending on the seed and the skill of the runner

#

which most runners seem happy with

slate owl
#

Does it consider glitches?

buoyant wasp
#

nmg

#

rando runs are always nmg

leaden hedge
#

glitches would be insanely boring

slate owl
#

Once you get vengeful spirit, youre good for everything lol

buoyant wasp
#

i just had a run where i never got VS

#

i had only 1 spell, wraiths πŸ˜‰

#

just lvl1 wraiths, to boot

slate owl
#

I guess it depends on its meant to be played.

buoyant wasp
#

the goal of the randomizer is to beat the game without glitches. sometimes you get god seeds and finish in 45-50 minutes, but usually its about double that

#

sometimes that ends up meaning you have low%

slate owl
#

Gonna kill Uumuu like 5 minutes in lol

#

Wait, nvm. I need wall climb..

buoyant wasp
#

the fastest i've seen is 46 minutes, that made for a terrible WK

#

hehe, climb, the troll item

#

seen several seeds where it was 2 hours of searching and getting almost every charm/spell before finding climb

lusty lantern
#

Does randomizer have specific points the item can't be after? Like you can't have say dash, mantis claw, etc. at points where in order to get to them, you need said item to get to?

#

Like, monarch wings requires you to be able to double jump to get to it.

buoyant wasp
#

it has softlock protection yes

#

though wings does not require double jump to get it

#

only double jump to get out, but you can save and quit instead

slate owl
#

I think a mode where mask, vessel, items etc.. are shuffled too would be nice.

#

Maybe not for racing but as a puzzle.

buoyant wasp
#

heh

slate owl
#

I could make a reverse algorithm.

#

You enter what you found so far and it displays everything accessible in a map.

#

Anyway, maybe later..

leaden hedge
#

seems close enough hollowface

buoyant wasp
#

uhm....

#

well

#

it's something

#

guessing that's the first prototype of your own version of the arrow?

leaden hedge
#

yeah

buoyant wasp
#

nice

#

at least you have it writing the thing out to the screen

#

you going to give it the same flourish/graphical look/feel as the standard one?

leaden hedge
#

should hopefully look the exact same

buoyant wasp
#

sweet

#

i wonder what else we could use that for.....hmmm

leaden hedge
buoyant wasp
#

@vale zenith were you thinking of using something like ildasm+ilasm or trying to leverage the classes in dnspy to do the IL injection programmatically?

vale zenith
#

The latter

buoyant wasp
#

cool. seemed like the easiest option since alot of the "work" for that was already done for us

vale zenith
#

Yeah that's the plan. Also dnspy already defines extension points

buoyant wasp
#

yeah, i saw that it had them, just there didn't seem to be much documentation on how to use them. I only used ILMerge because I got it to work, not because of really any other reason πŸ˜ƒ

#

so if we can sort out using dnspy programmatically for all of it, no reason not to dump ILMerge too

vale zenith
#

I don't have much tine during the work week so it'll probably have to wait until the weekend

buoyant wasp
#

hah, i understand that πŸ˜ƒ

#

training all week this week, so my evenings will be spent doing what i should have been doing during the day hollowsad

noble trout
#

sience i am now done with my challenge runs and can finally get back to playing modded what mod is new?

#

and you recommend the most

#

how do i read the README in the bossrush mod?

#

its a .md file

rain cedar
#

.md is a markdown file

#

Just open it in a text editor

noble trout
#

what how

rain cedar
#

Guess that's all that's in it, then

leaden hedge
#

did you get that from github

noble trout
#

no i got that from the pinned message google drive

leaden hedge
#

the install isn't complicated anyway, just put BossRush.dll into /Mods/ after you install the api

noble trout
#

how do i install the api?

leaden hedge
#

read the api instructions

rain cedar
#

API has a similarly shitty readme

noble trout
rain cedar
#

I'm lazy

noble trout
#

oh

rain cedar
#

Just paste it into your game directory

noble trout
#

sorry for the mess (even tho its not all my fault)

buoyant wasp
#

i keep meaning to do a short YT video on doing mod installs....maybe tonight

#

but yes, just drag and drop

#

and replace when prompted

rain cedar
#

A video on installing mods would be like 10 seconds long

buoyant wasp
#

but backup Hollow_Knight_data/managed/Assembly-CSharp.dll first πŸ˜ƒ

noble trout
buoyant wasp
#

if you didn't get hit

#

you get to pickup 2

noble trout
#

also i didnt like the fact you instantly get damage when you first open the run

leaden hedge
#

thats already fixed on a newer version

noble trout
#

you should remove those bugs

#

oh

buoyant wasp
#

lol

noble trout
#

it wasnt updated on the drive then

buoyant wasp
#

boss rush is < 1 week old

#

probably been like 8 releases in the last 7 days (perhaps an exaggeration)

leaden hedge
#
        public void Update()
        {
            if (fsm.ActiveStateName == "In Range" || fsm.ActiveStateName == "Can Inspect?" || fsm.ActiveStateName == "Cancel Frame")
            {
                opacity += Time.deltaTime;
            }
            else
            {
                opacity -= Time.deltaTime;
            }
            opacity = Mathf.Clamp01(opacity);
            tmp.faceColor = new Color32(tmp.faceColor.r, tmp.faceColor.g, tmp.faceColor.b, (byte)(opacity*255));     
        }

when this actually does what its suppose to

#

there will be a release

#

but apparently (byte)(1.0f * 255) = 0 and 255

#

255 when I print it
and 0 when I set color thinkgrub

buoyant wasp
#

so, you've invented qubit?

#

schroedinger's bit?

leaden hedge
#

yeah

#

no idea why a color is a byte

#

instead of a float

#

but I guess having to convert a float, into a byte, just so it can convert it back to float

#

is what it wants

buoyant wasp
#

i hate floats

#

float math is weird

leaden hedge
#

float math is the exact same as integer math

buoyant wasp
#

i should amend that, I hate floats in perl, I haven't done alot with floats in c#

#

but floats in perl mean that 1.5+1.5 is not always 3

leaden hedge
#

just in general for computers

buoyant wasp
#

it might be 2.99999999 or it might be 3.000000001

noble trout
#

also i selected grimmchild+ and it didnt level him up

buoyant wasp
#

what's wrong with that?

#

he just likes to hang out on the right side alot

noble trout
#

when the boss started he just slided there while he screamed

buoyant wasp
#

grimmchild can't fully level until you kill grimm1

noble trout
#

now he is stuck

#

oh

buoyant wasp
#

cause grimm1 is where he transforms

leaden hedge
#

1.5 should be 1.1 and 1.1, which should sum to 11.0

#

not sure how perl fucks that up

noble trout
#

so what not getting to him is too risky

#

also did the hornet spawn location also get fixed?

leaden hedge
#

nah it works before grimm1 now

buoyant wasp
#

oh nice

noble trout
#

oh nice

#

i need to get that update

leaden hedge
#

dunno why you'd actually pick it up

#

grimmchild sucks donkey dick

buoyant wasp
#

sometimes it's the best of 3 terrible choices

noble trout
#

i dunno i like him more after my summon challenge run

leaden hedge
#

Its better than hive or jonis atleast

#

considering joni completely fucks you

noble trout
#

hive is quite good

leaden hedge
#

and hive doesn't work

noble trout
#

yeah hive doesnt work

buoyant wasp
#

you might get compass, MP, and GC, if you pickup 2 items, GC is gonna be one of them

#

the worst bug i encounter is losing your shade

noble trout
#

but did the hornet spawn place get fixed

buoyant wasp
#

fixed how?

leaden hedge
#

you just have to walk to the right then to the left

noble trout
#

also when i took hive it said i took grub song is that just a place holder

#

yes i know

#

but i want it to be fixed

leaden hedge
#

it is, although in new version trinkets are placeholders

#

what do you want it to do

buoyant wasp
#

walk the dog, clearly

#

i suppose you could teleport the player further right so that you just have to walk left

#

but that's a fairly minor thing

#

it's not game breaking like the other stuff you have on your plate right now

noble trout
#

well fuck me

#

i have no dash and already at WATCHERS KNIGHT WHY ARE THEY AFTER BROODING MAWLEK

#

THIS DOESNT SEEM RIGHT

#

yeah im pretty sure they are impossible without a dash

leaden hedge
#

its easy with literally nothing

rain cedar
#

You don't need dash to dodge anything they have

leaden hedge
#

"FalseKnight","GruzMother","Hornet","MantisLords","CG1","BroodingMawlek","WatcherKnights","DungDefender","Grimm","Nosk",
"Uumuu","Flukemarm","Collector","CG2","TraitorLord","Hornet2","BrokenVessel","LostKin","SoulTyrant","FailedKnight",
"NightmareKingGrimm","Radiance"

#

where would you put WK

noble trout
#

WK

#

and who is CG1

leaden hedge
#

crystal guardian1

noble trout
#

oh

#

and who

#

is WK

leaden hedge
#

WatcherKnights

noble trout
#

after flukemarm

copper rover
#

Yeah WK is way too early

#

Right now

rain cedar
#

Watcher Knights is definitely not harder than Grimm

noble trout
#

after CG2 even

leaden hedge
#

Nosk is actually cancer without dash, UUmuu is super cancer without dash

#

flukemarm is basically impossible without upgrades

#

dd is pretty annoying without dive

#

and grimm is harder than wk

copper rover
#

Broken Vessel is pretty balanced without abilities

noble trout
#

yeah

copper rover
#

You can put it earlier than COllector imo

noble trout
#

broken vessel is pretty fun

#

much MUCH easier than grimm

leaden hedge
#

broken vessel could be put earlier I guess

copper rover
#

For real I can't progress because of WK right now.

#

It's so hard without proper dash

noble trout
#

yeah i cant progress too

leaden hedge
#

WK is not a hard fight lol

noble trout
#

it is

#

very

copper rover
#

It's overwhelming without abilities

#

I would rather fight Soul Master

leaden hedge
#

jump over the roll, walk under the jump, jump over the swing

noble trout
#

the slash move is unavoid able without a dash or double jump

leaden hedge
#

what

#

no

copper rover
#

^

#

What he says

#

It's very hard

noble trout
#

it is

leaden hedge
#

just walk away

copper rover
#

Unless you play the game 100% of the time

leaden hedge
#

and he can't hit you

solemn rivet
#

eh

noble trout
#

eayh soul master is easy

leaden hedge
#

then walk in afterwards

#

and hit him

copper rover
#

Soul Master is just much easier in general

#

Than WK

leaden hedge
#

soul master isn't even in there

noble trout
#

lol

solemn rivet
#

I won't disagree that Soul Master is easier

noble trout
#

rip soul master

copper rover
#

Then put it in

solemn rivet
#

but WK isn't even that hard tho

copper rover
#

Senpai

leaden hedge
#

dive breaks the fight

#

literally

noble trout
#

yeah i know

#

it wont let you enter the arena

rain cedar
#

You can probably just change whatever fsm looks for dive

copper rover
#

WK gave me the most trouble in my first run because it's just anoying

#

And I had dash at that point

leaden hedge
#

well, also the item pool is exactly the same size

copper rover
#

And wings

leaden hedge
#

as the boss pool

copper rover
#

It's way too hard without proper upgrades and dash

leaden hedge
#

so adding another boss crashes the game hollowface

rain cedar
#

If you think Watchers are too hard without dash you just have shitty reaction time

solemn rivet
#

how about making Soul Master third boss (After False Knight and Hornet1) and making it so that dive doesn't drop til after him?

rain cedar
#

Even if you're getting hit all the time you can easily heal when they roll away

leaden hedge
#

you can just bait him to roll

#

jump over and heal twice

solemn rivet
#

tru hard boss is Flukemarm low%

#

everything else is fair game

noble trout
#

@rain cedar that is called a hard boss

rain cedar
#

What is?

noble trout
#

a boss when you need hard reaction times

solemn rivet
#

"not easy" does not equal "hard"

rain cedar
#

It's not hard to react to

#

Hence "you just have shitty reaction time"

noble trout
#

also if you are cornered by them you are just dead

leaden hedge
#

nah, like unless you're in the physically disabled part of reaction times

#

you should have no problem

rain cedar
#

If you're cornered just leave the corner

#

Lmao

leaden hedge
#

just don't walk into a corner

noble trout
#

you can

solemn rivet
#

or, you know, don't get cornered

noble trout
#

there are to of them blocking the way

leaden hedge
#

2 is too many

rain cedar
#

Worst case scenario when you get into a corner: Take one hit, walk through them

#

Bam, not in the corner

solemn rivet
#

KDT: where can I get the most up-to-date ver of boss rush?

leaden hedge
#

when I fix this stupid ass bug

solemn rivet
#

ok

noble trout
#

yeah but i get hit

#

and one of the functions of the mod is NOT GET HIT

leaden hedge
#

yeah its called a reward for being good

rain cedar
#

So don't get cornered, then

leaden hedge
#

if you're not good you don't deserve it thinkgrub

rain cedar
#

Watcher Knights is a very fair fight

noble trout
#

also what do you want me to do when one is bouncing and other is rolling at you? dash between them?

#

oh right

#

i cant

leaden hedge
#

control them better

solemn rivet
#

enemy management is part of learning boss fights

rain cedar
#

Yeah, just don't get into a situation that bad

noble trout
#

i cant

#

since i cant go to the corners

leaden hedge
#

then you don't deserve the double drop

solemn rivet
#

know how to position youself and how to position the boss

rain cedar
#

Keep them grouped, and make them bounce up if possible

leaden hedge
#

would you prefer itemless uumuu

noble trout
#

no

leaden hedge
#

where you have to bounce off him to go up platforms

noble trout
#

but i would prefer broken vessel

rain cedar
#

Every time I've done this mod I ignore every movement drop except wall jump or double jump

#

Just so I can beat radiance

#

And it's fine

copper rover
#

It would be cool if like

#

You could choose the boss you want to go to next

#

In some way

noble trout
#

or dung def

solemn rivet
#

I think that's a future feature

#

DD without dive is boring

noble trout
#

yeah

solemn rivet
#

and broken vessel, although easier, at least for me it's also easier to get hit on accident

#

so for me it should be left for later when you have more movement upgrades to ease maneuvering

noble trout
#

i did no upgrade broken vessel

#

it was easy

solemn rivet
#

it is easy

#

but for me it is harder to do no hit BV than it is to do no hit WK

noble trout
#

but WK is impossible with no dash

leaden hedge
#

no boss is impossible no dash

solemn rivet
#

^

leaden hedge
#

the only item you need for any boss is claw for radiance

trim totem
#

Wa

solemn rivet
#

that's wrong, KDT

#

you need some damage upgrade for flukemarm

leaden hedge
#

you can use dive hollowface

vast basin
#

Shadow dash for Radiance, no?

rain cedar
#

Flukemarm with no upgrades is technically possible

vast basin
#

Oh

leaden hedge
#

nope

noble trout
#

claw or dash or double jump for failed champion

solemn rivet
#

technically

noble trout
#

you cant get to him without those

leaden hedge
#

you can do radiance without shade cloak

solemn rivet
#

but not feasibly

noble trout
#

or you know crystal heat

leaden hedge
#

well you don't need them for the fight

noble trout
#

you cant do radiance without shade cloack

vast basin
#

dive maybe

leaden hedge
#

yeah you can

#

not no hit

#

but you can do it

noble trout
#

how will you dodge the beam

leaden hedge
#

and even without dash you can do dive

vast basin
#

Theoretically

noble trout
#

and i i dont have dive?

trim totem
#

I'd consider dive an item that you need

leaden hedge
#

then you're going to get hit

rain cedar
#

You're guaranteed to see every item in the pool

noble trout
#

that is not ok

rain cedar
#

If you don't have dive or shade cloak it's your own fault

leaden hedge
#

but radiance is last

noble trout
#

oh ok i didnt know

leaden hedge
#

unless claw and both dives show up in the same pool

rain cedar
#

You could get double jump instead

#

Works just as well for radiance

noble trout
#

that can happen

#

but what if they all show up on same pool?

solemn rivet
#

they are 4 items

#

and the pool is only 3 items

rain cedar
#

There's 3 items after every boss and you need 2 from a pool of 6

solemn rivet
#

oh, 6

leaden hedge
#

not that no hitting radiance even does anything

#

because you get no drops

rain cedar
#

2xdash, 2xdive, claw, wings

solemn rivet
#

bragging rights

#

oh, yeah, forgot the dashes

rain cedar
#

Although for dash to be useful you need both

#

Not worth giving up two damage upgrades for

solemn rivet
#

yeah

rain cedar
#

I'd only get both if there was crap alongside them in the drops

solemn rivet
#

anyway, with WK as the fifth boss, you have at least 4 upgrades before fighting them

noble trout
#

also what if shadow dash and normal dash are in pool?

solemn rivet
#

and it's not hard to no-hit all of them

rain cedar
#

WK is 7th

solemn rivet
#

7th?!

#

why are we having this discussion then?

rain cedar
#

Because people are being babies

leaden hedge
#

apparently if you pickup nothing

#

wk is hard

noble trout
#

because i dont have dash

leaden hedge
#

which isn't even true

solemn rivet
#

what did you pick up?

noble trout
#

dash didnt even show up it doesnt matter

leaden hedge
#

well you don't need it

solemn rivet
#

ofc it does

#

if your problem is not getting hit, dive, double jump and claw would certainly help you

noble trout
#

just fucking move WK

leaden hedge
#

to where

#

WK is the easiest of the bosses to do itemless

#

and consistently not get hit

rain cedar
#

It's not even itemless

#

You have at minimum 7 upgrades

solemn rivet
#

eh, Gruz and False are easier itemless, but yeah, sure

#

^

#

also, Mantis Lords

leaden hedge
#

I meant after WK

#

"DungDefender","Grimm","Nosk", "Uumuu","Flukemarm","Collector","CG2","TraitorLord","Hornet2","BrokenVessel"

#

out of these bosses which one is easier to do itemless 100% of the time

solemn rivet
#

oh, yeah

#

that's for sure

leaden hedge
#

it would have been nosk

#

but new nosk is awful to fight without dash

noble trout
#

broken vessel and dung def DUH

solemn rivet
#

not easier than WK

buoyant wasp
#

dashless WK is not bad.

noble trout
#

yeah right much easier

buoyant wasp
#

you should have between 6 and 12 upgrades by the time you get to them. unless you are supremely unlucky, 12 upgrades is vastly more than any% runners kill them with

solemn rivet
#

^

noble trout
#

12?

solemn rivet
#

you should have at least one of the following: nail upgrades, spells, double jump, claw, range upgrades

noble trout
#

isnt he 7?

solemn rivet
#

yeah

#

but if you no-hit a boss, you get 2 items

buoyant wasp
#

6*2 = 12 last i checked

leaden hedge
solemn rivet
#

is that FK?

buoyant wasp
#

looks like it

leaden hedge
#

yes

noble trout
#

i have double jump nail upgrade and vengful spirit

solemn rivet
#

wut

buoyant wasp
#

holy crap, that's plenty

solemn rivet
#

you have double jump?

noble trout
#

still only got through 2 of them

#

yes i have

buoyant wasp
#

why are we even talking about this with double jump?

rain cedar
#

Wow you're just really trash

buoyant wasp
#

man, you need to practice for a while

noble trout
#

then how do i find dung defender and broken vessek easier?

solemn rivet
#

playstyle differences

buoyant wasp
#

go grab the debug mod and grind WK for a few hours

noble trout
#

i dont need to practice i just wanna play the damn bosses

buoyant wasp
#

and, i'm done.

noble trout
#

i beat this game countless time i dont see why i shouldnt be able to beat those

solemn rivet
#

neither do I

leaden hedge
#

"this boss is too hard"
"I don't need to practice"

noble trout
#

i guess its just because its unfair

leaden hedge
#

apparently friend you do

buoyant wasp
#

it's not unfair, you want unfair, go fight NGG

#

that's unfair

leaden hedge
#

you can do NKG itemless

#

any boss you get hit by, in bossrush

#

is your fault

#

not the boss orders

noble trout
#

yes those are too unfair

#

i didnt ask for examples

buoyant obsidian
#

but but but Flukemama

solemn rivet
#

you mean Flukemilf

leaden hedge
#

flukemilf is right at the end

buoyant obsidian
#

Ah, good choice

leaden hedge
#

so you're pretty much guaranteed to have got dive or nail3 by then

solemn rivet
#

^

#

if you have ANY spells or upgrades, she should be beatable

buoyant obsidian
#

Where's the Collector? I really enjoyed his fight with nail 2

solemn rivet
#

at least, it should be WAAAAY more feasible than nail0

leaden hedge
#

"FalseKnight","GruzMother","Hornet","MantisLords","CG1","BroodingMawlek","WatcherKnights","DungDefender","Grimm","Nosk", "Uumuu","Flukemarm","Collector","CG2","TraitorLord","Hornet2","BrokenVessel","LostKin","SoulTyrant","FailedKnight","NightmareKingGrimm","Radiance"
this is the order @buoyant obsidian

noble trout
#

can someone record me them doing a hitless dashless WK?

solemn rivet
#

glad you didn't put NGG there, KDT

leaden hedge
#

if you no hit every boss you gotta do NGG or it encrypts your harddrive intenseface

#

would you like itemless, hitless, nail0 WK?

noble trout
#

Itemless and hitless

leaden hedge
#

no spells?

noble trout
#

No spells

leaden hedge
#

let me hopefully finally fix this

noble trout
#

Only nail0 and your jump

#

Fix what?

solemn rivet
#

fsm things