#archived-modding-development

1 messages ยท Page 118 of 1

copper nacelle
#

including a .sln file and stuff

solemn rivet
#

wut

#

why was I unaware of this until now

#

wtf

copper nacelle
#

dunno

#

i use it to diff between versions

solemn rivet
#

u = genius

copper nacelle
#

thank u

#

it's dnSpy.Console.exe

#

same folder as dnspy

copper nacelle
unborn badger
#

what is Charming mod

copper nacelle
#

@unborn badger Gathering swarm attacks geo nodes when you get go, wayward compass has an on screen 3d cool as fuck map, and heavy blow is broken as fuck

#

heavy blow is heavy broken

#

this is gathering swarm

#

here's wayward compass

unborn badger
#

will install

copper nacelle
#

idk if the charming in drive has everything tho

#

lemme check

rain cedar
#

I never updated that, just put the code on github

#

So idk maybe kerr did

copper nacelle
#

last updated april 22

#

i'll go build a new version

unborn badger
#

thx

#

is grimmchild upgrades broken or actually balanced

copper nacelle
#

@compact sedge

compact sedge
#

Well by default it's mildly broken, maybe slightly underpowered compared to the charming stuff

#

but you can configure it fully

#

so

unborn badger
#

what does QoL mod do

compact sedge
#

QoL is a bunch of tiny mods to make the game slightly better

#

removing salubria sounds, skippable credits

#

pick and choose the ones you want

unborn badger
#

wow that's pretty broken

compact sedge
#

It does cost 6 notches

unborn badger
#

oh

compact sedge
#

but it definitely gets more broken with each update as I find new fun ways to improve it.

#

like it didn't used to give you 33 soul every time it attacked

copper nacelle
#

needs modcommon and stuff

unborn badger
#

k

stray mirage
#

@rain cedar was the shitmodst 4 softlock intentional?

rain cedar
#

It just swaps textures

stray mirage
#

that's what i thought

#

i have that and randomizer installed

compact sedge
#

THERES 4 OF THE THINGS?!?!?!!

stray mirage
#

but there is a spike in ancestral mound that prevents progress

rain cedar
#

I have no idea what you're talking about

stray mirage
#

yeah i didn't think you would

#

but do you know at all how that could happen?

rain cedar
#

I don't even know what you mean

stray mirage
#

roughly

rain cedar
#

None of the textures are even swapped

stray mirage
#

i know

rain cedar
#

Is this someone else's screenshot?

stray mirage
#

yeah

#

you wouldn't be able to see it otherwise hollowomg

rain cedar
#

Ok whatever

#

As long as it's not randomizer causing that I don't care

compact sedge
#

would it be possible to override System.Random and Time.DeltaTime?

Because I think if you could it would make TAS totally possible?

solemn rivet
#

dunno about System.Random

#

but isn't there something for controlling the game's speed?

compact sedge
#

no I'm not talking about timescale

#

I'm talking about explicitly telling the game how much time passed between 2 frames regardless of the actual real life time pass

#

so then you can be sure that it's consistent

#

and that lag spikes don't desync your TAS run

solemn rivet
#

oh

copper nacelle
#

monomod hooks on unityengine.dll

#

and system.dll maybe?

hollow pier
#

monomon haha

rain cedar
#

A lot of Unity isn't C#

compact sedge
#

and for System.Random, overriding it to use explicit seeds given by an arbitrary starting time plus how ever much "time" has passed

rain cedar
#

So it's not nearly as easily accessible

compact sedge
#

ok so the internal function that runs to produce the Time.DeltaTime value may not be accessable but there's still a c# thing making it accessible to the game right?

#

and you could override that and replace it with an entirely c# function that, say, returns a static float??

rain cedar
#

Time.deltaTime is an externally defined float with only get

#

But yeah maybe we could replace the get

copper nacelle
#

doesn't the game use UnityEngine's random a bunch too

rain cedar
#

Not sure what those attributes do, would have to look into it

#

Yeah 56 probably

#

Ok that MethodImpl attribute is for calling C code

#

Now to see if HK still works

#

Yeah it works

compact sedge
#

set it to a value that is very different from your framerate

#

and see what happens

rain cedar
#

Shit is fucked though obviously since I'm running 500 fps

compact sedge
#

oh you did

rain cedar
#

Yeah that number is 1/60f

compact sedge
#

but it works?

rain cedar
#

Yeah

compact sedge
#

Alright well that's one problem y'all had with tasing solved

rain cedar
#

Gotta change all the other ones too

#

No big deal

compact sedge
#

IMO for random.

gonna want an arbitrary seed for the first random called, and for all future randoms a seed based on the amount of (fake) deltaTime that has passed since the first one

#

since random's default seed is based on the system time I believe

#

dunno about unity random though

#

and ofc if the game specifies a seed then just use that as normal

copper nacelle
#

couldn't you just change it to something like

#

the mean of the min and max

#

so nothing would be random

compact sedge
#

the problem with setting the seed as static for all randoms is it makes the tas not work on unmodded hardware even in theory

#

since unmodded hardware has the clock constantly incrementing

#

plus it would probably result in weird boss behavior

copper nacelle
#

wdym

#

couldn't you just change System.Random

compact sedge
#

well I don't trust playmaker to not be making a new System.Random every time it needs one random number and every time you make a new one you need a new seed and that seed is either specified in an argument or gotten from the system time.

copper nacelle
#

make the constructor just return a premade system.random

#

wait

#

why not just override all the functions

#

to return like

#

7

#

or something

compact sedge
#

because at that point you're not tassing HK you're tassing a game that's almost identical to HK but differs in subtle ways that make it effectively not HK

rain cedar
#

I've overriden deltaTime and fixedDeltaTime and player physics are still normal speed

#

I think the C part of Rigidbody2D is directly accessing the right values in C

compact sedge
#

IMO @copper nacelle all tasses should be repeatable by a perfect robot playing HK on a perfect, unmodded computer. Perfect unmodded computers don't exist so the best you can do is modify certain functions like time to simulate perfect unmodded hardware.

copper nacelle
#

if they're making new system.random's couldn't you just change all their methods to use normal System.Random instead

#

or make all the instance methods of System.Random return the static stuff

rain cedar
#

They don't even use the system random

compact sedge
#

ever?

rain cedar
#

Maybe something they do indirectly uses it

#

There's all the potentially relevant results

compact sedge
#

wtf does the game use WebSockets for?

rain cedar
#

My guess would be it doesn't

#

PlayerDataTracker uses it

#

So that's probably why it's in my dnspy

#

UnityEngine.Random stores its seed as 4 ints in a struct

#

But the ints are all private

#

???

compact sedge
#

If you get them with reflection maybe you can reverse engineer how they go about getting those. or be lazy and do what 56 said I guess.

#

or maybe it's in the docs idk

copper nacelle
#

what's wrong with just changing the seeds all to like 7

rain cedar
#

Just gut UnityEngine.Random and make it use a static System.Random

#

Done

flat forum
#

what are you trying to do tho?

copper nacelle
#

TAS hk

rain cedar
#

It's not gonna work

#

Too much shit Unity does is inaccessible without god tier asm modding

compact sedge
#

The seed is normally set from some arbitrary value like the system clock before the random number functions are used. Thanks for being specific about how you set your seed unity.

#

some arbitrary value

#

aka could be literally anything and change between unity versions

#

imo replace it with system.random

rain cedar
#

Yeah obviously

copper nacelle
#

loss_pollitoz more like | || || L pollitoz

scenic slate
#

would it be possible to make a mod where trial of the fool is infinate and enemies gain more hp and dmg as it goes on?

#

wow

copper nacelle
#

infinate

scenic slate
#

fit me m8

copper nacelle
#

infinite grimm meme

#

also iirc graig was asking for that a bit back

#

i think it's possible

rain cedar
#

You can probably just grab the already made waves and cycle through them randomly forever

coral creek
#

guys im trying to downgrade from lifeblood because i want to play the bossrush mod

#

but how do i actually downgrade?

rain cedar
#

;guides

#

Thanks zote

coral creek
#

thanks

misty cedar
#

Hey, can anyone explain to me how to use the online hollow knight randomizer helper? I've put the hollow_knight_Data folder of the Modding API 1.3.1.5 in the steamapps common Hollow Knight folder but I don't know what to do next.

errant oar
#

is the bonfire mod still a thing or no

exotic venture
#

it exists

leaden hedge
#

You could probably edit the exe via asm to make time always fixed even for stuff that skips the c# field but sounds pretty cancer to find relevant code in asm

mossy pike
#

@misty cedar the randomizer helper is only a way of knowing which item locations you can reach with the items you currently have, it doesn't take part in the installation of the randomizer. To install the rando, you need to get the Randomizer Mod and Mod Common from the GDocs folder (2nd message in the pinned messages) and follow the instructions

#

after you put everything in its right place, just launch the game and create a new save. Then, to use the helper, you check the boxes in "Key Item" once you've acquired the corresponding item and check the boxes in "Obtainable Items" once you've reached the corresponding location

unborn badger
#

is randomizer 2.0 broken?

rain cedar
#

In what way?

unborn badger
#

with randomizer 2.0 installed when i load the game up it's just the title and no options

rain cedar
#

You need modcommon

unborn badger
#

ah

#

thanks

copper nacelle
#

installer reeeeeee

leaden hedge
#

maybe modcommon should add a function thats called when it isn't installed that installs it hollowface

errant oar
#

does it not work with the current lifeblood version?

exotic dune
#

randomizer works fine

wary drift
#

how do i edit hollow knight files with unity?

compact sedge
#

First question. What are you tryting to do?

wary drift
#

i want to know how to edit the files to change simple in game things

compact sedge
#

can you be more specific?

wary drift
#

like jump height, speed and damage

#

i want to mess around with these

flat forum
#

Damage is easiest

compact sedge
#

Alright. For that I don't think you need the unity editor at all, and better not to use it probably

flat forum
#

Or at least nail damage

wary drift
#

oh

#

oke

flat forum
#

It's literally a number

#

You can set

compact sedge
#

Basically for these kinds of variables I think the only or at least easiest way to modify them is by coding them directly

wary drift
#

oh oke

compact sedge
#

so

#

to get started with this first you're gonna need/want an IDE

wary drift
#

just backing up hollow knight

compact sedge
#

this is a program designed to make writing code a lot easier

#

Even though it's not the best one around, you can probably get the most help here and in other servers using a program called Visual Studio.

#

(plus it's free)

wary drift
#

what about python?

compact sedge
#

The problem is this. The game is written in C# and so it's easiest and (possibly required) that you modify the game in this language as well

wary drift
#

kk

compact sedge
#

So I guess if I was to write a guide it would go something like this:

  1. Download Visual Studio Community Edition 2017 from here: https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15

  2. Download the modding API and optionally modcommon.

  3. After installing Visual Studio Community, create a new project and that new project should be a "Class Library" using the .Net framework 3.5. Name it whatever you wanna name your mod.

  4. Right click on the project folder on the right and choose add reference. Add as a reference the modding API assembly DLL, and a few DLLs from your game folder, including PlayMaker UnityEngine UnityEngine.UI and optionally ModCommon

  5. Copy code from other mod projects, including the example projects in the modding API folder

  6. ...

  7. Release the next lightbringer or whatever.

copper nacelle
#

nice <>

compact sedge
#

fixed it

copper nacelle
#

thank

#

also which one of these seems better

compact sedge
#

you know I like verbose stuff

copper nacelle
#

true

compact sedge
#

so I have a biased opinion

solemn rivet
#

@wary drift if you want to edit things just for your own use, I'd suggest using dnspy instead of VS

compact sedge
#

it depends ofc but I wouldn't even for my own use. writing mods that way may save marginal amounts of time but keeping those kinds of mods up to date with the game is a nightmare so unless it's for a 1 off meme then don't bother

solemn rivet
#

yeah that's mostly why we moved away from editing the assembly directly

#

that and legal issues with distributing the game's assembly

compact sedge
#

if HK was written in unreal or something and made in c++/c you could mod it without either modhooks or editing the assembly directly.

#

Because you could use LD_PRELOAD or whatever the windows version of that is to override original functions much in the way monomod hooks lets you do.

#

But the down side is the original code, variable and function names, etc, would be destroyed.

solemn rivet
#

yikes

#

speaking of which

#

did you manage to pseudo-hook the focus, AA?

leaden hedge
#

how would you know the function names ๐Ÿค”

#

c++ is compiled

compact sedge
#

you figure it out by disassembling it and figuring out what the assembly does

#

obfuscated games are the same way

#

but people can do

#

it

leaden hedge
#

might aswell use asm then

#

I used it to add hitboxes to gg xrd rev and it was cancer hollowface

#

I'd rather not make a real mod that way

compact sedge
#

look if minecraft can be modded and runescape can have custom clients it's clearly possible to deobfuscate stuff given enough time

copper nacelle
#

but do you want to

compact sedge
#

and I know those are java but it's the same problem

leaden hedge
#

but neither of those are compiled

copper nacelle
#

doesn't java decompile with function names

leaden hedge
#

it does

compact sedge
#

yes it's a lot like c#

leaden hedge
#

minecraft and runescape use another program

compact sedge
#

but if you obfuscate it you can hide almost everything

leaden hedge
#

to replace all the function names

compact sedge
#

not just replacing the function names, also all the variables, and changing them around so one function becomes 3 or 4

copper nacelle
#

wtf

#

why

median trout
#

Hey, I'm probably missing something obvious, but I don't know how to install modcommon. I have it downloaded, but the installer file isn't working

copper nacelle
#

wdym

compact sedge
solemn rivet
#

nice!

leaden hedge
#

but thats much more readable than

mov eax, number
or eax, eax
jz _exit
bsr edx, eax
mov ecx, 31
sub ecx, edx
shl eax, cl
lea edx, buff
@@:
    shl eax, 1
    setc BYTE PTR[edx]
    add BYTE PTR[edx], 30h
    inc edx
    inc ecx
cmp ecx, 32
jl @B 
_exit:
#

asm is considerably more cancer than obsfucated code

compact sedge
#

the only parts of asm that matter are the parts where it calls functions

#

and there's tools for navigating it much like the tool for navigating fsms

#

and there's programs that can generate code from assembly, although definitely not the original code

#

And very many times there will be ONE version of a program that accidentally gets released with debugging symbols

#

it happened to guild wars 2 so no game is safe imo.

median trout
#

When I tried to use the installer file in modcommon, it just says "the system cannot find the path specified"

compact sedge
#

???

copper nacelle
#

what installer file

leaden hedge
#

bcminer.exe obviously

median trout
#

The install_build.bat

leaden hedge
compact sedge
copper nacelle
#

no stop no

#

^

#

the install_build is for if you compile it yourself and such

median trout
#

I have no idea what I'm doing, thanks

leaden hedge
#

just boycott mods that use modcommon tbh

#

too complicated

compact sedge
#

just boycott mods that use modding api

leaden hedge
#

ye

copper nacelle
#

just boycott all mods

leaden hedge
#

they pretty gay

#

we need to go back to the good old days

#

of manually patching the assembly

compact sedge
#

just boycott video games with mods

leaden hedge
#

boycott electronics

#

boycott life

#

boycott boycotting

rain cedar
#

I was gonna make that joke

leaden hedge
#

ill delete my message so you can make it for $3.99

compact sedge
#

thanks ubisoft

rain cedar
#

I think there's better things to spend my money on

copper nacelle
#

yw

leaden hedge
#

think of the pride and accompishment you'd get

rain cedar
#

I could buy lootboxes with that

compact sedge
#

for $3.99 I'll delete 4 random messages I've sent in this discord server.

compact sedge
#

Dash vector hook should let you get the current dash vector

#

instead of having 0 inputs and return a new dash vector.

solemn rivet
#

pr when

compact sedge
#

I'll send a PR to modding api if sean accepts it but then it'd break blackmoth

#

but I'll do it anyway

#

because it's a 1 line fix

solemn rivet
#

I mean

#

if it's better like that, there's no reason not to fix it

copper nacelle
solemn rivet
#

oh shit

#

gotta watch dat

copper nacelle
solemn rivet
#

much appreciate

copper nacelle
#

he's using old rando but it's somehow working

compact sedge
#

Alright I have no idea how to get the original game's dash vector

leaden hedge
#

ask nicely

copper nacelle
#

^

compact sedge
#

so uhh right now I have a nullable vector2 that will be null if you're the first mod to run the hook and will be whatever the last mod set otherwise.

#

but that feels... idk something about that feels wrong

copper nacelle
#

shouldn't it be the original if you're the first mod to run the hook

compact sedge
#

if you're the first mod to run the hook then the hook will give you a null Vector2 and if you're the second mod to run the hook then it will give you a Vector2 that is whatever the last mod's vector2 was.

copper nacelle
#

yeah ik

#

but shouldn't the first mod get the game's original vector

#

and then the second mod get the last mod's

#

etc

compact sedge
#

the game's original vector isn't like a thing I can get that's the problem

copper nacelle
#

what's the hook called again

compact sedge
#

DashVectorHook

#

and here's the original code:

private extern void orig_Dash();

        private void Dash()
        {
            AffectedByGravity(false);
            ResetHardLandingTimer();
            if (dash_timer > DASH_TIME)
            {
                FinishedDashing();
                return;
            }

            // Check if we run our own dash code.
            Vector2? vector = ModHooks.Instance.DashVelocityChange();
            if (vector == null)
            {
                // Run the original dash code.
                orig_Dash();
                return;
            }
            rb2d.velocity = vector.Value;
            dash_timer += Time.deltaTime;
        }```
#

so modded dash as done by the modding api is separate from the original game dash best I can tell

#

and I could change this to:

Vector2? vector = null;
vector = ModHooks.Instance.DashVelocityChange(vector);

which would let multiple mods integrate with each other but would not fix the problem that there seems to be NO original dash vector.

copper nacelle
#

change orig_dash to not set rb2d velocity and have it set vector instead maybe?

compact sedge
#

I can't change orig_dash as far as I can tell

copper nacelle
#

wait what

compact sedge
#

Oh you mean rewrite orig_dash to just do it the same way it's done in modding api

#

I could do that

copper nacelle
#

yeah

#

have it set vector instead of rb2d.velocity

#

and then set rb2d.velocity to vector at the end

weary oyster
#

having to relearn all muscle memory for regular grimm now

#

smh thanks @compact sedge

compact sedge
#

but regular grimm isn't even hard by comparison

weary oyster
#

regular nkg

#

hes so slow

copper nacelle
#

yeah but infinite grimm fucks your muscle memory for when he's as slow as a snail

#

like

#

pogoing him thrice at 2x speed is different than at 1x

compact sedge
#

that's what regular mode is for

#

to build your muscle memory against regular NKG

#

and hard mode

copper nacelle
#

:ech:

compact sedge
#

is for having fun

leaden hedge
#

who is the monster that makes garbage now intenseface

compact sedge
#

ok dnSpy console rocks

copper nacelle
#

ur welcome

compact sedge
#

but

#

ugh

#

not looking forward to writing this code

#

cuz pita

median trout
#

I have the charm notch and randomizer mod installed, and just beat the false knight. For some reason if I try to leave the room, the game doesn't load the next room or something, it just continuously shows the loading screen (black screen w/ the knight walking in the bottom right corner)

copper nacelle
#

Enter from the right side at dream nail
Don't interact with it after entering from the left

young walrus
#

^

#

different bug 56

copper nacelle
#

no u dungo

#

this version has that bug patched

#

but doesn't have dnail patched

young walrus
#

the dnail thing is super niche

copper nacelle
#

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

median trout
#

I don't even have dreamnail yet (if that has anything to do with it)

young walrus
#

see, you confused him

#

use the version that he linked you

#

that fixes the FK bug

copper nacelle
#

re

#

literally copy-pasted what sean said

compact sedge
#

uh one problem. I can't access: this.BUMP_VELOCITY_DASH or this.BUMP_VELOCITY

#

how do you do reflection again argh

leaden hedge
#

you google: site:stackoverflow reflection c hashtag

compact sedge
#

actually they're just consts

#

even though they're not consts in the original code

#

because TC gud coders I guess

#

no really, it's a private float assigned at compile time and used two places but not actually marked as const.

#

why?

#

It's even in all caps as a const should be

leaden hedge
#

yes

compact sedge
#

also should I put the dash vector getting code in its own separate private function or just add it to Dash

#

cool I made the changes and think it works, amazingly

#

ugh now I have to build modding api twice once for the beta version

compact sedge
#

so uh I have a problem

I changed this:

internal Vector2 DashVelocityChange()

to

internal Vector2 DashVelocityChange(Vector2 change)

but rider is still suggesting that I create DashVectorHook without a vector2, which causes a reflection exception when it tries to subscribe to it.

copper nacelle
#

ignore rider ez

compact sedge
#

uhh what am I doing wrong

copper nacelle
#

not ignoring rider

#

does it compile if you add the arg

compact sedge
#

no

#

but it does a bunch of reflection errors if I try running it

#

how do I set what it requires

copper nacelle
#

the handler

#

what was the hook called again

#

change that

compact sedge
#

DashVectorHook

#

I did

#

that's what I changed

copper nacelle
#

wtf

#

did you change both of them

#

wait they use the same handler anyway

compact sedge
#

here I'll put my code on github 1 sec

#

what am I missing here

copper nacelle
#

what

#

nowhere in that does it say you changed the delegate

compact sedge
#

oh nvm ur right

#

I found it

#

Assembly-CSharp/Handlers.cs: public delegate Vector2 DashVelocityHandler();

#

๐Ÿคฆ

copper nacelle
#

big dungo

#

anyways that should fix it

compact sedge
#

yep

#

works 100% I think

#

this will break blackmoth but the fix is super tiny. But now I'm worried about people who update one but not the other.

#

it works both with mods that use the hook and without them and functions as advertised though as far as I can tell

solemn rivet
#

k, am back

#

what is the vector2 input then?

#

null for the first mod still?

copper nacelle
#

original dash for first mod

#

i think

solemn rivet
#

if it is so, then great

copper nacelle
#

yeah it is

#

just checked

solemn rivet
#

nice

#

as soon as it gets accepted I'll change blackmoth

compact sedge
#

ok thanks. I just figured it would make sense to do this change since basically every other function with a return also provides something you can return as an argument

solemn rivet
#

yeah, it makes tons of sense

weary oyster
solemn rivet
#

oh boi

exotic venture
#
  1. Bonfire
solemn rivet
#

noooo

#

y bonfire

exotic venture
#

well that one is fucking broken as shit

hollow pier
#

if shitmodst isnt in it im disliking

solemn rivet
#

it's literally the mod I'm least proud of

exotic venture
#

so this video is already up to a good start

copper nacelle
#

glass soul

#

debug mod

compact sedge
#
  1. Glass Soul: Shows footage from normal game
exotic venture
#
  1. glass soul
copper nacelle
#

randomizer

exotic venture
#

wow

hollow pier
#

rando 2 is pretty good

copper nacelle
#

lightbringer

exotic venture
#

HAHAHAHA

hollow pier
#

lightbringer hollowwoke

exotic venture
#

wow ok

copper nacelle
#
  1. Bonfire
  2. Glass Soul
  3. Debug Mod
  4. Randomizer
  5. Lightbringer
exotic venture
#

did this guy even do research

copper nacelle
#

rip me

compact sedge
#

thanks 56

hollow pier
#

how can you showcase lightbringer but not the superior shitmodst

copper nacelle
#

yw

hollow pier
#

literally unplayable

#

disliked

solemn rivet
#

who is that guy

compact sedge
#

Lightbringer should say:

Play Shitmodst

in the bottom at all times

exotic venture
#

glass soul is borked since uhhh yes

#

debug mod is a necessity

compact sedge
#

wait does glass soul not actually work?

exotic venture
#

bonfire is borderline broken

hollow pier
#

arent they all broken

exotic venture
#

randomizer works

leaden hedge
#

how can you not list the ultimate mod of all time ngg

hollow pier
#

hell mod > ngg

#

change my mind

exotic venture
#

and lightbringer is

solemn rivet
#

borderline zote

compact sedge
#

hell mod NGG

young walrus
#

who is this person?

compact sedge
#

when

leaden hedge
#

hell mod isn't even hard

hollow pier
#

ur not even hard

compact sedge
#

hell mod NGG hitless nailless spellless

#

at 3x speed

leaden hedge
#

at 69x speed

hollow pier
#

when is infinite ngg

compact sedge
#

it's been out for like a week

#

seriously

solemn rivet
#

117k subs wtf

compact sedge
#

not joking is real screenshot

hollow pier
#

thats like 19 hk discords

leaden hedge
#

what if language isn't in englando

solemn rivet
compact sedge
#

yeah I need to localize my stuff

young walrus
#

debug mod can't spawn random mobs tho.....

solemn rivet
#

^

#

I just reached that part

young walrus
#

this dude got debug mod completely wrong

compact sedge
#

wtf I just heard that

exotic venture
#

hey this is a good one

compact sedge
#

look the dude talked about glass soul for 3 minutes without showing ANY footage of it

hollow pier
#

almost like starting the video at the same time means you reach the same point at the same time

#

hella woke

exotic venture
#

he says glass soul you die in one hit = game over

#

but that is glass steel soul

#

this fucking guy LUL

young walrus
#

and.... he got randomizer wrong

#

who TF is this dude

exotic venture
#

i am gonna write an essay

compact sedge
#

ice soul

exotic venture
#

hold on

young walrus
#

literally not even learning about the mods he's talking about

solemn rivet
#

let's all comment on his vid

hollow pier
#

hi gonna write an essay

solemn rivet
#

and dislike it zote

hollow pier
#

already disliked because no shitmodst

exotic venture
#

i disliked it because of the sheer amount of misinformation

solemn rivet
#

precisely mys

hollow pier
#

comment play shitmodst

leaden hedge
#

lightbringer a "little" broken hollowface

solemn rivet
#

y not blackmoth

#

reee

leaden hedge
#

because it was the 5 random mods he had installed at the time

copper nacelle
#

y not mantis gods

#

reeee

leaden hedge
#

no actual selection or research hollowface

solemn rivet
#

I mean

#

Lightbringer, sure

hollow pier
#

y not player data tracker

#

reee

leaden hedge
#

truly the best mod

#

pdt

solemn rivet
#

TC themlseves advocated for that mod

compact sedge
#

well 4 random mods

copper nacelle
#

also glass soul over everything else

hollow pier
#

kdt improved his modder status by at least 2 places with pdt alone

solemn rivet
#

bonfire is not serious at all

leaden hedge
#

from what to what

young walrus
#

"If people want to know what these mods ACTUALLY do, come visit us on the Discord server. We'll get you sorted."

solemn rivet
#

from KDT to PDT ofc

hollow pier
#

you beat firzen and wyza

#

good work

leaden hedge
#

wow

#

wyza wasn't even a modder when I made PDT

hollow pier
#

no wonder you beat him

copper nacelle
#

firzen isnโ€™t even a modder anymore

hollow pier
#

wow rip firzen

leaden hedge
#

pretty sure when I made PDT, me, 753, sean and firzen were the only modders

young walrus
#

comments section isn't even loading for me

#

but i'm gonna type that as soon as i can

hollow pier
drifting light
#

I think Grimm is just a mod boss fight

copper nacelle
#

what

hollow pier
#

wait seans a modder too i always forget that

compact sedge
#

it's true grimm isn't in vanilla

hollow pier
#

doesnt affect kdt's placement tho

drifting light
#

a Halloween mod

leaden hedge
#

so I assume number 1

#

is my rank

hollow pier
#

number 80

solemn rivet
leaden hedge
#

wow rude

copper nacelle
compact sedge
#

shh

copper nacelle
#

thatโ€™s angle

leaden hedge
#

what about boss rush though

hollow pier
#

do i just comment some copypasta

leaden hedge
#

a mod so good its vanilla

#

what about MoreSaves

compact sedge
#

oh cmon I can't put all the problems in one comment

exotic venture
#

i'm still writing

hollow pier
#

qol is the real mod

leaden hedge
#

a mod so good TC broke it on purpose hollowface

hollow pier
#

angle just reply to your comment to add points

solemn rivet
#

boss rush was a good mod

hollow pier
#

its what the cool kids do

drifting light
#

WAS

copper nacelle
#

Boss rush was great

solemn rivet
#

too bad TC had to pick it up

drifting light
#

Wait

hollow pier
#

tc stole kdt's mod

#

just sue them hollowomg

drifting light
#

why i say it was a good mod?

compact sedge
#

Man those "Team Cherry" modders are really good at the game.

drifting light
#

I didnยดt even played it

copper nacelle
#

inb4 tc steals lightbringer

leaden hedge
#

can we copystrike TC guys

#

pls

compact sedge
#

Send them a cease and desist

drifting light
#

I laughed when i knew the best Fallout New Vegas mod was from the creator itself

solemn rivet
#

not again

#

dmcaยฒ

leaden hedge
#

can I dmca myself

drifting light
#

I would like a cloak color change mod

#

Even if itยดs hard asf

compact sedge
#

Same

#

that'd be awesome

copper nacelle
#

doesnโ€™t stuff based on gpl have to be open sourced

compact sedge
#

hint hint

solemn rivet
#

I was honestly thinking of adding that to blackmoth

young walrus
#

done

hollow pier
#

i like using apostrophes `

leaden hedge
#

cloak colour would be slightly awkward I guess

hollow pier
#

Did you know you can put the Dark Souls bonfire system in Hollow Knight? Well here, I'll show you how to do that and more using some of the most creative mods I could find throughout Reddit and the Discord server.

drifting light
#

Why?

hollow pier
#

the discord server

leaden hedge
#

its not paletted so you'd actually have to cut out the cloak from every sprite

#

and render it seperately

compact sedge
#

yeah I don't know the best way to do it but I wanna try some time to implement that in redwing

leaden hedge
#

then you could just apply a colour to that sprite

exotic venture
#

he said he downloaded all these mods

compact sedge
#

I might just scan the knight sprite for colors that are cloak colored

leaden hedge
#

actually

#

bad idea

compact sedge
#

and then

exotic venture
#

but does that mean he downpatched for lightbringer

compact sedge
#

set those to the color I want

leaden hedge
#

make shader

compact sedge
#

ok

leaden hedge
#

give a texture white/black

#

white where cloak is

young walrus
#

"I downloaded all these, but then didn't show any footage of randomizer or glass soul mod"

leaden hedge
#

change hue based on that

compact sedge
#

but like the cloak's position moves

leaden hedge
#

yeah

#

the texture is based on the source sprite sheet

compact sedge
#

ok well first person to do this in an open source project gets their code stolen by me.

solemn rivet
#

^seconded

leaden hedge
#

im gonna do it, but make sure my license is non-permissive intenseface

compact sedge
#

reeeee

exotic venture
#

HAHAHA

#

he just linked the google drive

compact sedge
#

omg can't wait for 1200 people to get confused installing the mods from there

#

because 0 people read the readme

#

you know, the text file that says: THIS MOD NEEDS MODCOMMON YOU IDIOT

hollow pier
#

who reads the readme just listen to it lmao

leaden hedge
#

i've not got the sprites though ๐Ÿค”

#

if only someone made a sprite dumper

compact sedge
#

wait I know

young walrus
#

sighs

#

be prepared for a bunch of really confused people asking for help

#

thanks random dude

leaden hedge
#

just change the link lmfao intenseface

young walrus
#

lol

hollow pier
#

isnt that the entire modding channel

leaden hedge
#

no

#

this is shitposting

young walrus
#

it's like.... 10% of it

leaden hedge
#

the modding tag is just to scare away normies

compact sedge
weary oyster
#

let the bodies hit the floor is more my jam tbh

solemn rivet
#

wait

#

he didn't even credit the mods' creators

#

I just realized this

compact sedge
#

and all the videos will just be how to download gradow's mod installer and use it

hollow pier
#

but gradow you arent proud of bonfire

solemn rivet
#

I'm not

hollow pier
#

hi not

solemn rivet
#

how bonfire came to be:

#

"I know nothing about coding. I know, I should do some really hard project to learn it!"

#

BOOM

leaden hedge
#

remake bonfire but good

solemn rivet
#

bonfire

hollow pier
#

bonfire is good as is

solemn rivet
#

"really hard"

hollow pier
#

modding is just breaking the game right

compact sedge
#

see infinitegrimm was "I know nothing about C#. I know, I should do something that sounds really easy to learn it!"

#

and then it turned out to be slightly harder than I thought

#

because fsms

solemn rivet
#

the opposite happened to me

#

the hardest part of bonfire was figuring out the GUI

#

and the formulas

hollow pier
#

who uses C# when you can use Db

leaden hedge
#

ngg came to be:
fuk people in discussion lmao

solemn rivet
#

because KDT and Wyza did all the fsm stuff for me at the time

young walrus
#

Like.... that video would have been amazing

#

just.... get your facts right

sinful wolf
#

lol just saw the The Superforged video and got into this discord to know more about modding, would really like to give it a try myself modding

compact sedge
#

I def stole a lot of FSM stuff and I wouldn't be here without modcommon fsm dumper

solemn rivet
#

I honestly planned on making a series of videos on my channel showcasing every mod

hollow pier
#

and it begins

solemn rivet
#

but for language issues, I scrapped the idea

young walrus
#

^

#

so it begins

leaden hedge
#

the prophesied one appears

solemn rivet
#

oh no

leaden hedge
#

the end times are near

sinful wolf
#

haha

solemn rivet
#

first, answer us this

#

who tf is that guy

exotic venture
sinful wolf
#

was going to keep silent but what gives

hollow pier
weary oyster
#

because you clicked on a link

exotic venture
#

check link

compact sedge
#

"Debug Mod is a necessity"

WRONG

solemn rivet
#

you should comment too ptkyr

compact sedge
#

I mean it's right

#

but like idk I just found that line funny

exotic venture
compact sedge
#

it implies you need debug mod to survive

leaden hedge
#

its not highlighted for me

exotic venture
#

i mean

#

you need it to survive in the world of modding

compact sedge
#

really you only need it to survive if you install blackmoth

#

and clip yourself out of bounds

#

and can't get back in

exotic venture
#

dunno

solemn rivet
#

hey

exotic venture
#

i see stuff break all the time

hollow pier
#

i needed debug mod to survive on my first playthrough

solemn rivet
#

maybe you wanted to get oob, ok?

hollow pier
#

that 3000 dmg nail came in clutch

compact sedge
#

hey it's not your fault that the OOB respawn point is also out of bounds

#

blame TC

#

for not setting it somewhere sane

#

on most maps

solemn rivet
#

AA gets me

hollow pier
#

is this the second coming

solemn rivet
#

@sinful wolf btw what did you want to know? Sorry for all the shitposting

leaden hedge
#

unrelated to your insistent shitposting, does anyone have nkg sprites lying about

#

I accidently deleted my dump of all sprites

hollow pier
#

arent there sprites in art

compact sedge
#

from art discussion

leaden hedge
#

arts gay

hollow pier
#

big think

leaden hedge
#

nice

#

literally everything named atlas

exotic venture
#

oh no are you the guy who wants to mod hollow knight till it breaks

sinful wolf
#

@solemn rivet its ok, its quite amazing to find this discord after all this time, been a huge fan of the game for a while now

leaden hedge
#

great dump 10/10

#

do you want to mod or do you want to install mods

solemn rivet
#

^

sinful wolf
#

I would love to get into modding the game

compact sedge
#

that doesn't answer the question. modding has 2 meanings

solemn rivet
#

ye

compact sedge
#

to make mods, and to apply mods to your game

sinful wolf
#

I'm a Unity Developer, I already took a look at the game code and made some private projects mimicing some parts of the Hero.cs class

leaden hedge
#

well I wouldn't mimic anything this game does

solemn rivet
#

we ascend bois

compact sedge
#

... well we have an actual modding api.

sinful wolf
#

but I guess for modding there must be some things outside of unity I must know

solemn rivet
#

well

compact sedge
#

have you ever done any scripting in Unity?

solemn rivet
#

who wants to give the bad news?

compact sedge
#

let's lessen the blow

sinful wolf
#

lol sorry just realized I didn't answer the question clearly xd I want to develop a mod

leaden hedge
#

what do you want to mod

hollow pier
#

celeste

sinful wolf
#

@compact sedge yep, a lot of scripting, thats what I do actually, just never developed mod a game before

leaden hedge
#

well this is the wrong server for celeste

compact sedge
#

ok well was that scripting in java script or c#?

leaden hedge
#

but I can help you with that

solemn rivet
#

oh boi I've been playing Moonlighter lately, and I wanna mod it so badly

sinful wolf
#

C#

compact sedge
#

who wants to give the good news?

solemn rivet
#

so

exotic venture
#

good news: you can mod it freely
bad news: you're gonna be stuck in fsm hell forever

leaden hedge
#

good news: this game is mainly coded via playmakerfsms

#

which are garbage

solemn rivet
#

wait - how is that good?

leaden hedge
#

bad news: we have a barely functional viewer

compact sedge
#

good news: FSMs aren't that bad when you learn them

solemn rivet
#

oh, ok

compact sedge
#

bad news: learning them

sinful wolf
#

yea, I decompiled the game and noticed playmaker x_x

solemn rivet
#

yeah

compact sedge
#

better news: lots of non-fsm stuff you can do thanks to the modding api

solemn rivet
#

they are fairly manageable now

#

but back in the day... OH boy

leaden hedge
#

thats why I asked what you wanted to mod

compact sedge
#

LPT: just do callmethod

#

on an fsm

#

and nothing else

solemn rivet
#

I still don't get you, AA

leaden hedge
#

as certain things are "good luck"
and other are yeah we have a hook for that

solemn rivet
#

send cod pls

compact sedge
#

will do 1 sec

leaden hedge
#

no

solemn rivet
#

much obliged

sinful wolf
#

what do you mean by fsm?

compact sedge
#

finite state machine

solemn rivet
#

finite state machine

leaden hedge
#

finite state machine

compact sedge
#

it's a thing that playmaker which is a unity addon uses

#

and playmaker is a thing that HK uses A LOT

sinful wolf
#

oh I see

solemn rivet
#

flowchart generator โ„ข

sinful wolf
#

is that why a lot of classes seem to have like 100 variables?

compact sedge
solemn rivet
#

kinda

#

also, thanks!

leaden hedge
#

instead of actually coding the game, they have files that gets compiled to code at runtime

solemn rivet
#

lemme see...

compact sedge
#

give it ANY instance (even one outside that gameobject) of a monobehavior and any method

#

and it will run it

#

on the fsm

leaden hedge
#

but instead of being fairly robust

#

they are questionable

sinful wolf
#

well they managed to do the game with that so I guess it works?

compact sedge
#

those 5 lines are all you need to do any arbitrary code on any fsm

leaden hedge
#

nah cause they had to recode huge chunks of the game

#

and it took them like 6 months

#

to get it running at 60fps on switch

compact sedge
#

^

solemn rivet
#

ooooh gotcha AA, yeah, makes sense

#

yeah

sinful wolf
#

so thats why they took so long

#

though they were waiting for E3 lol

solemn rivet
#

the biggest change was

#

every enemy had a health_manager FSM

compact sedge
#

an entire fsm just for health

solemn rivet
#

and they removed all of them

compact sedge
#

seriously

sinful wolf
#

wow

solemn rivet
#

yeah, and every enemy object had one

compact sedge
#

and now healthmanager is just a monobehavior

#

so it runs a lot better

solemn rivet
#

thank god for that

#

enemyhpbars is great because of that

#

also - hey! Why didn't he mention that mod? It's great!

sinful wolf
#

I don't know at firts it seems like he had the 5 more interesting but at some point of the video it says those 5 are the ones he managed to play xD

compact sedge
#

but

#

he didn't play 2 of them

solemn rivet
#

I just realized this

compact sedge
#

possibly even 3

solemn rivet
#

he didn't play any modcommon mods

#

think about it

compact sedge
#

well then it'd be top 6 mods

sinful wolf
#

jaja

solemn rivet
#

well, anyway

#

we use a decompiler, like dnspy, to look at the game's code

#

and we use the API to inject our own code during runtime

compact sedge
#

we all use dnspy, don't beat around the bush

sinful wolf
#

might need to try that one

compact sedge
#

even I do and I can't even run dnspy gui

solemn rivet
#

dnspy is bae

sinful wolf
#

I use resharper at work so I used that to decompiled the game once

solemn rivet
#

it's basically the same

#

I have also used resharper at some point

compact sedge
#

Resharper is cool, which is why I use rider

#

as my ide

#

cuz it has it built in

sinful wolf
#

oh cool

solemn rivet
#

I use VS because me = scrub

sinful wolf
#

well VS here too so...

compact sedge
#

I switched to rider and it suggested a bunch of stuff to make my code look better

#

so I was like ok

#

and now my code looks half decent

solemn rivet
#

the converse doesn't hold - not everyone who uses VS is a scrub

#

just me zote

#

I just use resharper with VS and it suggests lots of nice things

#

give up

#

you're embarrassing yourself

#

invert that if

sinful wolf
#

hahaha

compact sedge
#

the problem is resharper + VS uses a lot more ram and is a lot slower than rider.

sinful wolf
#

freking inverting all if

solemn rivet
#

tru dat

compact sedge
#

I'm not ashamed to say I like how most inverted ifs look

solemn rivet
compact sedge
#

but not all

#

I took each suggestion on a case by case basis

solemn rivet
#

yeah, I kept some nested ifs in blackmoth

#

because they make sense for me

sinful wolf
#

the problem when inverting ifs is the readability sometimes is not clear

solemn rivet
#

^

sinful wolf
#

like "if this not happens do this"

compact sedge
#

that's the other thing. I changed my IDE settings to encourage a lot of verbosity and explicitness

sinful wolf
#

which sometimes is weird, you want to do things when something happens, not when it doesnt

compact sedge
#

to make it clear what's happening

solemn rivet
compact sedge
#

lol

sinful wolf
#

wow

solemn rivet
#

I'm like "nah, I like to know what's setting my damages, thank you"

leaden hedge
#

how come everyone moved to gitlab ๐Ÿค”

#

did microsoft do something stupid

sinful wolf
#

hahaha

solemn rivet
#

not yet

compact sedge
#

I'm being safe and also all my code mirrors to github

#

so

#

I can just push to gitlab

rain cedar
#

Yeah pretty much my thinking KDT

compact sedge
#

and have it on 2 places

rain cedar
#

Not gonna bother moving unless they ruin it

solemn rivet
#

but wait until they add battle royale to github

sinful wolf
#

I'm still in Bitbucket, hopefully not the next in line

solemn rivet
#

but, yeah, that's the gist of it, EGF

sinful wolf
#

cool thanks :) so dnspy, fsm hell and using names abbreviations to refer to each other, got it G

compact sedge
#

Wow y'all call me AA but I never returned the favor

#

sorry y'all

leaden hedge
#

just become abbreviations

compact sedge
#

esp u 5 and G and FP and BB and T

#

and probably other people

#

I wonder how many of those are ambiguous abbreviations in this server

sinful wolf
#

probably a lot

exotic venture
#

hey you do call me mys

#

that's something

compact sedge
#

You called yourself mys for a while

exotic venture
#

that's true

#

but hey that stuck

hollow pier
#

hi tery

exotic dune
#

misty terry

solemn rivet
#

I called you EGF cause I'm lazy

#

ditto for AA

#

56 is short enough as is

compact sedge
#

true but when I read AA in reference to my name I still think anti air, or that one really good shotgun.

#

maybe I play too many shooters

leaden hedge
#

anti aliasing imo

warped sinew
#

Alcoholics Anonymous

solemn rivet
compact sedge
#

oh shit graig found me out

leaden hedge
#

graig leak gng thanks bye

solemn rivet
#

Graig is Graig because he is Graig

#

and Veru is veru

warped sinew
#

Its already out, TC rolled it out to all steam accounts except yours KDT. As a joke

leaden hedge
#

wow nice

solemn rivet
#

TIL I'm KDT too

leaden hedge
#

we are all kdt on this blessed day

solemn rivet
#

amen to that

#

so, what would you rather be called, AA?

warped sinew
#

BB

solemn rivet
#

2B

compact sedge
#

AA imo

warped sinew
#

Aยฒ

compact sedge
#

let's not make things complex and it works for you

#

I just find it funny

solemn rivet
#

I can call you angle

#

you were a procedural angle at some point

compact sedge
#

that works too

warped sinew
#

Angel

compact sedge
#

don't call me avenging because that sounds dumb although I guess you could

solemn rivet
#

oh, btw, how did you even find that vid, Ax2u?

opaque nest
#

Are there any mods that allow changing the appearance of the knight?

solemn rivet
#

not atm

compact sedge
#

probably subscribed given how quickly they posted it

solemn rivet
#

so what happened is

#

we just shitposted on the comments of one of ax2u's subbed channels

#

nice

compact sedge
#

pretty much

opaque nest
#

That's a shame. I was hoping their might be something to alter the mask or cloak color for the knight. Like if someone recolored/adjusted the sprites for the heads of the sibling enemies to work on the the knight and make them available at the Mask Maker in Deepnest or something.

solemn rivet
#

that's a nice thought

compact sedge
#

We were just discussing how difficult that would be

#

but

solemn rivet
#

get to it, KDT

compact sedge
#

yeah KDT imagine the glory and gods you could get making a mod like that

solemn rivet
#

just make the cloak recolorable

#

AA will pay you for that

#

3.99

compact sedge
#

yeah if making the knight recolorable is too hard just do the cloak

#

/s

leaden hedge
#

yeah im totally gonna make a mod for some guy that watched a yt vid 20m ago

solemn rivet
#

hey, I watched a vid 20 min ago

#

is he talking about me?

compact sedge
#

(I'd legit commission a clock recoloring mod if you could do it for 4 dollars but I know it would cost more than that)

#

and by clock I mean cloak

solemn rivet
#

we can recolor the clock too, if that's what you want

opaque nest
#

didn't watch the vid Twas just a thought. Recoloring cloaks would probably be easier. But I imagine reworking the knight's mask on the sprite sheet would have to be done from scratch to facilitate some of the animations like the Desolate Dive/Descending Darkness where the knight looks straight down..

compact sedge
#

(in all seriousness I wonder how much I'd have to pay to get someone to make for me a mod that changed the cloak and just the cloak to an arbitrary color.)

leaden hedge
#

no

#

both are a lot of work

warped sinew
#

Til TC should charge 3.99 for reskins

solemn rivet
#

no, Graig

#

lootcrates

exotic venture
#

put the reskins in lootboxes

#

sell em on the steam market

#

money money money

leaden hedge
#

put lootboxes in the lootboxes

exotic venture
#

sell the keys separately

solemn rivet
#

not lootboxes tho

#

airlifts

opaque nest
#

Gonna make it rain

exotic venture
#

yes

solemn rivet
#

totally different thing

exotic venture
#

airlifts

#

not the same thing

compact sedge
#

90% of the things in them are sprays

floral furnace
#

Mothwing Cloak | Royal White (Factory New) in the Pale King Case

solemn rivet
#

entirely

compact sedge
#

which disappear after 2 seconds

solemn rivet
#

please suggest these, Graig

warped sinew
#

A negative skin would be nice, white eyes black mask, white cape

solemn rivet
#

we need them

#

to feel a sense of pride and accomplishment

compact sedge
#

what if you set the knight gamma to -1

#

would that make it negative?

#

I don't know how the gamma curve works but

#

ok ima try it for funsies, not expecting much

opaque nest
#

Would be a cool 'Shade' form. I imagine it might be an issue for the player to know when they're actually using shade cloak though..

#

I mean, you would still see the knight pass through enemies/attacks without the damage animation going off; but part of the visual feedback is seeing the transition happen.

compact sedge
#

ok nvm idk how to set gamma on individual tk2dSprite sprites

buoyant obsidian
#

wait do you want to buy a Hollow Knight lootbox?

#

One knight recolor only $2.99

leaden hedge
#

no

buoyant obsidian
#

Do it

compact sedge
#

I can neither confirm nor deny if I'd actually pay very small amounts of money for specific parts of knight recoloring code. Definitely not for just a recolor, or a closed source recoloring mod.