#archived-modding-development
1 messages · Page 500 of 1
remove the old modinstaller -> more people will use it
that's true
If you remove the old mod installer
The amount of people in #archived-modding-help
Scary
why? the link would just change to the new modinstaller
How do I do that?
I mean there's multiple ways
The way I'd go about is you can load in audio clips and then replace them on audio players in code but that's more effort
Using uabe is easier but also terrible
I thought you meant like shutting down the old installer or something
Damn, nice Seal of Hallownest you got there
Too bad Pale Court will never release 
Also, nice background
Who made it?
does it not
Does modinstaller 2 support looking at readmes?
I think so, if you click on the drop down it shows a description which I assume is from the readme
U sure it isnt the description string from modlinks? I havent checked
pretty sure it isn't because pale champion is using the text I have in the readme
it really is not the readme
The readme system that is currently in place is shit
downloading something to read the readme 
then what does it use
the desc tag
Hot take, definetly not too much: change the modinstaller list from the modlinks to a repository system (lets say a github for hk mods) where the readme of the modrepo is the description
ok, thanks
private void SceneManagerOnStart(On.SceneManager.orig_Start orig, SceneManager self)
{
Log("Changing SceneManager settings");
if (currScene == "White_Palace_09")
{
Log("Changed SceneManager settings for WP_09");
self.noLantern = true;
self.darknessLevel = 0;
}
orig(self);
}
So I'm hooking this and the first time it runs, the darkness level is actually reduced but when I leave to a different scene and come back, the darkness level doesnt get reduced anymore even though the code in the if statement does run
any theories as to why this happens?
It would probably be more reliable to have the hook at the fsm level
uh, darknesslevel 0 is "Normal", -1 is "Dark -1", while 1 and 2 are "Dark 1" and "Dark 2" respectevly
Yeah you want to use the vignette fsm
Ah, thanks, I couldn't remember the name
It's "Vignette-Darkness Control" in global fsms
hmm that's weird, then I wonder why the darkness gets reduced the very first time
hc.vignetteFSM imo
@ornate rivet i don't know why you would want to change the darknesslevel value of wp09's scenemanager to 0, as it already is 0
do you happen to spawn right into a darkness region?
honestly I was just setting all the options that could reduce the darkness without checking because that would be effort
i.e. this one?
I delete those
oh
well, considering <#archived-modding-development message>, maybe you delete it too late
Yield return null bad again?
na
Yow, thanks for linking this; the older Unity Inspector is good but this looks to be on a whole 'nother level.
is there a single repo/list of all mods for older patches? aiming to support as many patches as possible fully for speedrun/downpatching purposes, though i realise there are probably like 3 mods that people use on older patches
(though i suppose i should only support the patches people care about, rather than providing 3 different 1.2 APIs when only 1221 will be used)
Mods
Google Drive with Mods - https://drive.google.com/drive/folders/0B_b9PFqx_PR9Um9MeFZMV21oWGs
Installer - https://radiance.host/mods/ModInstaller.exe
Mod Summaries - https://docs.google.com/document/d/1cz5tcggpGofrBcM90XyTkMWjMelDHzugvQM6HpB13Ew
ok cool, im guessing the only thing missing is minidebug?
yeah
high five for whoever wrote the Resources folder of randomizer 3
probably the best source of info about vanilla HK out there
i dont need any help just wanted to express appreciation
dearest homothety 
5
what
can i def a class in console?
how do I reskin bosses?
?saves
Saves
Windows File Paths: (Assumes Default Steam Install Path, Adjust accordingly for DRM Free or Non-Standard Steam Path)
Game Files: C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight\``` ** ** Mac File Paths: ```Save Files: ~/Library/Application Support/unity.Team Cherry.Hollow Knight/ Game Files: ~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/``` ** ** Linux File Paths: ```Save Files: ~/.config/unity3d/Team Cherry/Hollow Knight/ Game Files: ~/.local/share/Steam/steamapps/common/Hollow Knight/```
You would need to write your own mod
damn
or (though i would recommend against it) you could change assets that the boss uses using a tool like UABE
You could probably use the custom knight mod for reference, then edit it for other bosses/enemies/entities
Honestly that would be really cool to have, an agnostic custom skin mod for everything just to quickly test skins like that for everything as long as you have a name for it
i'd need to check, but at work rn, but it could be possible to have a different way of replacing textures, which could eliminate all preloads customknight currently has
Yeah, having something work like customknight for all textures would take a long loading time at the start
do a fast hash on what its attempting to load, and load the texture of that hash
yeah why is it preloading
it doesn't need to replace anything if it doesn't exist yet 
So if you use the same way to replace all textures you want in a kind of Customall, it'll take super long
no?
You'd rather just do it other ways
i mean why is customknight coded like shit
ask jngo why it's coded like shit
wait, there's a problem with that
but should be simple enough (for the animated stuff at least, so most of the game) to on hook a start method from some tk2d script
theres tk2dRuntime.SpriteCollectionGenerate. stuff
and tk2dBaseSprite.Awake()
although not 100% sure if Awake runs when scene starts
or only when it activates from deactivation
it would run after a script is loaded (like a thing to initialize stuff, if you don't want to use the constructor), though idk if it runs once for every script
also tk2dSpriteCollection / Data have init functions and create functions
oh and if you're on a tk2d thing, you don't even need to figure out what texture you're replacing
because you can just look at gameobject.name
yea, but those could be different from the used texture afaik
custom knight has fucking preloads?
the earlier versions definitely didn't
ah it's a setting for the cutscene shit
does anyone know of a way of acquiring HK voidheart edition (1433) that isn't pirating? wondering if that could be used as a piracy check
1433?
it's 1432 but with a different title screen
afaik some torrents have that instead of 1432
(though i might need to double check that)
do you have a screenshot of said title screen?
probably to let pirates out themselves not knowing?
ps4
Ooooo
Found it now
Hk on ps4 is 1433?
Guess someone could go buy the windows store ver since that’s voidheart tmk
Anti piracy appearantly
Oh wait I see now
But if it’s legit, then might not be the best idea
If there wasn't, then 1433 is pirated
But it does exist, apparently, so we can't be sure
Yeah
So it could just be a windows store pirated ver
is there a screenshot that shows it? unless there is, it doesn't exist
Haven't seen one myself, no
Looking
Found this. I think it says 1.4.3.3 https://youtu.be/frylPnd3vFw
#HollowKnight #Metroidvania #HollowKnightVoidheart
Hollow Knight has been long requested on the channel. Today we are finally jumping into this game!
Thanks for watching!!!
Follow me:
https://www.instagram.com/mr_sketchead/
https://twitter.com/MrSketchead
How would it be used as an anti piracy check?
I think they meant this
Basically, if the answer to Jamie's question was "no", that would mean that any time you see version 1433 you can recognize it as pirated
But what if someone actually bought it from the Microsoft store
pc microsoft store versions are 1.4.3.2 though
and if mods ever get to consoles: http://teamcherry.com.au/switch1345/ 1.3.4.5
Hm
Wait so what ways are there to get 1.4.3.3?
ps4 and pirating?
or only pirating?
this is for hkmanager, which is for modding, which can't be done on ms store version... so....
and the anti-piracy check is literally
store SHA1 of assembly-csharp of 1433
compare against SHA1 of assembly-csharp of installation
if match, call it pirated
how does the anti piracy check work anyways
does it just check if you're not on 1432
this is only one part of what i was thinking, the currently existing code is here: https://github.com/Ayugradow/ModInstaller/blob/a5d98a46073fda4e2e2507a0f97fe00a825e986e/ModInstaller/ModManager.cs#L269
what slightly concerns me about this is that it doesn't seem to actually stop modinstaller from running? it just opens a messagebox, opens a browser then proceeds
anyway i guess i now have to search for hk torrents to check their assembly hashes having fun on the internet 
i used piracy to destroy the piracy
the ultimate story
i mean, the thing what katie suggested with the required steam/gog login (to check if the game has been purchased) would also eliminate piracy
the issue with that is that people might not feel comfortable sharing their account info
including me
hm yea, but (idk if it currently is lmao) then there's the point that it's open source
true
i do use a minecraft mod manager that requires a login
it's open source and has a good reputation
Maybe stupid question: why would it be the job of a mod manager/installer to ever do piracy checks?
Because pirates are bad and we don't like them
because this partnered discord of a game with its developers on it doesn't condone piracy of the game
I don't disagree. I'm just saying it's not your problem. A modinstaller refusing to work isn't DRM
because we don't want to answer questions about issues that could pertain only to their cracked versions, however unlikely that might be 
i am, however, also apprehensive about the OAuth checker, even if you're not technically sharing your account login, you're giving a mod manager that says "this application might not be safe" when people run it your account details
(note to self - also adding an "open saves location" button...)
that says "this application might not be safe" when people run it
though the hk modinstaller is the only program that ever said that to me
I'd say as the makers of the mods that the pirates want to play, it IS our problem when we don't want them playing them without legitimate game versions
As long as it doesn't overkill and harm legit owners, then yes
On one hand I find it semi strange to focus this much on designing drm, otoh I literally run through the same room for hours on end to see if I can find 0.1s optimisations, and designing and telling pirates "screw off" is way more productive and less 🥴 than what I spend time on, that's for sure
0.1s optimisations are the best though 
1 frame optimisations is where it's at
Okay, I figured I'd ask since I wasn't sure about the attitude. I'm not at all being critical, or at least I hope not to appear as such. If you want to say "no pirates can play our mods" then that's cool. At first look, without too much context, it just looked like the purpose was mostly to aid Team Cherry. I don't disagree with that, just seemed out of place.
no dw, im a speedrunner i still don't like tc its just i still wanna support them 
maybe if they gave me some inputs and some better sanctum rng i would be nicer
If this isn't the appropriate channel for this, I can post elsewhere, but I wasn't sure if this had been brought up yet about the newer versions of Rando:
Now that LifeBlood Cocoons are shuffled in, this check becomes available without Claw only because of the "extra platforms".
yes this is known, i believe room rando logic makes it specifically so that you require claw and (cdash or wings)
also the correct channel is #randomizer, which you can gain access to by using ?rank randomizer racer or ?rank speedrun racer (first one gets pinged often for rando races)
@merry lotus, you joined Randomizer Racer.
(In fact all transition modes require what you said, because the extra platforms are optional)
epic til i am not smart 🥴
does anyone have any advice if I were thinking about commissioning someone to re-make (or drastically improve) the online mod?
I get that it's always going to be a bit laggy, but other than the lag, there's a major problem where the mod randomly stops communicating player movement until you restart the game completely
@ fireb0rn I remember seeing Katie mention wanting to look into that because she didnt like how it handled stuff currently, but unsure if that was memeing, just a general item nr 300 on the todo list, or anything else
oh awesome, thanks cerpin
Out of curiosity- does this apply to non-room rando too? (Or is room rando just what Rando3 is referred to as).
I only ask because I don't normally play with Room Randomizaiton enabled, but the platforms are there as long as you're not playing with random starting location iirc.
It’s tedious but it’ll probably get fixed in the future
The extra platforms are optional so logic doesn’t take account of them, so you will need claw and (wings or cdash) in any mode to put them in logic
It’s a little unfortunate that you can get the lifeblood check with wings and cdash when you wouldn’t be able to, but there’s no easy way around the issue while still having the helper platforms
Yeah, that last bit was my original point. It's the first thing (to my knowledge) that is directly affected by having the "helper platforms"
Like, it's a check that you wouldn't be able to get (like that) unless you had them on, which seems.. wrong.
Yeah, you are right
I was unsure if it was somewhere where maybe the platforms would be moved slightly, which would allow one to jump up, but not be able to get that check in that way.
(Which, I think if the upper platform was lowered, and then an additional platform was added, then it might be fixable.. I could probably test this in Decoration mod though)
It’s plausible
Yeah it's definitely possible I made a video but discord is a bully
Why i cant type on hk memes
wrong chat
proposed changes to modlinks, should be pretty much backwards-compatible w/ modinstaller 1/2. features:
- Vanilla SHA-1 hashes for automatic patch detection
- Support for more extensive descriptions on a mod download page (see FullDescription)
- Support for multiple branches of the same mod to be treated independently, and still receive updates (NOTE: MODINSTALLER WILL NOT BE ABLE TO DIFFERENTIATE THESE. update probably required to add BranchName to the mod name in modinstaller?)
- Distinction between Assembly-Csharp mods and modloader mods w/ APIList - note that the Modding API modlink is left as legacy
- Differentiates mods by patch supported, allowing previous iterations of mods to be added (NOTE: also not supported by ModInstaller, will need to check the patch no. of mods before adding them)
attempted to build the API and this happened
if you don't have hollow knight installed at the default steam path you will have to rereference everything dont mind me im stupid
the readme details how the api is built, for example you need to put hollow knight's vanilla DLLs into the "vanilla" subfolder of the project
so do i just copy all the files and stuff into the Vanilla folder?
yes
that didn't seem to do anything
are you referring to everything in hollow_knight_Data or just the DLLs
just the dlls in managed
so not the XMLs
i think those make no difference
restarted visual studio and it still says that it failed
try force rebuilding of the whole solution
what's the difference between regular and force rebuilding
also when i try building it again it gives me the 419 error situation again
hm
you know, i did change the default steam installation path after i installed hollow knight so that may be part of the problem
it's also given me errors with the modinstaller
so maybe i should move the folder?
it shouldn't
more accurately, when i try to use the "switch to vanilla" button it doesn't like me so i have to manually do everything
well i uninstalled and reinstalled visual studio and it still isn't working so idk
What exactly isn’t working
it just says it failed and that a lot of things were not found
check your references, you may wish to manually re-add them all (which is pretty 🥴 and shouldn't be necessary but idk
)
check your solution explorer, some of these may be errored
reference adding time!
(not the same, my references are for a different project)
I did find some things that look familiar in Dependecies/Assemblies
and some of them are errored
or warned
i don't see anything called References though
Can you screenshot the solution explorer then
uh
i don't even have anything called References
do i need to press a button or something
Click dependencies
Expand Dependencies
it'd be cool if vs added like
its alright katie, it'll come in vs 2016 when you update
So just redo the references to all the yellow stuff in there I think
my man ballmer wouldn't let me down
(iirc that is what i had to do, it just couldn't detect the assemblies no matter what so just readded all of them manually)
Did you read the readme on where to copy paste the files from the hollowknight / managed folder, sploopo?
get the files
Also remove the original references if they are still there after adding the new ones
i did indeed read the readme, it's in the vanilla folder
Also to be completely sure, you're trying to use 1432/current patch, right?
You got it from 56’s fork right? That ones more updated
I mean, are you trying to use it for the current patch?
i think so?
Oki, that's probably a yes if you don't actively do it differently
Okay, screen shot your vanilla folder to show what you have in there
alright, should i use that then
After this, probably
Fork shouldnt be an issue, it won't fix lacking the game files it depends on
No, leave that as it is, and add them to wherever the readme said (I can't remember off the top of my head)
(also nw about this being frustrating, sploopo, building this for the first time is horrible)
I thought they already did that
If they did it would work
At least I'm 90% sure, because that's how I solved my week long issues with building
I’m pretty sure I still had to add the references
alright readded the references, do i just delete the old ones
Yes
well this is different but not perfect
What are the errors
oh i think it's because things are duplicated
sudden pfp change
i decided to stop playing terraria and play a good game
i've been in the terraria community for a year now
more accurately the modding community
Cool
ask any modder and they will tell you how frustrating the source code is 
I tried modding it a while back
All the YouTube tutorials I could find were outdated. Didn’t know about discord at the time
what's discord?
so these are the errors
You have 2 assembly c sharps referenced or something
tried destroying all the references and putting them back, but this happened
i've been building
what i did to do modding api building:
- download the git repo
- copy vanilla DLLs into vanilla subfolder
- open solution in vs
- rebuild entire solution
Ima go now
i've only got vanilla DLLs i think
grab it from a vanilla install of hk
so do i just uninstall and reinstall hk
verify game files with steam
ok that worked, but now i've got some missing stuff
need a nuget restore
so how do i do a nuget restore
oh hey sploopo
noob here, how hard would it be to develop a mod that replaces all the sounds in the base game (music, sfx, etc.)?
music: not that difficult with how the game is structured
sfx: more difficult, as you'd have to iterate over all audiosources and replace the sounds on them
ok, thanks for the info. i'm thinking of doing a custom level with 100% new sounds. didnt know whether that was feasible
if by "custom level" you mean with DecorationMaster, than you can replace parts of SceneManager (for the BGM) and audiosources in the affected scene
if you mean with unity and completely custom scenes, you can make use of SFCore (in detail this part https://github.com/SFGrenade/SFCore/blob/master/MonoBehaviours/PatchMusicRegions.cs) and don't have to worry about the bgm stuff
alright, i'll do some research to refine my idea a bit lol
how do i get rid of all my mods
Click revert to unmodded on your mod installer then verify integrity of game files
i got rid of them all but my soul meter is wrong
Also this belongs in #archived-modding-help
its always grey until it is full
#archived-modding-help is not doing its job
You need to chill
People help in their free time if they are able.
At the end of the day you are the only one who actually knows what you did, so providing the correct information will help.
Posting on other channels will definitely not.
oh hey efcawesome
anyways still haven't managed to figure out building the api
did you remove the reference to json.net
because that's in the repo
and should just be there
so do i just remove the JsonNet folder
i'm assuming it should be here?
which reference 
hmm
alright will fix that
where would the json.net reference be located or is it not a file
It's Newtonsoft.Json.dll
?????
yes
are those dlls referenced in your csproject
let some cracks download overnight, turns out only one of them is current patch 🥴
did i do it right
where do you put your code smartypants
C:
C:/Windows/System32 ?
ye, that way it's in PATH
It says copy the contents to the vanilla folder, not put the code in there 
please tell me you did not build the api so you could make a mod
i'm kinda stupid so i unfortunately cannot tell you that 
oh well i at least have it for the future
this is so sad
if necessary
you just install it from like the installer and ref it
.....
(as shown)
Mod installer.exe
pinned in modding-help
that's it
Yeah
huh
dont listen to them, they want to hack you
Yeah
56 stole my copy of fallout: new vegas 
It’s all just a scam
oh no i'm being hacked
||you say that as if you didn't include such a "feature" in pale court||
shhhh
Stop revealing all of the great features
additional files found in the only current patch crack i could find, and SHA1 hash. apart from these and folder name there appear to be no differences between this crack and my steam install
unins000.dat ||| 77610786BB6CB92AC6E7BC495536E4A62D699E55```
(the crack also comes with the entire HK OST but afaik that's also available elsewhere)
did you hash every file
no only the ones that were different
how did you determine different
using windiff
did you install it
on a vm, yes
generally its this file thats replaced in cracks
under hk/data/plugins
but if its a gog pirated copy
it'll be drm free anyway
this appears to be a steam copy
is your current patch a steam copy
yeah
im not 100% sure how well windiff works on binary files
lol
just use hxd
or something
hxd has ctrl+k to compare two files
and you can do next difference
the files you should compare are the exes, and the plugin folder ones
does the crack work
yes
Steam api can be replaced, sometimes its just a so called steam emulator in front of the steam api dll
are there any other processes running
theres probably an emulator running
it used to be creamapi but thats outdated
Steamemu is also just a dll afaik
huh, i've got everything referenced but it's still giving me those errors
did you reference assembly-csharp from a modded install?
ok do you have moddingapi installed on your default install of hollow knight
because by default the examplemod will reference Assembly-CSharp.dll from the install at the default steam path, even if that dll is not modded
eventually got it working, i think it was just a wacky visual studio problem
anyways
it begins
🥴
you may be 🥴 now but soon you'll be 💀
after, of course, i get through the remaining 6 minutes and 18 seconds of your tutorial
lmao
🤔
Yeah, the tutorial is good for getting started. I had a lot of questions but it was really good to look at another project and "copy what it does" and then modify. :'']
Can we get the multiplayer mode but you keep the hit boxes on the players but you don’t actually hurteach other
The hit boxes always are on. Just turn off pvp
We want to pogo on each other and it wont work with pvp off
Attack at the exact same time
Interesting, will try. But would still like to without that
We are trying to do multiworld rando with multiplayer on so its a coop version.
So if one of us dont have claw yet we can pogo each other
You are doing multiworld or the multiplayer mod?
It sounds like they are attempting to do both at the same time.
That’s not good...
Yeah, I can't imagine that that's not going to result in some weird bugs. Although I think they do use different ports for their servers, so... Maybe it'd work by sheer coincidence/luck?
uh, anyone here know what GameObject I need to use in the player TakeDamage method in order to make the player take damage
Both
It was working yesterday very well tbh
They are both separate things
Yea
Why are you using both
Like I said we are doing a co op where we pogo off each other if we cant reach something
But we kept hurting each other but it still worked
So you installed a whole different multiplayer mod, with completely different connections just for that?
Look in dnspy what it does with the object
Yea we connected to the multiworld IP and we used hamachi for the multiplayer
Lol. Interesting way to cheat the rando logic I guess
i've been looking in dnspy but i can't find it 
Yea it was fun and challenging just a new method
Wdym
You just go to HeroController
Ctrl + f to find the method
i've been looking in herocontroller but idk what gameobject i need to use
Look at what it does with the object smh
Wouldnt call it a cheat really, was still a real challenge
It is a cheat

Basically
But it’s not a shade skip
Its just a different way of playing it. Still fun and challenging and more social
any
Also anyone else making code in notepad on their school pc 
Is there any reason not to at least use Notepad++ on a USB?
i may have a fix for the map marker issue with the modding api
the who
it's better to make that change directly in the modding api
my first mod is a success, i have created hollow knight pacifist edition
adding markers definetly won't work
both
pepega
Is that what it does instead of setting it
the position of every already placed marker is somehow 0,0,0
nah, that's the code for placing markers
🤔 if you wanna create a custom sprite sheet for custom knight. it's just as simple to drop it in the modfolder of custom knight once you have made the sheet? thinking of making one but am too stupid to code 
no code required to replace the spritesheet
cool ty
small changes are being made and pins will work
though you can decide if it's for better or for worse
my eyes
do you have a better solution tho?
tiniest problems, just shadeMapPos and dreamgateMapPos don't want to load correctly, even though they should
What does the [] part do above the var definition? I don't think I've seen that before.
It's a C# Attribute. Almost like Java decorators, it denotes metadata on a definition
In this case it's denoting which type to use as the json converter for these fields
Ahh, okay, I get'cha. Thank you, I'm a Python person and --- you know, it's all loosey-goosey over there.
comparable with @ in python
Not at all like decorators in Python, which work through a very different mechanic (functions as first class citizens being passed around and modified)
Attributes in C# are purely metadata, they do not alter functionality unless other code reads the attribute through reflection and does something about it
Ah, okay, yeah, I'm familiar with Python decs, but after reading a bit, these work fairly differently. They make sense tho now, thanks all.
how would I change the AI of an enemy?
Change it’s fsm
Or completely just throw away the fsm and make a monobehavior for the enemy’s ai
Can't you specify converters on the serializationsettings object instead of each individual member? Or does that work differently?
Seem to remember seeing something like that on the JsonSerializerSettings object, anyway.
if the newtonsoft website would load, i could look at docs
yeah, but only those 6 fields need it (where it sadly only works for 4 of those 6)
Fsm viewer found in the pins
Guys is there any mod that does something like a ng+?
Or not like ng+, just makes the game a bit different
Ng+ mod
Only does kings pass rn
how do i change the effects of the easy mode mod
thoughts on more brief tab names to ensure that you never need to scroll through them? note that "Levels", "Trials" and "Skins" should only be visible if those respective mods are enabled
also noting: ProfileBox is very large for the expected usage by most people, could be worth shrinking and using space for something else (eg. discord invite link, though that may remain in settings)
only thing: you don't need unmodded and modded buttons, 2 profiles by default should be enough for people to use
that's probably a better dichotomy actually, rather than having the idea of "you picked this install, now you choose whether to launch it in vanilla or with all this stuff on the right hand side"
found the best ux
twitch prime
sorry, Prime Gaming**
that's true
now the launch button feels unnaturally large...
where's the button that buys GME
I like launch game being big, for clarity
i still think it's a good idea to have two buttons for vanilla/modded though
is there another area where that would go?
so SF's idea was to separate them by separate profiles
currently a profile is distinguished as a combination of install & modded assembly
i thought one profile = one install
so most people would only have one profile
most people would still have one profile w/ this system, it would just be ModdingAPI
however, SF's idea is to have a "Vanilla" profile and a "Modded" profile
oh
i just feel like that's unnecessary if you can have the installer launch either a modded/vanilla
since all you have to do is swap out assembly-csharp.dll
I assume the utility would be for downpatching
Maybe using one of those weird white palace skin mods that involve replacing a bunch of asset files???????
Is there a way to fix tk2d gameobjects that I got from Utiny Ripper without using preloading the gameobject myself?
eg godseeker in the boss arenas
maybe I should do the thing sfg does where I copy from the original scene while the transition to my custom scene happens
that sounds slow though
it's definetly slower than preloaded ofc and in your case preloading is also the better option as you only want godseeker
but the thing with fixing tk2d stuff from utiny ripper i have no clue about, actually never made scenes with stuff from utiny ripper
Maybe make some script for fixing it?
was your suggestion really to fix it by programming 
ok so only do that if the scene I'm using needs a ton of preloads
basically
or if you preload from an unkown amount of scenes
Yes, as all computer things are sometimes fixed
It's not much, but I made a PSD file for a simple cloak color changer
Instructions:
Needed- custom knight mod, any drawing application that can export into PNG transparent
1)Lock the transparency of the layer titled "cloak"
2)choose your color of cloak you would like to have
3)broadly fill in the light blue in the "cloak" layer
4)export as transparent PNG
5)put the PNG in a folder within the custom knight mod folder
It's not much but I thought I'd share this fun little additive to the custom knight mod c:
nice
oh yeah @jolly oriole your merge is blocked on the installer if you fix it just ping me whenever
uh, what part of it isn't working?
I gotta say that's not the installer
the installer
let me quickly google how merge conflicts can be resolved
@copper nacelle done
cool
F
rofl
i edited it in the copy that i use locally, but not in the one that i use for git stuff (don't ask why, could probably be one and the same)
https://github.com/fifty-six/HollowKnight.Modding/pull/10/commits/d5c71e6b9a496717ba9839c74bd07f7565780d3e the biggest change known to mankind
missed opportunity to name the pull that
nah, i care about naming conventions (not really, but i can pretend)
is there a way that you can take like 50 hours to automate this 5-10 min task?
true af
idk there's probably some ci thing
I wanted to do xml validation on modlinks but it looked like a pain
though when you automate that you would also need to autocommit modlinks, for the new api version
btw, if you're already at it, i may have more PR's the next hour
lmao alright
wait nvm, couldn't differentiate between modding api and mod for a second
can continue to update binaries
wrt what's going on w/ hkmanager: i've added several features to modlinks, only one change could be seen as "breaking", which is that multiple versions of a mod may exist with the same name. this can be easily fixed by appending the <branchname> though, and probably not a lot of effort to pass through when hkmanager is done. this is assuming i could update modlinks, rather than keeping 2 separate copies which seems like unneccessary pain
(im also continuing to document #archived-modding-help happenings with intention to find ways to present solutions to basic questions easier)
with the mod summaries document, would mods that add custom content (scenes n stuff) go under Functional Changes, Asset Changes or Misc?
(imho i think custom content mods should have their own section considering how they've exploded in popularity)
also another point; is there a particular reason that decorationmaster is not on modinstaller?
oh yea, things like decoration master too, i thought about mods like ToT & sanctuary
it's certainly possible that the a26 github user (where all of the repos also are) just didn't pr the modlinks
and another dumb questions; why do we use a google drive for mods rather than something like a git repo? that way it would be easier to sync updates to mods & modlinks etc...
from my perspective i can say, you use gdrive, i put github release downloads in the modlinks for my mods
speaking of, i need to remove the old copy of sfcore from the gdrive
but say a repo containing all the binaries + modlinks.xml was used; then you could simultaneously update the binary and modlinks in one clean commit, and that leaves a centralised place for people to download binaries that isn't the installer
then again, i've seen people express issues with figuring out how to download files on github before...
true, but binaries in repos is generally not a good idea, especially for new people wanting to get their mods known, as cloning such a repo would take literal years
Github isn't a binary file hosting site, it's for source code bc of conventions + compiled binaries are significantly larger than the source code needed to produce said binaries
found a big colossal brained solution to not knowing what issues people are having with mods 
binaries in repos 
documentation in ms word in repos is what my compsci teacher expects us to do 🥴

i know, having commits called "ms word go brrrrr" is a beautiful thing
end me before this compsci course does
Hey, came across a weird bug. loading my mod and i just have a Black screen now :/ - was working fine yesterday and not sure where to start?
[INFO]:[DebugMod] - [DREAM GATE] File dreamgate.dat not found!
wat
that's normal, breaks nothing
try looking in either modlog or output_log
only info messages in modlog - checking output_log now
at SceneOne.LoadScene.Start () [0x00000] in <filename unknown>:0```
Seems to be some errors in output_log - might just do a diff between commits and see if the previous commit works.
Can you show the SceneOne.LoadScene.Start method?
{
On.GameManager.EnterHero += OnGameManagerEnterHero;
On.SceneManager.Start += OnSceneManagerStart;
On.GameManager.RefreshTilemapInfo += OnRefreshTileMapInfo;
_sceneEditorManager = new SceneEditorManager();
}
Can you show the stuff in OnSceneManagerStart?
private void OnSceneManagerStart(On.SceneManager.orig_Start orig, SceneManager self)
{
var sceneName = GameManager.instance.sceneName;
Modding.Logger.Log($"Entered into scene: {sceneName}");
// Update SceneManager
_sceneEditorManager.EditSceneManager(sceneName, self);
orig(self);
}
well this is gonna go well
or a bit simpler, can you just post the whole stacktrace? the two lines indicate nearly nothing
Yeah
thanks - hate to be a pest. I will say this.
i entered my new scene - killed myself but reloading worked fine. Then when i reclaimed my shade after that all scenes are simply black.
no idea if that is the issue though
There is a null reference in SceneOne.LoadScene.OnGameManagerEnterHero
Last part of the log
anyway we can catch these errors to determine where its coming from ?
Could you show that method?
private void OnGameManagerEnterHero(On.GameManager.orig_EnterHero orig,
GameManager self,
bool additivegatesearch)
{
var sceneName = self.sceneName;
Modding.Logger.Log($"[{sceneName}] Entered GameManagerOnEnterHero");
// Update scene
_sceneEditorManager.CreateScene(sceneName);
StartCoroutine(CameraControl());
orig(self, additivegatesearch);
}
Each scene has its own createScene method which is essentially
{
var sceneManagerObject = Instantiate(TheSanctuaryMod.PreloadedObjects["_SceneManager"]);
sceneManagerObject.SetActive(true);
}```
its just an abstract class, common methods like tilemap info and scene manager
Where is it set
where is what set?
scene manager?
k, ill just try something wild - if i reinstall HK on steam does it preserve my saves or are my saves local?
you keep them
cool - so steam stores them and ill just get them back on install?
just want to make 100% sure 🙂
they are locally stored but afaik they don't get deleted upon uninstall
but they are also in steam cloud
_sceneEditorManager
It do be like that sometimes
hmm I'm trying to load a custom non-godhome boss scene but I get this error
[ERROR]:[UNITY] - NullReferenceException: Object reference not set to an instance of an object
[ERROR]:[UNITY] - SceneParticlesController.BeginScene ()
[ERROR]:[UNITY] - SceneParticlesController.SceneInit ()
[ERROR]:[UNITY] - GameCameras.StartScene ()
[ERROR]:[UNITY] - GameCameras.SceneInit ()
[ERROR]:[UNITY] - GameManager.BeginScene ()
[ERROR]:[UNITY] - GameManager+<BeginSceneTransitionRoutine>c__Iterator0+<BeginSceneTransitionRoutine>c__AnonStorey13.<>m__3 ()
[ERROR]:[UNITY] - SceneLoad+<BeginRoutine>c__Iterator0.MoveNext ()
[ERROR]:[UNITY] - UnityEngine.Debug:LogException(Exception)
[ERROR]:[UNITY] - <BeginRoutine>c__Iterator0:MoveNext()
[ERROR]:[UNITY] - UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
I spawn in the right spot and can move around but the screen is black (the ui is visible)
fading in doesnt fix anything
this.sceneParticles.SceneInit(); is the very last line of GameCamera's beginscene
private void BeginScene()
{
this.gm = GameManager.instance;
this.sm = this.gm.sm;
if (this.sm == null)
{
this.sm = UnityEngine.Object.FindObjectOfType<SceneManager>();
}
this.gc = GameCameras.instance;
if (this.gm.IsGameplayScene() && !this.gm.IsCinematicScene())
{
if (!this.sm.noParticles)
{
this.EnableParticles();
}
else
{
this.DisableParticles();
}
}
else
{
this.DisableParticles();
}
}
the error happens there
so scenemanager was null and I fixed that but the screen still wont display properly
but a different error this time, right?
nope
you sure?
according to stackoverflow, this should force enable tls 1.2, but i have no way to test it currently 
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;```
can you even force it if it's disabled on OS level?
if i'm interpreting this correctly, windows 7 does support tls 1.2, but it is disabled by default. any application should be able to force enable it to run
Why was this suddenly happening though? Before like a couple weeks ago I haven’t seen this before
Per the TLS-SSL Settings article, for TLS 1.1 and 1.2 to be enabled and negotiated on Windows 7, you MUST create the "DisabledByDefault" entry in the appropriate subkey (Client) and set it to "0". These subkeys will not be created in the registry since these protocols are disabled by default.
as i understand this, the reg keys need to exist, which don't get set by default
from the link you posted
This update will not change the behavior of applications that are manually setting the secure protocols instead of passing the default flag.``` seems like you are right maybe? this seems contradictory
ig here is build w/ attempted fix and updates disabled, if anyone can replicate the issue then could they try this one?
does anyone have the ak-47 mod
what is the name of the mod?
ops
Good news for anyone who cares, I've successfully added Vibration (for a gamepad) back to the PC version, though currently it is just limited to a few triggers
I did it through modifying the HeroController class directly, so it's not exactly the best practice but it does work
Vibration?
As in, the vibration for a gamepad
Controller go Brrrr
XD
Oh, duh Gamepad is just a controller, like an Xbox one or ps4 controller
Sorry haha
hey whats the easiest way to take a look at fsm's for enemy/boss behaviour without actual modding knowledge
https://github.com/nesrak1/HollowKnightFSMView/releases
Download and extract FSMViewR2.zip
thanks
There's a pin here for the scene names where you can find non boss enemies
every time?
yup
Can also try https://github.com/nesrak1/FSMViewAvalonia/releases
i tried release 1 and beta 7 and both crashed so doesn't seem like earlier releases help
ill try that one grenade
Do you have the game on steam?
It crashed for me when i didnt have it in steam, as it seachs steam hk path
oh might it be because the game i have in the default directory is on 1221?
okay yeah, switching my default install to cp did fix the crash so thats nice
its a bit unfortunate though cause 1221 behaviour specifically is what i'm looking for, but it should be the same for most stuff
Where's the list? If you can link the message
Also nice pfp italy 
Can't copy the msg link for some reason so here's the drive with the labeled scenes:
https://drive.google.com/drive/folders/1VwVbCjU8uPV4V3cDu_Tr1TgEs01hMSFr
thanks for the help
i think one could ask @dark wigeon if it's possible to make something like this
Yea we've talked a bit about it in the past, Nes thought it shouldve been but it turned out it wasn't (even with the different database files)
will hollow knight mods work with silksong
no
oh ok 
wiat
I should use this server emoji
anyone know how to download spritepacker?
i'm planning on making myself a skin
There’s instructions in the pins of #modding-discussion
funky, thanks
Along with a pre godumped knight
It is, if the wpf version isn't, the new avalonia remake should
Although they both use cldb so if you don't swap they'll both crash
Easy two line fix to swap to tpk
Well I can try later, I think I still have 1.0 HK installed
Actually, where does the fsm viewer look for the files to analyse? Is it like one set folder (eg steam path or something)?
No matter what, bc even opening the 1221/downpatched files back then manually ended in it crashing
No, but we can make new ones for Silksong
If you use just regular open then it only opens that file and any dependencies it needs in the same folder
Open scene list uses steam
sseadv has a newer system that lets you choose steam or any path you want
@copper nacelle if you haven't figured out another way to make the vector3's work, here is one
https://github.com/fifty-six/HollowKnight.Modding/pull/11
though tbh, the not list field didn't work for me last time i tried that, but the values in the lists worked fine, though they should use the exact same piece of code
vanilla was already in the gitignore
it's near the bottom
... fuck
access denied 
damn i actually meant to ping with that @dark wigeon
it does not appear to be
Try now
gives me the usual you need to request access google thing
I just clicked the option again
Go into hollow_knight_Data and open one of the level files
#archived-modding-development message to match which level number is what scene
okay yeah it's definitely able to open 1221 level files
i think the numbers are off in that file though because of patch differences
yeah that makes sense
with luck just removing any new rooms added in 1.3/1.4 would sync it back up
I can add a scene selector I just have to port it from wpf
that'd be pretty cool
since hk (runs?) on top of net35, will c++ interop only work with the v90 platform toolset (< C++11)?
you can extern w/ the c abi with whatever
idk much about the c abi, are you just saying you can expose a c++ function with any toolchain?
yeah should be able to
just extern "C" and you can use whatever
huh, last time I tried the functions just weren't getting called until I downgraded to v90
had to make some risky downloads to get vs 2008
🥴
🤔
i mean i was able to use extern calls on discordrpc sdk just fine, and i am pretty sure that wasn't using any ancient versions
vs 2010 on the web archive that I use http://web.archive.org/web/20111016110147/http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A-A603-1798B951DDAE/VS2010Express1.iso
this works (compiled in vs2019, imported in c# [don't know which version/framework though]), so more complicated stuff also should just work.
and please don't ask why i needed this
some times the simple things are too difficult to do
arguable
i searched on google and stackoverflow gave me that code
bruh
would y'all discourage using asio standalone for cross platform sockets
like boost asio?
nah i used it, i liked it honestly
yeah
idk sounds like it'd be performant
if you're trying to get binary data from a to b, consider also using either boost json or boost serialization (boost serialization might have lower storage footprint)
what are you trying to do natively anyway
ig I should just announce my intentions: I'm wondering if handling networking from the C++ side would make the multiplayer mod more...stable?
i mean, in that case, you could try using unity's built in networking functionality
I would say it would make it less stable, I wouldn't try to pinvoke my way through networking
guess I should start looking at the llapi
...which seems to have a lack of documentation
.net sockets
huh that's kind of weird
I mean you can either use unity's libs or one of the other networking frameworks out there in c#
don't think you need to jump straight to c++ for this
llapi would have probably been easier to switch to, as currently with the sockets it's already also low level
ah I guess so
and this is why customknight wasn't programmed with unet from the start: <#archived-modding-development message>
would unet really be more stable? I'm a bit worried about its deprecated state
it's deprecated?
unity 2017 is deprecated too
true true
I don't know what mlapi is though
MLAPI is compatible with Unity 2019 and newer versions.
so you wouldn't be able to use their alternative anyway
mid level? lol
well yes I know what it stands for, not how it's better than the other two they've made
i have no clue
apparently being old makes it good
i may have purposely read over "and actively developed" but that doesn't matter
looks like the mlapi is supposed to be used in-editor?
oh I didn't read what nes said, can't use it anyway
oh yea, and that
just using a different api isn't really going to help
how would you go about it? ik fire was looking for you to potentially rewrite the mod so maybe I can provide a little help
if you want to make it less laggy, you need to either implement lockstep or rollback
yeah I tried to implement a library called BackRoll but I think it's for a newer version of unity
theres libraries for unity for both, but they require rewriting scripts so it'd probably have to be knight only, with other objects just being extrapolated
so no different from the current version
afaik knights on the current version aren't predictive
or if they are, they have shit predictions
and/or massive amounts of delay
they def don't, I just meant the current version is knight only
oh yeah, i mean it does let knights hit other entities over the net
that's just cause the local player's own slash prefab gets instantiated when another player slashes
its a pretty large task, because it'll likely require reprogramming and redesigning the knight
as he currently has 0 delay to all his actions, which makes predictions extremely poor, and super teleporty
do you have anything in mind for when the mod just doesn't work until a restart?
who knows, you'd have to debug what its doing, i couldn't even tell you if its
client not sending updates
server not listening for updates
server not relaying updates
client not listening for updates
i'd assume its on client side, unless theres a pepega bug in the server code
I wouldn't doubt it
so...you'd recommend sticking with .net sockets?
idk if rollback libraries do their own networking stuff
well, ik ggpo does with udp
i think unet sockets have insane delay
i would definitely move away
definitely try to implement udp
and also make the packets as small as possible
mhm, quite a few things in the current version can be narrowed to bytes and using dicts that map to bytes instead of strings
why the fuck does playerdata consist of 1526 fields
yes
you gotta

any qualms about the backend stuff w protocols?
or maybe even the mods' structure? i.e. should it be p2p instead of client-server?
does c# support bitfields in structs?
yeah pretty sure it does
imma quickly make a struct with bitfields for the entierty of playerdata
with attributes i think you can set the position of the var
though with c++ classes, cause i know that bitfields definetly work there
also p2p will always have less lag than client-server
unless you have a time travelling server
yeah you just set the struct layout to explicit and you can set the field offset
i fucking hate the ints that are only used in fsms
int xunFlowerBrokeTimes : 32;
just in case people want to try breaking it
does ggpo only send udp packets?
After punch through yeah it should be only udp
do you want this mod to behave the same way?
That's just how networking should be, udp for anything that isn't a 100% necessary send
TCP for anything that has to be sent, like connection, chat, disconnect, scene changes ig
for modsettings, would I do something like this?
HallowNet.Instance.GlobalSettings.StringValues.TryGetValue("Host", out string host);
given that settings are declared like
private Settings _settings = new Settings();
public override ModSettings GlobalSettings
{
get => _settings;
set => _settings = (Settings) value;
}
So I'm wanting to trigger controller vibration through the API, but one of the actions I want to trigger it is a hard fall being done. I'm not very familiar with modding, but since there doesn't seem to be a hook for that would I be unable to accomplish this solely through the API?
unityexplorer is fucking cool
Are you saying you don't love parsing strings for efficiency 
As I understand it, bad programmers leave magic numbers in their code. Good programmers leave magic strings in their code 
just leave magic code in your code
c++ style and optimized for vanilla hk
without the strings and lists in playerdata the whole struct only uses 272 bytes (though i did leave a few bools out, but these bools are only conv and stuff)
now the painfull task of inputting values to check how large a maxed out save would be
nvm, didn't change a thing, but either way i guess normal json is the best for cross system compatibility
https://github.com/SFGrenade/LanguageSupport/releases/tag/v2.0 more languages, because why not
incompatible with DecorationMaster though
does returning to the menu title force destroy all objects, including those marked with dontdestroyonload?
no
dunno why my stuff's not showing up then
the modmanager doesn't have to get reinstantiated every time does it
oh great, with how the api handles null values being passed back
what
idk about the modmanager thing, it might tbqh
the faux ui manager doesn't at least but I didn't see a don't destroy on the mod manager
it logs on init so you should at least see something
about the image i sent or italy's message?
the what was for you
that part crashes, as playerdata expects that mapZoneBools can be null, which results in the modhooks getting a null as orig object, which results in if (v.Equals(varInternal) || gotValue) (in ModHooks.GetPlayerVariable) crashing, as v is null



