#archived-modding-development

1 messages · Page 522 of 1

vocal spire
#

But discord rpc for example iirc needs the file to be there before the game starts

#

Also that can already be done with globalsettings and the constructor

floral blade
jolly oriole
#

check if file exists

copper nacelle
#

GetVersion

floral blade
#

the player might re-install the same version of the mod

jolly oriole
floral blade
#

yeah that makes sense

#

a file check would work as well i assume

#

if it does not then add the file and then indicate to the player that we need a restart to work

jolly oriole
#

is a restart needed though?

#

can't one just Assembly.Load or AppDomain.currentAppDomain.Load?

floral blade
#

basing that on what redfrog said, idrk how drpc works

vocal spire
#

Those had problems iirc since it’s a com assembly or something

jolly oriole
#

ok, then assembly load prob doesn't work, but appdomain load is made for that according to ms docs

jolly oriole
#

everything should be set up for modlinks to be added now, but personally i'll wait with updating my mods until TC releases the next 1.5 patch

floral blade
#

there's another ?

jolly oriole
#

the beta branch has 1.5.71.numbers, stable is at 1.5.68.11808

floral blade
#

oh 😮

jolly oriole
#

narts can't be nutted on anymore sadly

#

even though the new/old damage calc is still in the fsm, the old/new one is again used

floral blade
#

can we change the value of a variable at a certain FSM event ?

#

so that every time it happens the new value is used instead of the old one

#

this is not a single FSM though, like all NPCs FSMs have this thingy

#

would this second one work to replace all SetScales ?

floral blade
#

it worked!

sacred prism
#

good job

jolly jungle
#

That's basically the only thing I do other than insert methods ._.

upper hemlock
#

ik it takes a long time to make skins, but has anyone considered making an actual knight (medieval) skin? I think that it'd be dope, if possible.

#

also, could someone link a good tool for skin creating

#

I dont know what to use

primal latch
#

Fun fact: they changed the sprite of the hollow knight in 1.5

marble hollow
primal latch
#

I noticed that it was all messed up so Frog ripped it and confirmed it

marble hollow
#

making a skin alone is difficult

nimble lake
#

oh it was out for 3 days already lol

#

did they fix nail damage like they claim?

jolly oriole
jolly jungle
jolly jungle
#

Thanks

#

How long till we have a full folder of all the sprites?

#

Most of them didn't change, right?

#

And the rest just need to be ripped like this one

#

Hm

vocal spire
#

How would I get hk’s fonts in the unity editor?

dark wigeon
#

assetstudio

vocal spire
#

Thanks

jolly oriole
#

or just find perpetua/noto serif CJK SC online

mellow shore
#

hey, im working on a custom knight skin and there's some inconsistencies in the run animation. namely, i think it takes one frame from another animation and puts it in the middle of the run animation. this means its using a different sprite for the head and it looks really bad on my end. anyone know what animation it pulls from? 😦

jolly oriole
rich stone
#

anything that might have to do with inbetweens like running start and a little bounce when it hits the ground could do it

#

if these are not the things there might be something wrong with the file names

jolly oriole
#

i wonder when tc will put their beta branch release onto the stable branch

floral blade
#

you want to start updating your mods ?

primal latch
vocal spire
#

Well I just realized I probably need to rewrite how I get sprites for gameobjects for CustomKnight +

primal latch
#

Why?

jolly oriole
light zodiac
#

It's even on the release page now

vocal spire
#

Nice

light zodiac
#

As a pre release tho but still

primal latch
#

I meant on the mod installer

jolly oriole
primal latch
#

No multi-patch support 😩

jolly oriole
#

1432 sucks

#

but you can fork it / make someting similar for other patches, if you make a modinstaller that supports those additional repos

primal latch
#

Nah

#

I’d say: release the api. Get rid of the daily 100+ questions of “hewp 1.5 is bwoken”

cedar hemlock
#

then 1.5 is still broken as only like 5 mods are updated

primal latch
#

True

cedar hemlock
#

so, they'll still say "hewp 1.5 is bwoken" lol

primal latch
#

the reason why we need to be able to specify a version

#

Just wondering: how are you guys planning to roll out 1.5? Seeing as a lot of mods aren’t on 1.5 and a lot of mods probably won’t be updated until the 1.5 api releases

cedar hemlock
#

make a warning on the modinstaller that not many mods are compatible with 1.5

#

maybe on startup/ just on the main menu

light zodiac
#

Or maybe just wait

merry lotus
#

Didn't RedFrog/Someone already add multipatch support to mod installer?

primal latch
#

he did

vocal spire
#

Yeah I love being ignored

jolly oriole
#

that was fast

floral blade
#

what was ?

jolly oriole
#

stean scam

floral blade
#

hollowcool and mods being fast ?

jolly oriole
#

yep, in <10 seconds

floral blade
#

speedrunning

cedar hemlock
#

sped

ornate rivet
#

sussy

safe hamlet
#

ヘンタイ

ornate rivet
#

so true

safe hamlet
#

true true

ornate rivet
#

@copper nacelle

#

help me

safe hamlet
#

are you under the water saleh?

ornate rivet
#

yes

#

I'm drowning

mortal trout
#

is there too much raining?

ornate rivet
#

yes

#

raining something very good

#

thank you 56

#

glad this channel is going back to its roots

vocal spire
#

?

jolly oriole
#

bless you

weak lodge
#

so true

#

bussin

ornate rivet
#

I love you knightmere

#

please be my sussy baka

fair rampart
#

is there a way to change the attack speed of the knight with mod development?
like 15 attacks per second

rough pulsar
#

something
something
apidocs

#

i believe you can change the constants found in the player's variables

#

@fair rampart

light zodiac
#

I'm sure they know what "apidocs" means

rough pulsar
#

ide already displays which variables exist in a class

patent zealot
#

Attack duration or cooldown is prob what you wanna change

floral blade
#

mod that makes you zoom fast through everything

#

zoom kngt

primal latch
#

too fast for the work knight

rough pulsar
#

set this to 0f zotewheeze

#

also i think ATTACK_COOLDOWN_TIME is what you wanna change

primal latch
jolly oriole
#

but just to be sure set both attack_cooldown_time, attack_cooldown_time_ch, attack_duration_time and attack_duration_time_ch to something low

rough pulsar
#

attack_duration_time is how long the nail swing is

#

idk what attack_cooldown_time_ch is

#

anyone care to explain?

primal latch
#

attack_cooldown_time_cherry?

#

IDK what ch stands for

worn eagle
#

charm - quickslash

rough pulsar
#

oh

primal latch
#

ah

primal latch
#

does anyone have a way to search for a string in a dll? You can't do that with il/dn spy

copper nacelle
#

but you can

jolly oriole
#

text/number

copper nacelle
#

yeah

#

in the search type

jolly oriole
copper nacelle
#

virgin number vs chad zahl

rough pulsar
#

what if all charms became inventory items that would give permanent boosts

#

🚎

copper nacelle
#

permanent dung aura pauseshroom

primal latch
#

whoops

jolly oriole
#

permanent gamer odor shroompog

copper nacelle
#

true

floral blade
#

Permanent lag

#

With the bees that go boom

rough pulsar
#

modding moment

rough pulsar
#

what happens if we add too many inventory items to the player using sfcore

#

does it just give up displaying or overlap

jolly oriole
#

i have never tested the journal list limit

#

probably a good idea for a mod to just add 42069 random items

rough pulsar
#

oh so new inventory items are just in a seperate journal-like tab?

jolly oriole
#

yes

rough pulsar
#

dang

#

i thought they would get displayed like

jolly oriole
#

well, if anything adds custom items, the whole inv screen (the one containing dash and stuff) is moved to its own screen

rough pulsar
#

on the normal invenotry

#

oh

jolly oriole
#

but imma test with the 1.5 version i have already downloaded

rough pulsar
#

im using sfcore

primal latch
#

do we want to keep the warning Couldn't find a Hero, make sure one exists in the scene.?

copper nacelle
#

have you tried finding a hero

primal latch
#

I mean: it clutters the output_log file and makes it very hard to find an error

copper nacelle
#

does it even log much without misuse from a mod

primal latch
#

wdym?

#

ah

#

I get it

rough pulsar
#

the hero is missing grubthink

primal latch
#

yes. It also logs it in the menu without mods

copper nacelle
#

more than once?

#

like is it actually spammy

#

cause you can just use unsafeInstance

jolly oriole
#

for me no

primal latch
#

yes

copper nacelle
#

sus

rough pulsar
primal latch
#

lemme check

jolly oriole
# jolly oriole for me no

as in, neither modded nor unmodded 1432 spams that when staying in it, may be 1 or 2 lines of it, but not continuously

rough pulsar
#

is it 1.5 that spams it

jolly oriole
#

1 sec

primal latch
#

it might just have to do with preloads

jolly oriole
#

1.5.68.11808 vanilla player.log stays at ~3 KB
1.5.68.11808 modded player.log stays at ~22 KB

rough pulsar
#

22 KILOBYTES

#

WHAT

primal latch
#

Just tested without mods on. It might just have to do with preloading

#

nope

#

IDK

#

in my mind it was spammed a lot in the console

copper nacelle
#

do you have mods on

primal latch
#

I tried with and without

jolly oriole
#

oh no, reflectionhelper changed

copper nacelle
#

a bit

#

the naming was bad

jolly oriole
#

so basically getattr -> getfield?

copper nacelle
#

yeah

jolly oriole
#

what's the difference between setfield and setfieldsafe?

#

oh, one nre checks

copper nacelle
#

yeah one dies silently

#

cause that's what pd actually does

jolly oriole
#

silent dying?

copper nacelle
#

yeah

#

if it gets a bad field name

jolly oriole
#

nice

copper nacelle
#

nice

steady comet
#

Is PlayerData.SetBoolSwappedArgs a function written by TC? (EDIT: apparently it's by the modding api? palehmm )

jolly oriole
#

just writing it works now just fine wtf

rough pulsar
#

Sigh

#

Meanwhile I'm in visual studio code because normal vs 2019 lags my computer 🥴

jolly oriole
#

now to figure out how the new modhooks work

rough pulsar
#

The same i think

#

Almost

#

Without the Instance part

jolly oriole
rough pulsar
#

I don't

#

Though it worked for me

#

My brain is fried zote

unborn flicker
#

The API updated to change the signatures of those hooks, to make it clearer when you intend to override the original value.

copper nacelle
#

yeah

rough pulsar
#

Thanks for explanation

#

Cool green name person

copper nacelle
#

if you check the xml i put some examples in and all too

jolly oriole
#

yea, but i don't want to change my method, so i spent 2 hours more to not copy paste them

jolly oriole
rough pulsar
#

^^

#

Yes

unborn flicker
#

The result is pretty ugly though

jolly oriole
#

and sometimes is even worse, especially with variable gets/sets

steady comet
#

So, in the unmodded assembly-csharp, they're all field calls?

jolly oriole
#

yes

steady comet
#

huh

copper nacelle
#

calls pauseshroom

#

just sets

jolly oriole
#

and gets

copper nacelle
#

fields are just an offset in memory

unborn flicker
#

Yeah, I knew call was the wrong word, but I couldn't think of what would be inclusive of both read/write

copper nacelle
#

access ig

jolly oriole
#

why does langget have a bool return but that isn't used

#

wait nvm

#

its in an if

copper nacelle
#

yeah

#

trygetvalue

jolly oriole
#

so having

res = current;
return false;

is to not have a custom string being returned ig

#

with the first line not even being needed

copper nacelle
#

yes

jolly oriole
#

oh god, res needs to be assigned smh

copper nacelle
#

yeah

#

can just do null

jolly oriole
#

"" is shorter

#

using more memory for my slightly shorter code = good

copper nacelle
#

string.Empty

unborn flicker
#

Apparently "" doesn't create a new string anymore according to SE? string.Empty is definitely prettier though imo

jolly oriole
prime urchin
#

theoretically they're interned and so all options use the same amount of memory, ez

copper nacelle
#

ugly though smh

rough pulsar
#

Either way

#

🥴

jolly oriole
#

smh, pinging people PingReee

copper nacelle
#

if anyone has suggestions on changing the hooks btw feel free

#

Pre release for a reason

rough pulsar
#

I don't

jolly oriole
#

hooks look nice, though idk why orig is needed for language hook

copper nacelle
#

idk seemed nice to have

#

kinda wanted it on all of them but that's a pain

#

could also just have (string orig, ref string current)

primal latch
#

would be beter ngl. Having orig for language is kinda wierd

jolly oriole
#

i think i just successfully updated sfcore and tot

#

time to test 42069 inventory items

#

apparently it works, just have like 1 fps when scrolling a step

unborn flicker
rough pulsar
#

i don't really know what are the sheet and orig are for

#

me dumb pepegamaster

jolly oriole
#

sheet is amazing to have

rough pulsar
#

care to explain?

jolly oriole
#

even though i think no one but me uses it

#

it's different sheets where you can have the exact same key for a language string

#

like a different sheet of paper with keys written on it

rough pulsar
#

cool

copper nacelle
#

yeah that might be nice

jolly oriole
rough pulsar
#

^^

#
...
    public readonly string Sheet;
    public readonly string Key;
    public readonly string Orig;
    public readonly string Current;
}
#

The constructor can still set those values

#

Only after created it can't ever be set again

#

Unless i'm wrong

jolly oriole
#

the current needs to be assigned though, after a hook, but otherwise yea

unborn flicker
#

You could also do

    public string Sheet { get; init; }

on the newer version of C#, right?

#

Not sure how important the decision to expose properties or fields is though.

copper nacelle
#

yeah

jolly oriole
steady comet
#

Potential use case for orig: you want your modification to the string to be “add some stuff to the end, but only if the current isn’t vastly longer than the orig already”

copper nacelle
#

change it if it hasn't been changed

#

is also a thing ig

#

properties vs fields is just a matter of future proofing and a bit of overhead

jolly oriole
#

overhead is bad if i want to do recursion

rough pulsar
#

I'm going to spend eternity programming every charm sprite into my mod

#

🥴

jolly oriole
#

can you make it new Vector2(0.5f, 0.5f)?

rough pulsar
#

Oh

prime urchin
#

should put that into a helper that takes a string (possibly the simple file name) and a width and height, saves you some typing

rough pulsar
#

You're right

jolly oriole
#

btw, new texture can be given 2, 2, loadimage will resize the texture
and having file.readallbytes not the best, loading from embedded resource stream is better

rough pulsar
#

And I realized like I can't do that either

#

The readallbytes thing

rough pulsar
mental void
#

alright I am ready for my lessons on hollowknight modding

rough pulsar
jolly oriole
#

oh wait, you aren't in vs are you?

rough pulsar
#

Does vs show these elderC

#

I mean vscode also displays the list of methods and stuff

jolly oriole
#

if you have it in vs, right click -> properties the file, set it to embedded resource, then address them like the link does in a format like "Assembly.Folderstructure.Filename.extension"

#

for that it needs to be part of the project ofc

rough pulsar
#

Luckily I already have downloaded the charm sprites from wiki zote

jolly oriole
#

but are those accurate to the game sprites

rough pulsar
#

I mean they are certainly not ripped from the game sprites

#

Just from the wiki instead

cedar hemlock
#

All the sprites can be found in art-discussion

rough pulsar
#

Huh?????????????

#

Really????????????????

#

zote 🥴

#

Oh dang this is HELPFUL

nimble lake
rough pulsar
#

It's just as if I found a gold mine

cedar hemlock
#

lol

jolly oriole
rough pulsar
#

The charm names here are accurate right

#

The charm_fungus name

cedar hemlock
#

I believe so

#

They are 1.4 sprites, be ware

rough pulsar
#

I am in 1.4.3.2

cedar hemlock
#

So if, any of them changed...

#

Oh ok

nimble lake
jolly oriole
#

boomer

cedar hemlock
floral blade
rough pulsar
floral blade
#

it's got logic to load charms and stuff right ? Just use the sprites for inventory instead ?

rough pulsar
#

I'm just assuming it loads them from file

floral blade
#

It does yeah

rough pulsar
#

Like

#

external files

cedar hemlock
#

the default folder

floral blade
#

Yes yes, but name arrays and files in the default skin would let you start off

cedar hemlock
#

wait it depends

#

i believe it just doesn't change anything when no skin is selected

floral blade
cedar hemlock
#

oh ok

#

what does it do then?

floral blade
#

Just shows the menu on pause ?

#

If you do apply a skin it would apply things from that skin

#

As Far as I can tell the default folder is more of a resource for people wanting to make skins than an actual "revert me to default"

#

Because it still loads the default skin from disk lol

#

Even though it should have a copy of the default sprites in memory

rough pulsar
#

I'm back

jolly oriole
#

smh

lone rune
#

did any sprites change in 1.5?

jolly oriole
#

some spritesheets changed, but idk about specific sprites

lone rune
#

you mean like the order of the sprites on the sheet?

jolly oriole
#

the spritesheet for the fungal wastes / mantis village got bigger, but that's about all i checked

lone rune
#

oh huh really? I'll take a look at that

#

tbh not really feeling like extracting and organizing 10K files again for the sprite folder, so if nothing got added then I hope I don't need to do that

jolly oriole
#

dw, 1432 only has 3608 sprites/spritesheets

lone rune
#

yeah but you can extract a lot of individual sprites, I extracted over 10K with asset studio

jolly oriole
#

yea, but idk if asset studio works with unity 2020

lone rune
#

seems like it does

rough pulsar
#

heroupdatehook works if only the knight can be controlled or exists right

vocal spire
#

Only if it exists and it’s GameObject is active(basically whenever it exists)

rough pulsar
#

Cool

floral blade
#

is it possible to trigger a "pause" input from a mod ?

jolly oriole
#

yes

floral blade
#

like bring up pause menu and close the pause menu in a way other mods dont break

rough pulsar
#

what are the language string ids thingies for charm descriptions?

jolly oriole
#

everything is possible with mods, the only thing limiting is how difficult those things might be

rough pulsar
#

thanks!

floral blade
#

i mean i don't want to break other mods by trying to trigger a pause in mine

#

i guess it would depend on how the other mods detect their pause behaviour

rough pulsar
#

Imagine if there was some sort of an UI where you could change other mods' keybinds

#

if the mods let anyone to do so

#

Wouldn't that be awesome

floral blade
vocal spire
#

You might be able to make something like that with the new custom menu api

rough pulsar
#

I mean close

floral blade
#

each mod needs to implement it tho

vocal spire
#

Yes

floral blade
#

The new menu api is super cool, it works with controller, is in an obvious but out of the way place and looks good with minimal effort

#

i'm definitely using it in 1.5 CK

rough pulsar
#

please do!!!

fickle sparrow
#

I also have documentation for it 😤

#

it took like a month to reverse engineer HKs menus

ornate rivet
#

can you post the documentation into the apidocs

#

radiance.host I mean

copper nacelle
ornate rivet
#

what's wrong?

copper nacelle
#

local man unable to look at xml

#

I should set up docfx

fickle sparrow
#

true

#

also I should make a guide for the menu api

vocal spire
#

Yeah

#

Also when are the custom ui methods overridable by mods called?

fickle sparrow
#

wdym

#

Like the “OnSubmitAction” thing?

vocal spire
#

No

#

Like the method where you return a list of the settings, or the one where you return a menu you’ve set up yourself

fickle sparrow
#

oh

#

uhhhhh

#

so its a bit complex

#

but essentially its whenever a UIManager is created

#

relevant code

#

hmmmm

#

nvm I thought I found a bug but I didn't 🥴 my code actually works

fickle sparrow
#

top 10 worst mistakes

jolly oriole
copper nacelle
#

I can't tell if this is ironic or not

jolly oriole
#

take a guess

copper nacelle
#

likely

jolly oriole
#

considering i already contributed to the apidocs (and probably should update what i changed for sfcore 1.5 like next tuesday), i think one can categorize that as ironic

ornate rivet
#

should we have a 1.4 and 1.5 section or just replace everything with 1.5 stuff?

#

well I'm not going to delete the Utiny stuff, that shit took way too long

jolly oriole
#

mark it at the top with something like "This only works with the 1.4.3.2 patch"

cedar hemlock
#

why does this give me 404

floral blade
#

1.5 would be the default one that opens

#

Oh I guess it was about apidocs lol I'd still suggest the same tbh

light zodiac
rough pulsar
#

im just gonna wait until weird softlocking glitches in 1.5 mapi stops happening

light zodiac
#

What soft locking glitches?

rough pulsar
#

i mean for me i occasionally cant exit to menu, one time i was stuck in an elevator transition

light zodiac
#

for FSMViewAvalonia if i change the hkpath.txt to a 1.4 installation, would it show me the 1.4 FSMs?

jolly oriole
#

with open you can already open 1432 assetbundles and view their fsms, but the hkpath is probably used to determine the hk installation checked with select scene and the resources one

light zodiac
#

i could probably build the non avalonia fsm viewer and change the place it looks for hk

jolly oriole
#

i meant that as in "yes, you can look at 1432 fsms"

light zodiac
#

ok

jolly oriole
#

but give me a minute to test it myself with that .txt as i have technical problems with it rn

light zodiac
#

is there a fsm change that is known so i can tell if i'm looking at the correct one

jolly oriole
jolly oriole
#

oh wait

#

now that i read the code

#

yes, should show 1432 fsms

light zodiac
#

Thanks

jolly oriole
#

yep, just tested, works

deep wave
#

<@&283547423706447872>

#

stmeacomunnitty think

jolly oriole
#

they get more creative

vocal spire
#

Fun

dark wigeon
#

why tf does gog have to be different

jolly oriole
#

yes

#

in the meantime, i got steam installed in a vm

#

now can test hk mods on linux at <1 fps (well, once i downloaded it)

floral blade
#

tamershrug i just test on mac and release

jolly oriole
#

well nvm that, it doesn't want to run in my vm

#

probably because software rendering

nimble lake
#

how can i display the console in the game?

#

the one that usually appears in the bottom left

ornate rivet
#

if F10 doesn't toggle it then you have to go to the modding api json and enable it

nimble lake
#

ah ok, thanks

#

also another question, how can I read a value from a flag in the current save file and use it in a mod?

light zodiac
#

PlayerData.instance.{the value you want}

vocal spire
#

Or PlayerData.instance.Gettype(field name)
Replace type with Int, String, Float, ect

nimble lake
#

also why is this error happening? i can't find anything about this on google

#

incase anyone knows

vocal spire
#

How did you create the project

nimble lake
#

class library

vocal spire
#

Or is this a project you’ve already used before?

nimble lake
#

it worked before fine but this is the 2nd time it's happening today after i repaired VS

vocal spire
#

Huh

#

Idk, sorry

nimble lake
#

ok i think i fixed it

#

but there's no get

light zodiac
nimble lake
#

or anything at all

vocal spire
#

Huh, was that removed with the new get/set hooks?

light zodiac
#

did you reference assembly c-sharp.dll?

light zodiac
nimble lake
#

i'll try re-referencing it

vocal spire
light zodiac
#

and are you using modding

vocal spire
#

Should be there without it

nimble lake
#

oh wait

#

relaunching VS fixed this

#

what is going on with my VS today though
literally hadn't touched it in days and like 6000 things are broken for no reason

vocal spire
floral blade
#

does isma attack with acid ? or vines ?

jolly oriole
#

wait and see

floral blade
#

looks like vines

floral blade
nimble lake
#

Wait is that right? PlayerData.instance.GetInt("maxHealth");

jolly oriole
#

looks right

nimble lake
#

because it's not working ingame, it seems

jolly oriole
#

are you trying that while having a save loaded (ingame ingame) or in the main menu?

nimble lake
#

oh maybe that's why

#

maybe it just tries to read a save file before one is even opened

#

wait but it shouldn't from the looks of it

public MoreBaseHealthUI() : base("More Base Health UI")
{
    On.GameCameras.Start += MoreHealthDisplay;
}
jolly oriole
#

oh, uh, gamecameras start at the game start (or after preloading is done), so that is way before any save file is loaded

nimble lake
#

i see

jolly oriole
#

the workaround i did was to just preload whatever and have a set amount of additional masks being added

nimble lake
#

yea, i wanted to just read from the save file instead of having a static number in the code

jolly oriole
#

then you'd have to manually load every save yourself and get the max health across all of them

nimble lake
#

why not just from the save that's being loaded?

vocal spire
#

ModHooks.Instance.AfterSaveGameLoad?

jolly oriole
#

then you'd have to remember how many masks are already there and only instantiate new ones

#

but also possible

light zodiac
#

how do I set a value in game manager to a value i want

jolly oriole
#

GameManager.instance.value = myValue ?

light zodiac
#

I'm doing GameManager.instance.TimeSlowed = true; but I'm getting a this property has no settter

jolly oriole
#

then check with dnspy if it has an internally used bool and set that instead

#

if not, idk

light zodiac
#

could i use reflection?

jolly oriole
#

yes

light zodiac
#

also dnspy shows me public bool TimeSlowed => this.timeSlowedCount > 0;

jolly oriole
#

then ig set timeSlowedCount to 1 or something

light zodiac
#

thanks its working now

pine girder
#

Leak from pale court 👀

rough pulsar
#

we're about to see slowdown in pale court 👀

jolly oriole
#

i mean, yea, parries

void burrow
#

can somemone teach me how do I create a mod?

jolly oriole
void burrow
#

ok thanks

pine girder
#

I just realized
Can I colorize soul based on frames?

vocal spire
arctic wraith
#

i meant tools to download mods though zote

vocal spire
#

Oh lol

#

Sorry

fickle sparrow
#

gg

#

also refer to the xml docs they're good 😤

floral blade
#

How does one spawn a block of ground ?

jolly oriole
#

var ground = new GameObject("", typeof(BoxCollider2D));

floral blade
#

Yes but, I'd have to supply the sprite myself right ?
Any chance I can copy it from the game instead of using an assembly resource?

jolly oriole
#

preload a platform from some scene?

floral blade
#

Okay I'm going to try that

primal latch
#

Or 8. Not sure

jolly oriole
#

PhysLayers.Terrain

floral blade
#

what's PhysLayers.Terrain ?

jolly oriole
#

enum value for terrain layer

floral blade
#

oh and do i need to be using GlobalEnums to use it ?

ornate rivet
#

are those updated? Some of the layers aren't in it so I'm just wondering.

jolly oriole
#

idk which ones are missing

floral blade
#

finally claw can be collected !

jolly jungle
#

It was too high?

floral blade
#

yep

#

apparently spell twister is the same way

#

looking for its scene name now

floral blade
#

i guess it's all the "Shiny Item Stand" that might break pikashade

patent zealot
#

I find it funny that claw is too high on the shelf to get

floral blade
#

even though there's like a 100 of them in that room, the knight just wont pick the others because they're not shiny vibecollector

iron ibex
#

Hi all, anyone have good suggestions for software to create custom skins?

cedar hemlock
ornate rivet
#

That's really cool

jolly oriole
#

dandy, can you add the parts of the "Yeah Whatever 3.0" custom knight skin?

floral blade
jolly oriole
#

its rainbow

floral blade
#

yeah

jolly oriole
#

"the green skin" 🙄

floral blade
#

to be fair i remembered it from the HUD lol

#

and yeah you could copy over the effects / slashes from this using the remixer

jolly oriole
#

nice

jolly jungle
#

So dandy
what are the current limitations of the remixer?

#

I know there's the whole thing with eyes not being entirely precise, and hats dont always work well with a different type of horn than the one they were designed for, at the moment

#

but are there any actual big problems?

floral blade
#

the hat/hair thing is just another layer, so it's still a lot of work from the artists perspective to create different variations. my ideal would be to not require the artist have to draw all poses , like for eyes we only require 1 eye png to create it.

biggest challenge right now is horns/head shapes. once i have that & a bit of refactor i'd consider the remixer to be complete. (that and also supporting sprint.png )

#

also while the groundwork for hats is done it's not implemented fully yet , i'm hoping to finish that one the coming weekend

floral blade
#

unrelated to this, what controls the size of the light around the knight ?

#

i saw a HeroLight but increasing it's localScale does not increase the light significantly

floral blade
#

the light was increasing properly, it was the Vignette that was not scaled at all so the light being scaled did not matter much FML.

merry lotus
#

Assuming this is for smol Knight, i didn't think to test that with debug. I just noticed the light issue, but didn't think to toggle the various things that could affect it

floral blade
#

it is for smol knight, i might just end up only scaling the Vignette back up if that makes the dark rooms playable

jolly jungle
#

And then they won't need to leave empty space for the horn, which is messed up with different horns

jolly oriole
cedar hemlock
floral blade
eternal crown
#

is API already updated to the current HK version? Or it has just released so nobode had time to do anything?

jolly oriole
#

the api for 1.5 is currently basically a beta version, some things are subject to change, but overall it mostly is done

jolly oriole
#

new hk patch?

copper nacelle
#

yeah

#

what's the version number btw

jolly oriole
#

probably 1.5.71.numbers

#

not at home rn

#

41188 maybe, idk

steady comet
#

1.5.72.11824?

jolly oriole
#

wait what

#

that's newer than yesterdays beta-channel

#

damn

steady comet
copper nacelle
#

nail art damage again

#

what will it be this time

#

glad on the elevator spikes though that was annoying me

jolly oriole
#

should (hopefully) be the nart damage change from 1.5.71., which reverted it back to 1432 workings

copper nacelle
#

ruined

#

where's the str fury cyclone feelsbadman

jolly oriole
#

unless tc decided to change it yet again

#

because i submitted my opinion to have 2x+strength+fury narts (instead of 2.5x+fury)

#

1x for cyclone

deep wave
#

do tc know what a beta branch is for

#

day 201927 of pushing straight to live 🥴

jolly oriole
#

.71 was only on the beta branch

vocal spire
#

Tc is kinda questionable atm

deep wave
#

atm? feelspkman

tawny onyx
#

what does atm means

vocal spire
#

At the moment

jolly oriole
#

ATMs are those things where you can withdraw money from a bank account

tawny onyx
#

should have cards at first

#

lol

fair rampart
#

hi after the patch I have an error in "using Modding"

#

i can solve by simply refreshing the assembly references or I have to do something else

deep wave
#

if you are referencing the game files directly, the update will have overwritten assembly-csharp, so the Modding namespace will not exist

jolly jungle
#

How do I change timescale like in Debug?

copper nacelle
#

Time.timeScale

jolly jungle
#

Is that really all it is?

copper nacelle
#

yeah

jolly jungle
#

Like, there isn't anything else you didn't mention because it should be basic and common sense and yet for some reason I'm not aware of

copper nacelle
#

it'll get reset if you get hit and shit

jolly jungle
#

Hm

#

Thanks

jolly jungle
#

Ah, thanks

#

How do I hook the end of a focus? Only BeforeAddHealthHook or is there a more successful-focus-specific way?

fair rampart
#

ops i have replaced assembly-csharp but the game crashed

copper nacelle
#

probably just use spell control

jolly jungle
#

spell control?

steady comet
fair rampart
#

probably it was the assembly c sharp of the previous patch

jolly jungle
#

Thanks

#

Spell control it is, then, once I figure out what it is

steady comet
jolly jungle
#

Hm

#

I'll take a look at it, see if it works for me

#

Thanks

fair rampart
#

whe have already an updated assembly c sharp for modding?

jolly jungle
#

What's "Dream Focus"?

steady comet
jolly jungle
#

Doesn't seem like it?

#

Doesn't seem like what I need, though, either

#

Aight so how do I access the Knight's FSMs in code palehmm

jolly oriole
#

HeroController.instance.LocateMyFSM("")

jolly jungle
#

I'm an idiot, thanks sethsalute

#

I need to change it only once, right?

#

Not, like, every scene or something

jolly oriole
#

everytime a save is loaded, or on every herocontroller.start

jolly jungle
#

So should I hook loading a save and then do this?

jolly oriole
#

either hook the aftersaveload hook (i think this should work), or on.herocontroller.start (this definetly works)

jolly jungle
#

Thanks

#

Turns out I dont know how to hook herocontroller.start

copper nacelle
#

On.HeroController.Start

jolly jungle
#

Hm

#

Ok

#

On is generally used for any function?

copper nacelle
#

yeah that is what hookgen does

jolly jungle
#

Cool, thanks

jolly jungle
copper nacelle
#

.gameObject.LocateMyFSM

jolly jungle
#

of coures

jolly oriole
#

oh

jolly jungle
#

Stupider problem, why does it not recognise the }

copper nacelle
#

are you using 50 spaces or is there something behind Playmakerfsm

jolly jungle
#

private

copper nacelle
#

why the fuck

#

no

#

remove it

jolly jungle
#

Oh ok

#

What'd it do?

#

Wait you're right

#

it's inside a random function

#

idiot

#

me, that is

#

not you

#

you're fine

vocal spire
copper nacelle
#

no

#

lying to the people feelsbadman

#

At least I didn't update the ci build files

vocal spire
#

Oh

#

I thought they meant 1.5 in general

#

We’re there really that many changes in the code?

jolly jungle
#

How do I make isTrue act like isFalse? I tried sendevent but it doesn't fit

copper nacelle
#

I mean no I just haven't bothered changing out the files

light zodiac
jolly jungle
#

Welp for now I'll just change SetIntValue I guess

jolly jungle
#

But I'll need to know at some point how to finish early

vocal spire
#

Game ver

#

1.5.72.numbers

jolly jungle
#

yeah I know

#

I asked if debug is also that

vocal spire
#

Oh

jolly jungle
#

I dont see a reason it wouldnt

light zodiac
jolly jungle
#

but still wanted to ask

#

Thanks

vocal spire
jolly jungle
#

I guess that'll work?

#

Thanks

jolly jungle
vocal spire
primal latch
#

Where are the change notes for the 1.5 beta branch?

charred topaz
#

Am I doing something wrong that's causing the "defeatedNightmareGrimm" and "killedNightmareGrimm" values to continue to return True?

primal latch
#

IDK, but instead of bull you should return orig

jolly oriole
#

not in the new hooks

charred topaz
#

Nvm, there was another function hook overriding it completely

copper nacelle
#

happens

copper nacelle
jolly oriole
#

yeah, have you not looked at the docs for it that are only in some doc strings or xml files or whatever

copper nacelle
#

bro

#

the doc strings get put into vs

jolly oriole
#

i have no idea where that would be displayed tbh

copper nacelle
#

bro even dnspy shows the xml docs

jolly oriole
#

looking at some text when autocompleting functions 🙄

copper nacelle
#

this sounds like a you problem

#

I should setup docfx

#

So much effort

#

I should also update the ci

#

Also effort

jolly oriole
#

docfx sounds like automated wiki for functions and stuff, nice if it is

copper nacelle
#

yeah it's just display xml doc in html

rough pulsar
#

i never ever knew that before

copper nacelle
#

they do be part of the assembly

fair rampart
#

after updating I have only this error

#

y is no one answering me 😦

light zodiac
#

The language.gethook signature got changed

#

Right click and click on create overload function

#

And then make your old function work with new signatur

fair rampart
#

sorry my visual studio is not showing "create overload function"

light zodiac
#

Then comment out the current LangGet function and let Vs make the function with correct signature

fair rampart
#

ok but now it's a different method from before

#

before it was returning String

light zodiac
#

Make "Res = " what you want to change text to and return whether you want to change it or not

#

So something like case "HORNET_MAIN":
Res = "Hornet";
Return true;

copper nacelle
#
res = key switch {
    "A" => "amogus",
    _ => null
};

return res is null;
#

maybe nullable was better

#

are null strings used though

jolly oriole
#

but not sure

fair rampart
#

thanks Mul and 56 now is working as before

fickle sparrow
#

I doubt null strings are used at all

#

like the game would probably die

jolly oriole
#

i know that null variables are definetly used

copper nacelle
#

alright so tryget it is

lone rune
#

does anyone here know the fury cyclone slash damage values?

brisk knot
#

Could this help?

copper nacelle
#

no they want the patched values

#

for that wiki you just took values from

#

lmfao

brisk knot
#

lol, sry

copper nacelle
jolly oriole
lone rune
jolly oriole
#

that is btw not info for the newest release (.72)

lone rune
#

did something get messed up there again

jolly oriole
#

i just didn't look at it

lone rune
#

oh ok, I'll just assume it's the same as .71 for now

charred topaz
light zodiac
#

Which debug did you build?

floral blade
#

anyone else getting this on latest HK with mapi ?

[Position out of bounds!]

Obtained 21 stack frames.
#0  0x007fff6c6be33a in __pthread_kill
#1  0x007fff6c5d593e in raise
#2  0x000001061fe461 in operator delete[](void*, std::nothrow_t const&)
#3  0x000001061febac in operator delete[](void*, std::nothrow_t const&)
...```
#

if i verify integrity it works, but readding mapi seems to break it again

#

nvm i didn't update my vanilla folder and i guess even the pre-release is on the older 1.5 build tamershrug

jolly oriole
#

...

#

it's titled 'v1.5.68.11808-61'

floral blade
#

yes i didn't think that it would matter since the major version didn't change

light zodiac
#

Use this mapi

floral blade
#

ty, i built it with the new Vanilla folder and it works now

jolly oriole
#

i made a very small dll file, just 1.5 KB

#

it contains exactly nothing

patent zealot
#

pog

light zodiac
#

@ modding staff sfg is sending viruses

#

pls protect us

ornate rivet
#

nooooooooooooooooooooooooooooo

#

wow I missed Sumwan being here

vocal spire
#

🤔

primal latch
jolly oriole
#

i ilasm'ed the following:

//test

primal latch
#

Ah

#

Why?

#

Do you want to write it in il?

jolly oriole
#

it didn't want to work with exactly nothing

#

nah, just because i thought why not

primal latch
#

Ok

#

Fair enough

charred topaz
# light zodiac Which debug did you build?

Ok, I may have ported an older version of Debug Mod without looking at some of the other forks first 🥴 . Plus it looks like you already made a port so I can just use yours.

jolly oriole
#

why are JsonNet, docs & override folders needed
could put the additional dlls from jsonnet n override in a folder called binaries or libs or something
the docs could be moved to the wiki or the apidocs repo

copper nacelle
#

true

floral blade
#

who is this weird Q person

#

definitely not >55

primal latch
#

cil has some funny optimizations that you can apply. For example: you can load arg 1 by ldarg.0 if you need to load it twice immediately after eachother you can also load it once and use the dup opcode. This saves a few CPU cycles

jolly oriole
light zodiac
#

1357

jolly oriole
#

rookie numbers

floral blade
patent zealot
jolly oriole
primal latch
#

How did you make that?

#

How does it work?

#

And is it coded in cil?

#

That last one is the most important

jolly oriole
#

it checks registry entries

copper nacelle
#

cil kinda slow bro

#

not writing it in assembly smh

jolly oriole
#

i have an ASIC for it

copper nacelle
#

lmao

primal latch
copper nacelle
#

ok and

primal latch
#

Then why is it slow?

copper nacelle
#

you can make assembly faster than c#

#

what's your point

safe hamlet
#

ah yes let me make my life horrible to get speed that doesn't even matter by using cil

copper nacelle
#

if you want speed just use unsafe

#

and Unsafe

safe hamlet
#

and crash the runtime

copper nacelle
#

true

#

I mean string uses it 😤

safe hamlet
#

i mean almost everything under the hood uses unsafe and some fucked shit

copper nacelle
#

it's the tech

primal latch
copper nacelle
#

what

safe hamlet
#

what does this even mean

copper nacelle
#

impressive levels of pepega

primal latch
#

Well, an assembly is just a set of instructions. No types or functions defined. You would have to come up with a way to be able to make it interact with c#

copper nacelle
#

yeah you just declare an extern function

#

Not difficult

#

Or use an unmanaged function pointer

primal latch
#

But assembly doesn’t know functions

safe hamlet
primal latch
#

It only knows jump points

#

It also doesn’t know variables

#

Only memory

#

And opcodes

safe hamlet
#

ok and? i don't see your point about it being slow

primal latch
#

You would have to write systems to integrate all of that into assembly. That will probably make it slower then using the out of the box support of cil

copper nacelle
#

functions are just jump points + a calling convention

safe hamlet
#

this

#

literally nothing special about it, you can write something in pure assembly and have it extern the function

#

which you can use in your c# code

copper nacelle
#

you do know cil JITs into assembly yeah?

primal latch
#

I know

#

all code is at some point converted into assembly

dark wigeon
#

have you heard of interpreted languages

primal latch
#

yes

#

still technically converted to assembly

jolly oriole
#

56 make hk in assembly so i can get 3k+ fps 😤

fickle sparrow
#

nah you'd get more frames if playmaker was actually good

copper nacelle
#

that's true

#

it's so bad

jolly oriole
#

ok, make playmaker in assembly

jolly oriole
#

56

#

yo did that benchmark at some point, right?

#

what was the most intensive thing again?

#

found it

sweet gust
#

how do i get the point mod

dark wigeon
#

even then it's compiled to machine code not assembly if you want to be really technical

copper nacelle
#

unlucky

#

i have also wiped windows though

primal latch
tawny onyx
#

i re-install system recently

primal latch
#

Why is there even a registry entry for the amount of times you opened HK?

eager meadow
#

the modinstaller still haven't get a new uptade right?

jolly jungle
#

When it'll get an uptade you'll probably hear about it

cedar hemlock
marble hollow
#

oh shit my real name

#

i feel inferior

jolly oriole
#

dw, you're not the first one to dox yourself with a screenshot of that lol

marble hollow
#

ahah

#

tbh i dont care if my name got leaked i just dont like my irl name that much

jolly oriole
#

fair

#

but nice, nearly triple digits

cedar hemlock
#

ah i got 558 times

#

why so much..?

jolly oriole
light zodiac
#

I'm dumb

#

It's my mistake

jolly oriole
#

ah ok

rough pulsar
#

ples

light zodiac
rough pulsar
#

Awesome

floral blade
jolly oriole
#

pog

floral blade
#

is this what the checker also gets ?

light zodiac
#

Yes

jolly oriole
#

would if i made it work on mac

floral blade
#

alright

rough pulsar
#

what

dark wigeon
jolly oriole
#

mods too fast

eager meadow
#

@cedar hemlock ok thanks

cedar hemlock
#

:+1: ig

vocal spire
#

<@&283547423706447872>

#

Well

#

You’re extremely fast

glossy olive
#

Thanks for ping

#

Nah they did it in other channels

vocal spire
#

Ah ok

jolly oriole
#

oh damn, doing that with a 2 year old account

meager herald
#

probly got hacked bc idiot clicked link

ornate rivet
#

dang hadn't blocked this mod

nimble lake
#

ayy wtf

jolly oriole
#

nice

jolly jungle
light zodiac
#

how much do you have

nimble lake
#

hours?

#

725

nimble lake
copper nacelle
nimble lake
#

no that doesn't count

primal latch
#

@vocal spire what happened?

vocal spire
vocal spire
#

idk if dnspy is just looking at the wrong assembly, but it's really looking to me like somebody forgot to update this constructor.

public FsmTransition(FsmTransition source)
        {
            this.fsmEvent = source.FsmEvent;
            this.toState = source.toState;
            this.linkStyle = source.linkStyle;
            this.linkConstraint = source.linkConstraint;
            this.colorIndex = source.colorIndex;
        }```
#

thank you old constructor for wasting my time

jolly oriole
#

nice

#

@ 56, while you remake playmaker, also fix this ples

copper nacelle
jolly oriole
#

are mdbs another form of pdbs?

#

sounds mobile, but p sounds portable

copper nacelle
#

they're the ones which work with unity

jolly oriole
#

ah

#

but the problem with debugging dynamic on things is still a thing, right?

copper nacelle
#

what problem

jolly oriole
#

i heard several times that debugging on hooks is not a good idea

copper nacelle
#

ah

#

yeah

#

don't do that

jolly oriole
#

sad

copper nacelle
#

wouldn't exactly mind line numbers for unity stuff though you get me

#

or the docs actually working in my fucking ide

#

i should've done this earlier

jolly oriole
#

imagine looking at line numbers

copper nacelle
#

so much nicer

#

i was wondering why that was broken

jolly oriole
#

which ide is that

copper nacelle
#

rider

copper nacelle
#

no it's just missing the xml

#

cause we ref the game dlls

jolly oriole
#

oh yea

copper nacelle
#

you can just take them from the editor

#

and then your ide is actually functional

#

amazing stuff

jolly oriole
#

you need them or already did?

copper nacelle
#

i got em

jolly oriole
copper nacelle