#archived-modding-development
1 messages · Page 510 of 1
the eternal ordeal?
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
oh really?
it's given a meme name but yeah
what is the scene name with uh
the godseeker standing between battles in pantheons?
actually there are multiple of them
install benchwarp, go do the pantheons w/ display scene name on
honestly the easiest way 
GG_Engine(only godseeker in the room), GG_Engine_Root (white lady) ,GG_Unn,GG_Wyrm (pale king)
this is what apple's error details gives me
this is on calling new Texture2D(2,2) inside my mod
nothing in modlogs
did you check output_log
huh
but if i run it after entering dirtmouth it fails
that doesn't seem intuitive
it's player.log in a unity folder on mac
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
Is HKMP on?
it is for that mod, so i assume
Oh didn’t realize lol
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
and most likely laggy
made new/assigned don't log yeah?
yeah i'd added that later on to check if something else was going on
initially the creation and assignment were one line
Does it still die without the LoadImage call
yep it does
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?
you use dnspy
you cant do it in visual studio?
no
ok then
you can see the tree itself, but not the assembly codes itself iirc and it takes more time & effort
so just use dnspy
@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
the error is gone now, i had to move my function call out of the client code and into playerUpdate hook, so first update call after the client is connected is when we will load the skins
weird that just moving where it is called fixed it
unity and threads don't go together
any unity call off the main thread is basically suicide
this might be it, i'm going to have to check if it is
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
i'm not sure i followed any of that , what i got was : if i use a coroutine it would do the work on main thread and unity functions wont kill themselves ?
basically yeah but you need to have a wait before doing any work
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
@light zodiac i finished my mod and published it to github! :o
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
alright, thanks i'm gonna have to read a bit more on c# it's quite alien to me
don't worry i encountered yield return TYPE stuff recently too
:')
i've been coding in C# for quite some time
but i got the gist thanks to your description
if you wait for something, please don't do
while (true)
yield return null;
this decimates fps
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
if you add the dll it will only work for modinstaller2
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?
Readme isn’t required tmk
sha-1 of the dll
ik i just want to add it for installation guides
sooo
i think i'll just
add PR
pog
now everyone can enjoy having funny discord rpc in their profile
anyone here up to test the new skin sync in HKMP ?
I guess I can
Yes
HKMP - ServerKnights v0.2
you'll need to extract this in your mods directory
Ok
yo i published my mod to modinstaller
pog
i added installation instructions next to it
in README button
OH WAIT I MISPELLED
good job
lmao
lol
you killed your own creation
should i just make another PR to fix it X)
the earlier one is merged ?
yes
dang no choice but to move forward with another one then :p
please share the network once you create i'll join
I dmed you it
;;;_;
typo visibility: https://github.com/ricardosouzag/ModInstaller/pull/77
im trying to follow the tutorial by 56 and i have no idea what wrong with this
can anyone help?
It needs to be called Initialize, not initialize
what is this mod
Its in the modinstaller download it and find out
is there a known list of all files that we can skin for the player character in HK?
go does not exist in current context
Error CS0103 The name 'go' does not exist in the current context
then change 'go' to nkg's gameobject (or that of whichever boss you want to change)
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?)
lol i wrote that in discord, let me find the member name
damageDealt
yeah that also didn't work
maybe i am doing smth wrong
do capitals matter in scenename?
yes
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;
}
}
}
oh wow nvm i know why
oh nice
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
cant i just make it wait for 20 sec or smth?
you could, but let me check something to make it just more reliable
go ahead
you just (true) don't you?
I could've sworn hk had it
wait nvm it does
so?
add a true to your method call
also don't use getactivescene
The hook provides you with the next scene already
Just check arg1.name
arg1.name.Equals("GG_Grimm_Nightmare")
from c++, can't be bothered if c# ever decides to compare pointers
if .equals works then == is basically always set to just call it
how do i "add a true to your method call"
go.GetComponentsInChildren<DamageHero>(true)
thx
oh, i mixed the Component.GetComponentsInChildren up with Transform.Find, with the latter not finding inactive GOs
something didn't at least
Wouldn't it be easier to hook onto take health hook
maybe i'm also way off with that though
would override all damage taken in that scene
not only that from the boss
still does 2 
wait a frame
What else is there in godhome nkg scenes
spikes
and the sides
Aids
WaitWhile destroys frames
put the code inside the fsm action for spawning
if it wasn't literally every frame it'd be a lot nicer on performance
Don't wait while use wait for seconds
Could wait like a physics frame or something
Error CS1955 Non-invocable member 'WaitForSeconds' cannot be used like a method.
can i just do
private void WaitForSeconds(int v)
{
throw new NotImplementedException();
}
```?
You need to be in an IEnumerator function to do that
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
It probs won't cuz nkg doesn't spawn when the scene changes so the find (nkg) will return null
Why not just use the fsm onenable hook?
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
Oh I see
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
i have actually no clue which hook i changed it to
would have to download it again to see
rofl
best part about that: i made those changes in dnspy
🥴
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?
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?
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
randomizer also has to deal with shops if you want to just check that
I don't mean new charms. I mean the texture.
I have a new texture for all the charms
but they don't show up in shops
looking at my code... i think you look at randomizer's one, like 56 said
found it: <#archived-modding-development message>
yeah
your code had a bit of typo's lol
lets see if it works
it didn't for me, 1st hit did 1 damage and 2nd hit onwards it did 2
With me it just did 2 damage
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
Thanks
some Reading for today
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 ?
Install CustomKnight
Lol
i know of the list here
https://github.com/jngo102/HollowKnight.CustomKnight/blob/master/CustomKnight/CustomKnight.cs
but are there any sheets that are not a part of ck, but do affect the player character
No. I don’t think so
i ask because one of the recent commits on this was "added more sprite sheets" 
You need to replace the charm textures in each shop. I can write some code for it in a bit
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)) ?
i have a question for the modding community
Cool
It's also straight up slower
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
make whatever 56's nickname is as an emote
𓌬
Just realized I’m on mobile
ty
Hmmmm nickname change
(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)
This is GameObject.Find(static) not Transform.Find(instance)
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
oh that was what changed in unity 2020
That changed?
Busted tech
wait nvm
Nice
but i swear something like that changed
where they added a bool to also find inactive stuff
If it's slower then it's probably better to just use GameObject.Find if it works for a particular case?
Yeah
Great, thanks!
if im making a scene in unity to implement into hollow knight, what unity version does it have to be in?
thats what i thought, but https://steamcommunity.com/app/367520/discussions/0/3109143313947465227/
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...
2017.4.10f1
the beta is 2020 yeah
Thats 2020
beta is 2020.2.2
The current version isn't though
why does everyone have a knife with legs now
Plagiarism
i don't
i just picked some hieroglyph that looked nice
so... im good to use 2017.4.10f on the main game?
I’m on mobile and can see it
If you can see it depends on the operationg system and emoji's that come with it
Cool
The knife on legs doesn't come with my device
or you just change the font used by your device
Or that
Yes
ok
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",
seems right
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
smh using sfcore, i thought you were against generic mod classes smhmyheads
true
🤔
is the Hud a Canvas object?
afaik no
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
that would be appreciated
so uh i have 2 questions
- how many canvas objects are there loaded in a scene?
- is there any components i need to display canvas objects beyond CanvasRenderer?
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
god
@neon oyster https://radiance.host/apidocs
-6/10
extremely interesting
why thank you
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
which fork of debugmod is the current patch version available on the installer? 
Why is this text object i made is blurry??
What's your game res?
Is there anything I can do to counter this?
Oh and also uh second question, what is the game's usual font file name
HARD\ BRUH
?
that game res
My pc ain't strong >:(
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
still higher than this
Oof
amazing
anyways is there anything i can do to counter that problem?
19fps 🥴
hold up
Get a new PC 
is the hollow knight's font pixel perfect?
if so what is the file name of hollow knight's font called
google it
m
Ah yes, my favorite font, m
uh the font used in dialogues?
i'll stick to trajan pro regular
hk's font is Perpetua
probably mine
ifls
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
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)
i'm absolutely suffering
Nice
i can't find a way to use the in-game fonts in my text objects and i'm suffering
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.
Do a save-edit
how does one acheve that
Check modding-help pins
ok I'll check
Are you sure?
This is for the development of mods
I told him to go here i thought it was about making a mod 
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?
Ye
ok thaks
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
maybe
@rough pulsar did you include discord_game_sdk? #archived-modding-help
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?
look at modlog and output_log
where is output_log?
next to modlog
i dont really see anything, what am i looking for?
anything with exceptions ig
post the modlog
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!
is your mod targeting .net framework 3.5
:) glad it helped
can't remember off the top of my head but you could just remake the project and select .net framework
correct
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?
really depends on what you need to do
^ e.g. if you need playmaker, then playmaker too
ok, cool, thx, lets see if this works
if you don't have a ref, the ide usually tells you
yeah, thats what i found, it told me i needed physics 2d when i didnt include it
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
#archived-modding-help , and click the bind then press the key you want to bind it to
if I want to update a mod that's already in the installer, should I just edit my github release?
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
Ok thanks

assuming this is for rando? also #modding-discussion
Oops. I blame insufficient coffee.
i'll start working on modinstaller so i can make my own mod work properly without telling people to install this to there
HI
hi
Wrong channel numbers
where is the code that scans the modlinks.xml?
oh
looks like i found it
nope i don't think so
https://github.com/ricardosouzag/ModInstaller/blob/master/ModInstaller/ModManager.cs#L123 from here onwards i think
eh i'll just make a code that scans a part of modlink if it exists i guess
actually
hmm
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;
that is a very good question that i don't know the answer to
so i suggest googling that (msdn probably has an asnwer)
Seems like a fuzz
Dll I think
At least in among us modding it’s dll
i hope
idk, microsoft seems like a good source for c# stuff
considering they made it
Yeah
Let’s forget I said that
Can I even upgrade to .NET Framework 4.5 in my mod or any newer versions? @jolly oriole
Or just any version
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
hk patch 1432
And .NET Framework 3.5 is from like, 2002. 
and what unity 2017 uses ¯_(ツ)_/¯
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
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
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
i have no idea which of d & e is the flower one tbh
you could just put 'READ THE README' in the modname and put the instructions on how to install it in there
as if that helps, just look at hollow point
That says readme in the installer. The trick is to say it in the modname which also shows on top left of main menu
hm, may actually be more efficient 
Yeah I'lld o that
After adding #region stuffs into my code this seems WAY more clean
Wait what are you making @rough pulsar
Finally my eyes don't bleed reading that
A mod that adds detailed stats into your discord game status
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
You have to add a file to data ->plugins
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
Yea it's in the installer
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?
Dll
i hope it's the DLL inside the Zip we are talking about
Yes
look at my status
full status
i'm also going to add a keybind to disable SOUL preview
why is it 33/66 soul
each soul vessel has 33 soul, i have 2 soul vessels
One of which is full
looks confusing
hmm
i don't know how to measure it
i'm just going to leave it at disabled in default
I got it straight away, but honestly I don't think it's necessary
ye probably
I think that's more confusing
instead of keybind make a settings file for the options.
it looks more bloated so i just removed it
it = key bind or soul?
soul
i made a guide for my mod
https://kaangaming.github.io/HollowKnightDRPC/guide/Guide.html
This.
I have so many key binds going on these days. Unless something needs to happen instantly while playing, I'd rather it not be a bind.
don't worry i just scrapped the idea
no keybinds or anything 
this is my readme for my mod
I have made le pull request, can relax now. 
Imagine doing all that work for no one to read it 🙃
they'll eventually have to
or else they will ask in #archived-modding-help without realizing the README exists
mood
i made a commit immediately so people read the readme 
https://github.com/ricardosouzag/ModInstaller/pull/80/commits/d3c9fdc6022a173a00d497de9809e10c6258b008
You say this like it doesn't happen literally every day
||#hollowpoint||
oh recently someone asked that they had troubles with my mod

how can i add something from the base game (e.g. a vengefly) into my custom room?
you could construct it yourself
i could, but i have even less of an idea how to do that
oh, thats perfect, thank you!
where do i find the full name of an object i want to preload?
Pins, scene dumps
It will look like
Parentofparent/parent/target object
but probably with a different number of parents
which pin is that...?
thx
/, not \
yeah, i suppose that would be a fairly large problem...
ok, and after i've preloaded something, how do i actually spawn it?
is that mentioned on the apidocs or is there somewhere i can see what that looks like?
looking at the apidocs, i can't believe saleh put a frame eater in the tutorial with utiny ripper
awesome, thx you all so much, this community is the best
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?
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
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
is there any reason why this shouldn't work?
I mean you could do that
You'd just have a husk in the menu
an inactive one at that
?
i think you should probably create a variable containing the gameobject
so you can set it to active and stuff
idk tho
quick question does anyone know if nail arts are on Knight.png ? they look like they are, just confirming
they are

ty
how do i set the aforementioned husk as active?
var go = UnityEngine.Object.Instantiate(husk, pos, Quaternion.identity);
go.SetActive(true);
thx
a small teaser 😁 (deleted from the other channel as this one seemed better suited to it)
a few animations are buggy but much of the Knight.png & Sprint.png can sync now
ooh are you the one working on HKMP?
yes the "ServerKnights" skin sync feature
nice
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?
the server has a json file which has drive links to the available skins (max 9 per server) - individual player's game downloads them and caches them for the future (even for other servers, as long as the skinurls are the same)
sounds cool, guess it's more efficient this way than sending all the skins to the server and then back to everyone's games
yep, i'd tried sending just one way server -> client. 9 Knight.pngs took around 10~ mins to transfer 😅
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
how ?
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
i'm using vsc + msbuild
lemme see if i can find mdb2pdb
i found the tech
this thing had it
there's also one in mono
this looks super windows only
mac?
yep
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
would the exe work on mac ?
yeah you just run it through mono
okay and how'd i use it to link the stacktrace with the line number?
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
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
https://gist.github.com/jbevain/ba23149da8369e4a966f
is this it ?
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.
Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly
^ this is what the thingy said
oh outfile would be hkmp.dll.mdb ?
no it's another assembly
from the source
they add some data to make the mdb work from the look of it
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
Wtf
i'll dnspy it ig
this one is just 1 arg
apparently
idk why it would throw
Do you have unity?
i do
in the unity files under unity/editor/data/monobleedingedge/lib/mono/4.5 there should be a copy of pdb2mdb there
would it be possible for you to share the file ? i can't seem to find the file path on mac
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
don't use the 2nd param
no no it just gives "Mono pdb to mdb debug symbol store converter
Usage: pdb2mdb assembly
"
with only one argument?
yep
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
i have even tried giving it absolute path though :/
the dll is in the same folder?
yep tried that too
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
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
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
use this
okay
i still get the same error tho
with aa.exe in that folder?
is this meant to have a Mono.Cecil.dll here ?
yep
with a built in copy of Cecil ?
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."
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
according to the github issue on mac it never generates a full pdb always portable
my csproj had it set to full
how can i confirm this ? i recall trying to install both when trying to get the thing to build 😅
show me the top of your csproj
hmm
oh this is vsc yeah?
you could try the jetbrains msbuild http://jb.gg/msbuild
but at this point it's probably easier to just log tbh
Unfortunately
i am using msbuild in the terminal to build currently , and yeah logging seems easier at the moment
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
there's a vsc extension called OmniSharp which gives you c# error/warning/suggestions etc.
i have been getting those tho, maybe i installed it when vsc suggested to?
can i set it to run my script of delete files & copy dlls ?
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
i think this would work for what i want
i made a pull to fix the inf updates
why do people always break their mod
I love the last feature, it shows the modding community in a really nice light
Also there's a mod in development called Sanctuary which iirc also adds a new area or something
Is that what I think it is 
<@&283547423706447872> channel spammer
not modders
if you think it is a multiplayer mod with players being able to have different skins then yes, this is HKMP - ServerKnights !
part of HKMP
i hope enemy sync exists
can't comment on that , it is being looked at but nothing concrete as of now
It's gonna be more complicated than skins, I guess
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
hollow knight is a singleplayer
my idea would be to just sync the enemies with the host's enemy positions
this may not be fun in multiplayer , imagine all if enemys ignored you in the base game but for possibly 3-4 players
@floral blade thought i would ask quick, is custom knight supported right now?
not custom knight directly, but the skins support is coming along via ServerKnights
Possible solution: if when an fsm gets the distance to a object, check of the target object if the knight or an multi-knight, if it is, then set the target object to the closest of the knights
is there any way to make my mod toggleable
Itoggleablemod
thank
so just sync the enemies with the host's position of these enemies, just with the difference that the target is different
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
any way to replace default assets in mods?
yes
GameObject(Instance).GetComponent<SpriteRenderer>().sprite = thecustomspriteimade
Oh, then you probably aren’t going to use spriterenderers
tex2d
You can look at the CustomKnight source on how to do that
oki
(This explains nothing)
set to closest with a min time it will remain locked on might work
that and retarget on getting hit (maybe with heavy blow 😛 ) sounds like it might be fun , how would it work for mantis lords tho ?
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.
and edit them from there?
but how does one get the proper type of file to open in HKedit
do you know unity?
ik that
but they are text files that reference prefabs
pretty much just the playmaker scripts
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
they're in the game folder
https://github.com/nesrak1/HKWorldEdit2 i have no clue if this works with mac at all
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
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
and it's stuck loading
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 ?
does the console show any errors
one sec
I mean you can leave them in memory but at the end of the day if you transmit the image data someone is going to be able to modify the client if they really care
it might be working now
it got stuck last time on Recursing GameObject dependencies
exactly the challenge, you can't encrypt / decrypt it either because if its in game a mod can pick and export it
yep it's getting stuck there
what's the error
that's an unsolvable challenge though
NullReferenceExeption Object reference not set to an instance of an object
screenshot the entire thing
ok
nullreference is a generic error
if we can make the sheets useless with customKnight & ServerKnights if exported it can work
like an entirely different spritesheet layout could be a starting point
I'm expecting it to look like this error?
that looks like an older version of unity
you need unity 2017 to run this anyway
I just changed the version
but it doesn't really matter since that only happens at the very end
when transfering it
there's an option to shift project versions
so I just shifted it to 2020.something
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
oh thanks
get 2017.4.10f1
just to be safe
but it should be backwards compatible with any 2017.4 versions
doesn't matter
because macs can't run 32 bit apps anymore
hkwe is in c# not c++ so 32bit or 64bit doesn't matter
ok
have fun making the changes to the spritesheet on the fly, because the custom skin creators probably won't remake their spritesheets because of hkmp
yep thats the thing a really dedicated person could still get it out
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.

i mean yea, why not, make it look hella ugly for everyone(-1) in a multiplayer game
but this is an easier method of doing that
ah
i'm just exploring possible options here.
just jpegify the sheet a lot before sending it
deepfry
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
i mean honestly idk if anyone who wants to steal skins would even know how to dump them tbqh
this was kind of the thought behind just obscuring it slightly, to make it hard to obtain for most people
make it like that one minecraft mod hid a killswitch: obscure it with base64 encoded reflection calls
is it possible to detect if godump is installed
and then just like, stop if from working if it is
could i not just write my own mod to dump player object's textures ?
you could yeah
doesn't godump take like 3 minutes flat to just gather sprites?
you could do anything by just dnspying the mod
perfect place to catch the png coming in and write it
this is why i want to obscure the image itself in such a way on the sender side that it can not be used by just dumping
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
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
you can just straight up take the texture off the renderer
hence why the texture would be a palette
you're referring to a tile map ?
basically, yeah
you could like scramble up different sections of the image and have the mesh correct it in the right order
i mean, one could still dnspy it though, especially with server & client being in one dll
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
yea ¯_(ツ)_/¯
is there a way to make a file not able to decrypt after a certain time ?
not really since you could always fake time
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?
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
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.
2 questions: 1) whats wrong with this? 2)should this spawn an active husk in "newroom" when i enter it?
Why is preloadedObjects in there?, it’s supposed to be in initialize
this is basically what I meant but obviously with much smaller blocks (or even 1x1 blocks if you hated people's computers). if someone tried to dump this texture they would get the stuff on the left but in game it would look like something on the right. not easily dumpable but still rendering fine.
its there because im an idiot who doesn't know how to mod, or, evidently, read
is this better? i really have no clue what im doing here, im just trying my best
Well remove it from GameManager thing since it doesn’t belong
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?
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
this looks precisely like i had imagined it when you'd said it , this + the server challenge response could be enough to deter all but the most dedicated people.
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).
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
this way only if you have that skin you'd see it, which for unique skins would be a very few people (maybe none)
in that case might be better to just have a "local skin" option which only applies the skin to the local player
has the exact same effect if you ask me
yeah, this is why i wanted to have a skin that can be shared with other players but not equipped by them (at least not with trivial effort reqd)
it is basically going to be a kind of DRM
but the name (or a hash of the images) could save upwards of 1 MB (idek how big some skins are)
per person/skin
i am sending hashes over tho
k
and if the player has a directory with the same name as the hash i use the files inside it
k
else we give them a url to download the skin (which the mod does internally)
in case you're interested in the skin sync flow i wrote up a small doc :
https://docs.google.com/document/d/1i2HdoL29BQockHCaMaMtrgxEyBD1yykYuRSfxiXqJXg/edit
what are the scene names for Mr. Mushroom cutscenes and Stag Travel cutscene?
I would guess Cinematic_MrMushroom and Cinematic_Stag_travel
(Those files exist if you download the pinned "game object dump by scene")
