#archived-modding-development

1 messages · Page 510 of 1

jolly oriole
#

GG_Blue_Room

rough pulsar
#

the eternal ordeal?

deep wave
#

isn't there a google drive folder somewhere with a map of all the scene names

#

also my xml literally has eternal ordeal in it listed at the bottom

#

GG_Mighty_Zote iirc

rough pulsar
#

oh really?

deep wave
#

it's given a meme name but yeah

rough pulsar
#

what is the scene name with uh

#

the godseeker standing between battles in pantheons?

#

actually there are multiple of them

deep wave
#

install benchwarp, go do the pantheons w/ display scene name on

#

honestly the easiest way tamershrug

rough pulsar
#

me do

#

that

#

GG_Boss_Door_Entrance

light zodiac
#

GG_Engine(only godseeker in the room), GG_Engine_Root (white lady) ,GG_Unn,GG_Wyrm (pale king)

floral blade
#

this is what apple's error details gives me

#

this is on calling new Texture2D(2,2) inside my mod

#

nothing in modlogs

deep wave
#

did you check output_log

floral blade
#

there doesn't seem to be one

#

if i run the exact same function on menu it works

rough pulsar
#

huh

floral blade
#

but if i run it after entering dirtmouth it fails

rough pulsar
#

that doesn't seem intuitive

copper nacelle
#

it's player.log in a unity folder on mac

floral blade
#

do you know where it is located ?

#

found this in player.log

copper nacelle
#

wtf

#

raw skill

#

show code

floral blade
#

modlogs end at the Texture format line , so my assumption is new Texture2D(1,1) is the one erroring out

#

seems to be the same way suggested by player.log

vocal spire
#

Is HKMP on?

cedar hemlock
#

it is for that mod, so i assume

vocal spire
#

Oh didn’t realize lol

floral blade
# vocal spire Is HKMP on?

yes, the crash happens when i try to load skins and make a new texture to hold it on connecting to server

#

if i load all skins on game load it works but would be a massive memoryhog if someone has a lot of skins

rough pulsar
#

and most likely laggy

copper nacelle
#

made new/assigned don't log yeah?

floral blade
#

yeah i'd added that later on to check if something else was going on

#

initially the creation and assignment were one line

copper nacelle
#

Does it still die without the LoadImage call

floral blade
runic topaz
#

when i try to open assembly-csharp.dll in visual studio code it says is not displayed "because it is either binary or uses an unsupported text encoding" how to i open it?

copper nacelle
#

you use dnspy

runic topaz
#

you cant do it in visual studio?

copper nacelle
#

no

runic topaz
#

ok then

rough pulsar
#

you can see the tree itself, but not the assembly codes itself iirc and it takes more time & effort

#

so just use dnspy

copper nacelle
#

@floral blade could try using www to load the texture I guess

#

fucked up

#

Could also try a 1x1 texture as that's what I normally see but I doubt that'll actually make any difference

floral blade
copper nacelle
#

Oh

#

Is this threaded

floral blade
#

weird that just moving where it is called fixed it

copper nacelle
#

unity and threads don't go together

#

any unity call off the main thread is basically suicide

floral blade
copper nacelle
#

you can effectively force a call onto the main thread via a coroutine invoke with a frame wait inside it to make unity call the next MoveNext in the state machine

floral blade
copper nacelle
#

basically yeah but you need to have a wait before doing any work

floral blade
#

in either case, thanks everyone who helped with figuring out the logs and what not, the player.log was the biggest hint in that it might be a threading issue.

with this part done we now have a good skin distribution strategy i think

rough pulsar
#

@light zodiac i finished my mod and published it to github! :o

copper nacelle
#

something like

IEnumerator Wrapper() {
    yield return null;

    // do whatever
}
#

the yield return null means the initial call will go up to that point and then start coroutine will handle the rest on the main thread

floral blade
rough pulsar
#

don't worry i encountered yield return TYPE stuff recently too

#

:')

#

i've been coding in C# for quite some time

floral blade
#

but i got the gist thanks to your description

jolly oriole
#

if you wait for something, please don't do

while (true)
    yield return null;

this decimates fps

rough pulsar
#

can't i just add the direct download link to github in modlinks.xml?

#

oh

#

some people have done that i guess

#

also uh wait

#

do i just add the DLL file or what?

#

add dll link

copper nacelle
#

if you add the dll it will only work for modinstaller2

rough pulsar
#

so i have to add it into ZIP and add both README and DLL

#

is that ok?

#

what about the SHA-1 field, does it have to be the SHA-1 hash of my zip file or what?

vocal spire
#

Readme isn’t required tmk

copper nacelle
#

sha-1 of the dll

rough pulsar
#

sooo

#

i think i'll just

#

add PR

#

pog

#

now everyone can enjoy having funny discord rpc in their profile

floral blade
#

anyone here up to test the new skin sync in HKMP ?

vocal spire
#

I guess I can

floral blade
#

alright i'll send the mod.zip

#

would you be able to make a hamachi room ?

vocal spire
#

Yes

floral blade
vocal spire
#

Ok

rough pulsar
#

yo i published my mod to modinstaller

#

pog

#

i added installation instructions next to it

#

in README button

#

OH WAIT I MISPELLED

vocal spire
#

good job

jolly oriole
#

lmao

floral blade
#

lol

rough pulsar
#

NOOOOOOOOOOOOOOOOO

#

RIP

vocal spire
#

you killed your own creation

rough pulsar
#

should i just make another PR to fix it X)

floral blade
rough pulsar
#

yes

floral blade
#

dang no choice but to move forward with another one then :p

floral blade
vocal spire
#

I dmed you it

rough pulsar
#

;;;_;

jolly oriole
rough pulsar
#

a

#

yes

#

it still isn't merged zote

#

i'm going to live a pain until this pr gets merged

runic topaz
#

im trying to follow the tutorial by 56 and i have no idea what wrong with this

#

can anyone help?

steady comet
#

It needs to be called Initialize, not initialize

runic topaz
#

...

#

well, that fixed it, thanks!

nimble lake
light zodiac
#

Its in the modinstaller download it and find out

floral blade
#

is there a known list of all files that we can skin for the player character in HK?

cedar hemlock
#

go does not exist in current context

#
Error    CS0103    The name 'go' does not exist in the current context
jolly oriole
#

then change 'go' to nkg's gameobject (or that of whichever boss you want to change)

cedar hemlock
#
Error    CS1061    'DamageHero' does not contain a definition for 'damage' and no accessible extension method 'damage' accepting a first argument of type 'DamageHero' could be found (are you missing a using directive or an assembly reference?)    
jolly oriole
#

lol i wrote that in discord, let me find the member name

cedar hemlock
#

does anyone know what directive or reference im missing

#

ohok

jolly oriole
#

damageDealt

cedar hemlock
#

yeah that also didn't work

#

maybe i am doing smth wrong

#

do capitals matter in scenename?

copper nacelle
#

yes

cedar hemlock
#

nope still 2 damage

#

i have "GG_Grimm_Nightmare" and "Nightmare Grimm Boss"

#
        Dictionary<string, string> NKGboss = new Dictionary<string, string>() { { "GG_Grimm_Nightmare", "Nightmare Grimm Boss" } };
...
 private void SceneChanged(Scene arg0, Scene arg1)
        {
            var go = arg1.Find(NKGboss[arg1.name]);
            if (NKGboss.ContainsKey(arg1.name)/* || UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "Grimm_Nightmare"*/)
            {
                foreach (var dh in go.GetComponentsInChildren<DamageHero>())
                {
                    dh.damageDealt = 1;
                }
            }
         }
jolly oriole
#

oh wow nvm i know why

cedar hemlock
#

oh nice

jolly oriole
#

though idk if there's a workaround

#

GetComponentsInChildren doesn't get the components of inactive children in unity 2017

#

with grimm being inactive at the start

cedar hemlock
#

cant i just make it wait for 20 sec or smth?

jolly oriole
#

you could, but let me check something to make it just more reliable

cedar hemlock
#

go ahead

copper nacelle
#

you just (true) don't you?

jolly oriole
#

2017 doesn't have that sadly

#

for no fucking reason

copper nacelle
#

I could've sworn hk had it

jolly oriole
#

wait nvm it does

cedar hemlock
#

so?

copper nacelle
#

add a true to your method call

#

also don't use getactivescene

#

The hook provides you with the next scene already

jolly oriole
#

arg1.name.Equals("GG_Grimm_Nightmare")

copper nacelle
#

.equals x5fiftAleph

#

java tier

jolly oriole
#

from c++, can't be bothered if c# ever decides to compare pointers

copper nacelle
#

if .equals works then == is basically always set to just call it

cedar hemlock
#

how do i "add a true to your method call"

jolly oriole
#

go.GetComponentsInChildren<DamageHero>(true)

cedar hemlock
#

thx

jolly oriole
#

oh, i mixed the Component.GetComponentsInChildren up with Transform.Find, with the latter not finding inactive GOs

copper nacelle
#

Does it not

#

Useless

jolly oriole
#

something didn't at least

light zodiac
#

Wouldn't it be easier to hook onto take health hook

jolly oriole
#

maybe i'm also way off with that though

jolly oriole
#

not only that from the boss

cedar hemlock
#

still does 2 soulpensive

copper nacelle
#

wait a frame

light zodiac
#

What else is there in godhome nkg scenes

copper nacelle
#

spikes

jolly oriole
#

and the sides

light zodiac
#

Nkg takesa long time to spawn

#

So you have to wait until you find it

copper nacelle
#

Aids

jolly oriole
#

WaitWhile destroys frames

copper nacelle
#

put the code inside the fsm action for spawning

#

if it wasn't literally every frame it'd be a lot nicer on performance

light zodiac
#

Don't wait while use wait for seconds

copper nacelle
#

Could wait like a physics frame or something

cedar hemlock
#
Error    CS1955    Non-invocable member 'WaitForSeconds' cannot be used like a method.
#

can i just do

private void WaitForSeconds(int v)
        {
            throw new NotImplementedException();
        }
```?
copper nacelle
#

no

#

then it would call that

#

and throw

cedar hemlock
#

then what do i do

#

if the lightbulb isn't right

light zodiac
#

You need to be in an IEnumerator function to do that

jolly oriole
#
private void SceneChanged(Scene arg0, Scene arg1)
{
    if (arg1.name != "GG_Grimm_Nightmare") return;
    var go = arg1.Find("Nightmare Grimm Boss");
    var fsm = go.LocateMyFsm("Control");
    fsm.AddMethod("Dormant", MakeGrimmNoDamage)
}
private void MakeGrimmNoDamage()
{
    grimmGo = GameObject.Find("Nightmare Grimm Boss");
    foreach (var dh in grimmGo.GetComponentsInChildren<DamageHero>(true))
    {
        dh.damageDealth = 1;
    }
}

may work, not tested

light zodiac
#

It probs won't cuz nkg doesn't spawn when the scene changes so the find (nkg) will return null

steady comet
#

Why not just use the fsm onenable hook?

copper nacelle
#

I would like to note that it runs after the spawn ngl

#

that's like a sledgehammer to a nail

#

You could it's just kinda overkill

steady comet
#

Oh I see

jolly oriole
#

i mean, the pfsm onenable (or another pfsm method, don't remember) hook is what i used to make jngo's gatlingaspid not eat frames

copper nacelle
#

fair

#

hm awake would prob be decent for a generalized enemy spawn hook

jolly oriole
#

i have actually no clue which hook i changed it to

#

would have to download it again to see

copper nacelle
#

rofl

jolly oriole
#

best part about that: i made those changes in dnspy

copper nacelle
#

🥴

jolly oriole
#

nvm about that, i just found a vs project

#

probs exported

#

pfsm.start is what i used

#

but yea, awake would be a good general enemy spawn hook

#

and a lot of other things as well

#

dnSpy, you alright?

primal latch
#

I have changed all the charm textures using CharmIconList.Instance.spriteList. It shows up fine in the charms menu, but not in shops. Is there a way to change the textures in the shop?

jolly oriole
#

oh god shops

#

i think redfrog did some things for either shops or lemm (selling new relics)

#

but i also did a thing to add items to a shop

#

let me find that

copper nacelle
#

randomizer also has to deal with shops if you want to just check that

primal latch
#

I have a new texture for all the charms

#

but they don't show up in shops

jolly oriole
#

looking at my code... i think you look at randomizer's one, like 56 said

copper nacelle
#

Ah

#

I guess I never got around to it

#

Mb

jolly oriole
#

apparently

#

at least now we know why it was so familiar

copper nacelle
#

yeah

cedar hemlock
#

lets see if it works

light zodiac
#

it didn't for me, 1st hit did 1 damage and 2nd hit onwards it did 2

cedar hemlock
#

With me it just did 2 damage

night cosmos
#

Hi ! Do you know where to start from scratch for modifying HK (without tool) I started RE and wanted to know if it's possible

cedar hemlock
#

Lemme link the docs

#

Wait a sec

#

Its in c#

night cosmos
#

Thanks willoh some Reading for today

floral blade
#

is there a guide to making skins or something that might have a list of all the sprites we can alter for the player character ?

proven cipher
#

Lol

floral blade
primal latch
#

No. I don’t think so

floral blade
#

i ask because one of the recent commits on this was "added more sprite sheets" vesselsip

vocal spire
steady comet
#

Maybe a stupid question but if I have a GameObject go, is there any difference between Object.Destroy(go) and Object.Destroy(GameObject.Find(go.name)) ?

nimble lake
#

i have a question for the modding community

copper nacelle
#

The latter is shit

#

It won't find children

vocal spire
copper nacelle
#

It's also straight up slower

nimble lake
#

if you had to think about a single “HK modder” who would it be

#

because i have an idea for an emote and trust me it regards modding

jolly oriole
#

make whatever 56's nickname is as an emote

vocal spire
#

Yeah

#

Sounds about right

nimble lake
#

sure

#

wait can someone type his nickname here for later? i’m on mobile

copper nacelle
#

𓌬

vocal spire
#

Just realized I’m on mobile

nimble lake
#

ty

vocal spire
#

Hmmmm nickname change

steady comet
# copper nacelle The latter is shit

(I'm not planning on doing the second lmao - the question was somewhat academic, I don't actually have the GameObject, I wanted to destroy a game object with a particular name and was wondering why Object.Destroy(GameObject.Find(...)) wasn't working but foreach (var go in FindObjectsOfType...) was)

jolly oriole
#

find only finds direct children, not children of children

vocal spire
#

This is GameObject.Find(static) not Transform.Find(instance)

copper nacelle
#

Yeah GameObject.Find is only going to find active root game objects

#

find objects of type finds inactive child objects as well as active and root stuff

#

It makes it slower but more powerful

jolly oriole
#

oh that was what changed in unity 2020

copper nacelle
#

That changed?

vocal spire
#

Huh

#

Cool

copper nacelle
#

Busted tech

jolly oriole
#

wait nvm

vocal spire
#

Nice

jolly oriole
#

but i swear something like that changed

#

where they added a bool to also find inactive stuff

steady comet
copper nacelle
#

Yeah

steady comet
#

Great, thanks!

runic topaz
#

if im making a scene in unity to implement into hollow knight, what unity version does it have to be in?

cedar hemlock
#

Check the api docs

#

I believe 2017.10f

runic topaz
#

Hi Everyone, Hollow Knight v1.5.58.11762 is now available on the public-beta branch for all platforms. It can be accessed by right-clicking the game in your Steam library, then clicking "Properties", "Betas", and selecting "public-beta". The main purpose of this version is to update our Unity version, but we've made some fixes also: - Added "Bor...

jolly oriole
#

2017.4.10f1

copper nacelle
#

the beta is 2020 yeah

cedar hemlock
#

Thats 2020

jolly oriole
#

beta is 2020.2.2

copper nacelle
#

The current version isn't though

#

why does everyone have a knife with legs now

#

Plagiarism

jolly oriole
#

i don't

copper nacelle
#

that's true

#

based

cedar hemlock
#

I cant even see it

#

Cus im on mobile

#

Just a wierd box

jolly oriole
#

i just picked some hieroglyph that looked nice

runic topaz
#

so... im good to use 2017.4.10f on the main game?

jolly oriole
#

10

#

not 1

runic topaz
#

ik

#

cool

#

thx

vocal spire
cedar hemlock
#

If you can see it depends on the operationg system and emoji's that come with it

vocal spire
#

Cool

cedar hemlock
#

The knife on legs doesn't come with my device

jolly oriole
#

or you just change the font used by your device

cedar hemlock
#

Or that

copper nacelle
#

is this a good idea

#

enabled tab

cedar hemlock
#

Yes

copper nacelle
#

ok

floral blade
#

Can anyone confirm if this list/breakdown seems correct ?

#

File names of skin sprites made for CK

Playtime player sprites :
"Knight",
"Sprint",
"Wraiths",
"VoidSpells",
"VS",
"Unn",
"Fluke",
"Shield",
"Baldur",

Playtime Companion sprites :
"Hatchling",
"Grimm",
"Weaver",

Playtime UI sprites :
"Hud",
"OrbFull",
"Geo",
"Inventory",

Story Cutscene sprites :
"Dreamnail",
"DreamArrival",
"Wings",
"Quirrel",
"Webbed",
"Cloak",
"Shriek",
"Hornet",
"Birthplace",

copper nacelle
#

seems right

floral blade
#

alright,
so we can basically skip syncing all UI sprites & cutscene sprites till enemy/progression sync happens and i'm not sure if HKMP syncs companions right now either, if not then only the player sprites would need to be covered

jolly oriole
copper nacelle
#

true

vocal spire
#

🤔

rough pulsar
#

is the Hud a Canvas object?

jolly oriole
#

afaik no

vocal spire
#

If you want to check yourself you can use (extension method found in modcommon)GameObject(instance).PrintSceneHiearchyTree(); then checking the GameObject dump of it in the mods folder

rough pulsar
#

so uh i have 2 questions

  1. how many canvas objects are there loaded in a scene?
  2. is there any components i need to display canvas objects beyond CanvasRenderer?
jolly oriole
#

oh god, redfrog found a difference between loading with preloads and loading without, now i have to tell people to add irrelevant preloads when they want to add custom menu styles

rough pulsar
#

god

cedar hemlock
nimble lake
#

there we go

#

modders

#

rate

jolly oriole
#

3/10 not enough green

#

otherwise 8/10

nimble lake
#

use it wisely

#

very wisely

#

56 tell me your opinions

#

it was made in your image

rain cedar
#

-6/10

copper nacelle
#

extremely interesting

nimble lake
nimble lake
rough pulsar
#

i can't seem to set the location of this funny text object

#

i tried doing this

#

rt is the rectTransform of the text object

#

m

deep wave
#

which fork of debugmod is the current patch version available on the installer? VanillaStare

rough pulsar
#

Why is this text object i made is blurry??

light zodiac
#

What's your game res?

rough pulsar
#

Is there anything I can do to counter this?

#

Oh and also uh second question, what is the game's usual font file name

lunar warren
vocal spire
#

?

lunar warren
#

that game res

rough pulsar
#

My pc ain't strong >:(

lunar warren
#

fair i used to have a toaster

#

i feel u

#

let me tell u turning it to full for the first time is an unexplainable joy

jolly oriole
#

still higher than this

vocal spire
#

Oof

cedar hemlock
#

amazing

vocal spire
#

I really don’t like that

#

It hurts

rough pulsar
#

anyways is there anything i can do to counter that problem?

deep wave
#

19fps 🥴

rough pulsar
#

hold up

rough pulsar
#

is the hollow knight's font pixel perfect?

#

if so what is the file name of hollow knight's font called

cedar hemlock
#

google it

rough pulsar
#

m

vocal spire
#

Ah yes, my favorite font, m

cedar hemlock
#

that

rough pulsar
#

uh the font used in dialogues?

cedar hemlock
#

hmm

#

idk

rough pulsar
#

i'll stick to trajan pro regular

jolly oriole
#

hk's font is Perpetua

rough pulsar
#

ah. ok!

#

thanks

deep wave
rough pulsar
#

you know uhh

#

i'll just

#

look at other mods' source codes

#

i clearly don't understand how to make a text object and i suck at it

steady comet
#

Fsm viewer question. If I have an event like SendEventByName, is there any way to see what the event target is?

(My current solution is to get a mod to log the eventTarget.gameObject.GameObject.Name but I'd prefer to have a way that doesn't have to open HK if possible)

rough pulsar
#

i'm absolutely suffering

vocal spire
#

Nice

rough pulsar
#

i can't find a way to use the in-game fonts in my text objects and i'm suffering

cedar hemlock
#

Godhome :D

#

Hive knight

#

P3?

#

Love the dc rich presense

idle plinth
#

Ok so I messed up and didn't pick up Grubberflys elegy. Now there is no in-game way for me to pick it up amymore. Is there a way to get it anyway by moding? I play on Nintendo switch, so im not sure if that would even work.

cedar hemlock
#

Do a save-edit

idle plinth
#

how does one acheve that

cedar hemlock
#

Check modding-help pins

idle plinth
#

ok I'll check

vocal spire
#

This is for the development of mods

cedar hemlock
#

I told him to go here i thought it was about making a mod soulpensive

idle plinth
#

I was sent here by @cedar hemlock so...

#

Yeah my bad for miscomunicating that

#

where do I go if I have further questions? modding-help?

cedar hemlock
#

Ye

idle plinth
#

ok thaks

light zodiac
# copper nacelle is this a good idea

Instead of having a separate tab for it wouldn't it be better just to sort the list in the installed tab. Enabled on top and disabled at the bottom

copper nacelle
#

maybe

vocal spire
runic topaz
#

I'm trying to add a scene and im doing so by following saleh's tutorial, but on the title screen, the the top corner where it mods you have installed, it says that my mod "failed to load" and i dont really know whats wrong, any advice?

jolly oriole
#

look at modlog and output_log

runic topaz
#

where is output_log?

jolly oriole
#

next to modlog

runic topaz
#

i dont really see anything, what am i looking for?

jolly oriole
#

anything with exceptions ig

ornate rivet
#

post the modlog

runic topaz
#

i found an error in the modlog

#
[ERROR]:[API] - Error: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
[ERROR]:[API] -   at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
[ERROR]:[API] -   at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0 
[ERROR]:[API] -   at Modding.ModLoader+<LoadMods>d__9.MoveNext () [0x00000] in <filename unknown>:0 ```
#

oh, hi saleh, your tutorial was great!

deep wave
#

is your mod targeting .net framework 3.5

ornate rivet
#

:) glad it helped

runic topaz
deep wave
#

because you targeted .net core

#

target .net framework instead

runic topaz
#

how do i do that?

#

oh, nvm, i see it

deep wave
#

can't remember off the top of my head but you could just remake the project and select .net framework

runic topaz
#

theres a separate option for class library .net framework

#

i just didnt see it

deep wave
#

correct

runic topaz
#

and just in general, im referencing assembly-csharp, unity engine, unity engine.physics 2d module, and unity engine.core module. are there other things i should be referencing or is that it?

copper nacelle
#

really depends on what you need to do

ornate rivet
#

^ e.g. if you need playmaker, then playmaker too

runic topaz
#

ok, cool, thx, lets see if this works

ornate rivet
#

if you don't have a ref, the ide usually tells you

runic topaz
#

yeah, thats what i found, it told me i needed physics 2d when i didnt include it

pearl ether
#

hey idk if this is the right channel for this but could anyone say me how to bind things in the mod menu? like the debug mod

deep wave
light zodiac
#

if I want to update a mod that's already in the installer, should I just edit my github release?

deep wave
#

create a new github release, then submit a pr to modinstaller w/ a link to the zip in the new release and the new SHA1

light zodiac
#

Ok thanks

nimble lake
cedar hemlock
deep wave
regal iris
#

Oops. I blame insufficient coffee.

rough pulsar
#

i'll start working on modinstaller so i can make my own mod work properly without telling people to install this to there

abstract siren
#

HI

rough pulsar
#

the hell?

#

i try to open modmanager.cs it just displays this

abstract siren
#

hi

jolly oriole
#

Wrong channel numbers

rough pulsar
#

where is the code that scans the modlinks.xml?

#

oh

#

looks like i found it

#

nope i don't think so

jolly oriole
rough pulsar
#

eh i'll just make a code that scans a part of modlink if it exists i guess

#

actually

#

hmm

rough pulsar
#

i don't think i can modify the code in any way lol its just way too complicated. i'll add auto-dependency-install from the mod itself i guess

#

@jolly oriole Does this code get the location of my DLL or simply the location of the game's exe file?
Assembly.GetExecutingAssembly().Location;

jolly oriole
#

that is a very good question that i don't know the answer to

#

so i suggest googling that (msdn probably has an asnwer)

rough pulsar
#

Seems like a fuzz

vocal spire
#

At least in among us modding it’s dll

rough pulsar
#

i hope

jolly oriole
#

considering they made it

vocal spire
#

Yeah

rough pulsar
#

OH WAIT

#

ziparchive doesn't exist in .net framework 3.5

#

what can i use now

vocal spire
#

What does the installer use

#

To unzip

rough pulsar
#

ZipArchive

#

The ModInstaller uses .NET Framework 4.7.2@vocal spire

vocal spire
#

Let’s forget I said that

rough pulsar
#

Can I even upgrade to .NET Framework 4.5 in my mod or any newer versions? @jolly oriole

#

Or just any version

jolly oriole
#

if you target any .net version aside from framework 3.5 in mods for 1432 the mod won't get loaded correctly

#

if that's what you're asking

rough pulsar
#

1432 the mod????

#

oh

#

1432?

jolly oriole
#

hk patch 1432

rough pulsar
#

And .NET Framework 3.5 is from like, 2002. soulpensive

jolly oriole
#

and what unity 2017 uses ¯_(ツ)_/¯

rough pulsar
#

I got a library that can interact with zip files for .NET Framework 3.5 so that's pog

#

That's pogn't is that

#

i had to use the old version

#

0.86.0

rough pulsar
#

Also uh I noticed there are different scenes with
Cinematic_Ending_A,Cinematic_Ending_B,Cinematic_Ending_C
and so on
I only know Cinematic_Ending_C, can anyone explain the others

jolly oriole
#

a is the hollow knight ending
b is sealed siblings
c is dream no more
d is embrace the void
e is embrace the void

rough pulsar
#

e = embrace the void with flower

#

i assume.

jolly oriole
#

i have no idea which of d & e is the flower one tbh

light zodiac
jolly oriole
#

as if that helps, just look at hollow point

light zodiac
#

That says readme in the installer. The trick is to say it in the modname which also shows on top left of main menu

jolly oriole
#

hm, may actually be more efficient grubthink

rough pulsar
#

Yeah I'lld o that

#

After adding #region stuffs into my code this seems WAY more clean

jolly jungle
#

Wait what are you making @rough pulsar

light zodiac
#

Finally my eyes don't bleed reading that

rough pulsar
jolly jungle
#

Yo that's cool

#

How complex is the setup though that makes it so important to read the readme

#

Well I guess anything that isn't just load the mod makes reading the readme important already

#

But you know what I mean

light zodiac
#

You have to add a file to data ->plugins

jolly jungle
#

Ah, not so complicated
Only read-the-readme-and-do-what-it-says complicated

#

Is the mod itself done or...?

#

Cuz I remember seeing a screenshot

#

At some point today or yesterday

light zodiac
#

Yea it's in the installer

rough pulsar
#

I'll update it just a little bit later

#

Which will display your current SOUL and HP

#

Alright I changed some stuff

#

Now is the time I create the guide

#

Btw not sure but you know the SHA1 field in modlinks.xml?

#

I wanna make sure that uh

#

is the SHA1, the SHA1 of the Zip or the DLL?

vocal spire
#

Dll

rough pulsar
#

i hope it's the DLL inside the Zip we are talking about

vocal spire
#

Yes

rough pulsar
#

look at my status

#

full status

#

i'm also going to add a keybind to disable SOUL preview

light zodiac
#

why is it 33/66 soul

rough pulsar
#

each soul vessel has 33 soul, i have 2 soul vessels

proven cipher
#

One of which is full

light zodiac
#

looks confusing

rough pulsar
#

hmm

#

i don't know how to measure it

#

i'm just going to leave it at disabled in default

proven cipher
#

I got it straight away, but honestly I don't think it's necessary

rough pulsar
#

ye probably

light zodiac
#

maybe writing the amount of spells usage?

#

like 33 = 1 spell

proven cipher
#

I think that's more confusing

light zodiac
rough pulsar
#

it looks more bloated so i just removed it

light zodiac
#

it = key bind or soul?

rough pulsar
#

soul

rough pulsar
merry lotus
rough pulsar
#

don't worry i just scrapped the idea

#

no keybinds or anything zote

rough pulsar
#

I have made le pull request, can relax now. grimmsleep

light zodiac
rough pulsar
#

they'll eventually have to

floral furnace
#

mood

rough pulsar
merry lotus
rough pulsar
#

oh recently someone asked that they had troubles with my mod

nimble lake
runic topaz
#

how can i add something from the base game (e.g. a vengefly) into my custom room?

jolly oriole
#

you could construct it yourself

runic topaz
#

i could, but i have even less of an idea how to do that

vocal spire
#

Preloading

#

Look in the mod class in the apidocs

runic topaz
#

oh, thats perfect, thank you!

runic topaz
#

where do i find the full name of an object i want to preload?

vocal spire
#

Pins, scene dumps

#

It will look like
Parentofparent/parent/target object
but probably with a different number of parents

runic topaz
#

which pin is that...?

vocal spire
runic topaz
#

thx

runic topaz
#

what am i doing wrong now?

jolly oriole
#

/, not \

runic topaz
#

yeah, i suppose that would be a fairly large problem...

#

ok, and after i've preloaded something, how do i actually spawn it?

copper nacelle
#

UnityEngine.Object.Instantiate

#

Set it active too

runic topaz
#

is that mentioned on the apidocs or is there somewhere i can see what that looks like?

jolly oriole
#

looking at the apidocs, i can't believe saleh put a frame eater in the tutorial with utiny ripper

runic topaz
#

awesome, thx you all so much, this community is the best

runic topaz
#

in order to use object.instantiate i need to know the name of the object I'm cloning, what do i refer to the object i preloaded as?

runic topaz
#

or i suppose its also entirely possible im doing this all wrong because im an idiot who has no idea what he's doing, but if thats the case, what should i do instead

languid goblet
#

you need to set it up in a dictionary in initialize right

copper nacelle
#

you don't need to do a dictionary necessarily

#

you can straight up just assign the dict it gives to a field

#

or you could like just fill some fields

runic topaz
#

is there any reason why this shouldn't work?

copper nacelle
#

I mean you could do that

#

You'd just have a husk in the menu

#

an inactive one at that

runic topaz
#

?

languid goblet
#

i think you should probably create a variable containing the gameobject

#

so you can set it to active and stuff

#

idk tho

floral blade
#

quick question does anyone know if nail arts are on Knight.png ? they look like they are, just confirming

languid goblet
#

they are

fair rampart
floral blade
runic topaz
#

how do i set the aforementioned husk as active?

copper nacelle
#
var go = UnityEngine.Object.Instantiate(husk, pos, Quaternion.identity);
go.SetActive(true);
runic topaz
#

thx

floral blade
#

a small teaser 😁 (deleted from the other channel as this one seemed better suited to it)

runic topaz
#

ooohhh

#

that seems awesome

floral blade
#

a few animations are buggy but much of the Knight.png & Sprint.png can sync now

languid goblet
#

ooh are you the one working on HKMP?

floral blade
dire tiger
#

nice

languid goblet
#

that's fantastic! does the server get the skins from your machine or is there like some "server folder" with skins that all the players can choose from?

floral blade
languid goblet
#

sounds cool, guess it's more efficient this way than sending all the skins to the server and then back to everyone's games

floral blade
floral blade
#

how does one debug a message like this ? is there a way to add breakpoints in our code ? or do i have to add a log line after every line of the function to actually get the line number that is cursed ?

message: Object reference not set to an instance of an object, stacktrace: at HKMP.Animation.Effects.CrystalDash.Play (UnityEngine.GameObject playerObject, HKMP.ServerKnights.clientSkin skin, System.Boolean[] effectInfo) [0x00000] in <filename unknown>:0

copper nacelle
#

the log is what people tend to do

#

you can get the actual trace w/ lines though

floral blade
#

how ?

copper nacelle
#

you have to use mdb2pdb on the pdb and then put that next to your dll

#

might also need the debug unity runner?

#

i have a copy of that if that ends up being the case fwiw

#

i'd check but like effort

floral blade
#

i have 0 idea what any of that even is

#

mdb2pdb sounds like sourcemaps ?

copper nacelle
#

it's just a util that comes with mono

#

might come with vs

floral blade
#

i'm using vsc + msbuild

copper nacelle
#

lemme see if i can find mdb2pdb

#

i found the tech

#

this thing had it

#

there's also one in mono

floral blade
#

this looks super windows only

copper nacelle
#

mac?

floral blade
#

yep

copper nacelle
#

wow this is the tiniest fucking app in existence

#

straight up just use cecil

#

the god tech

#

I can just give you the exe if I can find it tbqh

floral blade
#

would the exe work on mac ?

copper nacelle
#

yeah you just run it through mono

floral blade
#

okay and how'd i use it to link the stacktrace with the line number?

copper nacelle
#

you just run it on the pdb to get an mdb

#

and then put the mdb in the mods folder so it loads with the assembly

floral blade
#

okay, could you share the exe ?

#

i'll just add it to my build.sh to make the mdb and copy it everytime i build

copper nacelle
#

probably yeah

#

seems like it

floral blade
#

okay i'mma try it

#

i'm guessing this is not the exe i need ?

mono pdb2mdb.exe ./HKMP/HKMP/bin/Debug/HKMP.dll
WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319
Fatal error:
System.IndexOutOfRangeException: Index was outside the bounds of the array.

copper nacelle
#

wait

#

maybe i'm bad nvm

#

You need an outfile

floral blade
#

Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly

^ this is what the thingy said

#

oh outfile would be hkmp.dll.mdb ?

copper nacelle
#

no it's another assembly

#

from the source

#

they add some data to make the mdb work from the look of it

floral blade
#

so this should have worked right ?

mono pdb2mdb.exe ./HKMP/HKMP/bin/Debug/HKMP.dll ./HKMP2.dll
WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319
Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly

copper nacelle
#

Wtf

#

i'll dnspy it ig

#

this one is just 1 arg

#

apparently

#

idk why it would throw

#

Do you have unity?

floral blade
#

i do

copper nacelle
#

in the unity files under unity/editor/data/monobleedingedge/lib/mono/4.5 there should be a copy of pdb2mdb there

floral blade
#

is it possible that i need an older pdb2mdb ?

#

ah okay let me try looking for it

floral blade
copper nacelle
#

ye

#

but here's the zip

floral blade
#

ty

#

this is what i get
mono pdb2mdb/pdb2mdb.exe ~/serverknights/HKMP/HKMP/bin/Debug/HKMP.dll HKMP.dll
Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly

copper nacelle
#

don't use the 2nd param

floral blade
#

okay

#

it still spits out the same thing

copper nacelle
#

index error?

#

you could try going to the folder of the dll

#

otherwise no idea

floral blade
#

no no it just gives "Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly
"

copper nacelle
#

with only one argument?

floral blade
#

yep

copper nacelle
#

show

#

idk

floral blade
#

variations i have tried

mono ./pdb2mdb.exe HKMP.dll
Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly

mono ./pdb2mdb.exe ./HKMP.dll
Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly

mono ./pdb2mdb.exe HKMP
Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly

copper nacelle
#

Fucked

#

If it thinks your file doesn't exist that would make sense

floral blade
#

i have even tried giving it absolute path though :/

copper nacelle
#

the dll is in the same folder?

floral blade
#

yep tried that too

copper nacelle
#

instead of pdb2mdb

floral blade
#

dafug?

mono aa.exe ./HKMP.dll
args length is 1, args is ./HKMP.dll
file does not exist (but from the catch in try/catch) ngl
Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly

copper nacelle
#

lmao

#

alright

#

do you have a pdb in the folder?

floral blade
#

ls
HKMP.dll HKMP.pdb aa.exe

mono aa.exe HKMP.dll
args length is 1, args is HKMP.dll
file does not exist (but from the catch in try/catch) ngl
Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly

copper nacelle
#

use this one now

floral blade
#

gg

#

mono aa.exe HKMP.dll
args length is 1, args is HKMP.dll
file does not exist (but from the catch in try/catch) ngl
System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Cecil, Version=0.10.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Cecil, Version=0.10.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
at Pdb2Mdb.Driver.Main (System.String[] args) [0x00049] in <1279233ce2304b44acb52c964b80239f>:0
Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly

copper nacelle
#

ah

#

yeah that would do it

copper nacelle
floral blade
#

okay

copper nacelle
#

and put the pdb + dll in it instead

#

it's missing dependencies

floral blade
#

i still get the same error tho

copper nacelle
#

with aa.exe in that folder?

floral blade
#

is this meant to have a Mono.Cecil.dll here ?

floral blade
copper nacelle
#

you know

#

you make a good point

#

i'm just gonna build it

floral blade
#

with a built in copy of Cecil ?

floral blade
#

so turns out i have a copy of what is called a pdb2mdb on mac as a part of the mono framework

#

it seems to run but then says
"Error: A portable PDB can't be converted to mdb."

copper nacelle
#

I was with family sorry

#

You can set msbuild to not create a portable pdb

#

In the csproj

#

You don't want it set as portable

#

you want full

#

afaik

#

or pdbonly if that doesn't work

floral blade
#

according to the github issue on mac it never generates a full pdb always portable

#

my csproj had it set to full

copper nacelle
#

Oh that's shitty

#

you're building for framework yeah?

floral blade
copper nacelle
#

show me the top of your csproj

floral blade
copper nacelle
#

hmm

#

oh this is vsc yeah?

#

but at this point it's probably easier to just log tbh

#

Unfortunately

floral blade
#

i am using msbuild in the terminal to build currently , and yeah logging seems easier at the moment

copper nacelle
#

Wtf

#

Are you not using OmniSharp?

floral blade
#

i have no idea what that is 😅 i just went ahead and compiled modding api, modCommon & HKMP using terminal and setup my own build script to copy the dlls into the game.

rest till now i've been using vsc as the only tool

copper nacelle
#

there's a vsc extension called OmniSharp which gives you c# error/warning/suggestions etc.

floral blade
#

i have been getting those tho, maybe i installed it when vsc suggested to?

copper nacelle
#

maybe

#

there's a build button in there too though fwiw

floral blade
#

can i set it to run my script of delete files & copy dlls ?

copper nacelle
#

you just put it as a postbuild event

#

like this is what i have

#

there's an <Exec command to run anything though so you can just run a script

floral blade
cedar hemlock
#

why do people always break their mod

jolly jungle
#

Also there's a mod in development called Sanctuary which iirc also adds a new area or something

jolly oriole
#

<@&283547423706447872> channel spammer

nimble lake
#

not modders

floral blade
jolly jungle
#

Woo, nice

#

Is it part of HKMP or an additional mod?

floral blade
#

part of HKMP

jolly jungle
#

Awesome

#

Enemy syncing is next?

rough pulsar
#

i hope enemy sync exists

floral blade
rough pulsar
#

well

#

will exist i hope

jolly jungle
#

It's gonna be more complicated than skins, I guess

floral blade
#

syncing enemies when we are dealing with a single player game is going to have a lot more challenges than just the networking bits, atleast if we want it to still be fun for all players at the end

rough pulsar
#

hollow knight is a singleplayer

#

my idea would be to just sync the enemies with the host's enemy positions

floral blade
rough pulsar
#

@floral blade thought i would ask quick, is custom knight supported right now?

floral blade
vocal spire
rough pulsar
#

is there any way to make my mod toggleable

vocal spire
#

Itoggleablemod

rough pulsar
#

thank

jolly oriole
vocal spire
#

I should have clarified that the host willl sync the targets

#

Anyways if no one else will do it, I’ll see about doing it

#

It seems fun

rough pulsar
#

any way to replace default assets in mods?

vocal spire
#

Wdym

#

Like replace a sprite with another?

rough pulsar
#

yes

vocal spire
#

GameObject(Instance).GetComponent<SpriteRenderer>().sprite = thecustomspriteimade

rough pulsar
#

like how custom knight does maybe

#

oh

#

ok

vocal spire
#

Oh, then you probably aren’t going to use spriterenderers

cedar hemlock
#

tex2d

vocal spire
#

You can look at the CustomKnight source on how to do that

rough pulsar
#

oki

vocal spire
cedar hemlock
#

it doesn't

#

i only know that has something to do with it

floral blade
#

that and retarget on getting hit (maybe with heavy blow 😛 ) sounds like it might be fun , how would it work for mantis lords tho ?

pure nova
#

How do you "get" the variables from a script? I get how to do methods and booleans, but nothing I try to do works with other variable types.

#

I feel like I've asked this question before.

#

I just can't put my tongue to the answer.

steady dome
#

I downloaded the scene files

#

from the pins

#

how do you open them using HKedit?

copper nacelle
#

you don't

#

you open them in notepad ngl

steady dome
#

and edit them from there?

#

but how does one get the proper type of file to open in HKedit

steady dome
#

Do you need the prefabs?

#

or something like that?

copper nacelle
#

what

#

the zip and rar in the pins are text files

steady dome
#

do you know unity?

#

ik that

#

but they are text files that reference prefabs

#

pretty much just the playmaker scripts

copper nacelle
#

I haven't used hkedit much at all but from what I understand you just load the scene from the asset file

#

The text files are like completely unrelated

steady dome
#

ok

#

and how do I get the asset file?

copper nacelle
#

they're in the game folder

steady dome
#

I'm on mac

#

and I don't know how to decompile

copper nacelle
#

ok

#

and

#

they are still in the folder

jolly oriole
steady dome
#

That's what I've been using

#

I set it up

#

I just have none of the actual scene files

#

because of the way that mac works

copper nacelle
#

yeah you do

#

they're literally in the .app

#

you just show contents

steady dome
#

I'm there

#

would it be in the data folder?

#

because it's either empty

#

or I don't have permission to see any of its contents

copper nacelle
steady dome
#

oh my bad

#

thanks

#

a lot

steady dome
#

and it's stuck loading

floral blade
#

general conceptual question, does anyone have any ideas on how we could sync "private"/"challenge" skins so that others can see the player's skin but not be able to use it themselves ?

dark wigeon
steady dome
#

one sec

copper nacelle
steady dome
#

it got stuck last time on Recursing GameObject dependencies

floral blade
steady dome
#

yep it's getting stuck there

dark wigeon
#

what's the error

jolly oriole
steady dome
#

NullReferenceExeption Object reference not set to an instance of an object

dark wigeon
#

screenshot the entire thing

steady dome
#

ok

dark wigeon
#

nullreference is a generic error

steady dome
#

ok

#

just quit out of unity

floral blade
#

like an entirely different spritesheet layout could be a starting point

dark wigeon
steady dome
#

that looks like an older version of unity

dark wigeon
#

you need unity 2017 to run this anyway

steady dome
#

I just changed the version

dark wigeon
#

but it doesn't really matter since that only happens at the very end

steady dome
#

when transfering it

#

there's an option to shift project versions

#

so I just shifted it to 2020.something

dark wigeon
#

right but for this case you need to keep the original project version

#

normally when you upgrade a project it will upgrade the files as well, but since hollow knight is not technically part of the project, those files aren't going to be upgraded

#

so stay in 2017

steady dome
#

well where could I download unity 2017

#

Unity has discontinued it

dark wigeon
steady dome
#

oh thanks

dark wigeon
#

get 2017.4.10f1

#

just to be safe

#

but it should be backwards compatible with any 2017.4 versions

steady dome
#

got it

#

wait

#

will it be in 32 bit?

dark wigeon
#

doesn't matter

steady dome
#

because macs can't run 32 bit apps anymore

dark wigeon
#

hkwe is in c# not c++ so 32bit or 64bit doesn't matter

steady dome
#

ok

jolly oriole
floral blade
#

watermarking is one option, the skins are shared over the network after adding a watermark, the player who earned it sees it in its full glory and if anyone steals it they will be publicly announcing that fact.

copper nacelle
jolly oriole
#

i mean yea, why not, make it look hella ugly for everyone(-1) in a multiplayer game

copper nacelle
#

whose face is gonna be on it

#

i cba opening it

jolly oriole
#

it's radial spectrum, or however you call it

#

rainbow circle

copper nacelle
#

ah

floral blade
dark wigeon
#

just jpegify the sheet a lot before sending it

jolly oriole
#

deepfry

floral blade
#

another option is adding a "private" mode, where you can set a public skin and a private skin (might just be the default skin)

#

this might be the simplest option to let people enjoy the skins they've earned while being able to play multiplayer

copper nacelle
#

i mean honestly idk if anyone who wants to steal skins would even know how to dump them tbqh

floral blade
jolly oriole
#

make it like that one minecraft mod hid a killswitch: obscure it with base64 encoded reflection calls

languid goblet
#

is it possible to detect if godump is installed

#

and then just like, stop if from working if it is

floral blade
copper nacelle
#

you could yeah

jolly oriole
#

doesn't godump take like 3 minutes flat to just gather sprites?

dark wigeon
#

you could do anything by just dnspying the mod

#

perfect place to catch the png coming in and write it

floral blade
#

its possible to get the file but if it isn't much use without significant effort, that might turn most people who would try to steal off

dark wigeon
#

obviously, but if the client is rendering it somehow then you can already find a way to dump it

#

I guess you could do something like making a mesh with uvs on a palette or something

copper nacelle
#

you can just straight up take the texture off the renderer

dark wigeon
#

hence why the texture would be a palette

copper nacelle
#

oh

#

i see

floral blade
dark wigeon
#

basically, yeah

#

you could like scramble up different sections of the image and have the mesh correct it in the right order

jolly oriole
#

i mean, one could still dnspy it though, especially with server & client being in one dll

dark wigeon
#

well you'd have to write something to turn the image back into a png since the client would only have a one way function

jolly oriole
#

yea ¯_(ツ)_/¯

floral blade
#

is there a way to make a file not able to decrypt after a certain time ?

dark wigeon
#

not really since you could always fake time

floral blade
#

this is a very high level logic of what could work for a multiplayer system IMO

Server sends “Challenge phrase” to client.
Client uses it , a key file & the skin to generate a “response phrase”
Using response phrase + challenge phrase + skin server determines if the client has a valid key (the key is never sent to the server)

If they have a valid key, only then they are allowed to equip the skin on that server.
Others can see it but not equip it over multiplayer because they dont have the key.

obviously this does not solve the problem that these skins can still be used in customKnight.
maybe some obfuscation here to make it harder to use with customKnight might be enough to work?

vocal spire
#

in the end you can't really do anything since HKMP is open source and anyone can decrypt whatever you do by just making a custom ver of the mod. now, you could add something where you check with google drive or something if the mod's hash is the same as what it should be, but that still could easily be fixed by rewriting whatever code you write for it

floral blade
# vocal spire in the end you can't really do anything since HKMP is open source and anyone can...

this is true, but see the challenge phrase is determined by the server instance not HKMP code itself , this information is not available to anyone before hand and the key is held by the skin owner , this information is also not known to the attacker.

so it might be possible that they can rip the skin files themselves, but they would not be able to equip them on this server. perhaps when/if we have official servers where anyone can join, then this might make more sense.

#

without the correct response phrase the server will simply not broadcast to other players that they are using such a skin. and might even choose to disconnect the player on multiple invalid retries.

runic topaz
#

2 questions: 1) whats wrong with this? 2)should this spawn an active husk in "newroom" when i enter it?

vocal spire
# runic topaz

Why is preloadedObjects in there?, it’s supposed to be in initialize

dark wigeon
runic topaz
#

is this better? i really have no clue what im doing here, im just trying my best

vocal spire
#

Well remove it from GameManager thing since it doesn’t belong

runic topaz
#

ok, i wanted it to spawn when i enter the scene, and i thought that would be how id do it, if its in initialise itll just spawn when the mod boots up, not when i enter the room, right?

copper nacelle
#

declare a field to hold your preloaded objects

#

hooks need a specific signature for the method you can't just add shit

#

but you can use your instance and static fields just fine

floral blade
floral blade
#

except there is no money involved and this setup would be free for everyone to use (or to not use) 😅

it'd just be a shame if people who had unique skins could not use them on multiplayer because others would be able to steal them, they might not want to but i would like for them to have an option to (use the skins in MP).

vocal spire
#

a solution could be sending skin names instead of files

#

if someone else equips a skin and you have a skin with that name, that skin is put on that player

floral blade
jolly oriole
#

has the exact same effect if you ask me

floral blade
#

it is basically going to be a kind of DRM

jolly oriole
#

but the name (or a hash of the images) could save upwards of 1 MB (idek how big some skins are)

#

per person/skin

jolly oriole
#

k

floral blade
#

and if the player has a directory with the same name as the hash i use the files inside it

jolly oriole
#

k

floral blade
#

else we give them a url to download the skin (which the mod does internally)

rough pulsar
#

what are the scene names for Mr. Mushroom cutscenes and Stag Travel cutscene?

steady comet
#

I would guess Cinematic_MrMushroom and Cinematic_Stag_travel

#

(Those files exist if you download the pinned "game object dump by scene")

light zodiac
#

pretty sure they should be caps

#

best way to check would be to use LanguageGetHook and log the keys

rough pulsar
#

is it Cinematic_Stag_Travel or Cinematic_Stag_travel

#

I want to be 100% sure