#archived-modding-development

1 messages Β· Page 90 of 1

delicate ether
#

so if i held jump, the game would think i tapped it

leaden hedge
#

if hollow knight supports steam controller at all you can make any controller work

delicate ether
#

no held buttons would register

#

except dpad

floral furnace
#

it doesnt?

leaden hedge
#

through steams controller configs

delicate ether
#

jhoy2key works

#

the only functiuon i dont have is presing right joystick down to look down

#

because that cant be bound to a keyboard button in game

compact sedge
#

Alright I have the first version I think probably works. It worked for me in testing. I just uploaded it to github if anyone with more skill wants to test it. Please make a backup of your saves first because I don't trust my own coding abilities at all. https://github.com/natis1/infinitegrimm

copper nacelle
#

lmao

compact sedge
#

One of the first lines I added and still haven't removed it

#

also the way I do the balloon attack is really hacky

copper nacelle
#

wait what's the difference between killed and defeated grimm

floral furnace
#

ahh the usual "//Dont know if this fucking works but im keeping it incase something might need it later""
comments

compact sedge
#

defeated triggers on any grimm ending

#

but killed only triggers when you kill the NKG

#

and don't cast out the troupe

copper nacelle
#

why the and tho

#

why not just the first condition

compact sedge
#

because it'd be weird to fight grimm after casting out the troupe

copper nacelle
#

wait i mean

#

why not just the second condition

compact sedge
#

because I'm not sure if there's anything that happens after you kill nkg but before the defeated condition gets triggered

#

and I just wanted to be safe

#

I'll clean this stuff up later tbh

#

it's very messy but I wanted to upload it because I got it to work

copper nacelle
#

cool

pearl sentinel
#

Ooh, graig is doing a 107%+PoP run

delicate ether
#

whats pop

livid estuary
#

path of pain

young walrus
#

it's a fizzy drink

delicate ether
#

dunno what that is

copper nacelle
#

@compact sedge did you just compile w/ mono?

compact sedge
#

no I used visual studio

#

2017

#

community edition

copper nacelle
compact sedge
#

yeah ok I can explain

copper nacelle
#

did you reboot every time you tested it

compact sedge
#

I made a VM just to write this mod. The vm had access to my hollow knight folder through samba. I did this because there's a lot of unity tools that are windows only

copper nacelle
#

lmao

compact sedge
#

my windows machine CAN run hollow knight but there's no GPU drivers so the way it runs it is through wine dx9 to translate to openGL and then through mesa software rendering

#

and I get about 9 fps

copper nacelle
#

doesn't kvm have passthrough for folders

compact sedge
#

that way

copper nacelle
#

lul

compact sedge
#

yes but samba works better and is easier to setup

copper nacelle
#

tbh would've thought it would be annoyingly slow

compact sedge
#

I have the hollow knight folder mods folder mounted and visual studio has a symlink to compile right to there

#

also I already found a bug so uh yay me I guess

copper nacelle
#

lol

compact sedge
#

Just got my controller so I was able to find that

copper nacelle
#

grimm girl mod confirmed

compact sedge
#

Well it*'s supposed to use the Balloon attack every 500 damage but I think I put it in an invalid state.

#

I just give everything a random gender sometimes because English is really bad about neutral pronouns

leaden hedge
#

what about they πŸ€”

compact sedge
#

what about they? I should probably use it more

#

that's what about it

flat forum
#

Berserk mod is so cool

#

but there appears to be a damage buff

#

and at the same time Debug mod shows that I'm dealing 21 damage per hit

#

what?

#

also

#

because of the berserk I died psot-beating Grimm

#

I can't leave

#

help

#

maybe fix that

#

if you "die" - your HP is set to 0 because of the Berserk you can't leave boss rooms

solemn rivet
#

Kek

#

It's a multiplier to all damage dealt, so debug prolly won't see that

#

Also, I don't get what you mean by "can't leave boss rooms"

#

Is the timer too short?

#

I can make the berserk toggable on demand instead of using a charm

#

Or I can make it more similar to A2's in that the timer stops draining if you have only 1 health

flat forum
#

ok, back

#

took long enough, sorry

#

so, doors unlock after you beat the boss

#

but also don't unlock at all if you're dead - your health = 0

#

so, tested it on Grimm

#

Double Grimm actually

#

And beat both without much problem

#

but I was left with like 1 health at the last hit

#

so, during the talking with the Grimm NPC

#

my health fell an extra 1 - it's now 0 but because of the Mod I'm not dead

#

so you're stuck - the boss is dead and you can't leave by dying

#

and the room is fully locked down and you can't leave normally

copper nacelle
#

quit out

flat forum
#

I have debug mod, I just NoClipped away

#

but

#

it's still a problem if you wanna use the mod around

#

the same will happen with every area that locks itself

#

you either need to beat it and have enough remaining health to continue (which shouldn't be a problem most of the time, but then again - Grimm and Hornet #2 require talking with them to unlock the room ) or quit and come back

#

now that I mention Hornet

#

there was a buffed Hornet mod, wasn't there?

#

is it finished?

#

can I find it somewhere?

copper nacelle
#

no

flat forum
#

it's not finished?

#

that's reasonable

#

but the rest, regarding the dead state not allowing you to escape

solemn rivet
#

wait - why does the mod make you not die if you have 0 hp?

#

anyway, that seems easy enough to fix

#

did you like it being a charm - or would you rather it was always on?

copper nacelle
#

they get 0 hp in a convo and get softlocked

flat forum
#

you can't die from the charm alone

#

you stay on a -1 healh thing with a single health on top of the Soul bar

#

I somehwat like it being a charm

#

but can you apply the code to FoTF

#

it seems more fitting

#

that's all for now

copper nacelle
#

but it's hiveblood because hiveblood

flat forum
#

I really like the mod

#

@copper nacelle it uses Lifeblood's health changing thing as a main mechanic

copper nacelle
#

wow it's almost like that's why it uses hiveblood

flat forum
#

yeah

#

I know

#

but

#

I mean

#

Ok

solemn rivet
#

I can make fotf have the effect, sure

#

but hiveblood won't work anyway

#

I can make hiveblood work

#

but there's no point to it

flat forum
#

well, no one uses it anyways

#

it costs too much

solemn rivet
#

because the two don't really work well together

copper nacelle
#

wouldn't they negate

#

each other

solemn rivet
#

yup

copper nacelle
#

ez free damage

solemn rivet
#

they count at exactly the same amount

#

not really

#

but yeah

flat forum
#

make Hiveblood... hmmm

solemn rivet
#

you need to equip them both tho

flat forum
#

well, equpiing them both negates the effect

solemn rivet
#

and if people insist on me keeping berserk and hiveblood

#

I'm gonna make berserk cost 7 notches

#

just to be mean

copper nacelle
#

lmao

flat forum
#

For sucha strong buff it doesn't seem unreasonable for it to cost like 5

#

you melt enemies' health

solemn rivet
#

I'm still working on balancing tho

#

how much should the multiplier be and how fast should the health drain

flat forum
#

make health drop faster, but stop at 1 health

#

or just stop it at 1 health

solemn rivet
#

yeah, I'll make it stop at 1 health

copper nacelle
#

so fotf but better?

solemn rivet
#

I'll also add a check if the player can control the knight

flat forum
#

@copper nacelle (That's basically the mod)

#

Ok

solemn rivet
#

once again, I can make it also drain your soul once your health is depleted

#

just to be meanΒ²

flat forum
#

HMMMM

#

also

solemn rivet
#

so you can't heal once you're at 1 HP

flat forum
#

spells seem to be VERY buffed too

solemn rivet
#

yeah, multiplier is applied to everything

copper nacelle
#

does it use hitinstance?

solemn rivet
#

yup

flat forum
#

2 Abyss Shrieks got me down through 1/4-1/3 of Grimm's Health

solemn rivet
#

eh

copper nacelle
#

i mean

#

abyss shriek is the most late-game damage upgrade

flat forum
#

So, maybe do something about Soul

solemn rivet
#

hitinstances happen multiple times per frame, but the multiplier doesn't stack, so it should be fine

copper nacelle
#

do you just apply the multiplier and it doesn't stack?

solemn rivet
#

because that's how charms affect damage tbf

copper nacelle
#

or do you apply 1/4th of the multiplier or whatever

solemn rivet
#

fotf, for instance, has hit.damageDealt = naildamage and hit.multiplier = 1.75f

#

same goes for fStrength

#

and shaman

copper nacelle
#

shaman?

solemn rivet
#

oopsie

flat forum
#

Maybe make BerserkCharm use thrice the soul for healing/spells

#

(mentioning Spell Twister)

#

or something

solemn rivet
#

well, the original idea was to mimic A2's berserk mode

flat forum
#

because spells that are OP anyways become stupidly powerful with the charm

solemn rivet
#

I'll make the health drain faster then

flat forum
#

Ok

solemn rivet
#

like

#

1 mask per second

flat forum
#

that's too much

#

how is it usually

#

1 every 5?

#

4?

#

3?

solemn rivet
#

10

copper nacelle
#

.5

flat forum
#

make it every 3

solemn rivet
#

1 mask/10 seconds

#

nope, I've already decided - I'm gonna mimic A2 once again

flat forum
#

every 3 or 5 seconds sounds good

solemn rivet
#

her health drains in 5 seconds

flat forum
#

Ok

solemn rivet
#

that's what the knight gets

flat forum
#

every 5 seconds

solemn rivet
#

jk

#

I mean, her full health drains in 5 seconds

#

I'll surely add that if I can make the mod tied to a button press

flat forum
#

Oh

#

no

#

1 mask every 5 sec

solemn rivet
#

so you can activate it only when you need it

copper nacelle
#

imo do full health in 5 sec

#

regardless of whether or not it becomes a button press

solemn rivet
#

then the game becomes impossible, 56

copper nacelle
#

doesn't it stop at 1 hp

solemn rivet
#

I'm p sure there are areas you can't get through in less than 5 seconds

#

oh

flat forum
#

make a charm that kills you every time you equip it/ do a mandatory for gameplay action - press left

solemn rivet
#

yeah

#

you have a point

#

but, then

#

how is that different from a mod that simply gives you 1hp?

flat forum
#

it turns into Glass Soul

solemn rivet
#

yeah

flat forum
#

we want Berserk, not Glass Soul

#

1 mask every 5 sec

#

if that's too much - every 3

solemn rivet
#

so

#

I'm trying to check for the controlRelinquished bool - which I know exisits because I've used it before

#

but vs won't auto-complete

#

and I'm like wtf

copper nacelle
#

private?

solemn rivet
#

then

#

public bool controlReqlinquished;

copper nacelle
#

tf

solemn rivet
#

kwk

#

no

#

if they can call it Reqlinquished

#

I can say kwk

copper nacelle
#

lmao

solemn rivet
#

their damageReceived method is also called damageRecieved, so there's that

flat forum
#

wait

#

it's called Reqlinquished?

solemn rivet
#

yup

flat forum
#

Why?!

#

wait

#

black squares started appearing on Discord

copper nacelle
#

because tc good spell

flat forum
#

why?

solemn rivet
#

I'd love to know why

flat forum
#

help

solemn rivet
#

u ded

flat forum
#

Black squared left and right

solemn rivet
#

omae wa mou shindeiru

flat forum
#

N-NANI?!

#

oh, they're gone

#

you killed them

solemn rivet
#

ye, I was talking to the black squares, not you

flat forum
#

the black squares answered, not me

solemn rivet
#

ok... How do I get it to trigger on button press?

copper nacelle
#

uhhh

flat forum
#

if.ButtonPressed=(true)

Then Whatyouwantdone=(true)

#

Totally works

#

12/10 times

copper nacelle
#

imo 6/5

#

-.5 points

flat forum
#

can you make it 5 sec?

#

did it work?

solemn rivet
#

I'm still trying to figure out how to make my own bindings

solemn rivet
#
    public void LoadKeyboardSettings()
    {
        this.LoadEnum<Key>("KeyJump", ref this.jumpKey, Key.Z);
        this.LoadEnum<Key>("KeyAttack", ref this.attackKey, Key.X);
        this.LoadEnum<Key>("KeyDash", ref this.dashKey, Key.C);
        this.LoadEnum<Key>("KeyCast", ref this.castKey, Key.A);
        this.LoadEnum<Key>("KeySupDash", ref this.superDashKey, Key.S);
        this.LoadEnum<Key>("KeyDreamnail", ref this.dreamNailKey, Key.D);
        this.LoadEnum<Key>("KeyQuickMap", ref this.quickMapKey, Key.Tab);
        this.LoadEnum<Key>("KeyQuickCast", ref this.quickCastKey, Key.F);
        this.LoadEnum<Key>("KeyInventory", ref this.inventoryKey, Key.I);
        this.LoadEnum<Key>("KeyUp", ref this.upKey, Key.UpArrow);
        this.LoadEnum<Key>("KeyDown", ref this.downKey, Key.DownArrow);
        this.LoadEnum<Key>("KeyLeft", ref this.leftKey, Key.LeftArrow);
        this.LoadEnum<Key>("KeyRight", ref this.rightKey, Key.RightArrow);
    }```seems pretty straightforward for kb
#

but for gamepads...

#
    public bool LoadGamepadSettings(GamepadType gamepadType)
    {
        if (gamepadType != GamepadType.NONE)
        {
            string key = "Controller" + gamepadType.ToString();
            string empty = string.Empty;
            if (this.LoadString(key, ref empty, string.Empty))
            {
                this.controllerMapping = JsonUtility.FromJson<ControllerMapping>(empty);
                return true;
            }
        }
        return false;
    }```
compact sedge
#

uh that reminds me, my gamepad doesn't work in hollow knight when I use the mod api.

#

I have to have the gamepad send out keyboard keys for it to work

#

instead of emulating an xbox controller

solemn rivet
#

weird

#

it works fine for me

compact sedge
#

might just be an OS thing

#

but I wonder what about gamepad functionality was changed by the mod api to break it for me

#

I'll test it in my vm to see if so

solemn rivet
#

well, I've gotta leave in a few

#

if anyone has any suggestions of how to implement key bindings, please send me a DM

copper nacelle
#

there's a consts thing

#

in the new beta

#

with some gamepad mappings iirc

compact sedge
#

does the modding api work on the beta

copper nacelle
#

i compiled it for beta at some point

#

might be old now

solemn rivet
#

ok, just before I go, here's a tentative compilation that should prevent health from draining below 1HP and while talking/stuff

#

everything else was kept the same

bronze temple
#

@copper nacelle I've just pushed a change to HookGen that could break future mods. Please pass --private before the input assembly path

#

this allows you to keep hooking private methods and methods in private classes

#

they're now hidden by default to prevent clutter

copper nacelle
#

ok

bronze temple
#

If anything breaks down, please ping me immediately

copper nacelle
#

alright

solemn rivet
#

You sound like you're from the fbi

bronze temple
#

Sorry πŸ˜… It's just that I'm worried about existing mods breaking

solemn rivet
#

I mean, you could be from the fbi for all I know

scenic slate
#

trying to install enemey randomizer but failing to load thinkgrub

copper nacelle
#

did you install modcommon πŸ€”

#

also use the installer

scenic slate
#

oh wait no lol

copper nacelle
#

installer pls

pearl sentinel
#

Oh, 56. I think I figured out those out of memory crashes.

copper nacelle
#

imo not me but ok

#

what was the problem?

pearl sentinel
#

Next one we get, see if they're using a laptop or have an nvidia (if I'm not around)

#

Bc someone had a problem and output log said they were using integrated graphics

#

Looked into it, and there's some issue with unity games where the game will not use their dedicated card

#

Unless you set it to in the nvidia control panel

scenic slate
#

um where do u download modcommon xd

pearl sentinel
#

So with the integrated card you hit a graphics memory issue

copper nacelle
#

you download the installer and press the install button right next to the word modcommon

#

p l e a s e

pearl sentinel
#

Also the person likely is playing with shit settings and has no idea why

copper nacelle
#

lul

#

it should also be in the google drive

#

kerr - modcommon

#

iirc

pearl sentinel
#

Should be

scenic slate
#

it is Im just stupid

delicate ether
#

Mod Idea for enemy randomizer, charm randomizer and lock. You could have a chaos mode where charm setup changes every transition, a mode where it changes once (like room mode) and a mode where its set when you start the game.

copper nacelle
#

but it's an enemy randomizer

delicate ether
#

Well i was thinling the code that does the randomizing could easily be tied into charms

#

thinking

solemn rivet
#

what would be a good key to bind berserk mode to?

#

on kbm

copper nacelle
#

default controls?

#

like

#

s

#

but

rain cedar
#

Just make it configurable

copper nacelle
#

a lot of people use wasd

rain cedar
#

S is superdash for me

copper nacelle
#

^

#

configurable is the best

leaden hedge
#

hold alt then press f4 hollowface

solemn rivet
#

eh

#

configurable

compact sedge
#

alt + sysrq + b . b is for berserk

copper nacelle
#

sysrq more like i still need to enable that

solemn rivet
#

I have no idea how to do that

#

I mean, I probably can work out how to make a rebindable action

#

but how do I give that option to the player?

copper nacelle
#

menu

solemn rivet
#

eww

#

I don't know how to work with the menu

copper nacelle
#

menu actual pain

#

i looked at the api code

#

and then at kerr's code

#

then gave up

solemn rivet
#

for now I'll bind it to L3+R3 on controller

#

for now I'll bind it to "End" on kb

#

just to kek

#

so, umm

#

anyone got experience with unity controls?

#
berserkToggle.berserkL.AddDefaultBinding(InputControlType.LeftStickButton);
berserkToggle.berserkR.AddDefaultBinding(InputControlType.RightStickButton);
berserkToggle.berserkKb.AddDefaultBinding(Key.End);```
#

these basically work

#

but sometimes, the game just randomly doesn't get the input

#

I thought that maybe I wasn't pressing L3+R3 quickly enough

#

but even when I bound it to End, it sometimes skips the trigger completely

#

maybe it's because I'm checking for button presses on Fixed Update?

leaden hedge
#

probably

solemn rivet
#

Yup that was it

leaden hedge
#

fixed update gets called a lot

#

but like inbetween and during frames

#

pretty much whenever the engine can

#

and that probably messes with input polling

flat forum
#

hey

#

gonna test the mod

rain cedar
#

Having trouble setting up an input field

#

Seems like all it does is break mouse events for whichever menu I put it in

#

No errors in the setup, though

leaden hedge
#

don't they use some shitty ui system

#

on top of canvas

rain cedar
#

Yeah

#

So far I can get the caret to show but nothing else works

flat forum
#

can background blur be removed?

#

is it an engine thing?

rain cedar
#

I don't even know what you mean

#

The game isn't blurry

flat forum
#

Background Blur

#

the background is blurred

#

foreground is Ok

rain cedar
#

Not really something I care enough to look into

flat forum
#

I want to take screenshots of places without the blur

#

that's why I'm asking

#

if anyone knows tell me

compact sedge
#

I bet the blur is hiding low res textures

flat forum
#

so it's an engine thing?

#

I don't really care all that much I wanna see crystal clear Backgrounds

rain cedar
#

It's probably just controlled by the distance from the camera

#

Or the object layer

steel patio
#

is there an ng+ mod :u

exotic venture
#

oh yeah there is

#

it's called hell mod

steel patio
#

uhh

#

care to elaborate?

exotic venture
#

basically it's a mod that buffs enemies and nerfs (You)

steel patio
#

oh

#

that's not what i was looking for

#

i just wanted to play the game from the beginning but with all the stuff

exotic venture
#

but

#

where's the fun in that

steel patio
#

there's lots of fun

rain cedar
#

Use a save editor

steel patio
#

watch a shovel knight ng+ run it's super fun

#

a save editor that can say "yo you collected everything" but not modify too many other things?

rain cedar
#

That's the idea behind a save editor, yeah

#

It changes what you tell it to change

steel patio
#

oh okay

#

uh

#

the only save editor i know how to use is shitty

#

and/or json conversion which i tried, but kingsoul bugs out

rain cedar
#

πŸ“Œ

steel patio
#

i don't see a save editor in pins

rain cedar
#

Look harder, then

steel patio
#

i looked it over three times.

rain cedar
steel patio
#

oh that one.

#

that's the crummy one though.

rain cedar
#

Well you'll just have to make do, then

steel patio
#

_>

leaden hedge
#

what exactly is wrong with it

#

its open source

#

so you're free to improve it

rain cedar
#

It's shitty

#

Duh

exotic venture
#

inb4 "doesn't look as good as Crossroads"

leaden hedge
#

i don't get paid enough to write fancy looking guis

rain cedar
#

It's no wonder you don't get paid much with that attitude

leaden hedge
#

its a self fulfilling prophecy, i don't get paid enough to make good guis, and I don't have good enough guis to get paid enough FeelsBadMan

exotic venture
#

a vicious cycle indeed, and when you do make something nice for free people will still complain

#

just because they do

compact sedge
#

ugh I can't believe your save manager wasn't written in Unity 0/10

#

worst save manager ever

#

I want a full refund

floral furnace
#

question, having 2 classes in a single namespace is ok right? ie:
public class Class1 : MonoBehavior{

}
public class Class2 : Mod{

}
right?

#

just making sure

compact sedge
#

yes

#

All my classes were in the same namespace and nothing broke so I'm gonna say yes

floral furnace
#

weird, my monobehavior class cant seem to register or see my void Update/Start/etc, probably should look into more of this, thanks anyway

compact sedge
#

Did you do: GameManager.instance.gameObject.AddComponent<Class1>()

#

This needs to be somewhere in your class that extends Mod

floral furnace
#

well my main mod is working, but i made a 2nd class because i need it to get hooked to MonoBehaviour instead so i can use Update()

#

well whatever im gonna try it anyway

#

alright there we go, i added it to my main mods initialization method

#

thanks again

leaden hedge
#

you don't need to do that btw

#

theres a hook for update iirc

#

so you can just call stuff everyframe without attaching a monobehaviour script to a gameobject

floral furnace
#

well im using your text stuff that you showed me last time to test the canvas stuff, unless theres another update hook other than HeroUpdateHook then using it seems to dissappear mid game, i should check the modding hooks again

leaden hedge
#

HeroUpdateHook should be sufficient

floral furnace
#

aight ill test with that one again, see if it doesnt dissapear for some reason this time

leaden hedge
#

dissappear "mid game" is when exactly?

#

after a loading screen?

floral furnace
#

yeah

#

sorry wrong wording

#

it dissapears after i load the game

leaden hedge
#

DontDestroyOnLoad(canvas)

floral furnace
#

HeroUpdate should be called only when you have in control of the knight yes?

#

as in youre actually in game

leaden hedge
#

it won't be in control

#

but it'll only be in game

floral furnace
#

Ahh ok ok thats what im looking for ty

leaden hedge
#

yeah it won't disable if you lose control i.e. from a cutscene

#

but it won't run in the main menu

floral furnace
#

im guessing the controller object is only created once in game hence it works like that?

leaden hedge
#

pretty much

floral furnace
#

alright it worked, thanks again

amber citrus
#

is the co-op dream sheild mod a virus?

humble sinew
#

no its just complicated to install
the creator of that mod is even on this server if i am correct

amber citrus
#

thanks

solemn rivet
#

Is it complicated tho?

#

I thought it was just like any other mod?

solemn rivet
#

so, now that berserk mode is tied to keypress, I can keep it as a charm, or make it simply "always available"

#

any ideas?

floral furnace
#

does it provide damage boosts while its active?

solemn rivet
#

yup

#

now it works exactly like A2's

#

you can trigger it on command

#

and it'll quickly drain your health

#

but double your damage

#

like, very quickly

#

1 mask/second

floral furnace
#

well shit the mod im doing is kinda similar, oh well

i guess 1 mask for a huge damage output is a fair trade off

#

do you tend to one hit stuff at that point?

solemn rivet
#

once you hit 1 health the berserk mode is disabled

#

the idea is to toggle it only when you need a high damage output (like, a boss is staggered)

#

and disable it after

floral furnace
#

you didnt fiddle with the soul stuff?

solemn rivet
#

no

#

I thought adding the option to toggle it on/off whenever you want would fix most issues

#

like dying after bosses and stuff

floral furnace
#

nail damages per upgrade stays the same?

solemn rivet
#

yup

#

every damage you do is doubled tho

floral furnace
#

did you change if the player says, use jonis, tho tbh its their lost to begin with cuz they wont be healing the lost health

#

other than that i think the double damage per 1 mask is a good enough punishment imo

solemn rivet
#

I might make you also take double damage while it's active

floral furnace
#

high risk high reward eh?

solemn rivet
#

so it becomes a real risk

#

yeah

#

because otherwise it's just straight up trading "you now have 1HP in exchange for dealing 2x damage for a while"

floral furnace
#

shit man i hope it doesnt look like as if im stealing your idea or anything, i was pondering of doing something similar for a while now lmao

#

but yeah i think the balance counter measures is good enough

#

oh wait nvm i thought berserk fotf 1 mask runs would be a thing, you did say it gets disabled afterwards you reach 1 mask

solemn rivet
#

yeah

#

well, I did this mod for a friend that makes you always have 1 HP, so you can equip FOTF and go wild, but that's basically glass soul tbh

#

what's your mod about?

#

and don't worry

#

I just recently got this idea after discussing it here with some other people

#

about adding A2 as a playable character

floral furnace
#

oh no i was just scared itll be similar to plagarism, nothing much tbh, you start out with half damage and have a rage meter that fills in every time you successfully hit, but it drains slowly after every second, once you do reach 100%, you have 5 secs of doing full damage and your attack speed is all set to 0.01, the fastest possible i think, which what i was also thinking of "what if i receive double damage during rage phase"

#

so basically kinda similar to the entire "high risk high reward" bs etc etc

solemn rivet
#

nah, they are intrinsically different, as far as I'm concerned

floral furnace
#

good to know, dont want to look like im copying or anything

solemn rivet
#

mine is more like a "fury of the gods/titans/sparta" from GOW

#

might I suggest that if you keep up the combo, the bar keeps on filling?

flat forum
#

By the way

#

Damage boost on Berserk's too high

solemn rivet
#

yeah, I had screwed up and it was actually 3.5x instead of 2

flat forum
#

I killed some of the tanliest enemies in like 2 minites

#

Yeah

#

And FoTF's damage boost is?

#

1.5 or 1.75?

floral furnace
#

I might actually do that, thanks for the suggestion, yeah just didnt want to look like its unoriginal lmao

solemn rivet
#

I'd set it to multiply damage by 2 in one place and by 1.75 in another

#

fotf is 1.75

flat forum
#

So x2 isn't way too high

#

Ans how quick os the health drain rn?

solemn rivet
#

1 mask/second

#

but you can toggle it with keypress

flat forum
#

Mhm

leaden hedge
#

what if i toggle for the frame i hit

#

and toggle it off again instantly

solemn rivet
#

you can do that - at least as it is rn

#

to prevent that, I'm gonna add a "charge up"

#

that takes like 1, maybe 2 seconds

#

and

#

if you let your health drain all the way down to 1, I'll make it so you have to do the slow walk

flat forum
#

The same as in Dirtmouth?

solemn rivet
#

dunno yet

#

I'll have to figure out a speed that feels good

flat forum
#

Becayse that one has a different animation

#

What changes sword reach?

#

Like Long Nail and Mark of Pride

#

Is there a certain thing noting how long your nail is?

solemn rivet
#
if (this.mantis && this.longnail)
    {
        base.transform.localScale = new Vector3(this.scale.x * 1.4f, this.scale.y * 1.4f, this.scale.z);
        this.anim.Play(this.animName + " M");
    }
    else if (this.mantis)
    {
        base.transform.localScale = new Vector3(this.scale.x * 1.25f, this.scale.y * 1.25f, this.scale.z);
        this.anim.Play(this.animName + " M");
    }
    else if (this.longnail)
    {
        base.transform.localScale = new Vector3(this.scale.x * 1.15f, this.scale.y * 1.15f, this.scale.z);
        this.anim.Play(this.animName);
    }
    else
    {
        base.transform.localScale = this.scale;
        this.anim.Play(this.animName);
    }```
flat forum
#

This.mantis is Mark of Pride?

solemn rivet
#

yup

flat forum
#

Can a mod be made that sets this.longnail's length (should be the x, right?) to this.scale.x * 5.00f

solemn rivet
#

sure

#

there's even a hefty link to the above class, if you want to try it

flat forum
#

I'll be on my phone for quite a bit and most things won't work through it

#

I'll check it out when I get home

#

(Wait, the link is?)

solemn rivet
#

eh

#

I meant hook

#

sorry

flat forum
#

The hook thing

#

That O had to download for Berserk mod?

#

*I

solemn rivet
#

oh, no

#

I meant that if you want to do that mod yourself, it wouldn't be too hard because there are conveniently placed tools

flat forum
#

And that Hook is for?

#

(By the way, thanks for the explanation, you're being really nice)

solemn rivet
#

for setting the nail's properties, including its size

flat forum
#

The Berserk one I mean

solemn rivet
#

np!

flat forum
#

What does the FSM mod (in the Google drive) do?

#

What can you change with it?

pearl sentinel
#

Folding papers, were you the other one with the enemy randomizer memory crash?

flat forum
#

Yeah

#

Because

#

The 32 bit windows

#

(Probably)

#

@solemn rivet can you please send where I can find the Hook, I decided that I'll try and save it on my phone first and computer after that

#

@pearl sentinel And? Can it be fixed?

#

Or do I just change the windows to 64 bit?

pearl sentinel
#

Maybe it can be fixed

#

Is your video card nvidia?

flat forum
#

Hmmm

pearl sentinel
#

And are you on a laptop?

flat forum
#

I can't check right now, I'm on mu phone

#

But based on memory

#

When right clicking on the wallpaper screen

pearl sentinel
#

And what resolution were you playing at?

flat forum
#

There was an "NVidia" thing

#

I'm on an typical computer, not a laptop

#

Resilution is set to 1280x720

pearl sentinel
#

Ok, but of nvidia there might still be hope

flat forum
#

I'm all earsπŸ‘‚

pearl sentinel
#

Next time you can try and crash it, post the output_log.txt file here and what kind of video card you have

solemn rivet
#

I mean - is there hope if he's running win 86x?

flat forum
#

It's x64

#

But the windows is 32 bit and also limits the 8GB ram to 3.5GB

solemn rivet
#

yeah, 32-bit does that

pearl sentinel
#

I gotta get ready for work, but the short of it is that it's likely an issue with unity games and nvidia cards

flat forum
#

I'll try

pearl sentinel
#

But I need to see the output_log.txt to know for sure

flat forum
#

I do know tho

pearl sentinel
#

The fix is to change a setting in nvidia control panel

flat forum
#

That game crashes because of memory issies when I try enter the Final Boss room

#

I'll make sure when I get home

pearl sentinel
#

Yeah this would also effect the normal game

flat forum
#

@solemn rivet so, where can I find the Hook, I'll try making a copy on my Google Drive

#

From my phone

solemn rivet
#

that's... Not how it works

#

you'll need to create a new solution in VS which references the modding api

#

and then you can use the hook

flat forum
solemn rivet
#

like I said, it has nothing to do with the hooks.dll

#

sorry for the confusion

flat forum
#

I meant this

#

Is there anything here?

#

(sorry for not understanding)

solemn rivet
#

no, no

#

it's fine

#

do you have VS?

flat forum
#

Visual Studio?

#

I don't think so

#

But I can't check rn

solemn rivet
#

nah, it's fine

#

we can do this when you get home

flat forum
#

Ok

#

I'll write when I do

#

Thanks a billion for the help agaon

#

Again

solemn rivet
#

np!

flat forum
#

Ok, I'm home

#

and I just downloaded Visual Studio for the 32 bit windows 10

solemn rivet
#

kek

#

is it installed?

flat forum
#

Yeah

#

it said something about Git

#

I'll ignore it for now

solemn rivet
#

ok

#

so first you'll need to create your solution

flat forum
#

Ok

solemn rivet
#

go File >> New Project >> Class Library

flat forum
#

wait, gimme a min

#

got Visual Studio Code by mistake

#

Visual Studio is downloading

solemn rivet
#

ok!

#

so, turns out that each health amount is its own separate game object

#

_GameCameras\HudCamera\Hud Canvas\Health\Health 11

flat forum
#

And gaining health adds more of the object?

#

Sounds

#

I dunno

solemn rivet
#

no, it simply destroys the previous object and instantiates the new one

flat forum
#

installing is taking quite long for some reason

#

sorry for the wait

#

Meanwhile, does Quickslash function the same way?

#

if (this.Quickslash)

        AttackSpeedSomthing * 0.8
solemn rivet
#

not quite

flat forum
#

form of FPS manipulation?

#

like, it's usually 24 FPS, but with quickslash it's 30

solemn rivet
#

no, it just reduces the cooldown between attacks and ups the animation speed

flat forum
#

I have an empty solution open

#

sorry for taking so long

#

something happened and I don't know what

solemn rivet
#

np

#

so, first, you need to add the modding api as a reference

#

go to project>>add reference

#

and select the modding api

flat forum
#

I can't find Class Library for some reason

#

the Folder is empty

#

lemme check if it's the right folder

solemn rivet
flat forum
#

the Installed Folder is completely empty

flat forum
#

Ok

#

computer needed a restart

#

but it's here

solemn rivet
#

oh

#

good

flat forum
#

Assembly CSharp is the API File, right

#

the API CSharp, not the usual one

solemn rivet
#

yup

flat forum
#

Ok, done

solemn rivet
#

ok

#

so now you need to take a look at some of the existing mods on github to figure out the basic structure

flat forum
#

There's a massive list of things here
Achievement
Achievement Handles
...
AttackTypes
...

solemn rivet
#

umm

flat forum
#

I don't touch any of it

solemn rivet
#

where exactly are you seeing that?

flat forum
#

To the left, when I opened to see what's inside the Assembly-CSharp thing

solemn rivet
#

oh, no need to do that

#

just add it as a reference

flat forum
#

Ok

#

which mod should I use to see basic structure

#

is Berserk goodfor that?

solemn rivet
#

the main things you need to worry about now is to make sure you're using Modding; and that you have a functional Initialize

flat forum
#

(I found an ExampleMod thing)

solemn rivet
#

great!

flat forum
solemn rivet
#

yup

#

so, to do what you wanted, you're going to have to hook to NailSlash

#

like I said, that hook already exists

#

should be something like ModHooks.instance.NailSlashHook or something

flat forum
#

Wait, I'm still going through the example mod

and just to be sure I search for the ModHooks.instance.NailSlashHook where?

solemn rivet
#

inside the initialize method

#

ModHooks.Instance.SlashHitHook this is the correct hook name

flat forum
#

Boopmod uses it iirc

solemn rivet
#

I think so, yeah

#

sorry, I've gotta go now

flat forum
#

Ok

solemn rivet
#

but I'm sure people in here will be able to help you

flat forum
#

I hope so too

#

thanks a lot

#

a lot

solemn rivet
#

how you holding up Folding?

solemn rivet
#

god, I hate these fsms

#

I keep trying to play some charge up animations for the berserk effect

#

but the fsm for the charms which I'm grabbing the animations from have a check that instantly disable the animations

#

ffs

copper nacelle
#

f

thorn comet
rain cedar
#

Just get rid of the fsm tbh

solemn rivet
#

but then I'd have to rewrite the whole charm into code

#

which I actually plan on doing at some point

#

but I don't really have the time rn

rain cedar
#

Isn't this just hiveblood, anyway?

#

It shouldn't be a complicated thing to remake

solemn rivet
#

no, I'm tring to grab the thorn animation

rain cedar
#

Embed the sprites and play the animation yourself

solemn rivet
#

I'm doing that, literally that

#

but the charm's fsm checks every frame

#

"is the charm equipped? No, then don't play that animation"

rain cedar
#

The fsm shouldn't matter if you're handling the animation yourself

solemn rivet
#

here's me trying to play the charge up animation for the SD:

#
knightAnimator.Play("SD Charge Ground");
knightAnimator.PlayFromFrame(0);```
#

where knightAnimator is the tk2dSpriteAnimator component for the Knight gameobject

#

and I've checked, it does have that clip in its library

#

Clip name: SD Charge Ground

#

one of the lines of csharp foreach (var clip in knightAnimator.Library.clips) { Log($"Clip name: {clip.name}"); }

#

same thing for the thorn: Clip name: Thorn Attack

#

I'll try killing the respective fsms and see what happens

rain cedar
#

Probably will break other things

solemn rivet
#

just to check if that's really it tho

#

because if it is... I'm gonna have to cache the animation and instantiate it in my own gameobject

#

which is feasible, but

#

irk

#

well, shit, it's not working

#

weird thing is, it starts playing if I press it while sitting on a bench

#

but does nothing if I'm walking/standing still

rain cedar
#

There is probably something forcing it back to idle/walk anim

solemn rivet
#

yeah...

#

I'll probably have to relinquish control first or something

rain cedar
#

You can use monomod hooks to add logs into the animator

#

So you know better what is happening

solemn rivet
#

oh, that's good to know

#

it makes sense too, because while you're sat, relinquishedControl is true

rain cedar
#

Worth a try

solemn rivet
#

ok, last try before I give up for now

#

listening to Stop and Play using the monomod detours

leaden hedge
copper nacelle
#

πŸ‘€

leaden hedge
solemn rivet
#

kdt's waifu

leaden hedge
open delta
#

LOL

flat forum
#

hey @solemn rivet

#

By the time you wrote it was past midnight and I was asleep

rain cedar
#

Is that fennel?

leaden hedge
#

yes

rain cedar
#

Cool

#

I ran that game for a very short bit but it hurt my hands too much

flat forum
#

Just a short refresher because I was tired

compact sedge
#

super cool kdt

#

idk how you even start programming something like that

flat forum
#

I put ModHooks.Instance.SlashHitHook in the VS I had opened (just kept it there on a separate line so I won't lose it)

and I use it to edit this...
base.transform.localScale = new Vector3(this.scale.x * 1.4f, this.scale.y * 1.4f, this.scale.z)

How?

copper nacelle
#

what is that for

#

MoP?

leaden hedge
#

he wants a big nail

copper nacelle
#

ik but for what charm

leaden hedge
#

i think just as is

copper nacelle
#

o

flat forum
#

No

#

I want to change LongNail's resizing

#

from 1.15 to either 5.0 or 10.0

copper nacelle
#

the gameobject is the knight's nail

#

iirc

flat forum
#

Gradow was really nice and sent me this bit about the Nail's resizing

#

if (this.mantis && this.longnail)
{
base.transform.localScale = new Vector3(this.scale.x * 1.4f, this.scale.y * 1.4f, this.scale.z);
this.anim.Play(this.animName + " M");
}
else if (this.mantis)
{
base.transform.localScale = new Vector3(this.scale.x * 1.25f, this.scale.y * 1.25f, this.scale.z);
this.anim.Play(this.animName + " M");
}
else if (this.longnail)
{
base.transform.localScale = new Vector3(this.scale.x * 1.15f, this.scale.y * 1.15f, this.scale.z);
this.anim.Play(this.animName);
}
else
{
base.transform.localScale = this.scale;
this.anim.Play(this.animName);
}

#

I'm still trying to figure out what each element of the example mods does

solemn rivet
#

so first you need to get the nail objects

copper nacelle
#
            ModHooks.Instance.SlashHitHook += ree;
        }

        private void ree(Collider2D otherCollider, GameObject gameObject)
        {
            gameObject.transform.localScale = new Vector3(gameObject.transform.GetScaleX() * 5f, gameObject.transform.GetScaleY() * 5f, gameObject.transform.GetScaleZ());
        }
#

this half works

#

sometimes it's just normal nail tho

#

idk why

solemn rivet
#

oh, the hook already gives you the gameobject

copper nacelle
#

idk why this isn't working

solemn rivet
#

weird

copper nacelle
#

i mean it is

#

but like sometimes it isn't

#

i'll make a vid

solemn rivet
#

maybe log the go, the collider and when it gets called?

copper nacelle
#

ohh

#

thanks you've solved it

solemn rivet
#

?

copper nacelle
#

it's only big when it hits stuff i think

solemn rivet
#

yeah

copper nacelle
#

which i usually am

rain cedar
#

Well yeah it's SlashHitHook

#

It's when you hit things

flat forum
#

BoopMod uses

solemn rivet
#

you could detour the whole NailSlash thing tho

flat forum
#

SlashHItHook

copper nacelle
#

that's what lightbringer does

solemn rivet
#

yeah, but it makes sense tho, because you only need to play the boop sfx when you hit something, Papers

flat forum
#

Yeah

#

that's what I mean

solemn rivet
#

if you want the nail to always be big, you're going to have to do something else

flat forum
#

but the Nail should be always long

#

there was an "AttackHook" thing

#

iirc

solemn rivet
#

you could try hooking onto that

#

you don't have a reference to the gameObject tho

#

so you'll have to find it

rain cedar
#

HeroController has some NailSlash references which I imagine are on the nail object

#

You would want to hook afterattack and change it there

#

Oh there's just a scale field on NailSlash

#

So yeah HeroController.slashComponent.scale

solemn rivet
#

oh, there you have it

rain cedar
#

Using reflection to get the slashComponent

solemn rivet
#

now I gotta go

flat forum
#

Ok

#

Later πŸ˜ƒ

leaden hedge
copper nacelle
#

nice

rain cedar
#

That's pretty cool

rain cedar
#

There's an invisible wall after hornet

#

In addition to the gate

#

Why would they do this?

leaden hedge
#

stop cheaters

rain cedar
#

I guess I'm a cheater for wanting rando to not trap you in here

leaden hedge
#

its probably just some generic boss thing they did

#

to spawn invis walls as soon as gates start to close so you can't lock yourself out

rain cedar
#

But I'm opening the gate the "proper" way

#

By sending "BG OPEN" event

leaden hedge
#

weird

#

might be something in the dreamer cutscene

rain cedar
#

Probably, yeah

compact sedge
#

Uh does "DeactivateIfPlayerdataFalse" component ignore "GetPlayerBoolHook"?

rain cedar
#

No

#

I don't even know where the dreamer cutscene comes from

#

There's nothing with dreamer in the name and the shiny fsm is identical to other ones

compact sedge
#

Huh well I'm confused then because I have this in my GetPlayerBoolHook, and it causes grimmchild to spawn and everything (object and all), but I can't dreamnail sleeping grimm (the teleporter game object doesn't exist and I get the message saying I need the child).

But if I equip grimmchild for real I can dreamnail him (and his gameobject exists). And the check he uses is "equippedCharm_40"

rain cedar
#

Must be something else getting checked

compact sedge
#

Well there's nothing in any of the scene's FSMs, could it be in the assembly?

rain cedar
#

Doubt it

compact sedge
#

ok I fixed it I'm silly

rain cedar
#

Yeah?

compact sedge
#

well I know the fix intuitively because I wrote a unit test but give me 30 seconds to do some debugging to find the reason

rain cedar
#

Alright

compact sedge
#

I added my mod components in the wrong order so the one that was needed to fake the values should have been loaded first and not second.

#

what I don't get is why the child still appeared

rain cedar
#

I see

compact sedge
#

actually that didn't work. What did was probably the stupidest hack ever.

rain cedar
#

So I created this component to destroy objects that get created some arbitrary amount of time after the scene is created https://pastebin.com/C70CVukU and after a short bit it just spams the second log

#

Which tells me two things:
The coroutine is looping forever somehow
Destroy doesn't actually destroy things

#

Neither of those make any sense

compact sedge
#

hmm

rain cedar
#

Wait why does this even compile?

#

Destroy(string) makes no sense

#

Fucking Unity

compact sedge
#

because if there's a segfault it silently ignores it

#

That's been my experience working with modding

#

use try I guess

rain cedar
#

No need, the problem is I was passing a string into Destroy

#

Why that overload even exists if it just breaks things is beyond me

delicate ether
#

new graphics/enemies in hollow knight? much excite, very want

rain cedar
#

Hey for all you peeps that don't have access to #races-discussion I just put a mostly feature complete randomizer for 1.3.1.5 in the drive folder

#

I had people over there play it to test it and I fixed any bugs they found, as well as ones I found, so it should in theory be good to use

high moat
#

So I know an entire TAS for the game is not possible, but would a frame by frame input mapper be possible if you lock the game at 60 fps?

compact sedge
#

(ignore that there's two baby grimms I fixed that as well I just thought it was a funny screenshot)

rain cedar
#

But I didn't do anything

#

@high moat Yeah, in theory. But we would have to remove all asynchronous actions and seed the RNG somehow

#

It would likely require heavily modding the Unity dll

compact sedge
#

Sure you did, you were my rubber ducky.

#

I need to order a real one

rain cedar
#

You know you can talk to yourself without a rubber duck, right?

compact sedge
#

crap

#

I think you're right

high moat
#

Hmm I only have one specific use case rn, so the answer "Too much work, cba" is totally acceptable.

pearl sentinel
#

Sean, the dreamer scene for hornet and some other stuff is located in the hornet boss scene

rain cedar
#

Yeah, I figured that out a bit ago

#

That's why I needed the delayed object destroyer

#

No idea when that stuff actually loads

pearl sentinel
#

T believe on scene transition there's a check to additively load any scenes with _boss if they exist

#

I*

#

And yeah, if you remove the player data bool checks from hornet before the fight starts, ie on scene load, you can just walk through

#

Though it would skip the item and dreamer scene parts

rain cedar
#

I'm just destroying the dreamer objects and the hornet saver one and it works fine

#

Item is still there and the gate closes/opens

#

Just no cutscene

pearl sentinel
#

Nice

#

Does your thing check for nulls in the cases for our mods together?

#

Since I remove the hornet saver

rain cedar
#

Object.Destroy(null) doesn't actually throw an error, so it's fine

pearl sentinel
#

Cool

rain cedar
#

Oh wait that would be fine even if it did

#

Since I'm destroying it through a coroutine that waits for it to exist then destroys it

pearl sentinel
#

There's also Destroy(object,time)

rain cedar
#

That's good to know

pearl sentinel
#

I always forget about it

rain cedar
#

I think I like the coroutine better since it's more of a sure thing

pearl sentinel
#

Same

rain cedar
#

Although it does mean I'm running GameObject.Find every frame until it finds it, which can't be good for performance

#

Like if your mod destroys it first that would just be running for the entire scene

pearl sentinel
#

Just run a manual deep find

#

Like, using scene manager, get all root game objects

rain cedar
#

Is there a way to just check if a scene is loaded?

pearl sentinel
#

Then iterate over those using get all components in children with true to check disabled game objects

#

Yeah

rain cedar
#

This just sounds like what your modcommon extension FindGameObject does

pearl sentinel
#

Scene type returned from scene manager is a structure with a few flags like isvalid, isloaded

#

Yeah, it is

rain cedar
#

Ok I see

#

I can call GetSceneByName and check isLoaded

#

Probably much cheaper than GameObject.Find

pearl sentinel
#

Yep

#

You might need to wait a frame for things to initialize, I had some weird null refs with unity when just checking is loaded

#

And acting at the first moment it was true

#

But maybe it was my code

rain cedar
#

Yeah, could be either

#

I guess I'll just have to try myself and see how it works

pearl sentinel
#

Heh, a phrase I wish I heard from people more often

#

Well, back to sleep for me. Good luck

rain cedar
#

Night

floral furnace
#

question, is PlayerData.instance.charmCost_x = y is only applied on new game saves?

#

just like how older saves arent affected by any charm notch nerfs after an update?

rain cedar
#

Yeah, those ints are the entire reason the nerfs don't take effect

#

But you can easily change them at runtime

floral furnace
#

ahh thanks

solemn rivet
#

okay, I'll give one last try to making the animations work for berserk mod

#

after that, I'm sorry, but unless someone forks it on git, it won't see much development for a while

#

I have a pretty important exam for my phd tomorrow, and I fly out of town this Friday for a convention... So I won't have much time

flat forum
#

What animation thing

#

Also, lots of luck on your PhD thing and convention on Friday

solemn rivet
#

I'm trying to make it play a short animation to indicate it's being triggered, but I give up

flat forum
#

Ok

#

Lots of luck with the PhD thing then

solemn rivet
#

thanks!

#

hopefully I'll pass!

compact sedge
#

alright time to try building the modding api on the beta branch

#

Do I need to rebuild the other mods as well for it or just the api?

copper nacelle
#

just the api

compact sedge
#

cool

hollow pier
#

dr. gradow

#

big meme

copper nacelle
#

just copy managed folder and name it vanilla

#

hit build

compact sedge
#

wait why is there separate instructions for mac, are the two not compatible?

copper nacelle
#

different folder structure output

#

makes it easier for other people to install

#

doesn't actually matter

#

assemblies are the same

compact sedge
#

cool the newest github version of the modding api fixes controllers on Linux

copper nacelle
#

new version on drive yesterday iirc

#

but nice

compact sedge
#

is there a function like PlayerData.instance.AddGeo that actually shows the geo being added like when you pick stuff up?

copper nacelle
#

HeroController.AddGeo

#

big meme

compact sedge
#

thanks

compact sedge
copper nacelle
compact sedge
#

Besides fixing every bug I found it also adds the following features: being able to fight with grimmchild. Being able to fight without grimmchild equipped. Gain geo after death based on your damage.

It also probably adds its own bugs but we will see.

#

I personally think it's good enough to go on the drive but I would like someone else to test it before I ping Sean about it, at least to confirm it launches on Windows.

rain cedar
#

You don't usually have to ping me to get me to look here

#

I check discord pretty frequently

compact sedge
#

ok

rain cedar
#

Well, guess I'll try it out

compact sedge
#

thanks

copper nacelle
#

also trying it out

rain cedar
#

Got a 106% save?

compact sedge
#

yeah I can post the save I tested it on

rain cedar
#

I deleted my casual save a bit ago on accident

copper nacelle
#

but it's right before nkg

rain cedar
#

As long as it has the stuff that matters

compact sedge
#

this is the one I was using

#

107%

#

and saved in Dirtmouth

rain cedar
#

Cool

copper nacelle
#

uhh

#

i went into the grimm tent and the way to nkg is blocked

rain cedar
#

It's open for me on the 107% save