#archived-modding-development

1 messages ยท Page 33 of 1

rain cedar
#

With chances proportional to the counts of each artifact in the base game

slate owl
#

What about swapping pale ore, rancid egg and items together?

#

Swapping those with upgrade makes thing too hard/long, but swapping them together could be neat.

#

Would be cool getting early pale ore.

rain cedar
#

Maybe

#

With pale ore it's important that there's exactly 6

slate owl
#

Could also fix the simple key issue.

rain cedar
#

So I can't just randomize it as I'm doing with relics

#

Much more of a pain

slate owl
#

Just shuffle them.

rain cedar
#

Sure, just get me a list of every relic and egg and I'll do it

#

I'm not gonna be the one doing that tedium

slate owl
#

1 array of spawn points. 1 array of items. Shuffle item arrays.

rain cedar
#

Yes I'm aware how to do it mechanically

slate owl
#

It has the list of all eggs + items.

rain cedar
#

Not good enough

#

I need scene names

slate owl
#

I can send you the screenshots with names.

rain cedar
#

Sure if you actually want to put in the work, I'd be fine with adding it

slate owl
#

What do you need exactly?

#

Just the map id?

rain cedar
#

The internal scene name

#

It's shown on the debug menu info panel

slate owl
#

Thanks, gonna add it.

rain cedar
#

Oh, cool

slate owl
#

So the map internal id is all you need to swap them?

rain cedar
#

Yeah

slate owl
#

Seems too simple to me lol

rain cedar
#

There's nowhere with two of one type in a single scene that I'm aware of

slate owl
#

Thats 1 or 2 maps?

rain cedar
#

Two

#

It's split at around the midpoint

#

Where the water looks off

slate owl
#

Ok good.

buoyant wasp
#

sorry, got distracted, back to working on the api ๐Ÿ˜›

solemn rivet
#

eh

#

rip

#

will asks to play blackmoth

#

later that same day, HK gets updated

wispy mist
#

holy moly the api is already updated

#

?

leaden hedge
#

no

wispy mist
#

oh lol

#

my badf

leaden hedge
#

its just a nice meme we're about to update api and the game updates hollowface

#

I guess its technically good timing

rain cedar
#

That's why he's working on the API

#

It's not good timing

leaden hedge
#

I thought he was adding gradows hooks

solemn rivet
#

I only just got home

rain cedar
#

Maybe that too

solemn rivet
#

was about to write the doc

#

and then, bam, update

buoyant wasp
#

@rain cedar question

#

Language.Get(string,string)

#

in the new dll its this

#
public static string Get(string key, string sheetTitle)
{
    if (Language.currentEntrySheets == null || !Language.currentEntrySheets.ContainsKey(sheetTitle))
    {
        Debug.LogError("The sheet with title \"" + sheetTitle + "\" does not exist!");
        return string.Empty;
    }
    if (Language.currentEntrySheets[sheetTitle].ContainsKey(key))
    {
        return Language.currentEntrySheets[sheetTitle][key];
    }
    return "#!#" + key + "#!#";
}
#

but the mod version was this

#
return ModHooks.Instance.LanguageGet(key, sheetTitle);
#

do you just gut the method for the mod version?

rain cedar
#

The mod version has Language.GetInternal

#

Which is just the vanilla Get function

buoyant wasp
#

k

rain cedar
#

ModHooks.LanguageGet calls that if there's nothing hooked

#

Hm

#

Does the hook check for null?

#

I don't remember

#

You could return null or an empty string or something for no changes

buoyant wasp
#
        public string LanguageGet(string key, string sheet)
        {
            string @internal = Language.Language.GetInternal(key, sheet);
            string result = @internal;
            bool flag = false;
            if (LanguageGetHook == null) return result;

            Delegate[] invocationList = LanguageGetHook.GetInvocationList();
            foreach (Delegate toInvoke in invocationList)
            {
                string text = (string)toInvoke.DynamicInvoke(key, sheet);
                if (text == @internal || flag) continue;

                result = text;
                flag = true;
            }
            return result;
        }
#

yeah, it checks

rain cedar
#

Ah ok

#

Return the internal string for no changes

#

That makes sense

#

That syntax is really odd

#

I guess the compiler fucked with it

buoyant wasp
#

yeah

#

that's one of the methods i didn't rewrite, in part because I didn't understand it's purpose well enough yet to do so

copper nacelle
#

do the level files have image assets and stuff

#

or is that only the sharedasset stuff

solemn rivet
#

eh

buoyant wasp
#

good enough

leaden hedge
#

the level files only have gameobject

#

all the files are either in asset files

buoyant wasp
#

i'll review and put them into this version i'm doing now

leaden hedge
#

or in resources

solemn rivet
#

do you need specific placements?

rain cedar
#

It's probably pretty easy to guess, but it can't hurt

solemn rivet
#

just a sec

copper nacelle
#

ty @leaden hedge

solemn rivet
unreal dune
#

Yay everyones mods are fucked

#

;-;

buoyant wasp
#

yeah yeah, we're working on it ๐Ÿ˜›

#

thanks @solemn rivet - just finished putting the source into to the solution, going to stick it into the dll now

#

so, good timing on the location of the hooks

solemn rivet
#

hope the instructions are clear enough

buoyant wasp
#

i'll let you know if i get lost

solemn rivet
#

ok

buoyant wasp
#

@solemn rivet for NailSlash.OnTriggerEnter2D, where do you get the GameObject to pass to the OnSlashHit method?

solemn rivet
#

it's the base object

#

so base.gameObject

buoyant wasp
#

got it

#

ok, so, FYI - the game changed how the cursor works

#

which will impact your code

#

@solemn rivet
1.2.1.4

if (!this.isMenuScene)
    {
        if (!this.gm.isPaused)
        {
            Cursor.visible = false;
        }
        else
        {
            Cursor.visible = true;
        }

1.2.2.1

if (!this.isMenuScene)
    {
        if (!this.gm.isPaused)
        {
            Cursor.lockState = CursorLockMode.Locked;
        }
        else
        {
            Cursor.lockState = CursorLockMode.None;
        }
solemn rivet
#

oh

leaden hedge
#

why not implement ingame controls instead hollowface

buoyant wasp
#

so here's the question

#

do we update the hook to follow 1.2.2.1 or restore the old functionality?

#
        [HookInfo("Called whenever game tries to show cursor", "InputHandler.OnGUI")]
        public event CursorHandler CursorHook;

        public void OnCursor()
        {
            if (CursorHook != null)
            {
                CursorHook();
                return;
            }
            if (!GameManager.instance.isPaused)
            {
                Cursor.visible = false;
                return;
            }
            Cursor.visible = true;
        }
solemn rivet
#

if Locked is the same as invisible... There's no reason to not change

buoyant wasp
#

locked means you can't move the cursor i think

solemn rivet
#

I remember VS saying Cursor.visible was deprecated...

buoyant wasp
#

but i guess we'll see

#

i'll go ahead and make the hook follow the new code

#

oh, yeah, here's the intellisense for that

#

"Lock cursor to the center of the ingame window"

solemn rivet
#

ehh

#

how is the game hiding the cursor on pause now then?

#

the other way around, I mean

leaden hedge
#

pretty sure thats an auxiliary function of locking

buoyant wasp
#

must be this

#
            if (this.controlMouseCursor)
            {
                Cursor.lockState = (PlayMakerGUI.LockCursor ? CursorLockMode.Locked : CursorLockMode.None);
                Cursor.visible = !PlayMakerGUI.HideCursor;
            }
leaden hedge
#

weird

#

When Locked, the cursor is placed in the center of the view and cannot be moved. The cursor is invisible in this state, regardless of the value of Cursor.visible.

solemn rivet
#

so, it's strictly stronger than cursor.visible?

leaden hedge
#

well yeah

#

its supposed to be for when you don't have a cursor

#

like say an fps game

#

where the mouse moves the viewport, instead of moving in the viewport

buoyant wasp
#

so, i guess the question is, what were you using this hook for?

leaden hedge
#

to show the cursor

solemn rivet
#

show cursor for levelling up

buoyant wasp
#

ah

#

i wonder if you can use "confined"

#

instead

#

might work

leaden hedge
#

that locks it to the screen

#

but you can't leave it

buoyant wasp
#

is that a problem for bonfire though?

leaden hedge
#

not really

buoyant wasp
#

or you could just set the lockstate to none

#

and visible to true

leaden hedge
#

especially because blackmoth has no leveling hollowface

#

visible can probably always be true

#

locked overrides it

solemn rivet
#

well, the issue with that was

buoyant wasp
#

yeah, but who knows what might cause visible to get switched

solemn rivet
#

the game is constantly checking for pause

#

and if it's not paused, it hides the cursor

slate owl
#

Is dash required to beat the game?

leaden hedge
#

no

slate owl
#

I got dream nail + wings + mantis claw

buoyant wasp
#

k, so you'll have to update your method to change the lockstate in your mod, but i think otherwise we'll be ok

leaden hedge
#

you need dreamnail & (isma|superdash) & claw

slate owl
#

Ya, uumuu is pain.

solemn rivet
#

and if it's not paused, it hides the cursor

#

so it's blinky

leaden hedge
#

why not just implement it with ingame controls instead

slate owl
#

Are certain upgrade more common at certain places?

#

In randomiser.

solemn rivet
#

because I don't know how to do that KDT

leaden hedge
#

you'd only need like

int menuPos = 0
static int menuSize = 5; // one for each stat + 2 for reset / confirm
int[] stats = new int[3]; //one for each stat

if( downPressed )
    menuPos++
if( upPressed )
    menuPos--
menuPos = (menuPos + menuSize) % menuSize;
if( menuPos < menuSize-2) {//first 3
    if ( rightPress )
        stats[menuPos]++;
    if ( leftPress )
        stats[menuPos]--;
}
if( menuPos == menuSize-1 && confirmedPressed )
    confirmStats();
if( menuPos == menuSize-2 && confirmedPressed )
    resetStats();
if( cancelPressed )
    cancelStats();

buoyant wasp
#

ok, the cursor change is annoying

leaden hedge
#

and the buttons are all in
GameManager.instance.inputHandler.inputActions
so you can do
GameManager.instance.inputHandler.inputActions.down.wasPressed
to check if down was pressed

buoyant wasp
#

like, holy crap annoying

slate owl
#

Are you supposed to be able to kill the baldur dudes with only mark of pride?

leaden hedge
#

yes

buoyant wasp
#

though often you'll get something else that works too

slate owl
#

How?

leaden hedge
#

you hit them

buoyant wasp
#

dive, sporeshroom, glowing womb, spiders, grimmchild, defenders crest, what else...hmmm

#

i'm really tempted to change this stupid cursor thing....ugh

slate owl
#

Uve got a clip of that?

rain cedar
#

You get close to it so it locks up

#

Then walk out of that range and immediately turn around and attack

#

Longnail only is enough range, but that's not in the logic

slate owl
#

Oh

#

Easier than I thought

rain cedar
#

Mark of pride is tough but much more reasonable

leaden hedge
#

but it shouldn't be too complicated @solemn rivet
i'd recommend working on it in a few steps at a time
get going up and down working
then get it overflowing correctly, so going over the top puts you at the bottom
then just implement actions for each menu position one at a time
then get it displaying nicely

rain cedar
#

Does that include the new logger? I noticed you never merged that on the github

buoyant wasp
#

yes, i'll be merging and pushing that

rain cedar
#

Alright

buoyant wasp
#

it also includes the hooks needed for bonfire

slate owl
#

Yeah!! Got it and got amazing charm! Wayward Compass!

buoyant wasp
#

and the hooks for the new savegame stuff

#

k, updated code posted

young walrus
#

I guess we'll see if this works tomorrow during the race

buoyant wasp
#

lol, bleeding edge

rain cedar
#

I'll do a run and see if there's problems

#

Got nothing better to do right now

rain cedar
buoyant wasp
#

lol

#

"it's fine"

#

though, really, i'm guessing you have a better idea as to why she didn't show up than i do ๐Ÿ˜ƒ

rain cedar
#

Best guess is the shaman is stuck waiting for me to take fireball

late sphinx
#

fireball?

rain cedar
#

But they'd have to have changed the fsm for it

late sphinx
#

is that part of a mod or something

rain cedar
#

No, vengeful spirit

late sphinx
#

huh

rain cedar
#

It's a fireball

late sphinx
#

not really made of fire

buoyant wasp
#

yes, well, it's still faster and easier to type

#

and it's close enough

late sphinx
#

soulball

buoyant wasp
#

re: fsm changes, them randomly changing stuff wouldn't surprise me

young walrus
#

you're not going to change what we call it wranobble. lol

#

we've called it fireball for months

broken fable
#

it's called fireball in the game's code. fireball, scream, and quake are the spells

leaden hedge
#

this is like dbfz, acthually its not a fireball its a ki blast

late sphinx
#

weird

leaden hedge
#

no

#

because thats pretty standard name

#

for a fireball

buoyant wasp
#

PlayerData.fireballLevel < literally what the developers called it

leaden hedge
#

people don't go around calling akuma's shakunetsu hadouken that

#

they just call it fireball

buoyant wasp
#

@rain cedar - in the randomizer code you have this

#
            UnityEngine.SceneManagement.SceneManager.activeSceneChanged += SceneHandler.CheckForChanges;
rain cedar
#

Yeah

buoyant wasp
#

ah, nvm, that's base code

#

was thinking i had missed a hook

rain cedar
#

Yeah, Unity has events built in

leaden hedge
#

the fsm probably changed for shaman

#

dunno why it would though

buoyant wasp
#

wonder if they changed it to include some check to make sure you pick up the soul charm or fireball

#

for...reasons

leaden hedge
#

it used to have that

#

I don't think it'd even check baldur state unless you got firebal

buoyant wasp
#

this is what the randomizer code does today for that scene

rain cedar
#

I think it's more likely that changing how the spells are stored is breaking this

slate owl
#

Can you learn Shade Soul before Vengeful spirit in randomizer?

rain cedar
#

No

buoyant wasp
#

you just get vengeful either way

#

if you were to pickup what would be shade soul in the logic, but didn't pickup vengful, you get vengful and the other vengful becomes shade

#

works like ALTTP randomizers for swords, shields, and armor

slate owl
#

So basically, it does +1.

buoyant wasp
#

mmhmm

leaden hedge
#

its not even basically

#

fireballLevel is an int

#

0 is no, 1 is vs, 2 is shade soul

buoyant wasp
#

ah

#

no

#

i think i know what might be the issue

#

maybe

#

looks like you modified intadd and i didn't realize it

rain cedar
#

Oh, yeah, I modified all the int functions

buoyant wasp
#

yeah, lemme fix that

#

tomorrow i'm going to go through and make a document of every single place these hooks are done

rain cedar
#

Alright, probably a good idea

buoyant wasp
#

did a "Used By" on Modhooks.Instance in the old and new

rain cedar
#

Alright, I'll give this a try and see if it's got the same issue

buoyant wasp
#

to make sure i didn't miss any this time

#

turns out there was a 2nd place where the BeforeSceneLoad hook was called in LoadSceneAdditive that i had missed. so added that in too. now not missing anything from the list

#

which also could have easily broken the shamman thing if you use that hook

#

which it does, so that's probably it

rain cedar
#

Nah I don't really use that hook

buoyant wasp
#

ah

#

yeah, clicked into it "do something complicated so this never gets called"

rain cedar
#

Really loving not being able to click off the game during downtime with this new patch

#

And having to pull my mouse all the way from the center of the game to my other monitor is pretty A+

buoyant wasp
#

honestly, i'm really tempted to fix it

#

i have to edit that method anyway

#

for a hook

#

screw it, i'm gonna change it and see what breaks, cause...no

rain cedar
#

Yeah, go ahead

#

In general I'd be against changing how the game functions in the API

#

But this change is just so random and awful

buoyant wasp
#

it makes dual monitor setups so freaking annoying

#

@leaden hedge - so, interesting thing about the more saves mod

#

2 pages, except no, because i only have these 2 saves

#

if i go to page to, it unloads, loads, then reloads page 1

leaden hedge
#

did it work fine on the old api

buoyant wasp
#

nope

#

but i got distracted

#

and forgot to post it

leaden hedge
#

does the page counter go from 1 -> 2?

buoyant wasp
leaden hedge
#

what input device are you using

buoyant wasp
#

controller

#

using the right button that changes inventory

leaden hedge
#

does it happen with keyboard

buoyant wasp
#

sec

#

yes

#

though i can break it by hitting the rotate button during the transition

#

and then it will end up on page 2

#

also, the page 1/2 thing needs to be unloaded at different timings, right now it doesn't unload until after a new menu has fully loaded

leaden hedge
#

thats not my fault hollowface

buoyant wasp
#

also, somehow i still have it shown after loading into the game

leaden hedge
#

it should only be drawn whilst the game is in the profile selector

#

anyway

#

go to regedit

#

and set

#

MaxPages_h396801905
to
DWORD 0x00000050 or something

#

so your pages will be way bigger

rain cedar
#

Shaman is working with the int stuff fixed

leaden hedge
#

and I can actually see what its doing

buoyant wasp
#

assuming i'm looking at HKEYCURRENT_USER and then something for teamcherry?

#

ah, yup, got it

#

so, it seems like what's happening is that sometimes the keypress is registered twice

leaden hedge
buoyant wasp
#

well, that's...different

#

now it's just counting down

#

oh, there we go, got it to count up

#

except it does it forever

leaden hedge
buoyant wasp
#

moved once, 2 pages in 1 button press, now can't move anymore in either direction

#

also only worked on controller, didn't work on kb anymore

slate owl
#

There are a few TODO left. Ill work on them tomorrow.

#

It doesnt include items from NPCs.

rain cedar
#

Alright, thanks

#

I don't think I'll shuffle notches/keys, but I can add the other stuff here to the relic pool

slate owl
#

What about shuffling maps too?

buoyant wasp
#

...why?

slate owl
#

Right now, getting maps from the dude is useless.

leaden hedge
buoyant wasp
#

that would make vendors even more powerful

#

they are already the single most powerful 3 places in the game due to the number of items they have

slate owl
#

You do need to reach the map area first.

#

By shuffling maps, what I mean is shuffling maps and other non-key items.

#

Like geo items,mask,,vessel etc.

#

Charm + upgrade only swap between eachother.

buoyant wasp
#

so...buy a map to get geo? gambling!

#

@leaden hedge - well it doesn't move forever in a given direction, still have the issue of a single press causing it to move 2 pages unless just barely touch the key

#

if i hold it for more than maybe 100-150ms, it moves twice

leaden hedge
#

if you hold it, it should go constantly

buoyant wasp
#

yes, it does, but the gap between "pressed the key normally" and "holding the key" is so small that it's nearly impossible to release the key before it goes into continuous mode

leaden hedge
#

its 0.4 seconds

#

which is pretty big

#

it works fine for me at 0.1f

slate owl
#

What are you using to detect key input?

leaden hedge
#

the same thing the game does

slate owl
#

GetKeyUp?

rain cedar
#

Maybe timescale is not 1 on main menu? I see you're using Time.time instead of Time.realTimeSinceStartup

slate owl
#

Actually, I dont even know what youre trying to do lol

leaden hedge
#

well if it was slower, that'd make it even less likely to fire

#

because it'd take longer to reach 0.4f

#

heres the current function

buoyant wasp
#

.05f?

leaden hedge
#

thats to prevent double presses

#

1/20 of a second is plenty of time

buoyant wasp
#

and inputWindow = .4f?

leaden hedge
#

yes

buoyant wasp
#

i know why it's broken

#

well, at least, i'm getting there

#
            if (MoreSavesComponent.queueRight == 0 && MoreSavesComponent.holdingRight && Time.time - MoreSavesComponent.firstInput > MoreSavesComponent.inputWindow)
            {
                ModHooks.Logger.LogDebug("holdingRight for " + (Time.time - MoreSavesComponent.firstInput));
                MoreSavesComponent.queueRight = 1;
            }
#

so, i added this log line

#

and

#
ModHooks.Logger.LogDebug((Time.time - MoreSavesComponent.lastInput).ToString());
                if (MoreSavesComponent.queueRight > 0 && Time.time - MoreSavesComponent.lastInput > MoreSavesComponent.inputWindow / 2f)
#

this is the output

#
[DEBUG]:holdingRight for 32.68
[DEBUG]:32.68
[DEBUG]:holdingRight for 32.7
[DEBUG]:0.02000046
#

so, i pressed the key for .02 seconds

#

however, it appears that .firstInput is based something else, looking now

leaden hedge
#

firstInput is just set by the first few lines of FixedUpdate

buoyant wasp
#

ah, yes, but that's never getting called

#

i put this in

#
            if (MoreSavesComponent.gm.inputHandler.inputActions.paneRight.WasPressed)
            {
                ModHooks.Logger.LogDebug("paneRight pressed");
                MoreSavesComponent.firstInput = Time.time;
                MoreSavesComponent.queueRight++;
            }
#

paneRight is never logged

#

at least, not with kb

#

testing with controller

leaden hedge
#

it should, considering if you press paneRight really fast

#

you should be able to get it to jump 4 or 5 times in one page turn

#
[DEBUG]:paneRight pressed
[DEBUG]:paneRight pressed
[DEBUG]:paneRight pressed
[DEBUG]:paneRight pressed
[DEBUG]:paneRight pressed
[DEBUG]:paneRight pressed
[DEBUG]:paneRight pressed
#

works fine for me

buoyant wasp
#

are you running on 1.2.1.4 still?

leaden hedge
#

both controller and keyboard

#

no

#

1.2.2.1-2

buoyant wasp
#

k

rain cedar
leaden hedge
#

on current api?

rain cedar
#

Yeah

#

This is my second run of this on current

#

It worked fine the first time

#

Looks like you're printing a ton of fsm stuff there

leaden hedge
#

yeah I do

rain cedar
#

I don't know if any of it is helpful

leaden hedge
#

nah its just a dump of the inspect region fsm

#

with the names of objects all its states point to

rain cedar
#

I see

buoyant wasp
#

is there a way to show fps?

#

in the menu

leaden hedge
#

enable steam overlay

#

should be an option for it on that

rain cedar
#

Yeah, that's how I've got fps

leaden hedge
#

fps shouldn't affect it

#

I put it into fixedUpdate

buoyant wasp
#

it's definitely FPS

#

this is what the forums say about FixedUpdate:

Update runs once per frame. FixedUpdate can run once, zero, or several times per frame, depending on how many physics frames per second are set in the time settings, and how fast/slow the framerate is.
#

if i turn vsync on

#

the stuff works

#

if i turn it off, it displays this issue

leaden hedge
#

fixed update runs at most whatever physics frames are a second

#

so if its set to 60, aslong as you have 60fps or more, you'll get 60 fixed updates a second

buoyant wasp
#

so

#

in the menu

#

my framerate is 500-1000 FPS

#

(this is based on the ingame FPS counter, not the steam one)

leaden hedge
#

well it isn't fixedupdate anyway

#

I moved it into fixedupdate to try and fix the problem

buoyant wasp
#

question, was the old code using "Update" instead?

leaden hedge
#

yes

buoyant wasp
#

....wth, so i used dnspy, switched it back to Update, and now it works exactly like you'd expect it to

#

well, except Page 1/4919 still shows when i load a game

leaden hedge
#

well it was regeditted

#

try that one

buoyant wasp
#

k

#

ok, that works. should i regedit it back down to 2 and see if the Page 1/4919 goes away after game load?

leaden hedge
#

go for it

buoyant wasp
leaden hedge
#

yeah didn't that get fixed?

buoyant wasp
#

nope

leaden hedge
#

I have a fix in a second anyway

buoyant wasp
#

interestingly, if you pause/unpause, then it hides

#

Mod API 1.2.2.1-4 (BETA) - The cursor behavior has been reverted to how it was in 1.2.1.4 and below. (no longer locked to the center of the screen). Also, ModLoader now only tries to load *.dll files instead of all files in the Mods\ folder.

#

(and deleted the other 2 alphas from the channel history to make sure no confusion)

#

changed the registry back to 2, page count is fine, keypresses are fine, i can't begin to explain why it works now

leaden hedge
#

the original version didn't have the && t - lastInput > 0.05f

buoyant wasp
#

ah

leaden hedge
buoyant wasp
#

so, good news and bad news. good news, page goes away.

#

bad news. Loading a save, then quitting, then going back to the save area reverts the save area to the vanilla way ( no page indicator, no moving pages with inventory keys)

#

@rain cedar - Thoughts on this change? (mod version info shows when you pause the game)

#

IE , do you like it

rain cedar
#

I don't think it matters too much either way

#

Doesn't really hurt anything to have that there

buoyant wasp
#

mostly just thinking, sometimes folks will get on here and say, "I just had XYZ happen", but then if you say the way to find out is save and quit, that might not be feasible (like in boss rush where s&q basically ends the run)

rain cedar
#

Makes sense

buoyant wasp
#

cool

rain cedar
#

@leaden hedge Any chance for an option to progress without grabbing upgrades in boss rush?

#

Right now I'm stuck with a choice between dashmaster and deep focus

#

Both will have only negative impact

leaden hedge
#

yeah, I want that but not sure how I want to implement it

rain cedar
#

Could be a button

#

Could be a fourth pickup

#

Could leave transition gates open but just progress to the next boss when you go through them

#

Or close them but reopen them after the boss is dead

#

There's options

#

I could do it if you want, just not sure which option you'd prefer

leaden hedge
#

well transition gates won't work

#

not with the ui

#

could probably just make it, if you hold down crystal dash for 0.5seconds

rain cedar
#

That's a really random way to skip

#

But whatever works

leaden hedge
#

well no one is ever gonna need that key, and every controller should have it bound

buoyant wasp
#

k, when i finish this boss rush run, gimme a few

leaden hedge
#

I don't wanna just bind it straight to button because you might accidently do it, and i'm not a fan of the 4th item

#

but I guess double tapping quick map could work instead of holding dash

buoyant wasp
#

if we're asking for new features. the ability to specify the seed for items would be great so you could do a boss rush race with someone

leaden hedge
buoyant wasp
#

lol, shouldn't you sleep or something?

#

also ran into the same issue as sean on a diff boss, grimm1 dropped no charms

#

what's the current bossrush version#?

#

0.7.0.0?

leaden hedge
#

0.7.1, dunno what VS gave it

#

ill load my game and check

#

0.7.6523.10162

buoyant wasp
#

cool, got the same then, just wanted to make sure i wasn't finding bugs in an older version

#

cause that's semi-useless

#

oh, nice, the page stuff fades out on menu change now, slick

leaden hedge
#

if you want to try and debug and reproduce, its
BossInfo.SpawnAll();

buoyant wasp
#

k, well, the save->load->quit->save page (mod appears to have gone on a vacation) bug still exists, but otherwise, seems to work fine

leaden hedge
#

weird, I tested that and it worked for me

buoyant wasp
#

and i might tomorrow, at this point, just am going to game a little and vegg and then pass out

#

just reinstalled it, testing again

#

nope still broken, oh well, we can tackle it again tomorrow

broken fable
#

if i have just monarch wings in steel soul rando, how do i get to ancient basin?

late sphinx
#

you figure it out

broken fable
#

going through crystal peak to resting grounds doesn't help without quake. can't do shade skip to blue lake at salubra in steel soul mode. the fungal wastes CoT entrance isn't possible with just monarch wings. i can't navigate deepnest to get tram pass with just monarch wings.

#

what am i missing?

buoyant wasp
#

sewers

#

go kill dungdefender

broken fable
#

how do i get to City of Tears though?

buoyant wasp
#

it's entirely possible that either the weaversong or trampass om deepnest is required

#

have you done the baulders yet?

broken fable
#

i can't kill baldurs

buoyant wasp
#

what do you have charm wise?

broken fable
buoyant wasp
#

i wonder if you could do the "vanilla" way into COT with just wings

broken fable
#

i'll go try, but it looks way impossible from looking at screenshots.

buoyant wasp
#

anyhow, about to pass out at the chair

#

later

noble trout
#

bonefire doesnt work for shit

#

it crashes no matter what i do?

#

is anyone intrested in the crash report?

leaden hedge
#

when does it crash

#

where does it crash

#

what version are you running

rain cedar
#

Probably just installed the wrong api

#

Half the problems people have seem to be that

#

Too hard to match two numbers, I guess

noble trout
#

on start up

young walrus
#

What version of the game do you have? Have you updated the api since 12 hours ago?

noble trout
#

the mod is 1.2.1.4and im using 1.2.2.1 but you said before that should be an issue

#

and yes i did update the api

young walrus
#

The mod of bonfire shouldn't be an issue, but the api has to be updated. There's also a chance that the fsm things gradow is using was somehow broken with the update

noble trout
#

i think it is

#

because the api is updated

rain cedar
#

Oh, I see

#

Either Gradow hasn't finished his port yet or it's not up on the google drive

#

There's no API version of bonfire here

late sphinx
#

do any mods currently work with 1.2.2.1

#

if not i will throw toilet paper at you

#

nvm it seems more saves works

leaden hedge
#

most api mods should work

late sphinx
#

how do i un-hide the debug menu

leaden hedge
#

f1

late sphinx
#

thanks

#

is there a way to give bosses hp bars

leaden hedge
#

yes

late sphinx
#

does just toggling enemy health bars work

leaden hedge
#

yes

late sphinx
#

oh

#

weird

#

didn't seem to work with zote

#

oh i have to have the debug menu open

#

i just need enemies menu open

#

cool

#

it

#

doesn't work with zote

solemn rivet
#

Don't use bonfire api yet

#

I haven't updated it since the update, so maybe it's broken

#

Also, saving is not yet implemented in the api ver

#

Does the assembly ver work?

solemn rivet
late sphinx
#

oh cool

solemn rivet
#

the only thing that's broken is that hit resistence procs, but doesn't resist shit

humble sinew
ornate rivet
#

How do you do that in debug mod?

#

@late sphinx

hazy sentinel
#

click the plus sign on the enemy list

ornate rivet
#

ok

solemn rivet
#

can anyone test bonfire on the latest api for me?

#

specifically, the hit resistance

#

it still does not save btw

#

I still haven't had to time to experiment with that

#

oh, I think I got it

#

@buoyant wasp , can I make a small change in one of the hooks?

ornate rivet
#

@hazy sentinel
So when I am installing debug mod, there is a folder named Debug Mod, where do I put that

solemn rivet
#

specifically, I want a void method to not be void anymore

#

๐Ÿ˜›

#

juust put everything on the game's root folder

ornate rivet
#

so in hollow_knight_data?

solemn rivet
#

no, before that

ornate rivet
#

ok

solemn rivet
#

in the zip there's a hollow_knight_data

ornate rivet
#

But wont that erase everything else

solemn rivet
#

C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight

ornate rivet
#

thats in hollow_knight_data

solemn rivet
#

no, it'll only replace what needs to be replaced

ornate rivet
#

ok then

solemn rivet
#

that's actually the point of putting the mod inside hollow_knight_data

#

so you can just drag and drop

ornate rivet
#

wait is debug mod not updated for the 1.2.2.1 version

solemn rivet
#

every mod should work on 1.2.2.1

ornate rivet
#

when I select a new save it gives me a black screen

solemn rivet
#

do you have mod versions on top left?

ornate rivet
#

ye

late sphinx
#

i keep accidentally killing thk too fast to get to the radiance

ornate rivet
#

xD

late sphinx
#

don't know why i didn't use tr instead of the radiance

#

oh well

#

i have to hit it 5 times

#

then dead

ornate rivet
#

welp I think I give up

late sphinx
#

oh fuck i forgot to equip the void heart

ornate rivet
#

is it supposed to say I am using debug mod 1.2.1

#

?

solemn rivet
#

the one mod most likely to not work is Debug

ornate rivet
#

how do I fix it

#

I want to fight multiple bosses at once

solemn rivet
#

just revert back to 1.2.1.4

ornate rivet
#

ok

#

I think its working now

late sphinx
#

i'm using debug with 1.2.2.1

solemn rivet
#

then it's something wrong with your installation @ornate rivet

#

can you send me your modlogs and output_log?

solemn rivet
#

please, no

#

don't stop

#

give us mantis lords

late sphinx
#

oh

#

i did do mantis lords

#

just didn't record it

#

can respawn them but don't feel like it

ornate rivet
#

I figured it out

late sphinx
#

maybe later

ornate rivet
#

I renamed the new assembly c sharp

#

xD

#

instead of replacing it

#

I am dumb

#

thanks for the help @solemn rivet

late sphinx
#

you're really smart

ornate rivet
#

sorry for wasting your time

solemn rivet
#

don't worry

#

I'm also wasting my time

late sphinx
#

me too

solemn rivet
#

also

#

bullet hell much

late sphinx
#

it's not that hard

#

all you have to do is dodge

#

and not get hit

#

easy enough

solemn rivet
#

the only thing it does is change AfterTakeDamageHandler from a void to an int

#

well, THAT and everything that depends on it, obvsly

buoyant wasp
#

ok, so was this one based on the last one i posted this morning?

solemn rivet
#

yeah

buoyant wasp
#

k

#

i'll look through it real quick. if it looks good, then I think we'll say that it's stable

#

though i am going to change the hook itself a little. since we're modifying the amounts, it's going to behave like TakeDamageHook and loop through the invokations in case multiple mods subscribe to it

solemn rivet
#

okay

#

oh, yeah

#

shoulda done that

#

sorry

buoyant wasp
#

np

#

Modding API - 1.2.2.1-6 - (GOLD). Ok. At this point, seems like the api is stable for 1.2.2.1. @rain cedar @dapper folio .

buoyant wasp
#

is it just me, or did the amount of geo from the first baulder get nerfed?

solemn rivet
#

eh

#

wouldn't know

buoyant wasp
#

i want to say that they used to drop more, but when i did it an hour ago, it was like 5

copper nacelle
#

what is canBackDash

#

is it for dashmaster? or is it just an ability that wasn't added or something

solemn rivet
#

it does nothing

#

probably something that was dropped in development

copper nacelle
#

cool

#

thanks

slate owl
#

About the API.

#

Wouldnt be better to have folders inside Mods rather on Hollow Knight directly?

#

Atm, Randomizer and DebugMod put them under /Hollow Knight directly.

#

But imo, everything should go in /Mods

#

Rather than root.

#

API could offer read/write services that read/writes in /Mods/<ModName>

slate owl
#

Gathering swarm as reward in boss rush ๐Ÿ˜ฆ

buoyant wasp
#

yeah, i was thinking similar last night when i was changing the loader

#

well, as far as resources go

#

saving stuff the accepted standard is to save to the save folder

slate owl
#

save folder?

buoyant wasp
#

the folder, where saves go

slate owl
#

You want to put resource files in the save folder?

buoyant wasp
#

no, i mean, put the resources files under Mods/ModName

#

as you suggested

buoyant wasp
#

@rain cedar - been said before, but if there is a way to remove the hard save at shade cloak, that'd be great ๐Ÿ˜ƒ

slate owl
#

I just softlocked at boss rush against collectors.

buoyant wasp
#

actually, you might not be

#

i think the spiders might eventually kill him

#

but yeah, collector is so buggy in vanilla

#

there's a ton of ways to get him into that state

#

@leaden hedge was talking about maybe finding a way to fix him

slate owl
#

What charm drains your soul?

rain cedar
#

Glowing Womb

slate owl
#

Its such a bad charm.

buoyant wasp
#

eh, it has it's uses

#

i don't like it for boss rush cause you can't turn it off

slate owl
#

You cant turn it off?

#

Just open charm menu?

buoyant wasp
#

you can change charms in boss rush?

#

this is news to me

slate owl
#

Ya.

buoyant wasp
#

huh, neat

rain cedar
#

Alright, I'm finally getting around to looking into the shade cloak fsm

#

Looks super easy to remove the hard save

#

I just gotta cut out the set respawn state and go straight to PlayerData

buoyant wasp
#

that'd be slick

slate owl
#

Another way to remove charm is to use the bench after killing crystal guardian.

buoyant wasp
#

yeah, but that's a 1 time thing

#

while you're in there editing things, remove that bench over at the nailmaster that xero soft locked at? ๐Ÿ˜ƒ (for whenever we get the nail arts in)

rain cedar
#

Yeah, I'll get rid of that if you make it there without crystal heart

buoyant wasp
#

cool

slate owl
#

Is that for the randomizer?

rain cedar
#

Yes

buoyant wasp
#

afaik, those are the only 2 softlocks we know of right?

#

well, and keys

#

but

#

w/e

slate owl
#

Btw, any chance to tweak the random to give sprintmaster early?

rain cedar
#

It's already more likely to be early than late because it's a useless item

#

It's nowhere near a guarantee though

#

But such is randomness

buoyant wasp
#

yeah, most seeds i see it in the first 20-25 minutes, i never get it, but i see it

rain cedar
buoyant wasp
#

lol, yeah

#

apparently typing in regex in this box doesn't work

rain cedar
#

So for logging at the info level, the LogLevel enum has it but there's no LogInfo function

buoyant wasp
#

Log is LogInfo,

rain cedar
#

Alright, thanks

buoyant wasp
#

np

#

the biggest thing right now, is there is no way to set the level to anything else in terms of what is actually written to the file, it's currently hard coded to always be Debug and above. But to do that i need to write something to do non-save-specific settings

#

which i was going to do last night

#

then they dropped the patch on us ๐Ÿ˜›

rain cedar
#

Yeah, some kind of global config would be cool if you want to take it that far

#

I know debug mod would have uses for that at least

buoyant wasp
#

oh, definitely going to

#

if we ever do something where you can do enable/disable of mods, we'd need that, i want it for logging control, and i'm sure there's something else it could be useful for.

#

and honestly after solving the serialization crap for the save files, it won't be nearly as hard to do

rain cedar
#

It would also be cool for the logger to automatically put something like [RandomizerMod] at the beginning of the output, but I'm not sure it's possible to do that cleanly

trim nimbus
#

hey I have a question

#

does bonfire mod remove charms and nail upgrades?

rain cedar
#

No

trim nimbus
#

ahh

buoyant wasp
#

it might be, i did something like that at work once using the calling assembly or something. would have to play with it

rain cedar
#

Alright

#

The only thing I can think of is looking at the stack trace

#

No way that would negatively impact the load time there massively

buoyant wasp
#

where is ruins01?

slate owl
#

Its that map.

trim nimbus
#

should I do bonfire or randomizer mod?

buoyant wasp
#

lol, there might be a few objects in there

#

randomizer is currently working on this patch

#

bonfire would require downpatching

#

there isn't a 1.2.2.1 version of it that works with the api and saving

#

yet

trim nimbus
#

oh

#

well that answers my question

#

thank you

#

doing randomizer then

unreal dune
#

Has boss rush been updated

buoyant wasp
#

it didn't need to be

#

just grab the newest API from me earlier in this channel

#

and the last bossrush should work just fine

swift cairn
#

@buoyant obsidian any chance of having an API version of lightbringer?

slate owl
#

Is the source public?

swift cairn
#

what u mean

slate owl
#

The source code.

swift cairn
#

idk

buoyant obsidian
#

I'm really not up for the amount of work it would take for the API implementation, especially with university going on

swift cairn
#

k

bright prawn
#

anyone know if there's a glass soul mod for the current version of the game?

buoyant obsidian
#

I could get it updated within 12 hours if you're patient

bright prawn
#

oh, sweet~

fair rampart
#

anyone here recommend any good mods?

#

ping me if you do

unreal dune
#

Where is the new updated API?

hazy sentinel
#

pins

unreal dune
#

Do I have to do any "uninstall" process for the old API, or do I just """"install"""" the new one

ornate rivet
#

which .asset file has the player's sprite sheet in it again?

#

I forgot

#

I found it

buoyant wasp
#

idk if it's pinned yet

#

some dragons hasn't been on

kindred palm
#

Some Dargons

buoyant wasp
#

search for :From Wyza :has file

rain cedar
#

I put it in the drive a few hours ago

buoyant wasp
#

ah, cool

#

wasn't sure who all had perms for that

rain cedar
#

Some Dargons gives permission to most who've made mods, I think

#

You just have to ask

buoyant obsidian
#

Updated for 1.2.2.1

bright prawn
#

damn, that was quick, awesome : O

buoyant obsidian
#

Small glitch, your game percentage completion might be off by 7%

#

I'll fix that in an hour

solemn rivet
#

@buoyant wasp can you help me with save implementation?

rain cedar
#

You need to change your class declaration to something like
public class RandomizerMod<T> : Mod<T> where T : IModSettings, new()

#

Then you can access the Settings object

#

Which is the save data

buoyant obsidian
#

Faulty Wallet was changed into a mana charm :)

rain cedar
#

Which charm does that replace?

buoyant obsidian
#

The one that makes you gain lots of soul on-hit

rain cedar
#

Soul eater?

buoyant obsidian
#

I think so

rain cedar
#

Alright

buoyant obsidian
#

so apparently they changed the spritesheet layouts again

#

from one sheet to 100 different images

rain cedar
#

That sounds much less annoying to edit

buoyant obsidian
#

Not at all

#

when it comes to replacing them at least

#

like 5 clicks per replaced asset

#

and they all have dumb names that don't match what they do :D

#

Could someone else use Unity Studio / UABE to confirm there are only 2 Texture2D files named SpriteAtlas in resources.assets?

#

It could be a decompiling error on my side

buoyant wasp
#

@solemn rivet - sorry, wasn't paying attention, what's up

leaden hedge
buoyant obsidian
#

And those are the only 2 now? Damn

leaden hedge
#

which sprites are you even replacing

buoyant obsidian
#

Charms

#

inventory nails

late sphinx
#

oh nice glass soul is up to date

buoyant obsidian
#

Lightbringer is 30 minutes away too

late sphinx
#

currently downloading

#

i wonder if anyone has done steel glass soul yet

buoyant obsidian
#

I'm sure it's only fireb0rn

late sphinx
#

wait someone actuallly beat it

knotty tapir
#

any% WR yeah

late sphinx
#

on steel soul

knotty tapir
hazy sentinel
#

but that doesn't say WR, only world first intenseface

late sphinx
#

does fury of the fallen do anything

buoyant obsidian
#

Nope

late sphinx
#

o

buoyant obsidian
#

Charms that increase health / lifeblood increase your damage

#

Updated.

buoyant obsidian
#

And Glass Soul has just been updated to fix the completion percentage bug.

leaden hedge
dapper folio
#

Glass Soul and Lightbringer have been updated? woo! anything else I need to update on the drive?

buoyant wasp
#

@rain cedar - so i was looking at the logging stuff. and there are really 2 options. We can use the stacktrace approach or something cleaner, but would require modders to make a small adjustment ot the way they log. basically I'd add some static wrappers to the base Mod<T> class which would look like this:

private static string ModName = this.GetType().Name;
public static LogDebug(string message) {
    ModHooks.Logger.LogDebug(string.Format("[{0}] - {1}", ModName, message);
}

then instead of using

ModHooks.Logger.LogDebug("[RandomizerMod] - HI I'm a debug message");

you'd do

RandomizerMod.LogDebug("Hi I'm a debug Message");
#

but then everything that comes out of RandomizerMod would always have the [] in it, the developer wouldn't have to remember that

#

you could still use ModHooks.Logger.LogDebug if you really wanted, but the "better" way would be there too

rain cedar
#

That way sounds good to me

#

It doesn't break any logging that's already there

#

Or add redundant mod names to unupdated mods

buoyant wasp
#

yup

#

k

slate owl
#

Is Desolative Dive guarateed from its original location?

#

Because it sets a hard respawn point and only way to get out is with dive.

swift cairn
#

yes

buoyant wasp
#

desolate dive? no

#

you mean the first dive?

swift cairn
#

yeah

leaden hedge
#

the floor is broken

buoyant wasp
#

no, it's not guaranteed

leaden hedge
#

if you don't get dive

swift cairn
#

the second one is descending dark

buoyant wasp
#

if you don't have dive, there are no floors to break

#

in that area

swift cairn
#

really?

buoyant wasp
#

there is nothign guaranteed anywhere

#

assuming we're talking about randomizer, yes

buoyant wasp
#

@leaden hedge - seems to work, page text goes away now, saveing and quiting and coming back shows the UI again, the page icons are a ballin change that works fine switching between KB and Controller

#

Modding API 1.2.2.1-7 (SUPER ALPHA/Experiemental) . @rain cedar here's the API with 2 big changes. There is the change to logging where you will be able to do (for example) RandomizerMod.Instance.LogDebug("Something"). There is also now support for saving settings that are "global" (non-save-specific). For that, instead of Mod<T> you'd use Mod<T,TG> where TG is also IModSettings. The settings are initially loaded (if they exist) during the Initialize() call. GlobalSettings are not saved automatically, a call to RandomizerMod.Instance.SaveGlobalSettings() has to be called when you want to persist. Files are saved in the Save Folder and are called ModName.GlobalSettings.json.

With this i went ahead and got the ModHooks class to have a clone of those methods so that the ModdingAPI itself can store settings. In this case it has 1 setting for LogLevel now. That defaults to "INFO".

the structure of the files is still bleh, because i'm using the crap Unity serializer. We could switch to something else, like JSON.net since we're not intermingling with the save files anymore. It would make the json look significantly better, but then we add this other library as a dependency. Not sold on it's need at this point. As long as we can save/load, the exact format of the file isn't massively important.

rain cedar
#

Awesome. I'll try getting rebindable keys in debug with this

buoyant wasp
#

cool

#

i honestly didn't have a mod i could test with on the mod global settings, so while it does almost the exact same thing as the Modhooks settings, well, you know how it goes ๐Ÿ˜ƒ

#

hence the "super alpha" tag

rain cedar
#

Yeah, makes sense

buoyant wasp
#

also why i really want someone to work on doing mod-save settings . cause i tested it a little in my local copy of randomizer, but i don't think anyone else has fully tackled it

#

so, "seems to work" and "actuall using it" are 2 different things

rain cedar
#

Yeah, I was planning to add proper save functionality to randomizer today but I got distracted by golf and quiplash

buoyant wasp
#

haha, yeah

rain cedar
#

Alright

leaden hedge
#

why not just use playerprefs for global values

buoyant wasp
#

cause then we're gonna be screwing with even more of the game's internal structure, was trying to avoid that. Also lets us be lazy about a few things. Like if you want to change the logging level. now all you have to do is open the moddingapi config and change 1 value. if we use playerprefs, then the only way to manage them is with a UI

#

which, might make folks less likely to make options available in any form

noble trout
#

how do i backup my save files

#

i did it once but dont remember where it is located any more

leaden hedge
#

%appdata%/../locallow/team cherry

noble trout
#

thanks

late sphinx
#

jesus christ i beat soul master first try on glass soul

#

i'm having less trouble with the bosses than everything else hollowdab

leaden hedge
#

glass soul steel soul? intenseface

late sphinx
#

no

#

not gonna do that

#

goddamnit i lost 1900+ geo

#

before that i had lost around 1000

#

life is fun

#

go suck a brick

#

spikes

#

and then one of those lance s h i t s

#

i can't buy anything useful with 12 geo

#

maybe a lollipop

#

though

#

no i farmed geo and payed the fee

#

i'd be less pissed if i hadn't wasted 3 hallownest seals intenseface

#

actually erase this mod from existence

bright prawn
#

I totally agree with having less trouble with bosses... I keep getting randomly hit by every random little thing

late sphinx
#

i retract my less trouble with mosses

#

bosses

#

fuK

bright prawn
#

lol

late sphinx
#

fukn dung defender

#

impossible

bright prawn
#

oh god

#

I am not very far

#

glass soul is pretty painful

late sphinx
#

get ready to want to murder someone

bright prawn
#

yeah... maybe should do a no health upgrades, melee only, overcharmed run first

leaden hedge
#

I'd recommend spamming dive pretty much for dd

#

go get desc dark first

late sphinx
#

t h a t 's w h a t i ' m d o i n g

leaden hedge
noble trout
#

if you need a skip button its bad design

#

looking at you super mario maker

leaden hedge
#

the skip is for if you get 3 bad items

#

like womb / deep focus / jonis

noble trout
#

or 3 that are a must

#

like getting a dive double jump and shadow dash

leaden hedge
#

except, you only need djump or claw

#

and you don't even need dive or shadow dash

noble trout
#

if you dont have either dive or shadow dash you cant dodge the radiance tracking light beam

leaden hedge
#

alright and

#

you can beat the boss without either of those

bright prawn
#

is that dll all you need for boss rush?

leaden hedge
#

you need modding api

bright prawn
#

oh, I see

knotty grove
#

you can beat the boss, unless you're running glass soul boss rush (lul)

#

I don't know if you can combine those two mods mind you

leaden hedge
#

you can't

#

but then you'd just pick up the item that lets you be invincible

knotty grove
#

in time, I'm sure.. well you can still beat the boss if you have either doublejump or shadow dash

#

ยฏ_(ใƒ„)_/ยฏ

leaden hedge
#

no you need both

knotty grove
#

I meant dive/sd

#

you get iframes from dive

leaden hedge
#

oh yeah its easy with either

stray mirage
#

@copper nacelle here is a fun fact for you

#

graphical corruption of unity textures is a known bug when the texture assets total more than four gigabytes

#

but it is not, to date, reproducable

hazy sentinel
#

reproducable

stray mirage
#

in theory, using a worse graphics card would make it more likely

copper nacelle
#

hmm

#

cat /dev/urandom > sharedassets333.assets

#

till it gets to 5 GB

buoyant obsidian
#

All it did was slow down the loading for me

buoyant wasp
#

@slate owl - That list of secondary items (relics/masks/etc) you generated, can a list in a similar format be generated for the grubs?

slate owl
#

@buoyant wasp Ya. But I did the list by hand so it can take a while to do lol.

slate owl
#

What do you need it for?

copper nacelle
#

the 4gb thing didn't work

#

the assets within the actual thing I changed weren't even affected at all

buoyant wasp
#

ah, darn. well, we were talking about making grubsong viable as a progression item in the rando, but to do that, we have to go through and make the rules for all the grub locations as to what is required to get the grub (since grubsong is 10 grubs, this seemed small enough to be ok out of the 40 something)

slate owl
#

Thatd be cool.

buoyant wasp
#

so i was hoping the method you used wasn't manual

slate owl
#

What about the 500 essences?

buoyant wasp
#

no, that's already been ruled out

slate owl
#

How so?

buoyant wasp
#

it was decided that nothing required to win would sit behind the dream essence rewards

buoyant wasp
#

@rain cedar or @leaden hedge - any thoughts on how difficult it would be to edit the content of the credits scroll?

rain cedar
#

That really depends on how it's implemented

#

It's likely that you can just edit parts of it in the language hook

buoyant wasp
#

was thinking if/when we get rid of the spoiler log for randomizer, to put the results in the credits (similar to what Super Metroid did)

rain cedar
#

The "Thanks for playing!" screen at the end is localized so that for sure can be changed with the language hook

#

Names are less likely

buoyant wasp
#

yeah, was hoping we could leave the names intact

rain cedar
#

Or we could just add our own screen before the credits

buoyant wasp
#

and just append

rain cedar
#

Like Kein used to in the boss rush

buoyant wasp
#

or that

#

I don't really want to "take away" from the credits for TC

rain cedar
#

Yeah, that makes sense

#

Nobody pays attention to credits anyway but it would still be pretty rude

buoyant wasp
#

exactly

#

so either Prepending or Appending a screen would work too

#

or if they did it where the scroll is easy to append to, appending the list at the end of the scroll

#

or the beginning, w/e

rain cedar
#

It's probably easiest to do something like:
If credits are loaded, unload everything
Display custom stuff with OnGUI
Go back to credits scene when a button is clicked

buoyant wasp
#

if we go that route, should probably do as much of the common pieces as possible in the api so that all mods could use it. (since, who knows, boss rush might want it, or bonfire to display final stats, or w/e)

rain cedar
#

Makes sense

buoyant wasp
#

@leaden hedge - did a PR on github to fix a couple bugs in bossrush. Though the one i originally set out to figure out, which is why grimm1 doesn't drop items, was the one i didn't figure out :/

timber gale
#

How do I update the API?

rain cedar
#

You just download the new one and install it the same way

#

You can either use the very untested one posted above by Wyza or the stable one in the mods folder

rustic fossil
#

Ay, I'm gonna start modding

#

Does anyone know where enemy code is located?

#

I'm surprised it's so hard to find given how easy it seems to be to locate anything related to the player itself

#

Is it maybe an external script?

#

That would actually make sense

hazy sentinel
#

probably fsms

buoyant wasp
#

yup, all the enemy logic are in the FSMs

#

i think there's some stuff in the pins about a FSM dumper thing

#

and a viewer

rustic fossil
#

Oh, nice, that would be helpful

#

Hmm, there's something called FSM mod

#

There's an assets extractor

buoyant wasp
#

i think the fsm mod lets you dump the fsms

#

and then there is a thing form kdt to view them, lemme see

#

that