#archived-modding-development

1 messages ยท Page 137 of 1

leaden hedge
#

yes thats why it looks weird

rain cedar
#

Ok if it fucks with the uvs how do I figure out the texture coordinates?

leaden hedge
#

I dunno

#

If I knew what data it was sending to render sprites I'd have fixed my recolour mod

#

"apparently" tk2d default shader is super basic

rain cedar
#

I don't even know why tk2d uses MeshRenderer

#

Mesh is for 3D

leaden hedge
#

but that wouldn't cause this effect

#

sprite renderer is just a meshrenderer

rain cedar
#

If that's how it works internally, doesn't really matter to me

#

What's actually visible on a SpriteRenderer is crazy different from a MeshRenderer

leaden hedge
#

but yeah I have no idea what the tk2dsprite shader for hollow knight looks like

#

but its definitely doing something weird

#

because the uvs + textures it has aren't aligned like 90% of the time

#

and im not buying tk2d it find out if TC changed the shader code

compact sedge
#

go ask 753 for his copy of it

leaden hedge
#

are you advocating software piracy

compact sedge
#

I mean

#

uh

#

don't do that

#

do they not have like a demo version or something

leaden hedge
#

I don't even know tk2d exists

#

it was superceded by unity2d

#

like the only reason you'd use it is if you're on like a 3 year old version of unity

#

before they added spriterenderers

rain cedar
#

Yet here we are

#

Well whatever I don't need to be doing this at runtime

#

I can manually split the relevant spritesheets

#

Which is horrible so I actually won't ever do it

#

But eh

rain cedar
#

Y'all were completely wrong about tk2d

#

It doesn't fuck with uvs, my math was wrong

#

And KDT your math was probably wrong too

compact sedge
#

Really good to know tbh

rain cedar
#

Really helps me out

#

Now I just need to figure out why reading mesh uv is breaking the renderer

#

That makes no sense

copper nacelle
#

edit the sprites in photoshop then put them back in

#

tDogRat4

rain cedar
#

It's hard to get the sprites when the mesh renderer breaks

#

Or rather the tk2dSprite is breaking I guess

copper nacelle
#

can't even take them out using saveaspng cause they're not r/w

#

ree

rain cedar
#

I figured out the minimal code to break them

#
foreach (MeshFilter filter in Object.FindObjectsOfType<MeshFilter>())
{
    Mesh mesh = filter.mesh;
}```
#

Reading the mesh from the MeshFilter breaks the tk2dSprite

#

Wtf

copper nacelle
#

nice

#

does GetComponent<Mesh> break it too

rain cedar
#

Mesh isn't a component

copper nacelle
#

o

rain cedar
#

The problem here is MeshFilter.mesh isn't actually a field

#

It's running some crap code that breaks everything when I call get

#

Ok I think this works

tk2dSprite tk2d = filter.GetComponent<tk2dSprite>();
Mesh mesh;
if (tk2d == null)
{
    mesh = filter.mesh;
}
else
{
    mesh = (Mesh)meshField.GetValue(tk2d);
}```
#

Where meshField is reflection to get at tk2dSprite.mesh

copper nacelle
#

pain

#

if you're just doing it for the material and its maintexture you can do tk2dSprite.GetCurrentSpriteDef().material.mainTexture

rain cedar
#

I get the material from the MeshRenderer

#

I need the UVs from the Mesh

copper nacelle
#

ah

rain cedar
#

Maybe I can get UVs from the sprite definitions though

#

That'd be better because I could get all of them to fully split the sheet

#

tk2dSpriteDefinition has a Material and a uv array

compact sedge
#

is it accurate

rain cedar
#

Idk good question

rain cedar
#

Ok it's accurate but I'm getting literal thousands of duplicates

#

Need to do something about that

#

Force quit before the game was even done launching

#

Hooking tk2dSpriteCollectionData.Init to get this

copper nacelle
#

jeez

rain cedar
#

Ok what I have now works really well

copper nacelle
#

wtf

#

how

#

whenever i tried to read them it said they weren't read/write

rain cedar
#

I used a bit of a loophole with RenderTexture

young walrus
#

So.... Could we modify these then reverse compile them for the game?

rain cedar
#

I guess yeah

#

It would be easier to just modify the sprite sheet directly

#

For me at least

#

Because for modifying these to work I need something that pieces the sheet back together as well

young walrus
#

True

copper nacelle
#

can't you just modify the sheets out of uabe

rain cedar
#

Yeah

#

That won't work for multiple mods doing it

copper nacelle
#

they'll just overwrite, right?

rain cedar
#

The entire resources would be overwritten

copper nacelle
#

i mean like at run time

#
            HeroController.instance.grubberFlyBeamPrefabL.GetComponent<tk2dSprite>().GetCurrentSpriteDef().material
.mainTexture = Sprites["Lances"].texture;
rain cedar
#

Yeah I guess that is a reason to not use full modified sheets

#

If we've got something that pieces them back together at startup mods are more compatible

copper nacelle
#

yeah

#

this overwrites all the grubberfly assets

#

instead of just the needed ones

solemn rivet
#

Nice find Sean! What was wrong with the uvs?

young walrus
#

It could be fun to make the MCs nail a fish

solemn rivet
#

Trout

rain cedar
#

Nothing is wrong with the UVs

#

KDT was wrong

solemn rivet
#

Oh

rain cedar
#

I had wrong math

solemn rivet
#

UVS = right, KDT = wrong

#

Got it

compact sedge
#

:)

rain cedar
#
y = tex.height - h;

instead of

y = tex.height - (h + y);
compact sedge
#

@UVS thanks for being right

rain cedar
#

But yeah UVs are bottom left origin and texture coords are top left

#

Probably why KDT thought they were wrong

solemn rivet
#

Eww

compact sedge
#

no

#

disgusting

#

I mean texture coords being top left makes sense

#

and UVs being bottom left makes sense

#

but putting them together

#

no

solemn rivet
#

Kinda yeah

young walrus
#

I think imma make the nail a fish. And make nail hit sound effects a slapping sound. Lol zote

rain cedar
#

Go for it

hazy sentinel
#

make nail sombra's finger and install boopmod

copper nacelle
#

make nail salubra's blessing and attacking make the salubra's blessing noise imo

hollow pier
#

make salubra's blessing salubra's blessing

compact sedge
#

lol the false knight fsm is called "FalseyControl"

solemn rivet
#

Falseyboi

compact sedge
#

so uh why are random spikes fsms in this game

#

shouldn't they just be gameobjects with colliders

rain cedar
#

There are some things science can't explain

copper nacelle
#

because T E AM C H E R R Y

compact sedge
#

oh the fsm is for when an ENEMY hits the spike

#

weird

rain cedar
#

The quirrel smear textures are pretty good

compact sedge
#

and especially weird considering that's impossible in this scene as far as I can tell

rain cedar
compact sedge
#

that's for uumuu right?

copper nacelle
#

lmao

rain cedar
#

I assume so

compact sedge
#

oh god 56 you weren't lying about lost kin having 1200 fsms

#

wtf

copper nacelle
#

embrace the fsm

compact sedge
#

nice he has a health_manager_enemy fsm and a HealthManager

copper nacelle
#

tf

#

i didn't see that

#

isn't that the old lost kin

compact sedge
#

maybe but I'm just using the preliminary scene dump for now before I get into the knitty gritty

#

which should have been made on lifeblood regular

copper nacelle
compact sedge
#

is this with the lost lord changes

#

or without them

copper nacelle
#

before

compact sedge
#

cool that saves me having to walk all the way to his room from the basin tram

#

(yes I know about debugmod but blackmoth is almost faster at this point)

copper nacelle
#

noclip at 2x timescale

compact sedge
#

more like grubberfly

copper nacelle
#

at 2x timescale

compact sedge
#

probably not the worst idea

#

but too much effort installing debugmod

#

anyway soul master was well designed

#

only has 2 fsms

#

one for stuns and one for everything else

hazy sentinel
#

are u even a real modder if u dont install debug mod over and over for entertainment

compact sedge
#

wait nvm

#

I lied

#

it has fsms in sub-gameobjects

copper nacelle
#

wow nice

rain cedar
#

Soul master is perfect and has no issues

#

He's just stuck there btw

compact sedge
#

does this only happen when you clip out of the arena

#

because if so totally understandable

rain cedar
#

Probably yeah

compact sedge
#

does modcommon not have a remove transitions thing for FSMs?

#

I thought you added that 56

copper nacelle
#

i think it does idk

compact sedge
#

oh it does but it's not a per state thing

#

it just removes transitions from a list of states with a list of transition names

rain cedar
hazy sentinel
#

to hide the dab sprite

compact sedge
#

it's too explicit

#

it's spoilers for GnG

#

it actually has godseeker's face

#

eww it needs to be a list I can't just use an array

#

wtf 56

copper nacelle
#

what needs to be a list

#

what

compact sedge
#

RemoveTransitions

#

in FsmUtil

copper nacelle
#

i didn't write that

#

re

compact sedge
#

I had another FSM tool that let me just remove all the transitions from a single state

leaden hedge
#

arrays are like

#

so last century

compact sedge
#

PlayMakerFSMExtensions

rain cedar
#

My fsm thing has that

solemn rivet
#

Sean's has such a function aa

compact sedge
#

idk who I stole it from

solemn rivet
#

Oh

compact sedge
#

but I stole it from someone

#

probably you sean

compact sedge
#

oh

#
public static void clearTransitions(this FsmState self)
        {
            self.Transitions = new FsmTransition[0];
        }
#

I can just do that then I guess

solemn rivet
#

You stole it from berserkmod which stole it from there

rain cedar
#

bereserk

leaden hedge
#

bereserk

solemn rivet
#

Bereserk

hollow pier
#

br

rain cedar
#

๐Ÿ‡ง๐Ÿ‡ทserk

compact sedge
#

is berserk mod in the drive?

solemn rivet
#

Uhhh

#

Dunno

hollow pier
#

nao

leaden hedge
#

7-1serk

compact sedge
#
            stunManager = this.soulGuy.LocateMyFSM("FSM");
            stunManager.Fsm.GetState("Idle").Transitions = new FsmTransition[0];

I'll just do this then I guess and save myself the trouble of writing meme code.

copper nacelle
#

this.soulGuy

compact sedge
#

there no extensions needed

leaden hedge
#

everything needs more dependancies tbh

#

make a library just for removing transitions

#

thank

rain cedar
#

I'm gonna make extensions to every class as individual libraries

compact sedge
#

ok I need a function that grows quickly but levels off but not any log function because log grows too quickly to start and levels off too much.

#

any suggestions

rain cedar
#

Manually define an array with the desired growth pattern tbh

solemn rivet
#

^

#

select a few points as then just fit a polynomial imo

#

or use square roots

#

or nth roots for that matter

compact sedge
#

roots seems like the kind of thing I want

#

don't wanna do a manual array, this baby needs to go up to level 255

#

even though that will probably be human impossible

solemn rivet
#

what I did with bonfire was

#

I plotted what I wanted it to be at like, levels 0, 1, 10, 20 and 50

#

and then chose a best fit

#

and adjusted it accordingly

compact sedge
#

x^0.25 gives me almost perfect growth actually

#

thanks

solemn rivet
#

you can use logistic functions too

compact sedge
#

I thought about that too but I don't want an upper cap

solemn rivet
#

nice

compact sedge
#

at the impossible to reach meme level of 255 I get a value of 4.2 right now which should be impossibly fast for any human. I want a value of 2.0 to be like hardmode NKG difficulty at max speed and 1.0 to be default speed.

#

2.0 being hit after 11 levels

#

now to figure out my health graph

solemn rivet
#

what kind of curve you looking for? We got all kinds of 'em!

leaden hedge
#

sawtooth

solemn rivet
#

got it

compact sedge
#

I'm just gonna keep going with the exponental functions

solemn rivet
#

I mostly used logistic/logarithmic functions for Bonfire

compact sedge
#

https://www.desmos.com/calculator/t98w8tkeej ok first one is relative speed, second one is relative hits to stun, third one is relative health. x axis is level (imagine you get one level every time you beat the enemy). y axis is a factor relative to base game.

Desmos Graphing Calculator
#

anyone who plays this game who thinks these numbers might be bad please let me know now

#

before I implement them

solemn rivet
#

bottom-top or top-bottom?

#

which one is first?

compact sedge
#

the red one is the first listed and also the lowest

#

lol

rain cedar
#

Probably the one labeled with 1

solemn rivet
#

didn't click

leaden hedge
#

can't you just use composition to make it easy to swap out curves

solemn rivet
#

just seeing nice pics in discord

compact sedge
#

looks like half of a sparkler

solemn rivet
#

I like the curves, AA

leaden hedge
solemn rivet
#

nice curves corny

#

also

#

how are you rounding these?

#

floor?

rain cedar
#

Round towards the closest .06

leaden hedge
#

just multiply by 2 until you have no decimals

rain cedar
leaden hedge
#

its guaranteed to round the number to a number

#

it may or may not be correct

#

but it will be rounded

copper nacelle
#

just multiply by 4 instead

rain cedar
#

I mean there's a very real chance of getting float.PositiveInfinity

copper nacelle
#

twice as fast

rain cedar
#

Or negative I guess

leaden hedge
#

I mean you could bit shift to the right

#

then double

#

dunno if a bitshift would also shift the exponent on a float

rain cedar
#

You can't bitshift a float

#

Maybe with unsafe code

leaden hedge
#

you can't stop me

compact sedge
#

probably floor but it won't matter much because health's gonna be so high that flooring doesn't matter and hits to stun should only be affected a little @solemn rivet

#

and relative move speed is a double which gets truncated to floats after some internal double multiplication so no need to round

solemn rivet
#

got it

rain cedar
#

Dark mode photo viewer stay woke

compact sedge
#

why are program settings set in the registry

copper nacelle
#

cause windows

compact sedge
#

and not somewhere easy to edit like a text file

copper nacelle
#

cause windows

#

also gnome exists

rain cedar
#

Wow there's only one left?

#

Dying race

copper nacelle
rain cedar
#

Gnome exists

#

Singular

#

Making me explain my shitposting smh

copper nacelle
#

o

#

lol

#

@compact sedge gconftool-2 --set /apps/nautilus/desktop/trash_icon_visible --type=bool true

compact sedge
#

no why would I use gnome

#

eww

copper nacelle
#

i think kde has a kconf thing or something

compact sedge
#

it has a gui system settings thing and json files you can edit by hand

copper nacelle
#

gui

#

:echREE:

compact sedge
#

and possibly a terminal thing but idk what it's called

#

imo editing json is so much better than using a random config tool that also edits json

copper nacelle
#

gconftool-2 modifies a database

#

cause gnome ๐Ÿณ๏ธโ€๐ŸŒˆ

compact sedge
#

so just like the registry in windows

#

noty

copper nacelle
#

yes

rain cedar
#

Why does it even matter if the gnome is gay if its the only one left?

copper nacelle
#

this is why you use a tiling wm with no de

compact sedge
#

no this is why I use kde

copper nacelle
#

DEs have ๐Ÿšฎ

#

b l o a t

compact sedge
#

bruh bloat only matters to you because you care so little about linux you only give it 5 GB

copper nacelle
#

20gb ty

#

i hate bloat regardless

compact sedge
#

oh that's 10 times less than what I give it

#

which is 100% of my storage space

vagrant leaf
#

56 stop using discord while streaming

copper nacelle
#

even if i gave it all of my space

#

i wouldn't want kde bloat anyways

compact sedge
#

kwin's practically perfect

#

(in every way)

copper nacelle
#

objectively false

compact sedge
#

it's practically perfect

#

(that's what they all say)

#

except for 56

copper nacelle
#

bspwm better

leaden hedge
#

also for the question about registries containing settings

copper nacelle
#

if you don't use a tiling wm on linux you have the ๐Ÿšฎ

leaden hedge
#

its a unity thing

#

don't ask why intenseface

rain cedar
#

TIL windows photo viewer was made in unity

compact sedge
#

unity settings in plain text on non-windows

#

just saying

#

also Player.log and ModLog.txt are in the same folder

copper nacelle
#

dnspy doesn't exist on non-windows

#

just saying

leaden hedge
#

oh we're talking about windows photo viewer

#

thats probably for a smart reason tbqh

compact sedge
#

speaking of unity prefs tho

#

I have to ask

leaden hedge
#

isn't that exe in the windows folder

#

which is read only

compact sedge
leaden hedge
#

or should be

copper nacelle
#

it's ajhsdfhjklasdfjklhasdifu89u23kiljasdfy98i*&*(@!#:O(@#

#

duh

leaden hedge
#

its a function in unity

#

its called er

#

secureplayerprefs I think

#

it encrypts your keynames and values

compact sedge
#

bleh

#

off the top of your head what kinda stuff does HK use it for

leaden hedge
#

steel soul mode

#

is the only thing I know

rain cedar
#

Whether or not you can get off benches

#

According to Mick at least

leaden hedge
#

top one is steel soul mode I think

compact sedge
#
        <pref name="vE5KkxS7T22NbDJZ4Kd3tw==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>
        <pref name="vTY9ZwWyCq4cnoiD3hO4Sg==" type="string">dzB6NmNXNG1TeDhBKzh5VHd3MkQ5QT09</pref>

even though the keys are encrypted these strings clearly refer to 1 and 0 respectively

leaden hedge
#

they do

#

its a bool

compact sedge
#
        <pref name="5yZTgDVNsDnWj1MVsBSTyw==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>
        <pref name="9/i+/xq62ou0CsCGI0SUpA==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>
        <pref name="CLxonywPfYP6FMuyc2RcDw==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>
        <pref name="D/udoyiO/WJtgTvG4RBBWw==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>

nice encryption

leaden hedge
#

but you can't really encrypt a 1 or a 0

compact sedge
#

yeah

leaden hedge
#

I never said it was good

compact sedge
#

well

leaden hedge
#

i said it was encrypted

compact sedge
#

you could encrypt it using the name as a salt

#

or something

rain cedar
#

Why is this even something you have to encrypt?

copper nacelle
#

for the same reason save files are encrypted

leaden hedge
#

otherwise we could cheat

rain cedar
#

Right so there's no reason

compact sedge
#

so because graig's an asshole

leaden hedge
#

even though I told people at one point

#

exactly what to add to registry

#

to unlock steel soul

compact sedge
#

graig's the reason this shit is here

#

js

leaden hedge
#

its encrypted with the same cipher as the saves

copper nacelle
#

graig complained about the save files not being encrypted

leaden hedge
#

key is the same

#

although

solemn rivet
#

wut

leaden hedge
#
            SecurePlayerPrefs.Salt = new byte[]
            {
                10,
                20,
                30,
                40,
                50,
                60,
                70,
                80,
                90,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19
            };
#

apparently there is a salt

solemn rivet
#

graig is our enemy thinkgrub

leaden hedge
#

they just don't understand how salts work

compact sedge
#

salt ๐Ÿ…ฑ roke on linux

rain cedar
#

They missed 11

leaden hedge
#

no they just use the same salt for everything

copper nacelle
#

salt b roke

#

hmm

rain cedar
#

You're right no idea how it works

leaden hedge
#

so its pointless

compact sedge
#

also who needs bigints when you could store them as strings <pref name="unity.player_session_elapsed_time" type="string">Mjk4NDIx</pref>

rain cedar
#

Unity probably can't serialize a BigInt properly tbh

compact sedge
#

can unity really only serialize the 4 kinds of data that you can put in GlobalSettings

#

int float string and bool

leaden hedge
#

yes

#

their serialization is really fast

#

because it can't serialize anything

#

oh its used for menustyles too

#

and achievements

#

also apparently they stoped using SecurePlayerPrefs, although they didn't remove the actual code and they now use
Platform.Current.EncryptedSharedData

#

which is extern

#

so

compact sedge
#

I should set the one false thing to true so I have all the achievements

#

I thought I got all of them (I do on steam) but I guess one of them didn't carry over

leaden hedge
#

I don't know if it has things for that are false

#

I think it just returns false if it doesn't find the key

compact sedge
#

oh

leaden hedge
#

so that must be something that was true at some point

#

and then set to false

#

might be an achievement though

#

I dunno

rain cedar
#

I think my favorite thing about Windows is the thumbnail for a fully transparent image is black

#

Instead of transparent

#

Grey border for no reason

#

Transparency was turned white

#

White was turned transparent because it has some small amount of alpha

#

Really just all around stellar handling of transparent images

#

Very consistent too

leaden hedge
#

420iq

#

transparency is expensive to render tbh

rain cedar
#

Putting in the same figureheads is boring

copper nacelle
#

uumuu

rain cedar
#

I like it

#

Gotta get that white line trace going so it doesn't look out of place

flat forum
#

Hey

#

look

#

I have a very convenient pfp

#

(okno sorry)

rain cedar
#

But that's something that actually fits in game and not a shitpost

flat forum
#

Your guy's good

rain cedar
#

Wow my guy

#

Doesn't even know the legendary RiskyCB

flat forum
#

but I still want a cameo

flat forum
#

hey

#

anyone have any idea what this is?

#

"shadeSpecialType": 0

steep sail
#

@rain cedar famous FR runner?

rain cedar
#

Uhhh no

solemn rivet
#

Wtf

#

TIL risky eats legs

hollow pier
#

who doesnt know deadnamer extraordinaire

solemn rivet
#

noto disu shito agen

solemn rivet
flat forum
#

hey Gradow

#

I wanted to ask you

#

the light thing in the behind part of your pfp

#

is this the Sun Radiance thing?

solemn rivet
#

uhhh

#

wdym

flat forum
#

you know how when you challenge the Sun it opens its wings

#

that moment

#

the sun with open wings

solemn rivet
#

I think so

#

or maybe it's just one of Radiance's default poses

#

I don't remember, honestly

#

it was like a year ago or smth

#

what I did at the time was

flat forum
#

I was just going through the Radiance sprites and stuff for the little art experiments

solemn rivet
#

I grabbed all Radiance sprites

flat forum
#

and saw taht

solemn rivet
#

and chose one that was nice

#

and painted it black

flat forum
#

and thought "hey isn't this Gradow's pfp's back thing"

solemn rivet
#

OH

#

you mean the shine behind the blackmoth?

#

yeah

#

that's the sun

#

(I had completely forgotten about that detail tbf)

flat forum
#

heh

#

Yeah, no problem

#

(did I show you the art project thingy?)

solemn rivet
#

no, you did not

flat forum
#

(Also, sorry if I'm annoying)

#

just a sec

solemn rivet
#

I'm actually not in any other HK servers so I don't see much

#

nah, not annoying at all

flat forum
#

ok

solemn rivet
#

I REALLY LIKE THAT

#

WTF

#

how is that so good

flat forum
#

so

#

I set PlayerData.instance.defeatedMegaBeamMiner = true;

#

but the guy doesn't go away

#

any idea why?

solemn rivet
#

I assume that's CG2?

flat forum
#
 PlayerData.instance.defeatedMegaBeamMiner = true;
PlayerData.instance.defeatedMegaBeamMiner2 = true;
#

nope

solemn rivet
#

also, I'm pretty sure that bool is only used for completion, not for actually tracking if it's dead

flat forum
#

the defeated bool set other bosses to dead tho

solemn rivet
#

hm

#

did it work for CG1?

#

setting it to true

flat forum
#

No

solemn rivet
#

k, lemme check in dnspy rq

flat forum
#

wait, I didn't check out CG2

#

I'll go check all bosses

solemn rivet
#

check these

flat forum
#

also, I can't find what the convos with the dream bosses (Lost Kin, Soul Tyrant, Failed Champion) are called

#

and I need to set those to true as well

#

is killed not for Hunter's Journal?

solemn rivet
#

yeah

#

but worth a shot anyways

#
this.killedMegaBeamMiner = false;
this.killsMegaBeamMiner = 2;```
flat forum
#

ok

#

lemme test this now

#

NOPE

#

still there

copper nacelle
#

probably a battle scene

#

@fair rampart

#

๐Ÿ”ซ

solemn rivet
#

don't let him order you around

#

show 'im who's boss

copper nacelle
flat forum
#

Sooo...

#

gotta delet him as well then

#

the way I deleted doors

river eagle
#

What are you trying to do?

flat forum
#

make CG completed

#

get rid of him

#

the way I got rid of other bosses

river eagle
#

Wait so you're removing all bosses from the game?

solemn rivet
#

everything

fringe schooner
#

why

#

what would be cool (but probably almost impossible) was if someone made a mod which made everything look like it would after the dream no more ending (or any ending in general)

river eagle
#

With this mod the game will definitely be Hollow Knight hollowface

flat forum
#

Ye

#

this mod removes all enemies and NPCs

solemn rivet
#

and doors

flat forum
#

ye

solemn rivet
#

don't forget the doors

flat forum
#

because the challenges

#

and anything that leaves behind a corpse should... leave behind only the corpse

river eagle
#

What about charms?

flat forum
#

those

#

are difficult

#

I'll try and add all that you get from NPCs as shiny items on the ground

#

which will probably be one of the harder things

river eagle
#

So the game will still be beatable?

flat forum
#

It ends a different way

#

well

#

the story is different

#

Elderbug is the only one alive

#

it ends with you giving him the flower

#

and then he disappears as well

river eagle
#

You should name the mod "Hollow Hollow Knight"

flat forum
#

and you're the only thing in Hallownest

solemn rivet
#

make this Flower Knight

flat forum
#

Mod for now is called DeadHallownest

river eagle
#

Remove all music too and you've got yourself a horror game

flat forum
#

Yeah, I have it turned off for myself

river eagle
#

With just the ambient sounds

flat forum
#

I still need to find how to force it off with the mod

#

cough @copper nacelle cough

copper nacelle
#

force what off

#

also post art

#

oh music

flat forum
#

Well, it's half edit

#

so, I don't know if it'll be allowed

#

lemme ask

#

well?

#

how do I force turn off music

solemn rivet
#

if music => not

flat forum
#
On EnterRoom 
If music != off
{
music == off
}
solemn rivet
#

yeah

copper nacelle
#

i think there's like a music controller

#

cause it didn't get dumped in my lifeblood dump of fsms

#

i think

river eagle
#

Couldn't you make it so that no matter if you have music on or off it'll still be music == off

solemn rivet
#

there's an AudioManager class

copper nacelle
#

dnspy for mac when

solemn rivet
#

OH SHIT

#

LOOK AT THIS BOI

copper nacelle
solemn rivet
copper nacelle
#

component now

#

yeet

#

@fair rampart

#

fucking

flat forum
#

wrong

copper nacelle
#

why are there 2 of them

flat forum
#

FoldingPapers

#

I don't know

#

the other one is faek

#

unless I somehow accidentally created a 2nd account

solemn rivet
#

DM them

river eagle
#

You know I might know what the problem is

solemn rivet
#

ask for nudes and check if they're yours

river eagle
#

You log in through the discord browser right papers?

flat forum
#

yeah?

#

(don't murder me pls)

river eagle
#

Alright so what might have happened is that you created a new account

#

Accidentally instead of logging into your already existing one

flat forum
#

Ok

copper nacelle
#

is musicregion on the gm

river eagle
#

Because if you simply go to discord.gg on desktop and try to enter discord it automatically takes you to creating a new account

flat forum
#

let me try to se if my other e-mail will count as a Discrod account

copper nacelle
#

discrod

solemn rivet
#

no

#

it's its own class

copper nacelle
#

i mean like

#

does gm have a field w/ of musicregion

solemn rivet
#

I don't know what instantiates, exposes or uses it

#

analyze can't find anything

copper nacelle
#

f s m

#

ree

flat forum
#

well, it didn't work

solemn rivet
#

so it must be fsm

flat forum
#

so, must be someone else I'd guess

river eagle
#

You don't actually even need an email to make a new account that way

#

I'm pretty sure the mystery of the second Folding has been solved

#

hold on

#

and all this time, it was you

flat forum
#

ye?

river eagle
#

and looks like you just typed in there FoldingPapers

flat forum
#

mhm

river eagle
#

I didn't even have to set an email for the account

#

I didn't even have to type in a password

flat forum
#

now how do I get back in that account

#

to remove it

river eagle
#

hmm

#

@fair rampart

#

here's the account I just "created"

#

didn't have to type in anything else than just the username

flat forum
#

mhm

solemn rivet
#

so

#

currently the installer sets a bool once it installs the API

#

and that's what it uses to determine if it is, or not, installed

#

but that's no good

#

people might already have the API installed when they use the installer

#

or they may manually remove the api, and the installer will still think it's there

#

so, I need suggestions on how to deal with this

#

currently, I have two ideas

#

one is to check filesize

#

(so that'd have to be added to the xml, but that's simple enough)

#

the other is to checksum

#

any better ideas?

trim grove
#

check md5 or similar?

#

oh wait you suggested that am bad ignore

solemn rivet
#

yeah

#

maybe there's an obvious way that I'm just missing

trim grove
#

but yeah thats probably ideal, cause if checksum doesnt match, its not the intended file

#

(or you have a collision in which case F)

solemn rivet
#

eh

#

filesize would prolly achieve the same result

#

and I assume less time to actually check

trim grove
#

probably arent checking it too frequently right?

#

as long as its not a dramatic time save, it wouldnt change much

solemn rivet
#

just once

#

I'd check it on load

trim grove
#

then yeah, if both would work and only checking once means time to check is (mostly) unimportant, whichever is eaiser to implement / future proof?

solemn rivet
#

yeah...

#

checksum is clearly the best solution

#

dunno how hard it is to actually implement tho

trim grove
#

a quick google says 'very easy', but, we all know how that goes

solemn rivet
#

yeah

#

doing that rn

#

wish me luck

trim grove
#

good luck hollowknice

solemn rivet
trim grove
#

yeah thats what i saw initally too

copper nacelle
#

from the command line it's like

#

stupid easy

#

so it's probably easy

bronze temple
#

C# has got a very helpful MD5 class, IIRC in the crypto namespace

#

btw, nothing beats checking the .dll with Mono.Cecil :^)

compact sedge
#

imo if you do checksum comparison we should add checksum info to the modlist xml

#

because

  1. no need to redownload already installed stuff just to check its checksum
#
  1. very very easy way to update mods (the modinstaller could tell you they are out of date by comparing the md5 of the installed and modlist mods)
solemn rivet
#

already added the API's MD5

leaden hedge
#

pretty sure you can just do md5

#

in csharp

solemn rivet
#

nice

#

it's working fine

compact sedge
#

should I go download every other mod and get their md5s?

copper nacelle
#

yes

#

or i could

#

idk

compact sedge
#

well I bet you could automate it

copper nacelle
#

yeah i was going to

#

i have sanity

compact sedge
#

yeah

#

ok u do it

copper nacelle
#

@solemn rivet is this u

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.IOException: The requested operation cannot be performed on a file with a user-mapped section open.

   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
   at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
   at ModInstaller.ModManager.InstallApi(String api, String tempFolder)
#

and then afterwards i get this ofc

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.IOException: The file 'D:\tempMods\hollow_knight_Data\Managed\Assembly-CSharp.dll' already exists.
#

top error still occurs if i delete it

#

pain

solemn rivet
#

wut

#

I didn't even push the code yet

#

much less upload the installer

copper nacelle
#

no this is on the latest version up

#

i think

solemn rivet
#

oh yeah

#

oh, the (1) version

#

sure

copper nacelle
#

redownloaded it just in case

#

still get the error

#

:agony:

#

oh wait

#

is it cause i have rider open and it thinks i don't have api

#

the answer was it was dnspy

#

sorry

solemn rivet
#

oh

#

dunno why dnspy would cause it

copper nacelle
#

cause it locks assembly-csharp

solemn rivet
#

I think it's another issue tho

copper nacelle
#

cause ur looking at it

solemn rivet
#

oh

#

ok

#

I thought it was because it threw an exception while installing something

#

so the temp folder wasn't empty

#

and that breaks stuff when it tries to download

copper nacelle
#

i mean it did

#

cause dnspy was open

solemn rivet
#

oh

copper nacelle
#

also did you know if you install a bunch of mods really fast you get this

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.UnauthorizedAccessException: Access to the path 'D:\tempMods' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
solemn rivet
#

ye

copper nacelle
#

clicking it again works tho

solemn rivet
#

2fast6me

#
if (!Directory.Exists($@"{d.Name}tmp"))
{
    Directory.CreateDirectory($@"{d.Name}tmp");
}
if (Directory.Exists($@"{d.Name}tmp/HKmodinstaller"))
{
    DeleteDirectory($@"{d.Name}tmp/HKmodinstaller");
}

Directory.CreateDirectory($@"{d.Name}tmp/HKmodinstaller");
Properties.Settings.Default.temp = $@"{d.Name}tmp/HKmodinstaller";
Properties.Settings.Default.Save();```
#

slight modification of what AA added

#

but if you're not getting errors, I won't change it to that yet

copper nacelle
#

you don't get errors when dnspy isn't open

#

but if you have like

#

hk open

#

it'd probably do the same thing

solemn rivet
#

yeah

#

who would do that tho

#

and if they do do that

#

they deserve it

copper nacelle
#

true

#

also

#
1ed11dd7f3992514bf205a7888a87c1098e564f6 *Blackmoth.dll
136f8919accef7822fc3934bad8d9d7e90552aab *BonfireMod.dll
2168adb5402fa96dc9ff7f763fdf9f0fd37240af *BoopSoundMod.dll
9308a6d95c586b51666e9ded3db21d31915d047d *BossRush.dll
40a4a16cd55d4453a7546416a2a663d3d4335919 *CharmingMod.dll
0731a7f278acd73d71cead033911a0a298b5c8a7 *CharmNotchMod.dll
520133ab3c65fbfb192ec530bf8e982236b3938f *DebugMod.dll
79279aa4b0da8f4abdf511cdeea7dbffd8d19ba9 *EnemyHPBar.dll
7481b80cf0502dccaa446a885a51a75e88644db7 *EnemyRandomizer.dll
3d1da1ac278e6fede54c06c88417c6271c358f6d *FragileStrengthForNailArts.dll
8d1b7bc9ce6ca60a785e9b0831d6793f277d704c *grimmchildupgrades.dll
9143de25f74c282791f14d1cb156a70a272c436d *HellMod.dll
1894424c8ac3ffb9e001c443eb64f1f9e6616450 *HPBar.dll
5ea8ad4e85bbb2ecd711de379c39d72c19f20172 *infinitegrimm.dll
49bae2accd5784d77d1e85b31e6526aa02ffba9b *Lightbringer.dll
adf847c8b67d910d32ed7a96f5d2ecfa7d6cb8b1 *Mantis Gods.dll
9de3f1b0c218356947ea88c3824169a210111049 *ModCommon.dll
568cde3e9bb986db153c32e93879cd342d7957c7 *MoreSaves.dll
9294136b07c36fab5523ef345fe05f03ea516b15 *Newtonsoft.Json.dll
f573574c7459c505ee6eb3559079cbdfa5233059 *NightmareGodGrimm.dll
e03e30813074f439d5880780a0568d3262b8fe29 *PlayerDataDump.dll
8090548c716d1eec7d3b65ed7bd4464bf6bf626d *QoL.dll
f8e660f8aa77f24353c77dc55366697102f0cf7c *RandomizerMod.dll
333390bfd5922e8d44c8d9c07f7d39f70e9a308c *RandomizerMod2.0.dll
3a843a5810958dba1846fbb1508c52383caff8a0 *redwing.dll
998550d8bd5d050a8a45679324bce9cbbfff0b6c *websocket-sharp.dll
solemn rivet
#

u gonna complain about the visual glitch

#

nice

compact sedge
#

cool

#

but

solemn rivet
#

please someone complain about the visual glitch I've introduced

copper nacelle
#

what visual glitch

compact sedge
#

the "hard" part that I didn't know how to automate was not getting the md5s, but adding them to the mod xml

solemn rivet
#

uninstall any of those mods

#

glhf 56

compact sedge
#

the easy part is downloading all the mods and doing md5sum *.dll

copper nacelle
solemn rivet
#

ye

#

that glitch

compact sedge
#

lol

solemn rivet
#

idk how to fix it tho

compact sedge
#

idk why it happens tbh

solemn rivet
#

I changed some stuff

#

so now it recalcs the lists everytime you install/uninstall

#

it's cute

copper nacelle
#

hey aa

compact sedge
#

hey

solemn rivet
#

but for some reason it glitches the boxes

copper nacelle
compact sedge
#

uh well the first entry is from boop mod

solemn rivet
#

newtonsoft needs to be removed from boopmod iirc

copper nacelle
#

ik

#

i meant the others

#

but :effort:

solemn rivet
#

:effort:ยฒ imo

compact sedge
#

remove the boop mod thing and tell me if the failed to load on my mods are still there

copper nacelle
#

okay

compact sedge
#

and if so send modlog lol

young walrus
#

Wtf is this monstrosity lol

copper nacelle
#

all mods at once

#

gonna try infinite grimm with this

solemn rivet
#

no

compact sedge
#

oh boy

#

esp with ngg installed

leaden hedge
#

you have bossrush installed

solemn rivet
#

you need to automate adding the md5 to the xml first 56

leaden hedge
#

so you won't be able to get anywhere

solemn rivet
#

we need you starfox

copper nacelle
#

it loaded

#

aa

compact sedge
#

ofc it did

#

my assembly checker

#

fails if you have fake assemblies

copper nacelle
#

try catch it imo

compact sedge
#

e

copper nacelle
#

e

compact sedge
#

lol what happens if you go into the grimm arena with infinite grimm and ngg

copper nacelle
#

today we find out

compact sedge
#

also

#

tell me if grimm's text is weird

#

aka normal

#

or if it gets properly changed to something not weird

#

because I have a feeling LanguageHook is a little weird

copper nacelle
#

i highly recommend

#

blackmoth + lightbringer + redwing

compact sedge
#

the ultimate crossover

#

what does that make your knight

copper nacelle
#

god

compact sedge
#

pfft even the regular knight's stronger than the average god

solemn rivet
#

wut

#

filesize went DOWN

#

wtf

copper nacelle
#

aa what is this recharge noise

solemn rivet
#

oh yeah

#

I removed a whole form

compact sedge
#

is your modinstaller source code up to date online

solemn rivet
#

no

#

pushing it

#

done

compact sedge
#

ok ima clone and use the amazing git bisect tool to find out what broke this

#

git bisect is why, 56, making lots of commits is a good idea btw

solemn rivet
#

wtf tho

#

no exceptions?

copper nacelle
#

hell mod is ruining my brokenness

compact sedge
#

nope

copper nacelle
#

ree

compact sedge
#

no exceptions

solemn rivet
#

so weird

copper nacelle
#

works for me

#

at least uninstalling worked

solemn rivet
#

press the API button

#

so I can :kreygasm:

copper nacelle
#

modding api already installed

solemn rivet
#

Kreygasm

copper nacelle
#

why is longdash fragile tho

solemn rivet
#

because it's actually fragile strength

#

and shit's weird

copper nacelle
#

what

solemn rivet
#

read description u dungo

#

of longdash, I mean

copper nacelle
#

This charm is ubreakable

#

wait wtf

hollow pier
#

is it unbreakable though

compact sedge
#

ok

#

so uh

#

I can't use git bisect

solemn rivet
#
["CHARM_NAME_18"] = @"Longdash",

["CHARM_DESC_18"] =
                    @"Strengthens the bearer, increasing the damage they deal to enemies with their dash.

This charm is fragile, and will break if its bearer is killed.",```
#

wtf

compact sedge
#

because the older versions have this error now that they didn't have before:

System.InvalidOperationException: Sequence contains no matching element
#

including the version I sent a PR with

copper nacelle
#

also fix ubreakable

#

also lmao

compact sedge
#

but the newer versions all look messed up but without this error

solemn rivet
#

fucking copy paste

copper nacelle
#

ree he wants me to find the flames

solemn rivet
#

brb finding an ancient commit before I screwed up

copper nacelle
#

are you supposed to never fall with elegy on

#

cause like

#

i'm not dashing

#

but it is

compact sedge
#

I don't think elegy has defined behavior

copper nacelle
#

h

#

re

#

pretty sure this is a bug

solemn rivet
#

ye

#

it is a moth

#

moths are bugs

copper nacelle
#

hitting dash again makes me stop dashing forever

#

ok

solemn rivet
#

oh yeah

#

that's uh

#

experimental stuff

#

that I never bothered removing

#

:effort?:

#

honest tho

#

it is

copper nacelle
#

huh

#

wait wasn't sharp shadow the go through walls thing

solemn rivet
#

ye

copper nacelle
#

elegy is noclip

#

went straight through the wall

solemn rivet
#

When dashing, the bearer's body will be able to go through solid objects.",```
#

yup

#

that was experimental elegy behaviour

copper nacelle
#

neat

solemn rivet
#

basically "do whatever you want, I don't care"

copper nacelle
#

infinite grimm fucking dies, live

compact sedge
#

so uh

solemn rivet
#

but

#

I removed that

#

I added my own handler and removed that MessageBoxManager class tho

compact sedge
#

so uh since there's no exception I am assuming it failed to download the modlist or something

#

there's nothing logged in the terminal either

solemn rivet
#

do you have any mods installed?

#

those at the very least should be added

compact sedge
#

yes

#

does it matter that my mods folder has stuff that isn't mods in it

#

including text files, folders, and a mod.bak

solemn rivet
#

no

compact sedge
#

ok

solemn rivet
#

it should add any dll it finds

#

weird

#

the only part of your code that I changed was the offline behaviour

compact sedge
#

ooh

#

I have a few thoughts

compact sedge
#

wait no I added that one unless you changed the way it worked

#

which you did

#

but

#

what

#

why would that \

#

??

copper nacelle
#

@compact sedge so it was you who called us

#

langget machine broke

#

gonna try ngg mode with this

compact sedge
#

idk what's up with language I don't think I changed it at all

#

oh you know what you added was

#

ResizeUI

copper nacelle
#

what

compact sedge
#

it loads the mods properly but doesn't resize the UI

solemn rivet
#

oh

#

I didn't touch that

compact sedge
#

what

#

idk

#

then

solemn rivet
#

diff imo

compact sedge
#

aaaa

#

it looks fine

#

but it breaks

solemn rivet
#

weird

#

maybe changing it to a struct broke something on linux?

copper nacelle
solemn rivet
#

literally unplayable

copper nacelle
#

also infinite grimm isn't working

#

might be ngg

#

oh wait

#

rando 2

solemn rivet
#

oh

#

maybe it's unable to check if the mod is a GDrive mod?

copper nacelle
#

wavedashing in blackmoth when

solemn rivet
#

when you add it

#
Mod mod = new Mod();
bool isGDriveMod = modsList.Any(m => m.Filename.Contains(Path.GetFileNameWithoutExtension(modsFile.Name)));

if (isGDriveMod)
{
    mod = modsList.Single(m => m.Filename.Contains(Path.GetFileNameWithoutExtension(modsFile.Name)));
}
else
{
    mod = new Mod
    {
        Name = Path.GetFileNameWithoutExtension(modsFile.Name),
        Filename = new List<string> { Path.GetFileNameWithoutExtension(modsFile.Name) },
        Link = "",
        Dependencies = new List<string>(),
        Optional = new List<string>()
    };
}```
copper nacelle
solemn rivet
#

best screenshot

#

the pin button is itching

copper nacelle
#

i've got heavy broken on too

#

so one just went sideways

solemn rivet
#

is the pause menu off-center or you just bad at cropping

copper nacelle
#

@compact sedge the damage dialogue said "so it was you who called us"

#

bad cropping

compact sedge
#

OH I KNOW WHAT IT IS

solemn rivet
#

k

copper nacelle
#

[INFO]:[Infinite Grimm] You did: 377 damage!

#

omega zote

compact sedge
#

this change

+            this.InstalledMods.Size = new System.Drawing.Size(179,1);
-            this.InstalledMods.Size = new System.Drawing.Size(179, 319);

because my mono version can't handle real dynamic resizing

#

fuck u mono

solemn rivet
#

oh

compact sedge
#

/s

solemn rivet
#

should I revert it back then?

compact sedge
#

well it doesn't make a difference on windows right

solemn rivet
#

yeah

compact sedge
#

and

#

no

#

you shouldn't

solemn rivet
#

I don't think so