#archived-modding-development
1 messages · Page 518 of 1
You don’t need to not to mention the fact that you can’t.
crazy
ah yes leaving the question open to be answered for no reason is much better
like those stack overflow question one needs
"how do i do X?"
self answer, a few days later: "figured it out"
You don't need the unity project because we don't have access to the unity project so every mod that's ever been made doesn't need it.
I mean the implication might be the unity project but you can straight up use scene resources via unity no?
Arguably opening hollow knight in a sense, although just a portion
Yeah I guess.
huh
look im not particulary knowledgable of this but no need to be like that
anyway
now i know more, my question would be.. how do i change textures in the game that arent labeled texture 2d. if that is possible
ive never heard of tk2d before
Animation tool team Cherry used
ahh.
Just doing
targetgameobject.GetComponent<tk2dSprite>().collection.textures[0] = texture2d I want;```
Should work iirc
Either
-
(Uses less memory and doesn’t add time to the startup of the game) You use a UnityEngine.ScenweManagement.SceneManager.ActiveSceneChanged hook to start a coroutine that waits for one frame, then uses GameObject.Find to get the instance of the boss GameObject, then use the code I gave on that instance
-
Preload the boss, then use my code in initialize(running the code I posted on any object will replace the spritesheet for any object that uses that sheet iirc)
I'm gonna be honest and say i have no idea what I am supposed to do this in. i think i've heard of modding API for the game, but i'm not sure. I'm new to modding hollow knight pretty much, although i have unity, UABE, and the game on pc.
ah! thatll be it, thank you
Pretty much every mod I know of does
If you need to look at what GameObjects are in a scene, look in the pins for scenes.rar and GGscenes.zip
Extract them then open the files in them in notepad(or a different text editor/viewer)
Example of preloading https://github.com/jngo102/HollowKnight.CustomKnight/blob/master/CustomKnight/CustomKnight.cs
Alright thanks
i had the scenes, i was just confused on how it worked and needed an example
I'm new to modding development and not sure if this would even be a 'mod' per se, but would it be possible for me to replace sound effects in game?
Example: crappy voice overs so instead of the nail sound its me saying swish
Yep it’s possible
How could I go about doing it?
You’d be editing whatever fsm controls swinging the nail and changing its sound playing action, most likely
Iirc there’s a way to do it with hooks, I think the boop mod might have done it(tried it when updating it to current patch, didn’t really look at the code)
so, a hypothetical - if i wanted to make a mod that replaces all the music in HK with me playing it on kazoo, would anyone actually want that abomination, and also how the hell do i acomplish such a thing
You have to mess with audio snapshots for that iirc. Not sure who would want it, but why not
I'd use it at least once
nvm, i've found camera control code
is there a modding api for the hollow knight 1.5 beta?
i've heard using the api alone improves performance which is fantastic for my shit laptop
https://github.com/HollowKnight-Modding/HollowKnight.Modding you can build yourself
ah i dont know how to code lol
@copper nacelle could you improve the build instructions for the modding API? They don’t seem to be correct
If i were awake when you asked this, i wouldve probably linked the SceneChanger from tot, as i have that code somewhere at the top of that class
Besides it being in debug instead of release I don't see any issue with the instructions
There is no folder named OutputFinal
And no ModdingAPI.zip shows up
Ah. Ok. I’ll try later.
let me rephrase: is there any way i could accomplish this without any coding experience?
prob not
unless someone does it for you
but that chance is small
wait
there might be something that might work
what is it?
oh ok
so, no
darn
Hello modders, could you help me kickstart my Thai localization mod? I really love this game and want to help translate into Thai language to help make this game more accessible for Thai gamers. I have experience in Book Translation and localization of other games, but very little to no info about how to create a mod project and work on it.
-
I searched in this channel and found this message, so does that mean I can use this to start translating rightaway?
#archived-modding-development message -
On pinned messages, what does TranslationMod.dll do? And how to use it?
-
How to insert new font into the game?
-
I saw that modding this game requires Unity knowledge, if I consult my friend who can use UnityEngine, would they understand how to pack/unpack mod rightaway?
I apologize for my very noob questions. I would like to start the translation/localization asap and see whether Thai font has problems or not.
Thank you so much guys.
It looks like that’s the poorly translated mod
- no
- puts it through about 50 google translate layers so you get garbage as an output
- you need an asset bundle but you can also load os fonts if the font you need is standard
- not right away but the code should be familiar
What you’d probably need to do is either replace a language in the game, or somehow add something to the enum for languages and it to the ui
First of all, thank you for your time.
On replacing a language, I've tried Bloodstained Ritual of the Night (UnrealEngine) and that game required replacing bit by bit in hexedit, is this game like that?
I prefer not to do that :X
But you can just code a mod for that
Right now I have only ModInstaller (the Zote icon) and don't know what to do to start getting the original English localization text to work on
What I’d do: use a LanguageGetHook, detect if the language is the language you want to replace(or don’t do this if you just want to have every language replaced) then get the value from a Dictionary<string, Dictionary<string, string>> using the sheet and key parameters for the hook
I forgot where to get it from, might be a good idea to check the history of this channel
Oh yeah
isn't there a language mod thingy ?
I blame just waking up
Should be pretty easy if you follow the readme
Oh thank you you all for helping
I would take a look at it
Good think is I don't have to face horror like Bloodstained
like 15
or something
36*
though at least one of them is literally just copy paste
the one with the prices in it
what do you mean?
you probably don't need to change a single thing in Prices.txt for your translation, as it's literally just numbers
oh ok
and so you can save yourself like 5 seconds, thai language code is "TH"
Thank you lifesavers
yo nice
poggers
is it possible to add my language at boot time? right now i need to select English and then head to options to change it
and oof
sadly i don't think that it's possible to have it be added that early
do you know how to fix Thai characters shown as squares?
that would need some things to make the game know how each character looks, i think there are some messages here that outline how to do that, let me look
seems like it's from this point downwards
so i should download unity and open the asset something like that?
hm, maybe that also doesn't quite work, as the perpetua font (which is used by hk) doesn't have thai characters :/
- so is there a way to inject/replace font?
- can i insert Thai characters into hk font directly, in a way that if i type
อีกแล้วเหรอand it would show those chars? or do i have to replace some of the current fonts which aren't used in Thai (such as AEIOU that have hats on top) and use that in my .txt? (e.g.ÍÕ¡¥ÅÜÇ£ËÃÍ)
though i can try making a character map with the noto serif thai font (which hopefully has thai characters)
you can change the font of the text mesh can't you
after i'm done eating
The unity text is easy you can just load a font off the host
yea, but i thought maybe the perpetua one already had thai characters, that one doesn't have to use another font and let hk think it's still the same
main menu Thai works fine, but in game isn't
I really appreciate your help, and no rush, thank you so much.
I've looked up, Perpetua doesn't have Thai chars, but Noto Serif has them.
It's midnight (0:00) here, so good night/day. I'll pop back soon
Wrong channel.
oh sorry XD
i've never done this, can only go well
uh, this might sound rude, but are there more 'thai' characters than what parts of the internet show me? the 2nd character of the thing you wrote is apparently not part of noto's thai font
nvm, now it works
close but not quite
Yes. Close
🤔
why
How would one change what enemies appear in arena waves?
for example like the one in queens gardens
i looked at the fsm for it, and only found the wait time between and the triggers
probably look at the custom trials mod
alr
sad
Kool
it appears that i can't add new characters, it just doesn't want to work, sad
Does that mean Thai language mod would be impossible for this game ?
I'd try it but I haven't messed with fonts in unity
I'm guessing GG_Arena_Prefab\BG\GG_gods_ray isn't a traditional game object?
tried adding that to mulhima's mod that deletes objects, thinking it would remove the light rays in dung defender's arena
learned when dung defender is defeated, I can't leave because he isn't sent flying into the background
because there is no background 
there are many characters missing from that picture
like vowels that float above/below and tone marks
i.e. 0E34 and so on, 0E47 and so on
was that because thai font has no English chars, so they disappeared?
one more problem with Thai fonts, especially google fonts, the floating vowels and tone marks will collide with each other, so there is another font version that is a workaround.
like this CC-BY font https://www.f0nt.com/download/raveetavan/CSChatThai.zip
You will need CSChatThaiUI font for displaying in applications, not the original CSChatThai which is for typing in Web/Microsoft Word/Google Docs
- The normal font use computer logic to determine when the floating character will stay at its level, or rise up one more level, etc.
- The ......UI font gives every floating character a fixed offset, so all characters will now have their own offset to avoid colliding with each other.
I wonder why Thai chars worked flawlessly in Main Menu (also vowels/tone marks offset perfectly), does it use different font? If so, could we use that in game too?
yeah Main Menu use different font
is there a way to give modInstaller a source zip file and have it install to hk as a mod ? (i would like to avoid compiling a fork)
it cant compile for you
it can if you give it a zip, unzip everything to the mods folder
i want to give a compiled mod's zip (locally) and have it install into the game
wdym with install into the game
basically the same steps it does when installing a mod from modlinks.xml
but for a local zip file
a zip already present on the pc you mean?
yes
just make your mod unzip it
the mod is in the zip file
oh you mean for testing
yes
press the manually install button at the bottom of the installer
this is modinstaller 2 ? (i'm on mac)
go to the mods folder and put the dll there
Go to steam -> right click hollow knight -> click on properties-> click on local files -> browse local files -> Hollow_Knight_Data -> Managed -> mods
yes i do that when testing the mod during development, but some times MI unzips all files into the /mods directory as opposed to maintaining the directory structure. i am assuming that's due to my zip's directory structure being incorrectly made.
i'd like to test the modinstaller's installing behaviour without raising a PR to modlinks.xml & potentially breaking it for others
then i see no other way other then using modinstaller 1
but that isn't possible on mac...
idk maybe someone else can help
TIL hk's font is either Perpetua or Noto Serif CJK SC
You could build the modinstaller locally and in 'ModManager.cs' change the private const string ModLinks to a modlinks file with the thing you wanna test
Or am I misunderstanding what you want to do
you're right but that's what i was wanting to avoid
That’s what I did when testing the fixed CustomKnight zip
Couldn’t use google drive since it was so large it gave me the can’t scan for viruses message
Didn’t want to go through the trouble of GitHub
i guess that's probably what i'll end up doing then, might raise a PR to MI2 to check for this in settings.
If you are going to build MI2, and raise a PR for an improvement, can I suggest also adding an "open mods folder" button of some kind?
Hey guys, I was wondering: IF silksong comes out, how do we want to handle modding? Do we want to use the same system as the current modding API or do we want to use a runtime injection based system like subnautica?
I’d think we’d use a similar api, but before it’s developed we’d use something like BepInEx and harmony
I’m considering to already start after Fyremoth is done. (Setting up everything and writing some mod loading code) so we can get started immediately after SS releases
it's not like it's difficult
Yeah
No. I get that. It would just kickstart the modding community on release.
I’ve tried creating a very simple ModdingApi for some other unity games and it’s pretty simple
Did it within a couple hours
During school
In person
[INFO]:[ModCommon] - Mod Common is done initializing!
[INFO]:[TestMod] - CPP WORKS!
[INFO]:[API] - Saving Global Settings
it just works
cpphell 
Kool
So we can mod in c++, nice, time to learn it
it's not c++, it's CIL, so pretty much the same as c#, just c++ writing
Ah ok
c++/cil 
but it looks funny in dnspy
(my vs only allows up to c++17 regardless
)
can i just copy paste this?
local lambda function isn't possible in a member function of a mamanged class
but if statements with initializers work
now make it do javascript 
scratch
56 pls check the PR on MI2 
left turned to right
Oh that's interesting
later
I am about to leave
Cya
How do I check if a trial has been completed previously?
getbool completedtrialgold/silver/bronze
"colosseumBronzeOpened": true,
"colosseumBronzeCompleted": true,
"colosseumSilverOpened": true,
"colosseumSilverCompleted": true,
"colosseumGoldOpened": true,
"colosseumGoldCompleted": true,```
these pd bools may be of interest to you
Thanks
So at any point at all I do getbool completedtrialgold and it tells me if t3 was completed yet?
or just PlayerData.instance.colosseumGoldCompleted
Or just PlayerData.Instance.completedtrualgold
it's not snail he suggested trual
Yeah, trual not trial
why did i even say trial
I’d look at the stuff in the colosseum rooms or just trual and error ¯_(ツ)_/¯
my user1.json shows colosseumGoldCompleted so...
redfrog please
||
||
is slashhithook called when a grubjar is hit
I don’t have the code, but probably. If not you can probably use a on hook
bump
I’ll look at it. It is just a normal GameObject, might just have some stuff depending on it
awesome, thanks
might have to do with gods_ray being connected to the overall object gg_arena_prefab
I don’t think so
Can you show how you entered it in?
It just appears to be the parent to some light rays
?
it's the code that mulhima wrote for deleting objects
But can you show how you entered in the object’s name
ah okay
if (arg1.name == "GG_Arena_Prefab")
Is that it
Well ofc it’s gonna have a problem, it was deleting that and not just the object you specified
Oh nvm this is checking if it’s the name of a scene?
Can you show it with the dung defender code included?
yes
Well this applies
Instead do the object’s name, not the beginning object in the path
In this case it’s GG_gods_ray
so not GG_Arena_Prefab\BG\GG_gods_ray
No
That would end with nothing deleted
GG_Arena_Prefab is the parent of BG which is the parent of GG_gods_ray which is the object you want to delete
where can I find a tutorial on how to make mods?
Docs on radiance.host + some videos that may or may not be helpful
ty
Just made my first simple mod. "QOLGatheringCompass" removes the cost of Gathering Swarm and Wayward Compass. Wondering if I need to have public void Start() or public void OnDestroy() here is the full code.
`using Modding;
using UnityEngine;
using System;
using HutongGames.PlayMaker;
namespace nsQOLGatheringCompass
{
public class QOLGatheringCompass : Mod
{
public override void Initialize()
{
Log("Initializing QOLGatheringCompass...");
ReduceCharmCost();
ModHooks.Instance.BeforeSavegameSaveHook += RestoreCharmCost;
ModHooks.Instance.SavegameLoadHook += ReduceCharmCost;
ModHooks.Instance.SavegameSaveHook += ReduceCharmCost;
ModHooks.Instance.NewGameHook += ReduceCharmCost;
}
public void Start()
{
ReduceCharmCost();
ModHooks.Instance.BeforeSavegameSaveHook += RestoreCharmCost;
ModHooks.Instance.SavegameSaveHook += ReduceCharmCost;
ModHooks.Instance.NewGameHook += ReduceCharmCost;
}
public void OnDestroy()
{
ModHooks.Instance.BeforeSavegameSaveHook -= RestoreCharmCost;
ModHooks.Instance.SavegameSaveHook -= ReduceCharmCost;
}
private void ReduceCharmCost()
{
PlayerData.instance.charmCost_1 = 0;
PlayerData.instance.charmCost_2 = 0;
}
private void ReduceCharmCost(int id)
{
ReduceCharmCost();
}
private void RestoreCharmCost(SaveGameData data)
{
PlayerData.instance.charmCost_1 = 1;
PlayerData.instance.charmCost_2 = 1;
}
}
}`
No, those are unity events which you want on MonoBehaviours and such
so i should be fine to remove them?
Mod isn't a unity type, you just use initialize
Yeah
If you want to have an undo, you can run that before the SaveGame save and restore it after
That way the modified costs don't affect a save file
However there's no real reason to actually change the fields imo
Can just override GetInt
And in that case if you want to turn the mod off it's a simple as not using it, though you can implement IToggleableMod to make it swappable in-game.
so do i need to
ModHooks.Instance.BeforeSavegameSaveHook -= RestoreCharmCost; ModHooks.Instance.SavegameSaveHook -= ReduceCharmCost;
Not really no unless you want to make your mod toggleable in game
if I did if i add them on ini where do i remove them?
You can implement IToggleableMod and then put those in Unload
Then you'd be able to turn off the mod from the mods menu
ok, thanks for the help I'll look at IToggleableMod
What is a good resource for a Toggleable Mod?
https://github.com/fifty-six/HollowKnight.HellMod/blob/master/HellMod/HellMod.cs this has it I guess
It's just the Unload and : Mod, IToggleableMod really
Does this seem correct? It appears to be working correctly.
`using Modding;
using UnityEngine;
using System;
using HutongGames.PlayMaker;
namespace nsQoLGatheringCompass
{
public class QoLGatheringCompass : Mod, ITogglableMod
{
public QoLGatheringCompass() : base("QoL GatheringCompass") { }
public override void Initialize()
{
Log("Initializing QoL GatheringCompass...");
ModHooks.Instance.GetPlayerIntHook += ReduceCharmCost;
}
private int ReduceCharmCost(string intName)
{
if (intName == nameof(PlayerData.charmCost_1) | intName == nameof(PlayerData.charmCost_2))
{
return 0;
}
return PlayerData.instance.GetIntInternal(intName);
}
public void Unload()
{
ModHooks.Instance.GetPlayerIntHook -= ReduceCharmCost;
}
}
}`
This is the QoL GatheringCompass mod, it removes the charm cost of Gathering Swarm and Wayward Compass without editing save data.
1.5 time kool
Hype
api building time kool
like no one is on
Yeah. Let’s colonise this channel in the name of Fyremoth
when everyone wakes up there's gonna be a fun surprise
Yeah.
This is where the fun begins. Unless you're in #archived-modding-help. Best of wishes if you frequent #archived-modding-help.
Will modinstaller now maintain 2 versions of mods ? For 1.4 & 1.5 ? Assuming that a lot of mods would not get updated to 1.5 due to their creators moving on to something else
or would they be dropped ?
drop it like its hot
@rough pulsar we have .net 4.7.2 now, you can continue with your project
We (Fyremoth) are going away from 32 bit ASAP. We have had too much memory issues.
(let's still make a 32bit version so 32bit people can play)
No
yes
I don’t want to maintain 2 seperate versions
then at the end of development for 1.5 we switch back to 1.4.3.2 and remove enemy sprite patching(except for custom enemies)
Yeah. Let’s do something like that
Dont bully 32 bit people
I'm not?
_ _
I’m sorry, but I have had to fix like 30 issues relating to assigning too much memory
while the modinstaller is 'soft down', i have my vote for sha256
What is the rationale behind the hash check, download integrity?
yes
to check if its the latest update
The wrong sha doesn't block downloads?
It's just unfortunate that you can't add a github latest release link (/releases/latest) to the modlinks file that way. I just don't feel like opening a new PR every time I make a new release.
hmmm
what if we had a system where other modlinks files could be added?
every person who has a mod can have their own, only needing a pr once
their own modlink can be in their own repo where they don't have to go through as much trouble
also I'm casting in my vote for both 1.4.3.2 and 1.5 support
What is the point of the hash then? If the DLL in the release changes, the hash should also change, and then some check with the hash should fail right? What am I missing here?
oh yeah im stoopid
i mean i am willing to make a new pr for every new HKMP release
the only contributing i have done is changing sha1's of mods i didn't even make
Time to change that
nope
I'm just wondering whether download integrity checking with hashes is even worth it
im bad at making mods
I think it is
its to check if the user has updated
otherwise the modinstaller doesnt know if it has been updated
we could add to the settings of the installer
a dictionary or something of mod names and versions
yea, just threw 56 a dm, that mi2 could add a feature that downloaded mods are actually sha checked on download, to try to counter mitm
I'm completely confused now, so the hash is not for download integrity at the moment? What is it used for then?
the installer checks if the current file matches the hash. if not then download the mod again
if a mod updates, the SHA1 changes, so the installer knows, this is not the right version
Another solution: make everyone maintainers (joke)
proposing a new modlinks system:
in the main modlinks file have an extra section for linking other modlinks files(people can update their own modlinks without pring the main file), every mod has a version of hk it targets, and different files per version, so we can easily add support for both 1.4.3.2, and 1.5. maybe even more versions
ah yes trust me nothing bad ever comes of that
ok only grenade then
sfg, have you got an 1.5 version of sfcore atm?
i'm at work, can compile and update the repo after
though the only thing to change should be to uncomment the things in https://github.com/SFGrenade/SFCore/blob/master/Util/FsmUtil.cs
Indeed, for my specific use-case, the modinstaller needs to be able to get the latest version number from something other than a repository that I don't have direct access to. So if the modlinks file does not only contain a link to the latest DLL, but also to a file containing the latest version (possibly remotely hosted), then you could still do version checking.
wdym with
other than a repository that I don't have direct access to
i assume you have direct access to your rep 👀
If the modinstaller can retrieve the latest version of a mod from the repository of that mod, instead of from the SHA in modlinks, then updating the mod wouldn't require a PR to modlinks
oh like that
a possibility is that the modinstaller checks the name(/tag) of the latest version of a rep, and then checks it with the filename thats present in the mods folder
Are MITM attacks really something we should be concerned about on the application level? Are the PRs on the modlinks repo even checked for malware? If not, than that is considerably easier than MITM from an attacker perspective.
modsettings need to be changed, been replaced
wait huh what what i'm back
is 1.5 out? as stable?
yes
So, uh
what do we need to change to get mods to work now?
Linking to a discussion also works for me
- what I already told you in other chat
wait, do you mean in the sense of, writing a modding api, updating mods etc, or, do you mean in the sense of, you just updated and mods arent working anymore. because then #archived-modding-help look in the pins
updating mods
dont know if thats actually a thing that has to be done with the release of the new update, i was just taking a guess here tbh.
- remove modsettings inheritance since it no longer exists. if mods use settings, inherit LocalSettings<WhatUsedToBeYourSaveSettingsClass> on your mod class, and GlobalSettings<WhatUsedToBeYourGlobalSettingsClass>
- Update .new framework to 4.7.2
try buliding api fail
are you in 1.5? also which github link did you get it from
fifty-six's fork
yes, i am trying to build 1.5 api
also I meant are you on the 1.5 version of the game
of course, i have already update
ok
what's modsettings?
i am not coping all .dll files (just assembly and firstpass and UnityEngine.xxx and PlarMaker) maybe i should copy more
now i build successfuly, but not get the OutputFinal folder
You have to build in release mode
Np
Nice
time to update my mod
So what are you working on sawyer
Mapi itself hasn't changed much right ? 
It has
try to make 1.5 api and update my Deco mod in current patch
So once you release 1.5 api we can start making mods for 1.5?
You already can. You just have to build the api yourself
It won’t fully release until 56 wakes up
do we have any documentation ?
commits
once mod support comes for 1.5, will 1.4.3.2 mods still work?
1432 mods only work with 1432, 1.5 is another .net framework version, unity version and not 32 bit anymore
you can also use the 1432 beta branch on steam
yea but i had that one from before it went public
wtf I still have deprecated members to kill
do it quick
Good morning 56
i mean, idc, we can just tell people to use the 1432 'beta' branch currently
until your hired hitman is done
@copper nacelle I guess you didn’t expect to wake up to this
So for now, what I should do is wait for 1.5 api to come out, update .net framework version, and crusade through the code to turn everything from unity 2017 to unity 2020?
I've done only fairly simple mods
with fairly simple mods you might only need to wait for 1.5 mapi and update the references/.netframework version
is ModSetting removed?
the example mods have thing to show the new settings
I'm getting a "cannot ressolve symbol" for IGlobalSettings<CustomGlobalSaveData>
ah I need to merge that
should work against Yuri's branch
almost certainly going to merge as is
debug built lol.
nice
UnityEngine.Input has been moved to UnityEngine.InputLegacyModule.dll
yeah
I have debug already built against a few commits ago
Works fine
Real downside is just reflection emit getting axed
I'm not able to build yuri's fork it gives the error
Assembly-CSharp.csproj(40, 9): [MSB3073] The command " C:\Users\{username}\Desktop\Temporary\HollowKnight.Modding-master (1)\HollowKnight.Modding-master\PrePatcher/Output/PrePatcher.exe Assembly-CSharp.dll Assembly-CSharp-patched.dll" exited with code 9009.
a path with space
rename "HollowKnight.Modding-master (1)" to "HollowKnight.Modding-master_(1)" may fix
5.5 hours ?
how did you turn 1 into 5
i blame the new update
yes. UPDATE SFCore!!!
that didn't fix it 
i'd just got around to adding settings to CK
. should i bother to release it for 1432 or just work on getting 1.5 support 
both
1.5
dont leave the 32 but people
f*ck 32 bits. All my homies use 64 bit
why? That is probably like 1 person
build the prepatcher first
i mean at the most i would test & release the last version. if 1.5 brings big change then i would not want to maintain 2 versions.
how can i do that?
right click build
@gilded lotus when can I use mods?
why did you ping him? Ask 56
its a joke lol
visual studio? if so then it should automatically build before the mapi
or rebuild everything is needed in that case
but that also works
yeah it should
it sometimes doesnt
vs or no vs
that is the question
i use rider
56, remake the mapi in CIL
no difference
is there really any documentation for modcommon
no
dang
would having it pure CIL make it faster?
there's some shit on the apidocs page I don't think it's very much though
I mean you could write it better in IL I guess
Just like you could write something faster in assembly
Have fun with that though
i don't know if anyone would even bother writing a map in x86 assembly
definitely wouldn't 
You'd probably just write injection in assembly at most
then c++/cil and let vs optimize it to hell and back 😤
I doubt c++/cil is any faster
how did you get the SerializableIntDictionary?
lol I'm dumb
Serializable dictionary should've died 8 versions ago cmm
i can't even see any real usage for serializable anything
it just looks like salt on a food for me
serializable so it can be saved
The use is for json utility in unity which we have since avoided
I assume the c# console in that doesn't work either yeah?
so it is salt on a food except worse
Used to be necessary
glad it isn't then
is https://github.com/HollowKnight-Modding/HollowKnight.Modding the 1.5 api
yes
will FSMViewAvalonia <= work on the new version without any updates ?
yeah
It doesn't have a scene list anymore sadly
can we add reflection back this way?
PauseChamp
That's gonna be such a pain to distribute 
i don't have a system reflection emit dll
do i have to compile the modding api myself or is there a ready 1.5 version
I think we can do this ourselves with a little unsafe
oh nice, project setting upon opening is release now
new debug for 1.5
https://github.com/TheMulhima/Debug_Mod/releases/tag/v1.3.7
isn't there a modding api for 1.5 that has been already compiled
just now
this is yuri's branch?
though doesn't contain any of 56's edits he still wants to make
got merged
cool
neat

i am too lazy to compile modding api or dsgm trabkjfamtbjrab something
can't wait for my system to load visual studio for like 5 minutes
imma be real i'd rather just finish doing it myself than wipe the history
i doubt you can even roll back in github
who needs debugmod for testing smh
Finish doing what?
why use debugmod when you can write the code to do what you wanted to do in debug
I already have one half updated before the recent pr
If you send that version I'll add those changes into the version I sent
luckily i don't have to port that many mods
blur censoring
Poor choices
Bro if you added changes the history would still be gone
That's the whole point
why even use blurring when you can just erase the things yourself using paint brush
i honestly don't think you could get any information from the blur, the pixelated one fair, but not the blurred one
I'll make a pr
I mean the pixelated part
Blur is whatever I don't think there's anything of value
There's already stuff to undo pixelation though
yea, the pixelated one says PaleCourtStuff
there have been algorithms that would attempt to decrypt the pixellating blurs
sadge, now you have to spend your time updating your mods and the mapi
that's a strange way of spelling sitting in bed until I decay
hey, looks like it's my own responsibility to port my mod
maybe i'll wait for the official release of modding api 1.5 instead 
Why doesn't GitHub allow me to make 2 forks for the same repo
unlike windows, github won't let you copy a repository twice 
what framework do we need btw
4.7.2
yeah
did the beta patch have both a mscorlib and a netstandard dll before?
first time i've realized that there are those two
i have updated
thought before that only one of them is there
absolute life-saving changes tbh
true
1.5 modding api?
to be fair nobody was using the LocalSettings interface anyways
and yeah there really aren't that many mods that use save specific settings
well see
this is super new
we got rid of the old save system because it was bad
save specific settings is the new form of savesettings, and there were some mods that used it
yeah they'll have to update
what is the new unity version?
2020.2.2
does hk use 2020.2.2 now?
yeah and .net 472

ok. Thanks
surprisingly 2017 asset bundles still work. I just want to update them to use the latest compression and stuff
excellent
did you compile that yourself from the uhhh
did you compile that yourself
it's exactly this
cool
i found similar one in "\Editor\Data\MonoBleedingEdge\lib\mono\4.7.1-api\Facades"
hm
for now i'll update sfcore
yo 56, before i do it wrong, how would you do field caching? for settings ofc
wdym field caching
I'd use the helper
Actual delegates are faster than anything you're doing yourself unless you also want to emit
thinking about making 'reflection' for the get/set pd thingies cached in one way or another for a bit more performance thanks to betaend
GetBool?
let me quickly find one cursed example of mine
Reference: inside a GetBool hook
but reflection is slow, so i'm thinking of maybe having all fields of the save settings type cached in a dictionary or something
Just to make sure, we use Unity 2020.2.2 now?
yeah
yes
and net 4.7.2
For the using Modding import I have to wait a ModdingApi update?
It’s already updated, you just need to build it yourself. To make any mod for 1.5 you need it
dw i'll make more breaking changes
ok thanks
sorry for tagging @jolly oriole my friend sent me thsese. i'm not sure if these can be of use
https://unitylist.com/p/ru/Unity3D.Thai-Font-Adjuster
https://github.com/phanphantz/Unity3D.ThaiTextUI
has modcommon been rebuilt?
no
I rebuilt it
send pls
all of my mods use it 56 
with 1.5 now out i may be able to actually use what i tried before in game, which was my last problem
use frogcore/serecore/sfcore/vasi instead
modcommon is the objectively best mod
none of you have debug colliders
Got frogcore to stop using it
Oh yeah
Because why not
bloat
also printscenehierarchytree
didn't you make vasi
why do all of you have core mods
…yeah why?
redfrog send me the modcommon build
Turning on my computer, I just woke up
oh ok nvm take your time
here
Also removed global settings since I couldn’t be bothered to update it
let all see the glory of modcommon
thanks
sha256 is now needed, right?
but you want to have sha256, right?
anything from these please
oh do yall have sfcore and vasi too?
can somebody scream why this is wrong
gimme a minute
I have a sfcore if you don't
why would i want people to be able to edit modlinks at will without pring
faster?
my security smh
idk imagine doing it same-day when i could think about it
I mean mods that want to self update can do so anyway right ?
Nothings stopping a mod from downloading a dependency that's actually the real mod. And the one in modlinks is actually just the loader for that mod
nice
I should probably update frogcore
first imma see what chaos I can bring upon the installer when trying to add support for different game versions
I heard you like mod installers so I put a modinstaller in your mod installer 
I still have some errors like this
what is the error?
does the method not exist? if so, then you are missing a reference to whatever file you got it from
after copyng files from OutputFinal.zip in the game folder
"Managed" folder
before the update it was ok
now this is a screenshot
what happened to ModSettings
It got changed
ok to what
thanks
can't believe saleh isn't paying any attention
I haven't read anything in this channel in like a year
so how do I edit the mod installer's ui? all I see is the weird thing where the Manually button is at the top left corner
From when I asked a few weeks ago, I was informed that you had to do it exclusively from the code now
Something about the visual part was broke in some update 
what happened to that poor thing
I will, as I always do, request that anyone who is willing to attempt to update Mod Installer, please add an "open mods folder" button
I'm dealing with mod installer 1, doesn't it already have that
Just like, a little square button, with a folder icon. Doesn't even need text. It would be perfect.
@floral blade you are ruining my life
Unless an update for it was pushed that I never saw, and I'm using an out of date one, then no. Neither 1 or 2 has it yet.
What why
oof is 1.5 out now
my indentation
I'll add one
I explicitly did not push any indentation changes
prolly should have
i like the button but i want it at the bottom
do you know how you do dockpanel w/ virtualizingstackpanel?
tfw
Not really, I just copied the existing button and edited text and boom it worked
echprime
_control is PlayMakerFSM but the methond isn t working from the update
wtf why are you reloading settings
as I told you before you are missing a reference to a mod dependency
probably Modcommon, Vasi, or SFCore
you need to get a updated version of one of those then reference them
56 pls add readmes to mi2
no
Needed an instance of settings, not sure if it was accessible already and I made a dumdum
not PlayMaker.dll?
no those are extensions
whatever mod you referenced before
Wait could I just pass it into new ModListViewModel ?
And have an instance right there

bro you can't just make it null! and not force it to be non-null
that defeats the whole point of nullable reference types
If it's null then we won't be able to load any mods tho right ?
It can't be null unless you did it wrong
That's the whole point
unless the field type is nullable
or you forced it to be null
Incase we load an old JSON it might not have the key so we'd get a null, right ?
yes
I'd checked if it was null after loading tho and assigned the correct value
that's the point
you shouldn't be checking that
period
for null
because the field isn't nullable
if it was ever null you have already gone wrong
So you'd just give it a default value when deserialising ?
Yeah
Can see what I did if you'd like
I will ! Thanks!
see how you require modcommon
oh no
modcommon
Gotcha ! So I was setting it to null when I didn't really want a null and then checking if it was null and setting it to the right value.
yes
Lol now that I follow the logic it is pretty stoopid
Sorry you had to deal with that mess !
it's fine
My therapist: "how would you describe today?"
Me: "Team Cherry pulled a sneaky on us and now everyone is scrambling to update their mod to 1.5"
nah, more time to polish it lol
I think what made it better was many of us woke up to 1.5
amazing
I see the problem is that the type Func<> should be defined in mscorlib but it is not found
odd
i was messing with save shit and i removed the mod
and now its still happening
A bug in hollow knight ?
i was using this #archived-modding-development message
It's a game about bugs hunt, there's gotta be some bugs !
it's debug, mapi and sfcore alone can save+quit
whacky
Only when alive 
so no 
wait a second
wtf
TC renamed something that the hollow_knight_Data is now the Hollow Knight_Data folder
oh yeah i realised that
i saw my path change
put the modding api in the wrong folder lol
Wow only remove the first underscore the second one is necessary
the _Data part is generated by unity
it's now that instead of the game being called hollow_knight, it's now called Hollow Knight
what?
it isn't for me
Kool
wait what

It isn’t for me
Ah that makes it make so much more sense
its same for me
Same
huh
Gog specific?
Mysterious ways of TC
Well that makes things slightly more complicated for the installer
i can't even be bothered to buy a hollow knight gog galaxy copy to check 
also yeah it is strange
- select folder
- ez
so exactly like how it's done currently
fun
Mod zips must no longer contain hollow_knight_Data I guess
i mean
56 wanted to remove that anyway because it sucked
Or the installer would need to figure it out
I’d want to remove it
my mod zips are just the DLL itself and a readme
that's how it's supposed to be for all mods
Customknight want give default pngs
No want rip at runtime
just have the folder with the skin folders at top level???
MI1/2 just extracts the zip if the top level folder isn't hollow_knight_Data
i already hate the new Sprite() that isn't anymore
yeah :(
is this how saving should be done
I just created a static empty sprite I can use instead
what is the ci branch of modding api for
yes
cus so far it wasnt only debug that wasnt leting me save quit
I solved, I forgot to update modCommon with modInstaller
for ci
custom charms + save&quit do be working
disabled all mods and no savequit tf
this
yeah this is how saving mod data is done now
i think it might be so im gonna verify files to get rid of it
among us
wrong channel 56, this isn't the channel for the apple thing going on right now
keynote or whatever
everything sucks
got the open mods folder button working
lol
we can do that
🥺
Do it!

Us Mac users will survive
56, ples us modin xperence to mak amogus mod
imma continue adding stuff for multiple patch support now
One of the multi player is nosk?
teach us the ways of modcommon so we make among us real life implementation into hollow knight,
oh god
ok i think the modding api might be causing it or smth
i uninstalled it and it savequits fine
oh yea, i wanted to test it



