#archived-modding-development

1 messages · Page 467 of 1

rain cedar
#

When you can't call the constructor easily for whatever reason

solemn rivet
#

ok

#

hpbars are now customizable

#

in the same way as customknight

safe hamlet
#

weird flex but ok

solemn rivet
#

(I basically stole your code sean, no shame)

vapid crag
#

noice

solemn rivet
#

I still don't see mawlek in your pfp

#

Sean

#

Since you're here

#

Why WWW

sage holly
#

Im back

unborn badger
#

who

rain cedar
#

async

solemn rivet
#

makes sense

young bobcat
#

6

sage holly
#

5

copper nacelle
#

no

solemn rivet
#

56

#

make the first official alternative hpbar skins

nimble lake
#

you don't really see sean here anymore, do you

unborn badger
#

nope

#

haven't seen him in so long

#

come back to us sean

#

we miss you

solemn rivet
#

ara

#

make the first official custom hpbar skins

unborn badger
#

is that supported now

solemn rivet
#

yes

unborn badger
#

sick

solemn rivet
#

since 18h ago

unborn badger
#

i assume it's similar to how customknight works

solemn rivet
#

should be easier

#

it creates the default files the first time it launches

#

and puts them in a folder, similar to customknight

#

so you can replace them etc.

#

and if any of the files is missing, it just replaces them with the defaults

#

so it always works

unborn badger
#

this is cool FeelsOkayMan

solemn rivet
#

make new skins

unborn badger
#

i am

#

gradow

copper nacelle
#

the perfect skin

#

a black png

solemn rivet
#

you could make a void-y hpbar

unborn badger
#

gradow

#

i require assistance with the custom bar

#

like it does work

#

but it looks weird

copper nacelle
#

did you change the image sizes

unborn badger
#

no

copper nacelle
#

you are bad

#

qed

unborn badger
#

maybe aseprite exported weird

#

ffs

#

but why tho

#

how

#

oh i'm stupid

#

it's because i just exported from ol

#

so it had the size of ol

copper nacelle
unborn badger
#

see

#

sf is right

copper nacelle
#

he pressed export

solemn rivet
#

Very good ching

unborn badger
#

can't be assed to do boss bars rn tho

solemn rivet
#

I made the bossbars purple

ornate rivet
#

ew pixels

solemn rivet
#

I can make it higher res

ornate rivet
#

give it the tc curls

solemn rivet
#

Ok so I'm gonna make it take in high res png

#

So it looks better scaled down

ornate rivet
#

@jolly oriole
what are neighbor scenes and how do I change them?

ornate rivet
#

I found out that the additive loading isn't the problem, at least not entirely.
When I additively load the Isma scene, the active scene changes to the Isma scene on the next scene transition instead of GG_Workshop. So then, when the transition after that transition happens, the active scene becomes GG_Workshop, so the active scene is always one step below the true scene.

#

Not sure how to fix this sadcowgrub

ornate rivet
#

is there something in particular that makes pausing, dreamnailing, cdashing, and other stuff stop working?

fair rampart
#

is it not RelinquishControl?

ornate rivet
#

relinquish control removes all control, no?

#

the knight can still move and jump and attack

safe hamlet
#

pepega moment

ornate rivet
#

it always happens when I mess up scene transitions

solemn rivet
#

56

copper nacelle
#

gradow

solemn rivet
#

can I resize a Sprite?

copper nacelle
#

Idk if you can do it in place

#

But you could resize the image at runtime and just create a new sprite

solemn rivet
#

I'm trying to find the doc for CanvasUtil

#

u know where it is?

safe hamlet
#

bruh google

copper nacelle
#

n/a

#

It's in xml docs above the functions

#

The .xml with the api should have it as like actual docs kinda

solemn rivet
#

ok

flat forum
#

who changed the sprite thingy on EnemyHPBars smh

flat forum
#

why am I being maggotprimed

copper nacelle
#

because you are shaking your head

#

at customizable sprites

#

with the default being unchanged

ornate rivet
#

how do I turn the left side into the right side

#

the game thinks it is still transitioning

#

that's why some input doesn't work

ornate rivet
#

kek

safe hamlet
#

feelsclownman

ornate rivet
#

yall are supposed to know everything

#

It used to work perfectly fine, I don't understand why this happens now.

#

To clarify, this happens when player dies after entering a gg boss scene from a cloned statue

#

I've done this more than 3 other times before (fennel, propeller knight, pale champion, etc) and this never happened

fair rampart
#

I just remember something like this happening when I kill myself in the HoG

#

I respawn at the DD statue and can't do anything but move and slash

ornate rivet
#

I spawn at the right spot

#

ok I partially figured it out

#

doing DontDestroyOnLoad on the statue does this

#

no idea why but oh well

#

cant believe I spent 3 days on this bs

copper nacelle
#

1 million lines

unborn flicker
#

Remember when modlog was usable? beesive

copper nacelle
#

usable if i disable benchwarp and debug 😤

#

it'd actually be neat if i added suppressing errors which are repeated more than like 30 times with the same text into like qol

#

I uploaded async preloading for the api to the drive fwiw

#

so if you have mods w/ preloads that should be an okay amount faster

ornate rivet
#

epic

#

mmmmm, it doesn't feel faster

copper nacelle
#

get good

#

it is a few seconds faster for benchwarp

solemn rivet
#

ching

#

hpbars updated

#

should support high res textures now

#

but they should still fit roughly into the aspect ratio of the default ones

unborn badger
#

nice

solemn rivet
#

for the boss thingies, it's roughly 100:3

flat forum
#

I'm now irrationally angry it's not 33:1

ornate rivet
#

Hi now irrationally angry it's not 33:1

#

I am saleh

flat forum
#

I'm going find a way to make glue out of human corpses and you are my first subject

unborn badger
#

glue me papers

ornate rivet
#

hot

grizzled steppe
#

In scared

flat forum
#

Out scared

cloud latch
#

You know the person doesn't have to be dead for you to make glue out of their parts.

grizzled steppe
cloud latch
#

Offhand would anyone know if the input controls/code are available to look at?

#

I want to make a knight in an independent project, give it different/extra abilities but the fundamentals of movement/jumping I want to keep the same

#

Or will I have to eyeball it

cloud latch
#

Think I got it

#

Part of me was expecting hours to do find something, thanks for the apidocs page 😄

solemn rivet
#

well

#

you'll find some of it is not readily accessible

#

but oh well

cloud latch
#

I think I can learn what I need from it

solemn rivet
#

kinda

#

some of it is not in code tho

gilded lotus
#

start all tracks at the same time some with 0 volume then ramp the volume when certain criteria are met

safe hamlet
#

that's epic

#

very nice gradow

#

when are you gonna finish my mod tho

solemn rivet
#

shush

safe hamlet
#

how do you do that btw

solemn rivet
#

what

safe hamlet
#

like different shape healthbars

solemn rivet
#

it's all part of the mod

safe hamlet
#

o yea you did that last stream

#

my memory be like

solemn rivet
#

sid

#

wanna help me debug

safe hamlet
#

nah i gotta read like 100 pages now

solemn rivet
#

bruh

#

imagine

#

reading

#

in 2020

safe hamlet
#

bruh i don't wanna fail this quiz

young walrus
#

Gradow. Wanna help me debug

solemn rivet
#

sure

#

what's up mick

safe hamlet
#

mick debug his mod

#

assume mick is me for the night

young walrus
#

I'll try tomorrow. And he can look at mine tomorrow. And figure out how to destroy the loaded song

#

So it no leave room

solemn rivet
#

do you have a github

young walrus
#

I do. But it's not on there

solemn rivet
#

sad

young walrus
#

I'm in bed and gotta be up early. But tomorrow. ;)

solemn rivet
#

nvm I fixed it sid

#

u suck sid

#

kisses

young walrus
#

Wow

solemn rivet
#

gradow

safe hamlet
solemn rivet
#

updated the mod

#

this is the persona 5 hpbar skin I was using on that vid

young walrus
#

Snapshots are just mixer settings

#

So yeah. All tracks are playing at start. And at new stages, some volumes are increased from 0

#

Do they have different names?

#

A full library would be helpful. Cuz that may solve my boss music issue too

#

And knowing what each mixer channel is would be great too

#

Cuz I'm putting music in like 3 channels. One of which may be the BG music channel that I'm overwriting unnecessarily

gilded lotus
#

Sealed Vessel phase 3+4 - S59-55 Final Stage (1-5)

#

should be the names

#

yeah i thought that was what you were needing my bad 😔

young walrus
#

Lol

#

It's probably like 4. Normal, quiet, excitement (or something similar), and boss

floral furnace
#

is this the side effect of eating too much gummy vitamins within an hour

ornate rivet
#

perhaps

gilded lotus
#

Gleamlight’s lookin good Saleh.

ornate rivet
#

I have been discovered

drifting oracle
#

where can I find the ak47 mod

#

I checked them but don't know which ones of them it is

gilded lotus
#

hollow point

drifting oracle
#

thank you

gilded lotus
#

enjoy

placid river
#

I have tried to compile the code of Randomizer 3 in GitHub to a dll file and when I tried to use this I found everytime I walked through RestingGrounds_04,I will be trapped by the Binding Shield.I want to ask if anyone could tell me what happened and how to solve it.I will be very grateful.

young walrus
#

Why not just use the already compiled one

placid river
#

Actually I'm trying to modify the language file to make it easier to understand for other players in my country,so I need to compile a new file.

unborn flicker
#

Then you should make a fork of the randomizer and merge commits as they're added to the main branch

placid river
#

I would like to do it if I can solve the bug

stuck sun
#

hello, where can i find the tutorial in how to put mods in HK?

flat forum
#

@polar sun here

polar sun
#

So how do i add references

young walrus
#

On the right, in references

#

Right click, add reference

polar sun
#

A few arn't present

young walrus
#

Then choose the modding API csharp assembly

polar sun
#

they have the little yellow warning icon

flat forum
#

adding a reference adds the file to a folder, right?

#

like

young walrus
#

Yes

flat forum
#

in bin/Debug/whatever

fair rampart
#

re add them

young walrus
#

You have to tell it what the modding API is

flat forum
#

should dropping the file there directly work?

young walrus
#

And where to find it

polar sun
#

ok wait slow down, right click, add referances, then do what?

young walrus
#

Browse to the modding api

#

Which will be an assembly_csharp.dll

#

Named the same as the original

#

And in your game files

polar sun
#

where?

flat forum
#

in steam

#

steam/common/downloads/hollow knight

#

iirc

#

or something like that

#

(was there a command that showed the path?)

unborn badger
#

steam/steamapps/common/Hollow Knight

polar sun
#

Ok, well that cut the number of errors in half

flat forum
#

yeah you need a few refs

#

forgot which though

young walrus
#

Modcommon next

#

Should be in the mods folder

flat forum
#

there was one more I think

polar sun
#

ok that got rid of one single error

#

down to 76 now,

flat forum
#

what code did you put in the program?

#

also there should be a Using [stuff] at the top

#

which might help

polar sun
#

This is what i'm looking at, disreguard the error on Modcommon. And i didn't add any code, i commented out one line

young walrus
#

Need to add unity reference files

polar sun
#

how? i do i have to install that unity workload in the installer?

young walrus
#

No

#

Add reference

#

And it's in the same location as the assembly csharp file you added

polar sun
#

oh

#

ok i oh'd a little too soon, there are many many files similar to what i'm looking for, but UnityEngine.SceneManagement.DLL and UnityEngine.Object.DLL are missing

#

and who knows how much else

young walrus
#

Yeah. Each contain a lot.

#

What are the dll choices that say unity

polar sun
#

theres a large list

young walrus
#

You could literally just add everything to be sure

#

Yes I know

#

I just don't remember them

polar sun
#

Damnet, I

young walrus
#

So screenshot them

polar sun
#

Theres a list of references he used

young walrus
#

So I can see

polar sun
#

I just literally need to add the ones he used

young walrus
#

Yes

polar sun
#

there, now i'm at 72, still getting an error for using Object = UnityEngine.Object;, specifically the error is only under the second Object, it can't find that even with all references in place

young walrus
#

And you have unity engine and unity engine.ui?

polar sun
#

yep, they're there

young walrus
#

What do the errors say

polar sun
#

The type name 'Object' could not be found in the namespace 'UnityEngine'. This type has been forwarded to assembly 'UnityEngine.CoreModule

#

oh wait

#

ok that got me from 72 errors down to 4

young walrus
#

Probably related to what you changed?

polar sun
#

i didn't read the proper error report till i had to copy it xD

#

No, the code i commented out edited the number stored in a variable (the code that actualy does the increasing of the enemy health), now it just stays the same, but is still treated the same

#

ok it wanted a couple extra references

#

down to one error

#

Source file 'C:\Users\ComputerName\Downloads\BonfireMod-master\Properties\AssemblyInfo.cs' could not be found.

#

there isn't even a properties folder

#

how to i get/generate this file?

#

or is this something special the dev added?

polar sun
#

I think i finally did it,

#

Yep, it's working, but now theres a wierd glitch @solemn rivet Whenever i sit at a bench it's unlocking every achivement i would unlock in my characters current state (Having at least one charm, having one extra mask, ect) sound familiar? any idea why that may be happening?

#

Its like whenever i sit at a bench all my achivements are removed (and then the game immediatly updates and gives me back everything i achived in that save file)

#

oh my nail damage is lower then it should be too,

#

I have the channelled nail but i have the damage of the sharpened nail

#

What was that about a debug thing? I can just set my base damage back up to 13

#

unless it resets every time i sit at a bench

#

i'm looking at public int NailDamage(int totalStr) => (int)Math.Round((double)(5 + 2 * PlayerData.instance.nailSmithUpgrades) * Math.Pow(1.25, Math.Log((double)totalStr, 2.0)));, could this be incorrectly applying the wrong damage number based on the amount of nail upgrades?

flat forum
#

which mod are you trying to work with?

#

and edit?

polar sun
#

bonfire still

flat forum
#

ah

#

hmm

#

send GitHub link pls

#

also Debug can update nail damage

polar sun
#

I only commented out one line so this is the default behavior of the mod

flat forum
#

yeah it's kinda outdated

polar sun
flat forum
#

surprised it doesn't break completely in the first place

#

anyways pretty sure Bonfire overwrites the usual nail damage so you'd need to update with debug quite often for it to work

#

like, might be a check run on benches

#

wait is the damage set on HitInstance >.>

#

if achievements get reset when sitting on a bench check these 2 parts

polar sun
#

So i updated my damage by 4 with the debug mod and now it seems to be doing the correct amount of damage, just displaying it wrong, but i mean until i can get my hands on the modern code i'm perfectly happy with this

#

Yeah i solved the nail damage problem. part of line i posted earlyer public int NailDamage(int totalStr) => (int)Math.Round((double)(5 + 2 * PlayerData.instance.nailSmithUpgrades) * Math.Pow(1.25, Math.Log((double)totalStr, 2.0)));, it's doing 2 * nail upgrades, when every nail upgrade gives you 4 points of damage, not 2, that was the problem and now it's correct!

drifting oracle
#

?mods

drifting oracle
#

I downloaded the installer, and when I try to open it it says ''windows has protected the computer'' translated from swedish which is why it might be wrong in english lol

young walrus
#

So tell it it's fine

sage holly
#

so...what do I have to delete to retry and install the modinstaller

#

or is there a manual way to install the mods?

young walrus
unborn flicker
copper nacelle
#

EndGGBossScene

#

is an Fsm Action

ionic sapphire
#

is there any information available what exactly the unofficial hollow knight patch does?

solemn rivet
#

nothing

#

just don't use it

fair rampart
#

is there a way to hide the list of mods in the title menu?

copper nacelle
#

no

fair rampart
#

I'm guessing that's why no one's made a blank title screen mod yet

#

or that I haven't seen

copper nacelle
#

could probably destroy the go i mean

#

there's just no option you can toggle or anything

#

bruh

rain cedar
solemn rivet
#

don't do it

proven flume
#

dunno if this is the appropriate chat but is there a tutorial about how to create your own custom knight?

copper nacelle
#

it is just like photoshop/gimp

proven flume
#

Oh, thought there was some gimmick to it

#

Is there a base-file?

rich atlas
#

@proven flume should be a whole guide in the pins. But you just swap an edited sprite sheet for the old one.

proven flume
#

okie, thanks

hasty fractal
solemn rivet
#

Pog

#

That's amazing!

hasty fractal
#

Thank you!

flat forum
#

amazing job, Ink!

#

happy to see this finished

haughty leaf
#

looks great i will use the geo with the grimm boy

solemn rivet
#

Could use some colour ngl

#

But looks good

#

I like the style

flat forum
#

add 2nd layer of keys later too

ornate rivet
#

damn

cedar wolf
#

688889246

#

Version 3.03c

#

Seed number 688889246

#

Easy mode, Super Junk Pit

#

Not open mode, no starting items

flat forum
#

@jolly oriole organs have multiple layers of keys

#

usually 2 or 3

#

or multiple keyboards?

#

I dunno what range it covers so I didn't want to call it a straight up keyboard

flat forum
#

hmm

polar sun
#

Hey @solemn rivet I've been toying around with that source you gave me a bit and, a friend and I can't figure out what the "Extra Masks" stat is suppose to do, looking at the code it seems pretty straight forward, it's suppose to give you blue masks that are applied whenever you sit at a bench. like Lifeblood Core, but in my compiled version and your updated version from ModInstaller, no such masks are applied when sitting at a bench or applying a levelup. I just stopped mid sentance to try applying a levelup with your updated version of the mod and i didn't get the extra masks, but the two masks from Lifeblood Core DID refresh so i can see thats SUPPOSE to be happening,

polar sun
#

Really if anyone can tell me why BlueHealthHook isn't working that would be super helpful. I tried flat out giving it a raw number for debug purposes and it just won't apply blue masks, I followed the example at radiance.host directly except I just gave it a raw 10 with no ifs to see if it would apply and it won't

#

By all means as far as i can tell it should be working

polar sun
solemn rivet
#

Yup

#

The game broke it at some point

#

That's one of the reasons why I don't care about bonfire

#

So much shit broke as the game kept getting updated that I just stopped caring

#

Bonfire first came around before the Grimm Troupe patch

#

Same thing for blackmoth

#

The difference being that blackmoth is actually fun to play, as opposed to bonfire

polar sun
#

Oh so giving a custom amount of lifeblood masks is just impossible now

#

And nobody has fixed it? Even though the game hasn't been updated in around a year or so now?

solemn rivet
#

We all stopped caring

#

And since we mostly haven't had new modders...

heady plank
#

Makes sense.

solemn rivet
#

I mean

polar sun
#

I was wondering why radiance.host was so incomplete

solemn rivet
#

If you think about it, this game is 3yo

polar sun
#

I mean i probably would have been a new modder if this wasn't the case

solemn rivet
#

And most of us have been here for most of that time

polar sun
#

that kinda sucks, i hope the story is different for Silksong

solemn rivet
#

Nah

#

It'll happen even faster

#

Because we're already tired of the game at this point

#

Silksong might change that a bit, but not by much

#

Unless it's a complete and utter revolution, which it might be

#

But I doubt

#

Graig has told us early on that fsms are staying

#

So I doubt things will be much different

#

But, that said, don't let that stop you from modding the game

#

Just pretend the documentation in radiance.host doesn't exist

#

It's not really that useful anyway

#

Mick here is just started modding the game, and I doubt he spent too much time reading the docs at radiance.host

heady plank
#

How was the code discovered in the first place?

solemn rivet
#

wdym

heady plank
#

Well, someone had to figure out how it worked to begin with

#

someone had to figure out the code.

#

So how was it done?

solemn rivet
#

We just dnspy it

#

It decompiles the assembly

#

That's all there is to it

#

The first mods would just do that

#

Decompile and edit the assembly directly

#

753's lightbringer, KZ's debug and bossrush, my blackmoth and bonfire...

#

But the issue with that was that mods weren't compatible

#

You'd need to code a mod combining two mods if you wanted to play them together

#

That, and a few other issues led to the creation of the api

#

And now we have the api, which is a modified assembly of the game, which loads the mods directly

#

So we don't need to directly alter the game's code anymore

heady plank
#

thats true, but it looks like some mods, including yours, is using outdated code. How would one get access to the new code?

solemn rivet
#

Well

#

Just use dnspy to look into the game's code really

#

We now have On. hooks, which are great

#

And the fsm viewer made by nes also really helps when modding fsms

heady plank
#

hmmmm

solemn rivet
#

If you're trying to do something, just ask here basically

#

People in here are generally very helpful

heady plank
#

ok

#

im not good when it comes to coding, but there the code has been changed from what i am seeing

#

this is the old code documented online

#
public int BlueHPRestored(){
    int retValue = 0;
    if(PlayerData.instance.GetBool("equippedCharm_8")) retValue += 2;
    if(PlayerData.instance.GetBool("equippedCharm_9")) retValue += 4;
    return retValue;
}```
#

And this is the new code im looking at

#
        // (add) Token: 0x060044AF RID: 17583 RVA: 0x00188FBC File Offset: 0x001871BC
        // (remove) Token: 0x060044B0 RID: 17584 RVA: 0x00188FF4 File Offset: 0x001871F4
        [HookInfo("Called whenever blue health is updated", "PlayerData.UpdateBlueHealth")]
        public event BlueHealthHandler BlueHealthHook
        {
            add
            {
                string str = "[";
                Type declaringType = value.Method.DeclaringType;
                Logger.LogDebug(str + ((declaringType != null) ? declaringType.Name : null) + "] - Adding BlueHealthHook");
                this._BlueHealthHook += value;
            }
            remove
            {
                string str = "[";
                Type declaringType = value.Method.DeclaringType;
                Logger.LogDebug(str + ((declaringType != null) ? declaringType.Name : null) + "] - Removing BlueHealthHook");
                this._BlueHealthHook -= value;
            }
        }```
flat forum
#

why is the new code ugly

solemn rivet
#

because

#

it's caching calls

#

so you can have multiple mods use the same method

#

and they don't destroy each other

heady plank
#

There are a lot of....things, that refer to blue health

solemn rivet
#

not really

heady plank
#

to me, its a lot

solemn rivet
#

if you'll notice, those are all hooks

#

so they're not actually methods of the game

#

they're hooks we use to get the game's method

heady plank
#

hmmm

#

i am looking at the assembly dll file. i assumed thats the game file....i guess im wrong

solemn rivet
#

it is, kinda

#

it's the api

#

the modded assembly file I was referring to earlier

heady plank
#

so how would i find the games own code?

young walrus
#

Dnspy the vanilla assembly

#

Or any other file

solemn rivet
#

just verify your game files on steam first, to get the vanilla assembly back

heady plank
#

gog, not steam

solemn rivet
#

same difference

#

then make a copy of it before running the modinstaller again, because it replaces that file

#

Manage install -> Verify/repair

heady plank
#

ok, im looking at the vanilla assembly file

#

for blue health in player data

#

it looks like this

#
    public void UpdateBlueHealth()
    {
        this.healthBlue = 0;
        if (this.equippedCharm_8)
        {
            this.healthBlue += 2;
        }
        if (this.equippedCharm_9)
        {
            this.healthBlue += 4;
        }
    }```
#

it is indeed different to what is documented online

public int BlueHPRestored(){
    int retValue = 0;
    if(PlayerData.instance.GetBool("equippedCharm_8")) retValue += 2;
    if(PlayerData.instance.GetBool("equippedCharm_9")) retValue += 4;
    return retValue;
}```
solemn rivet
#

yeah

#

but you do realize they're different methods right

#

one is UpdateBlueHealth() and the other is BlueHPRestored()

heady plank
#

That makes all the difference.

#

From what i see, they changed it so it is blue health rather than blue hp, why?........i dont know

#

but now anything that referes to blue masks, is defined in game by Blue health, not by Blue HP.

solemn rivet
#

no, that's not the issue

heady plank
#

well, i did my best.
So, whats the issue then?

solemn rivet
#

well

#

BlueHPRestored doesn't exist

#

that's just an example mod

#

it's not something that's actually in the api

heady plank
#

huh.

solemn rivet
#

if you search for it in the modded assembly, it doesn't find anything

heady plank
#

so the api needs a update then?

solemn rivet
#

no

#

why would it?

#

so, on bonfire here's how bluehealth is set:

#

so let's take a look at bluehealthhook

#
// Modding.ModHooks
// Token: 0x0600453A RID: 17722 RVA: 0x0018BF64 File Offset: 0x0018A164
internal int OnBlueHealth()
{
    Logger.LogFine("[API] - OnBlueHealth Invoked");
    int num = 0;
    bool flag = this._BlueHealthHook == null;
    int result;
    if (flag)
    {
        result = num;
    }
    else
    {
        Delegate[] invocationList = this._BlueHealthHook.GetInvocationList();
        foreach (BlueHealthHandler blueHealthHandler in invocationList)
        {
            try
            {
                num = blueHealthHandler();
            }
            catch (Exception ex)
            {
                string str = "[API] - ";
                Exception ex2 = ex;
                Logger.LogError(str + ((ex2 != null) ? ex2.ToString() : null));
            }
        }
        result = num;
    }
    return result;
}```
#

what updated vanilla assembly?

heady plank
#

ignore me

#

ok

solemn rivet
#

and here's where the hook is called:

#
    // Token: 0x060030F2 RID: 12530 RVA: 0x00103E80 File Offset: 0x00102080
    public void UpdateBlueHealth()
    {
        this.healthBlue = ModHooks.Instance.OnBlueHealth();
        this.orig_UpdateBlueHealth();
    }```
#

so it sets the player's bluehealth to whatever the hook tells it should be, and then it runs the default behaviour

heady plank
#

ok

solemn rivet
#
    // Token: 0x0600311D RID: 12573 RVA: 0x0010BD64 File Offset: 0x00109F64
    public void orig_UpdateBlueHealth()
    {
        this.SetIntSwappedArgs(0, "healthBlue");
        if (this.GetBool("equippedCharm_8"))
        {
            this.SetIntSwappedArgs(this.GetInt("healthBlue") + 2, "healthBlue");
        }
        if (this.GetBool("equippedCharm_9"))
        {
            this.SetIntSwappedArgs(this.GetInt("healthBlue") + 4, "healthBlue");
        }
    }```
#

this is the default behaviour

#

and there is the issue

#

the first thing the default behaviour does is set "healthBlue" to 0

#

so it pretty much ignores the hooks that came before it

heady plank
#

thats what i was thinking

#

i told jacob that i think the game was over riding the hook. seems like i was right

solemn rivet
#

this is a very easy fix using On. hooks

heady plank
#

oh?

solemn rivet
#

just hook On.PlayerData.UpdateBlueHealth, tell it to run orig and then do whatever it is you need to do

#

that way, you're adding the masks after the default behaviour

#

so it shouldn't reset it to 0

heady plank
#

cool.............if only i knew how to do that

solemn rivet
#

I'll brb

#

if you still need help by then, I can try to help you

#

but first, if you're on windows, you gotta have some way to compile a dll

#

so visual studio 2017 with .net workload

heady plank
#

i am on windows.....but i dont have that. give me one minute

#

will 2019 work?

solemn rivet
#

I think so

heady plank
#

and now i wait for it to install.....

solemn rivet
#

what is it exactly that you want to do?

heady plank
#

you said i needed a way to compile dll files, and you suggested visual studio....and i dont have it, so im getting it now

solemn rivet
#

I mean

#

modding-wise

#

what do you want to achieve

heady plank
#

i simply want to fix the bonfire mod, as i really think its cool. it opens up doors to challenges, like luck only run, or a magic only run, and etc.

solemn rivet
#

ok

heady plank
#

and done.
So, what is it i need to do to fix the blue health issue?

solemn rivet
#

first you're going to need to clone the github repo

#

if you don't know how to do that, there's a nifty button on the right

heady plank
#

ok done

solemn rivet
#

ok, now you'll need to open the project using vs

#

or just double click the .sln file

polar sun
#

Yeah this is getting to be too much for my little brain

#

I didn't even notice the conversation was still going

solemn rivet
#

it's not really that hard

#

I'd recommend you learn it as well if you guys are gonna try and balance it

heady plank
#

i dont see a sln file

polar sun
#

.csproj

solemn rivet
#

oh, sorry

heady plank
solemn rivet
#

yeah, use the csproj

heady plank
#

ok

solemn rivet
#

but

#

it seems you already opened it in vs

#

so that's good

#

so now you'll want to edit the BonfireMod.cs file

heady plank
#

ive done a little coding before, but it was a LONG time ago, and it was in terraria

solemn rivet
#

you should get plenty red squiggly lines telling you there's something wrong

heady plank
#

no, no red squiggly lines

polar sun
#

..?

solemn rivet
#

can you show me your screen?

heady plank
polar sun
#

it looks like it didn't update yet

#

Its still not recognizing anything

solemn rivet
#

what happens if you try to build it?

#

yeah

#

because right now you're missing the references

heady plank
#

ok.... so just build the cs file?

polar sun
#

just go under build and hit build :p

solemn rivet
#

yeah

#

it's not gonna work anyway

polar sun
#

on the top where file edit view are

heady plank
#

C:\Users\Administrator\Source\Repos\BonfireMod\CSC : error CS2001: Source file 'C:\Users\Administrator\Source\Repos\BonfireMod\Properties\AssemblyInfo.cs' could not be found.

solemn rivet
#

yup

#

I wonder if you need a solution for it to work... Lemme try it

polar sun
#

It generated a solution file when i built it

solemn rivet
#

can you walk us through the steps you took

heady plank
#

me?

solemn rivet
#

jacob

polar sun
#

So basically you wanna go to the little References bar on the right where all the files are listed right click and add a reference and browse, go into the Managed and add all the DLLs that the errors are complaining about, then when all the references are added it should compile, I believe it was when i compiled for me that it automatically generated a solution file

solemn rivet
#

as you can see, mine is red all over

#

yup

#

what was bothering me is that I cannot see a 'references' tab on their screenshot

#

maybe I'm just too used to rider and forgot how vs works

polar sun
#

but it is complaining about the assemblyinfo, which i also had to deal with

#

I had to go into the directory for the project, manually create a properties folder, go to the properties tab on the right where all the files are, click Assembly Information..., just give it a name and hit okay, that will generate that file

heady plank
#

what

polar sun
#

It needs that assemblyinfo.cs file, that needs to be generated

heady plank
#

the vanilla or modded one?

polar sun
#

I'm not sure what that means, its for the project itself

#

so that Visual Studio can compile it

#

or "assemble" it

#

You generate it in visual studio with said project open

#

make sure you've made a properties folder in the project's directory, and then go to the project's properties, Assembly Information, just give it a name and hit ok, that should generate that file and put it where it belongs

heady plank
#

ive created the properties folder....now i dont know what to do

polar sun
#

There should be a Project tab at the top in visual studio, and at the bottom of that list theres a BonfireMod Properties

#

There should be a button in properties labled "Assembly Information...", click that, there will be a lot of text fields, just fill out the top name, and hit okay, and that should be it

heady plank
#

theres a project tab

#

and all it has

#

is export template

polar sun
#

no other options, even grayed out?

heady plank
#

none

polar sun
#

Is the Bonfire project open in that specific window?

heady plank
polar sun
#

Its not showing properties or references on his right hand either

naive token
#

wait is someone gonna try to fix the Bonfire mod?

polar sun
#

He's pretty determined,

solemn rivet
#

2 someones

naive token
#

kekw

heady plank
#

im very stubborn

naive token
#

good luck it's one of my favorites combined with the Enemy Randomizer

#

which is also broken af lul

polar sun
#

Maybe we can work together since your vs is acting wierd and mine is all set up but i'm just having problems understanding the new code i have to use

heady plank
#

That sounds good to me

solemn rivet
#

try this R-Blitz

#

just unzip this and run the sln file

#

if it works, then just add the relevant references

#

(I referenced every single dll in the Managed folder cause I'm lazy af)

#
  • ModCommon
heady plank
#

//fair enough

solemn rivet
#

sean

#

why are you 56

heady plank
#

what

solemn rivet
#

I know you're here sean

#

don't pretend you aren't

#

I can smell you

heady plank
solemn rivet
#

great

#

expand the explorer on the right to see the .cs files

#

now add the references and hit build

#

if it builds properly, then we're ready to go

heady plank
#

so right click on references, and hit add references?

solemn rivet
#

yup

heady plank
solemn rivet
#

now Browse and select the dlls in the managed folder

polar sun
#

Yep! then browse, then you wanna add all the DLLs in Hollowknight data > Managed that it's asking for

#

Grad you said earlyer "just hook On.PlayerData.UpdateBlueHealth, tell it to run orig and then do whatever it is you need to do
that way, you're adding the masks after the default behaviour
so it shouldn't reset it to 0" did you explain how to do that?

heady plank
#

in the vanilla managed or modded managed?

solemn rivet
#

that should be the explanation

#

there's no modded/vanilla managed

#

it's only a single folder blitz

#

but, Jacob

#

go to Initialize

polar sun
#

I hardly know what your even talking about here, what do you mean "tell it to run orig"

solemn rivet
#

type On.PlayerData.UpdateBlueHealth += and then hit tab

#

it'll create a placeholder method for you

heady plank
solemn rivet
#

don't add those

#

only the unity

#

playmaker

#

and assembly

heady plank
#

thats the answer i wanted. thank you

polar sun
#

Alright grad

solemn rivet
#

in my case I would select the third option "Create method"

heady plank
#

ok, i added the references

polar sun
#

yeah i typed that and hit tab, it created the placeholder, what do i do with that?

solemn rivet
#

you know what hooks are Jacob?

polar sun
#

I have a basic understanding of them

solemn rivet
#

try building it now Blitz

#

ok, so

#

these are special hooks

#

the On. hooks are hooks created for every single method in the game

#

they run whenever that method would be called

polar sun
#

alright, still with ya

solemn rivet
#

you'll see that this specific one has orig and self parameters

heady plank
#

build solution or mod?

solemn rivet
#

so if you want to just run the game without anything, just type orig(self); inside that method it just created for you

#

build solution

heady plank
#

ok, and also

polar sun
#

It doesn't know where those are you wanna add those referances

solemn rivet
#

add those two

#

modcommon is in Mods

#

galaxycsharp is in managed

polar sun
#

also building the solution is building the mod, its compiling it into a dll

solemn rivet
#

^

wicked python
#

Someone Can help me to use this mod instaler?

heady plank
#

so then i wanted the modded one.

solemn rivet
#

what Blitz

polar sun
#

@heady plank the modded what?

wicked python
#

Ok

heady plank
#

i have 2 versions of hollow knight, the modded one, and a unmodded one

#

from what i can tell, the assembly dll are different for each of them

#

so ive been asking
should i use the vanilla one, or the modded one?

solemn rivet
#

modded one

heady plank
#

Thank you

solemn rivet
#

but you see

#

we didn't have that information

#

that you had two installs

#

so there was no way to know what you were talking about

heady plank
#

fair enough

solemn rivet
#

now, Jacob

#

if you'll recall from the screenshots I posted earlier

#

bluehealth is just a field in PlayerData

#

so we need to set it after running orig

heady plank
solemn rivet
#

did it compile?

polar sun
#

so if i type orig(self); in that method it will execute what it would normally want to do unmodded, and then any code i put in after that would be executed after

solemn rivet
#

yupyup

polar sun
#

it compiled

heady plank
solemn rivet
#

nice

polar sun
#

Now you have it working too

solemn rivet
#

now you can start coding Blitz!

heady plank
#

ok, now what do i do

solemn rivet
#
        private void PlayerDataOnUpdateBlueHealth(On.PlayerData.orig_UpdateBlueHealth orig, PlayerData self)
        {
            orig(self);
            self.SetInt("healthBlue",ls.ExtraMasks(Settings.ResilienceStat));
        }```
#

this is what I did

#

now you do whatever you want to do, Blitz

#

what do you want to do?

#

Jacob, be sure to remove the older hook

heady plank
#

Seeing as im using your most uptodate version

solemn rivet
#

ModHooks.Instance.BlueHealthHook += BlueHealth;

heady plank
#

fix the problem with the extra masks not working properly
and make so that bugs dont get stronger the higher your level is

polar sun
#

that part's easy

#

just comment out

if (hm.hp <= 5)
{
hm.hp = 1;
}
else
{
LogDebug($@"Vanilla HP for {enemy.name} = {hm.hp}");
hm.hp *= (int)((1.25 + (double)Dreamers / 3) * (2.5 / (1.0 + Math.Exp(-0.05 * Settings.CurrentLv))));
LogDebug($@"Bonfire HP for {enemy.name} = {hm.hp}");

solemn rivet
#

don't comment out the first part tho

#

it makes no sense to have enemies with less than 5 hp

polar sun
#

No do do that, otherwise it messes with the enemyHPbar mod

#

It makes it so that the hp bar lingers there forever after the enemy is killed

solemn rivet
#

I see that as an absolute win

heady plank
#

how do i comment it out, and how doo i fix the extra masks issue?

#

and how do i implement the extra masks fix?

#

is it //

solemn rivet
#

yup

heady plank
#

ok, so that part is commented out

#

but....

#

doing so makes the scroll bar go red

solemn rivet
#

}

#

you forgot to comment out the } at the end

heady plank
#

many thanks

polar sun
#

Oksolike, the debug mod is now breaking the entire game

solemn rivet
#

as it should

heady plank
#

hahahahah

polar sun
#

yeah but it destroyed my save file so i need to start a new one and get to dirtwater to test this now so brb

heady plank
#

so grad, do i copy and paste the fix you posted earlier?

solemn rivet
#

I guess

#

maybe it will work

heady plank
polar sun
#

Ok so update,

#

got to the bench

solemn rivet
#

Blitz did you hook that method?

polar sun
#

as soon as i got in front of the bench and the HUD showed up, i can no longer control the ghost

#

I can pause but he is now a statue

heady plank
#

hook?
i simply copy and pasted

#

also, jacob

#

try opening map

#

that should unfreeze you

solemn rivet
#

that's not the issue

polar sun
#

what map? in this save file i didn't even enter the forgotten crossroads

heady plank
#

oh

#

hmmm

polar sun
#

also you needed to create a hook first, when you autofill that with tab it automatically creates the method for you

heady plank
#

ok, so how do i hook it?

polar sun
#

Spawned under the bench when i reloaded, this is the problem i thought Debug was causing

solemn rivet
#

no, it's not debug

#

I think it's because we're doing stuff after orig

#

try removing that line and see if it still breaks

polar sun
#

@heady plank under the Initialize method, remove the existing bluehealth line and replace it with On.PlayerData.UpdateBlueHealth += and then hit tab

#

I'm still spawning under the bench

heady plank
#

what

#

confused

solemn rivet
#
        private void HeroControllerOnMaxHealthKeepBlue(On.HeroController.orig_MaxHealthKeepBlue orig, HeroController self)
        {
            self.playerData.SetInt("healthBlue", ls.ExtraMasks(Settings.ResilienceStat));
            orig(self);
        }```
#

try hooking On.HeroController.MaxHealthKeepBlue

#

and doing what I just did above

#

Blitz, a hook is like subscribing to a method

#

so if you add a hook to a method, your hook will be called whenever that method is called

heady plank
#

i got that

#

but how do i do it.

solemn rivet
#

what jacob said

heady plank
#

i dont get it. this is all new to me

young walrus
#

On.PlayerData.UpdateBlueHealth +=

#

that is a hook

#

that runs whenever the game updates blue health of the player

heady plank
#

i dont know where the initialize method is. i assume it the SetInt thing

solemn rivet
#

no

#

it's the first method in BonfireMod.cs

heady plank
#

ok

solemn rivet
heady plank
#

i see that

polar sun
#

ok Grad that fixed the problem with the benches but its not changing the number of blue masks

#

wait let me try one thign

solemn rivet
#

notice the public override void Initialize()

heady plank
#

i see it

solemn rivet
#

this is a public method called initialize

#

this is what we're talking about

heady plank
#

got it

solemn rivet
#

you can put your hook in there

polar sun
#

yeah no, the OnMaxHealthKeepBlue thing didn't work

solemn rivet
#

I guess so

#

we might have to go into fsm territory

#

means it's only called in fsms

polar sun
#

I tried putting orig second in the original updatebluehealth method and test that, fixed the bench thing but didn't add the masks

heady plank
#

ok, im still a bit confused on the hooks thing.
you suggested hooking it to On.HeroController.MaxHealthKeepBlue
i know that doesn't work, but im using it as an example.

#

when i try adding that hook, i get this

solemn rivet
#

ok

#

Jacob, add a log to whatever you're hooking into

heady plank
solemn rivet
#

something like Log(PlayerData.GetInt("healthBlue"));

#

yeah, that's fine

polar sun
#

R-Blitz you wanna add += and then hit tab

solemn rivet
#

^

#

On.HeroController.MaxHealthKeepBlue += HeroControllerOnMaxHealthKeepBlue;

heady plank
polar sun
#

grad you want me to add that in the updatebluehealth method?

solemn rivet
#

this should be read as "the method HeroControllerOnMaxHealthKeepBlue is subscribed to the hook On.HeroController.MaxHealthKeepBlue"

#

yeah, jacob, just add that whenever you try to fix the mod

#

so it shows us what's happening

#

that's it blitz

#

see how it created a new method

#

that's the method that's going to get called whenever the hook runs

heady plank
#

ok

#

and the rename thing?

solemn rivet
#

rename?

#

oh

#

just ignore that

heady plank
#

ok

polar sun
#

"an object reference is required for the nonstatic field"

solemn rivet
polar sun
#

not sure wut do ¯_(ツ)_/¯

solemn rivet
#

show

polar sun
solemn rivet
#

use self instead of PlayerData

#

also

#

go to your saves folder and edit your moddingapi config file

#
        "keys": [
            "ShowDebugLogInGame"
        ],
        "values": [
            true
        ]
    },```
#

add this bool value

#

it should show you your modlog file on screen

#

this helps a lot with debugging

young walrus
#

^

#

trooth

heady plank
#

something i wanted to ask.
i would see mods, in this case, redwing, say you can configure the mod to your liking, and the same for other mods..how do i do that?

young walrus
#

how do you configure them?

polar sun
#

Where is the save folder?

solemn rivet
#

?saves

autumn shardBOT
#

Saves


Windows File Paths: (Assumes Default Steam Install Path, Adjust accordingly for DRM Free or Non-Standard Steam Path)

Game Files: C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight\```
** **
Mac File Paths:
```Save Files: ~/Library/Application Support/unity.Team Cherry.Hollow Knight/
Game Files: ~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/```
** **
Linux File Paths:
```Save Files: ~/.config/unity3d/Team Cherry/Hollow Knight/
Game Files: ~/.local/share/Steam/steamapps/common/Hollow Knight/```
young walrus
#

or how do you create the file to configure?

polar sun
#

locallow? who saves to locallow

solemn rivet
#

tc does

heady plank
#

thats the thing. i dont know

young walrus
#

you don't know whether you're trying to make a file, or use one?

#

if you're playing the mod, you're trying to use the config

heady plank
young walrus
#

if you're making a mod, you're trying to create a config

heady plank
#

the 2nd to last line
"Values fully configurable"
how do i do it then?

young walrus
#

open it

#

in a txt editor

#

and change things

#

then save it

heady plank
#

ok, good to know

polar sun
#

Grad i made that change but no log is showing up ingame, do i have to do something?

young walrus
#

is your game modded?

polar sun
#

yes

young walrus
#

did you restart the game?

polar sun
#

I did it while the game was closed

solemn rivet
#

idk why it's resetting the file

young walrus
#

did you save the change

solemn rivet
#

if you'll reopen it it'll be back to no values

#

weird

#

it's f10

polar sun
#

It saved and it's still there

#

reopening the file rn

solemn rivet
#

oh

#

it changed to _values and _keys

#

yup works now

polar sun
#

oh NOW it's gone

solemn rivet
#

"BoolValues": {
"_keys": [
"ShowDebugLogInGame"
],
"_values": [
true
]
},

#

paste this instead

polar sun
#

already made the change and i'm restartin

solemn rivet
#

oh ok

polar sun
#

yeah there it is

solemn rivet
#

ok, so now see what it logs when you sit at a bench

polar sun
#

It triggered 3 times in a row on startup, before and after were 2, (i have lifeblood core equipped)

#

the code isn't changing the health

solemn rivet
#

when are you hooking it

young walrus
#

hook it in init, then hook it in the hooked method

#

INFINITE HOOKS

heady plank
#

all the hooks

polar sun
#

just in the init

solemn rivet
#

I mean

polar sun
#

but i did discover something, despite you already knowing probably

solemn rivet
#

which method are you hooking into

polar sun
#

oh update

#

UpdateBlueHealth

solemn rivet
#

hmm

polar sun
#

I put a log between self.SetInt("healthBlue", ls.ExtraMasks(Settings.ResilienceStat)); and orig(self) and it gave me a 6, so it's 2 to start, then that line makes it 6, then orig makes it 2 again

solemn rivet
#

as it should

polar sun
#

why does setting orig first glitch the hell out of the benches?

solemn rivet
#

probably some fsm

polar sun
#

what does fsm stand for?

young walrus
#

finite state machine

solemn rivet
#

flying spaghetti monster

#

basically the same thing

young walrus
#

fart shit moan

solemn rivet
#

it's how 99% of this game is actually coded

#

it's what dnspy doesn't show of the code

heady plank
#

so, we know the code is working

young walrus
solemn rivet
#

this

young walrus
#

these are FSMs

solemn rivet
#

my friends

young walrus
#

a giant flow chart

#

this is the hollow knight boss

solemn rivet
#

is the The Hollow Knight (the boss) fsm

unborn badger
#

fucking shitty method (of coding)

polar sun
#

Yeah i saw that earlyer and it looked like the ai for a boss

solemn rivet
#

it looks like a flying spaghetti monster

heady plank
#

so, we know the code is working
its just that the game is somehow, even with changes, over riding our hooks....
SO we just gotta find a way to override the game itself

unborn badger
#

failing mental state

#

wait

#

shit

solemn rivet
#

basically, blitz

heady plank
#

Question is: How.

polar sun
#

How about we head down to Team Cherry HQ with megaphones and we don't stop screaming day and night until they add native mod support

solemn rivet
#

as if

#

they'd have to recode the entire game

#

to remove fsms

#

which would be a massive undertaking

polar sun
#

uhh guys?

solemn rivet
#

like, they literally removed a few fsms for the Lifeblood patch

#

and it took them a few months

#

but it also made the game 200% faster so there's that

polar sun
#

I flipped orig and the bluehealth code around again and its working,

solemn rivet
heady plank
#

what

solemn rivet
#

good code™️

heady plank
#

show us

solemn rivet
#

welcome to hk modding

polar sun
#

it must have been conflicting with another mod before

solemn rivet
#

where nothing matters

heady plank
#

yay

polar sun
#

streaming

unborn badger
#

inb4 silksong has fsms

solemn rivet
#

it will

heady plank
#

hes in live

solemn rivet
#

graig has confirmed it

heady plank
#

so many blues

unborn badger
#

really

fair rampart
#

why would they not use what works for them

heady plank
#

ALL THE BLUES

solemn rivet
#

oh btw

#

jacob and blitz

#

can you confirm that the levels on each stat are saving properly

polar sun
#

saving like saving and quitting?

solemn rivet
#

yeah

#

does it keep the stats if you save and quit?

polar sun
#

that it does

solemn rivet
#

ok

polar sun
#

It says PlayerData doesn't contain a definition for AddInt

#

unsure what to do about it

solemn rivet
#

GetInt and then +

#

It's an int after all

polar sun
#

alright, i didn't know getint existed either :p

solemn rivet
#

so something like self.SetInt("healthBlue", self.GetInt("healthBlue") + whatever the fuck you wanna add);

polar sun
#

already took care of it

#

also didn't know we could sware here

solemn rivet
#

do it like this tho

#

it's safer

polar sun
#

Well thats the way i already did it

solemn rivet
#

oh ok

heady plank
#

i just got his fixed version

#

imma test it now

#

looks like it all works

polar sun
#

You can thank @solemn rivet (the original creator of bonfire) for doing literally all the work through me

solemn rivet
#

press f10 to hide the debug log ingame if you don't want to change the config file to false

naive token
#

so it's fixed now?

heady plank
#

yes

naive token
#

what were the bugs besides Resistance not giving masks

quick stirrup
#

Where i can find the ak 47 mof?

#

Mod*

naive token
#

pinned

heady plank
#

that was the only bug really
the other thing we changed, is that enemies got stronger, the higher the level you were

quick stirrup
#

Thz

heady plank
#

that was changed

#

so no longer will you dump points into your strength, only for your foes to get stronger, and thus makin what you just did pointless

naive token
#

honestly a combination of leveling up everything made up for enemies getting higher HP tbh

heady plank
#

right, but we didn't like that....so we got rid of it

naive token
#

there were also another couple of bugs I remember

heady plank
#

oh?

naive token
#

Nail Arts aren't affected by Strength and getting Resistence over 46 makes the chance to negate damage go down from 37% to 36%

heady plank
#

Interesting.
if you grab the i believe the unofficial patch fixes the 1st bug, as that a issue with the game itslef

naive token
#

there's also that getting Focus cost reduced to 0 makes you unable to Focus anymore

#

though that requires several hundred levels so it's kind of impossible to get without infinite Geo lol

heady plank
#

fair enough

#

as for those last 2 bugs you mentioned, we will look into them later. right now though, the main bug itself, the extra masks, has been fixed

naive token
#

yeah that's nice

heady plank
#

all thanks to Gradowo and Jacob

#

i did nothing

polar sun
#

Everything i did is still mildly above my head

naive token
#

though without enemies getting more HP it's all so overpowered lol

solemn rivet
#

charms that enhance strength/spell damage don't work too

polar sun
#

I have a general understanding but if i had to do more with no help i wou;dn't be able to

solemn rivet
#

also even without removing the enemies scaling think