#archived-modding-development

1 messages · Page 518 of 1

zealous basin
#

actually never mind im not even sure i need to do this

pure nova
#

You don’t need to not to mention the fact that you can’t.

jolly oriole
#

crazy

copper nacelle
#

ah yes leaving the question open to be answered for no reason is much better

jolly oriole
#

like those stack overflow question one needs
"how do i do X?"
self answer, a few days later: "figured it out"

pure nova
copper nacelle
#

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

pure nova
#

Yeah I guess.

zealous basin
#

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

vocal spire
#

Like Sprites?

#

Or tk2d stuff?

zealous basin
#

i think so

#

like the sprite sheets

vocal spire
#

That’s tk2d stuff

#

At it’s base, it’s just a texture 2d replacement

zealous basin
#

yeah

#

i mean like boss sprites specifiically

vocal spire
#

All hollow knight enemies/bosses are the same

#

All use tk2d

zealous basin
#

ive never heard of tk2d before

vocal spire
#

Animation tool team Cherry used

zealous basin
#

ahh.

vocal spire
#

Just doing

targetgameobject.GetComponent<tk2dSprite>().collection.textures[0] = texture2d I want;```
Should work iirc
zealous basin
#

where would that be input? im not sure

#

also, thanks

vocal spire
#

Either

  1. (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

  2. 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)

zealous basin
#

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.

jolly oriole
zealous basin
#

ah! thatll be it, thank you

patent zealot
#

are there any already existing mods that preload gameobjects

vocal spire
#

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)

patent zealot
#

Alright thanks

#

i had the scenes, i was just confused on how it worked and needed an example

thick nebula
#

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

runic wind
#

Yep it’s possible

thick nebula
#

How could I go about doing it?

runic wind
#

You’d be editing whatever fsm controls swinging the nail and changing its sound playing action, most likely

vocal spire
#

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)

flat summit
#

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

vocal spire
runic wind
#

I'd use it at least once

tawny onyx
#
nvm, i've found camera control code
frosty valley
#

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

tawny onyx
frosty valley
#

ah i dont know how to code lol

primal latch
#

@copper nacelle could you improve the build instructions for the modding API? They don’t seem to be correct

jolly oriole
copper nacelle
#

Besides it being in debug instead of release I don't see any issue with the instructions

primal latch
#

And no ModdingAPI.zip shows up

copper nacelle
#

like I said

#

debug instead of release

#

swap to release

primal latch
#

Ah. Ok. I’ll try later.

thick nebula
cedar hemlock
#

prob not

#

unless someone does it for you

#

but that chance is small

#

wait

#

there might be something that might work

thick nebula
#

what is it?

cedar hemlock
#

CustomBGM

#

made by SFG

#

but it prob wont work...

jolly oriole
#

sounds effects no

#

BGM yes

cedar hemlock
#

oh ok

thick nebula
#

darn

dawn halo
#

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.

  1. 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

  2. On pinned messages, what does TranslationMod.dll do? And how to use it?

  3. How to insert new font into the game?

  4. 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.

vocal spire
#

It looks like that’s the poorly translated mod

copper nacelle
#
  1. no
  2. puts it through about 50 google translate layers so you get garbage as an output
  3. you need an asset bundle but you can also load os fonts if the font you need is standard
  4. not right away but the code should be familiar
vocal spire
#

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

dawn halo
#

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?

vocal spire
#

Nah

#

I mean you can do that if you want

dawn halo
#

I prefer not to do that :X

vocal spire
#

But you can just code a mod for that

dawn halo
#

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

vocal spire
#

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

copper nacelle
#

Bro

#

Pretty sure grenade already has a whole thing

vocal spire
#

Oh yeah

floral blade
#

isn't there a language mod thingy ?

vocal spire
#

I blame just waking up

copper nacelle
#

Should be pretty easy if you follow the readme

dawn halo
#

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

copper nacelle
#

Nah this should be much much easier

#

Just a few text files

jolly oriole
#

like 15

#

or something

#

36*

#

though at least one of them is literally just copy paste

#

the one with the prices in it

dawn halo
#

what do you mean?

jolly oriole
#

you probably don't need to change a single thing in Prices.txt for your translation, as it's literally just numbers

dawn halo
#

oh ok

jolly oriole
#

and so you can save yourself like 5 seconds, thai language code is "TH"

dawn halo
#

Thank you lifesavers

copper nacelle
#

yo nice

jolly oriole
#

poggers

dawn halo
#

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

jolly oriole
#

sadly i don't think that it's possible to have it be added that early

dawn halo
#

do you know how to fix Thai characters shown as squares?

jolly oriole
#

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

dawn halo
#

so i should download unity and open the asset something like that?

jolly oriole
#

hm, maybe that also doesn't quite work, as the perpetua font (which is used by hk) doesn't have thai characters :/

dawn halo
#
  1. so is there a way to inject/replace font?
  2. 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. ÍÕ¡¥ÅÜÇ£ËÃÍ)
jolly oriole
#

though i can try making a character map with the noto serif thai font (which hopefully has thai characters)

copper nacelle
#

you can change the font of the text mesh can't you

jolly oriole
#

after i'm done eating

copper nacelle
#

The unity text is easy you can just load a font off the host

jolly oriole
dawn halo
#

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

pure nova
#

Wrong channel.

fair rampart
#

oh sorry XD

jolly oriole
#

i've never done this, can only go well

jolly oriole
#

nvm, now it works

jolly oriole
#

close but not quite

primal latch
jolly oriole
jolly oriole
patent zealot
#

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

vocal spire
patent zealot
#

alr

jolly oriole
vocal spire
#

Kool

jolly oriole
dawn halo
#

Does that mean Thai language mod would be impossible for this game ?

vocal spire
#

I'd try it but I haven't messed with fonts in unity

pale crest
#

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 zote

dawn halo
#

like vowels that float above/below and tone marks

#

i.e. 0E34 and so on, 0E47 and so on

dawn halo
dawn halo
#

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.
dawn halo
#

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?

tawny onyx
#

yeah Main Menu use different font

floral blade
#

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)

cedar hemlock
#

it cant compile for you

#

it can if you give it a zip, unzip everything to the mods folder

floral blade
#

i want to give a compiled mod's zip (locally) and have it install into the game

cedar hemlock
#

wdym with install into the game

floral blade
#

basically the same steps it does when installing a mod from modlinks.xml

#

but for a local zip file

cedar hemlock
#

a zip already present on the pc you mean?

floral blade
#

yes

cedar hemlock
#

just make your mod unzip it

floral blade
#

the mod is in the zip file

cedar hemlock
#

oh you mean for testing

floral blade
#

yes

cedar hemlock
#

press the manually install button at the bottom of the installer

floral blade
#

this is modinstaller 2 ? (i'm on mac)

cedar hemlock
#

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

floral blade
#

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

cedar hemlock
#

then i see no other way other then using modinstaller 1

#

but that isn't possible on mac...

#

idk maybe someone else can help

jolly oriole
#

TIL hk's font is either Perpetua or Noto Serif CJK SC

light zodiac
#

Or am I misunderstanding what you want to do

floral blade
#

you're right but that's what i was wanting to avoid

vocal spire
#

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

floral blade
#

i guess that's probably what i'll end up doing then, might raise a PR to MI2 to check for this in settings.

merry lotus
primal latch
#

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?

vocal spire
#

I’d think we’d use a similar api, but before it’s developed we’d use something like BepInEx and harmony

primal latch
#

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

copper nacelle
#

it's not like it's difficult

vocal spire
#

Yeah

primal latch
#

No. I get that. It would just kickstart the modding community on release.

vocal spire
#

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

jolly oriole
#
[INFO]:[ModCommon] - Mod Common is done initializing!
[INFO]:[TestMod] - CPP WORKS!
[INFO]:[API] - Saving Global Settings

it just works

copper nacelle
#

cpphell ax1uWide3

vocal spire
#

Kool

jolly oriole
#

the mapi threw an exception when i had no namespace

#

so i had to think of a name

vocal spire
#

So we can mod in c++, nice, time to learn it

jolly oriole
#

it's not c++, it's CIL, so pretty much the same as c#, just c++ writing

vocal spire
#

Ah ok

copper nacelle
#

c++/cil pauseshroom

jolly oriole
#

but it looks funny in dnspy

copper nacelle
#

does that support the c++20 stuff

#

Or is it just bad

jolly oriole
#

maybe?

#

what c++20 stuff should i throw in

copper nacelle
#

std::span maybe

#

Concepts

jolly oriole
#

i need an include for that, do i?

#

then it doesn't work

copper nacelle
#

yes

#

what's the point of it then

#

finally ugly c#

jolly oriole
#

(my vs only allows up to c++17 regardless radS)

copper nacelle
#

do lambdas work

#

try an iife

#

{ }()

#

kinda beat

jolly oriole
#

local lambda function isn't possible in a member function of a mamanged class

#

but if statements with initializers work

copper nacelle
#

this seems very limited ngl

#

what's the decomp look like under cpphell?

vocal spire
#

scratch

floral blade
#

56 pls check the PR on MI2 popseeker

jolly oriole
copper nacelle
#

Oh that's interesting

copper nacelle
#

I am about to leave

vocal spire
#

Cya

jolly jungle
#

How do I check if a trial has been completed previously?

jolly oriole
#

getbool completedtrialgold/silver/bronze

light zodiac
#
"colosseumBronzeOpened": true,
"colosseumBronzeCompleted": true,
"colosseumSilverOpened": true,
"colosseumSilverCompleted": true,
"colosseumGoldOpened": true,
"colosseumGoldCompleted": true,```
these pd bools may be of interest to you
jolly jungle
#

Thanks

#

So at any point at all I do getbool completedtrialgold and it tells me if t3 was completed yet?

light zodiac
#

or just PlayerData.instance.colosseumGoldCompleted

vocal spire
#

Or just PlayerData.Instance.completedtrualgold

copper nacelle
#

it's not snail he suggested trual

vocal spire
#

Yeah, trual not trial

light zodiac
#

why did i even say trial

jolly jungle
#

wait so colosseumGoldCompleted or completedtrialgold?

#

in PlayerData.instance.etc.

vocal spire
#

I’d look at the stuff in the colosseum rooms or just trual and error ¯_(ツ)_/¯

light zodiac
patent zealot
#

is slashhithook called when a grubjar is hit

vocal spire
patent zealot
#

yeah i just tried it

#

looks like it works

vocal spire
# pale crest bump

I’ll look at it. It is just a normal GameObject, might just have some stuff depending on it

pale crest
#

awesome, thanks

#

might have to do with gods_ray being connected to the overall object gg_arena_prefab

vocal spire
#

I don’t think so

#

Can you show how you entered it in?

#

It just appears to be the parent to some light rays

pale crest
#

hmm

#

I'll try this

vocal spire
#

?

pale crest
#

it's the code that mulhima wrote for deleting objects

vocal spire
#

But can you show how you entered in the object’s name

pale crest
#

ah okay

if (arg1.name == "GG_Arena_Prefab")

vocal spire
#

Is that it

pale crest
#

should I like

#

upload the whole thing

vocal spire
#

That would be helpful

#

I can’t view the file you sent since I’m on mobile atm

pale crest
#

took out gg_arena_prefab part

vocal spire
#

Well ofc it’s gonna have a problem, it was deleting that and not just the object you specified

vocal spire
#

Can you show it with the dung defender code included?

pale crest
#

shit I got it mixed it up

#

I put in if (arg1.name == "GG_Dung_Defender)

vocal spire
#

Ok

#

And the if (go.name.Contains(“arena prefab thing”)) was in the other one?

pale crest
#

yes

vocal spire
#

Instead do the object’s name, not the beginning object in the path

vocal spire
pale crest
#

so not GG_Arena_Prefab\BG\GG_gods_ray

vocal spire
#

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

pale crest
#

okay I'll try that when I get home

#

much thanks

candid sapphire
#

where can I find a tutorial on how to make mods?

runic wind
#

Docs on radiance.host + some videos that may or may not be helpful

slow temple
#

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;
    }
}

}`

copper nacelle
#

No, those are unity events which you want on MonoBehaviours and such

slow temple
#

so i should be fine to remove them?

copper nacelle
#

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.

slow temple
#

so do i need to

#

ModHooks.Instance.BeforeSavegameSaveHook -= RestoreCharmCost; ModHooks.Instance.SavegameSaveHook -= ReduceCharmCost;

copper nacelle
#

Not really no unless you want to make your mod toggleable in game

slow temple
#

if I did if i add them on ini where do i remove them?

copper nacelle
#

You can implement IToggleableMod and then put those in Unload

#

Then you'd be able to turn off the mod from the mods menu

slow temple
#

ok, thanks for the help I'll look at IToggleableMod

#

What is a good resource for a Toggleable Mod?

copper nacelle
#

It's just the Unload and : Mod, IToggleableMod really

slow temple
#

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;
}
}
}`

slow temple
#

This is the QoL GatheringCompass mod, it removes the charm cost of Gathering Swarm and Wayward Compass without editing save data.

vocal spire
#

1.5 time kool

primal latch
#

Hype

vocal spire
#

api building time kool

primal latch
#

Yeah.

#

I expected a bit more hype here….

vocal spire
#

like no one is on

primal latch
#

Yeah. Let’s colonise this channel in the name of Fyremoth

vocal spire
#

oh I just realized it's 1am for me

#

what better thing to do than update mods

primal latch
#

Lmao

#

It’s 08:04 here

vocal spire
#

when everyone wakes up there's gonna be a fun surprise

primal latch
#

Yeah.

pure nova
floral blade
#

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 ?

jolly oriole
#

drop it like its hot

cedar hemlock
#

@rough pulsar we have .net 4.7.2 now, you can continue with your project

primal latch
#

We (Fyremoth) are going away from 32 bit ASAP. We have had too much memory issues.

vocal spire
#

(let's still make a 32bit version so 32bit people can play)

primal latch
#

No

vocal spire
#

yes

primal latch
#

I don’t want to maintain 2 seperate versions

vocal spire
#

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)

primal latch
#

Yeah. Let’s do something like that

cedar hemlock
#

Dont bully 32 bit people

vocal spire
#

I'm not?

cedar hemlock
primal latch
#

I’m sorry, but I have had to fix like 30 issues relating to assigning too much memory

jolly oriole
#

while the modinstaller is 'soft down', i have my vote for sha256

vestal plover
jolly oriole
#

yes

cedar hemlock
#

to check if its the latest update

light zodiac
vestal plover
#

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.

cedar hemlock
#

you can

#

ehm lemme show

vocal spire
#

hmmm

vocal spire
#

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

vestal plover
cedar hemlock
#

oh yeah im stoopid

vocal spire
#

👏

#

congrats

cedar hemlock
#

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

light zodiac
#

Time to change that

cedar hemlock
#

nope

vestal plover
#

I'm just wondering whether download integrity checking with hashes is even worth it

cedar hemlock
#

im bad at making mods

vocal spire
#

I think it is

cedar hemlock
#

otherwise the modinstaller doesnt know if it has been updated

vocal spire
#

we could add to the settings of the installer

#

a dictionary or something of mod names and versions

jolly oriole
#

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

vestal plover
vocal spire
#

the installer checks if the current file matches the hash. if not then download the mod again

cedar hemlock
#

if a mod updates, the SHA1 changes, so the installer knows, this is not the right version

light zodiac
#

Another solution: make everyone maintainers (joke)

cedar hemlock
#

another solution: make more people maintainers

#

SFG can be one and redfrog too

vocal spire
#

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

vocal spire
cedar hemlock
#

ok only grenade then

vocal spire
#

sfg, have you got an 1.5 version of sfcore atm?

jolly oriole
#

i'm at work, can compile and update the repo after

vocal spire
#

ok

#

I'll just compile one myself for now

#

approaching the 4am mark

jolly oriole
vestal plover
cedar hemlock
#

wdym with

other than a repository that I don't have direct access to

#

i assume you have direct access to your rep 👀

vestal plover
cedar hemlock
#

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

vestal plover
cedar hemlock
#

you'd need to ask 56

#

all the merges are done by 56

vocal spire
jolly oriole
#

oh yea

#

completely forgot about that

vocal spire
#

quickly fixed

#

also modhooks is static

rough pulsar
#

is 1.5 out? as stable?

jolly oriole
#

yes

rough pulsar
#

cool

#

now i uh have to update it

#

i'll add some overhauls perhaps

jolly jungle
#

So, uh
what do we need to change to get mods to work now?

#

Linking to a discussion also works for me

vocal spire
#
  1. what I already told you in other chat
fair rampart
#

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

vocal spire
#

updating mods

fair rampart
#

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.

vocal spire
#
  1. remove modsettings inheritance since it no longer exists. if mods use settings, inherit LocalSettings<WhatUsedToBeYourSaveSettingsClass> on your mod class, and GlobalSettings<WhatUsedToBeYourGlobalSettingsClass>
tawny onyx
vocal spire
#
  1. Update .new framework to 4.7.2
tawny onyx
#

try buliding api fail

vocal spire
#

are you in 1.5? also which github link did you get it from

tawny onyx
#

fifty-six's fork

#

yes, i am trying to build 1.5 api

vocal spire
#

also I meant are you on the 1.5 version of the game

tawny onyx
#

of course, i have already update

vocal spire
#

ok

tawny onyx
#

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

primal latch
#

You have to build in release mode

tawny onyx
#

oh, that's my bad

#

thank you

primal latch
#

Np

tawny onyx
primal latch
#

Nice

tawny onyx
#

time to update my mod

jolly jungle
#

So what are you working on sawyer

floral blade
#

Mapi itself hasn't changed much right ? elderC

primal latch
#

It has

tawny onyx
jolly jungle
#

So once you release 1.5 api we can start making mods for 1.5?

primal latch
#

You already can. You just have to build the api yourself

#

It won’t fully release until 56 wakes up

tawny onyx
#

yeah, you should wait 56 wake up

#

or build api yourself

floral blade
jolly oriole
#

commits

nimble lake
#

once mod support comes for 1.5, will 1.4.3.2 mods still work?

jolly oriole
#

1432 mods only work with 1432, 1.5 is another .net framework version, unity version and not 32 bit anymore

nimble lake
#

damn

#

good thing i kept the older one

jolly oriole
#

you can also use the 1432 beta branch on steam

nimble lake
#

yea but i had that one from before it went public

copper nacelle
#

wtf I still have deprecated members to kill

jolly oriole
#

do it quick

primal latch
#

Good morning 56

jolly oriole
#

i mean, idc, we can just tell people to use the 1432 'beta' branch currently

#

until your hired hitman is done

primal latch
#

@copper nacelle I guess you didn’t expect to wake up to this

jolly jungle
#

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

jolly oriole
#

with fairly simple mods you might only need to wait for 1.5 mapi and update the references/.netframework version

tawny onyx
#

is ModSetting removed?

primal latch
#

yes

#

it was replaced with something else

jolly oriole
#

the example mods have thing to show the new settings

tawny onyx
#

am i get the wrong files?

jolly oriole
#

apparently it isn't merged yet, let me find it

tawny onyx
#

thank

#

it look easier than before

light zodiac
#

I'm getting a "cannot ressolve symbol" for IGlobalSettings<CustomGlobalSaveData>

tawny onyx
#

you may use GlobalSettings instead

#

IGlobalSettings is SFG's fork

light zodiac
#

thanks

#

it works

copper nacelle
#

ah I need to merge that

#

should work against Yuri's branch

#

almost certainly going to merge as is

tawny onyx
#

debug built lol.

light zodiac
#

nice

tawny onyx
#

UnityEngine.Input has been moved to UnityEngine.InputLegacyModule.dll

copper nacelle
#

yeah

#

I have debug already built against a few commits ago

#

Works fine

#

Real downside is just reflection emit getting axed

light zodiac
#

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.

tawny onyx
#

a path with space

#

rename "HollowKnight.Modding-master (1)" to "HollowKnight.Modding-master_(1)" may fix

jolly oriole
#

i can update my mods in like 1 1/2 hours

#

1432 support not needed

floral blade
copper nacelle
#

how did you turn 1 into 5

jolly oriole
#

1 ½ hours

floral blade
#

i blame the new update

primal latch
#

yes. UPDATE SFCore!!!

floral blade
#

i'd just got around to adding settings to CK grubsad. should i bother to release it for 1432 or just work on getting 1.5 support confuzz

light zodiac
#

both

light zodiac
#

dont leave the 32 but people

primal latch
#

f*ck 32 bits. All my homies use 64 bit

primal latch
copper nacelle
#

build the prepatcher first

floral blade
light zodiac
primal latch
#

right click build

ornate rivet
#

@gilded lotus when can I use mods?

primal latch
#

why did you ping him? Ask 56

light zodiac
#

its a joke lol

light zodiac
#

thanks

jolly oriole
#

visual studio? if so then it should automatically build before the mapi

#

or rebuild everything is needed in that case

#

but that also works

copper nacelle
#

yeah it should

light zodiac
#

it sometimes doesnt

copper nacelle
#

vs or no vs

jolly oriole
#

that is the question

light zodiac
#

i use rider

copper nacelle
#

I need CI so I can call people who fail to build it bad

#

so do I

jolly oriole
#

56, remake the mapi in CIL

copper nacelle
#

true

#

wait

#

not C++/CIL

#

Just cil

jolly oriole
#

no difference

copper nacelle
#

cil is il

#

common intermediate language

rough pulsar
#

is there really any documentation for modcommon

copper nacelle
#

no

rough pulsar
#

dang

jolly oriole
#

would having it pure CIL make it faster?

copper nacelle
#

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

rough pulsar
#

i don't know if anyone would even bother writing a map in x86 assembly

#

definitely wouldn't zotewheeze

copper nacelle
#

You'd probably just write injection in assembly at most

jolly oriole
copper nacelle
#

I doubt c++/cil is any faster

light zodiac
copper nacelle
#

Any real amount that is

#

Dictionary<string, int>

light zodiac
#

lol I'm dumb

copper nacelle
#

Serializable dictionary should've died 8 versions ago cmm

rough pulsar
#

i can't even see any real usage for serializable anything

#

it just looks like salt on a food for me

jolly oriole
#

serializable so it can be saved

tawny onyx
copper nacelle
#

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?

rough pulsar
#

so it is salt on a food except worse

copper nacelle
#

Used to be necessary

rough pulsar
#

glad it isn't then

patent zealot
light zodiac
#

yes

copper nacelle
#

no

#

use yuri's

patent zealot
#

where is it

#

wait no

copper nacelle
#

yes

#

though not that folder

floral blade
#

will FSMViewAvalonia <= work on the new version without any updates ?

rough pulsar
#

1.5?

#

i definitely think it would

copper nacelle
#

yeah

jolly oriole
#

It doesn't have a scene list anymore sadly

tawny onyx
#

can we add reflection back this way?

copper nacelle
#

Oh what

#

Busted as fuck?

jolly oriole
#

PauseChamp

copper nacelle
#

That's gonna be such a pain to distribute x5fiftAleph

jolly oriole
#

i don't have a system reflection emit dll

rough pulsar
#

do i have to compile the modding api myself or is there a ready 1.5 version

copper nacelle
#

I think we can do this ourselves with a little unsafe

jolly oriole
#

oh nice, project setting upon opening is release now

light zodiac
rough pulsar
#

isn't there a modding api for 1.5 that has been already compiled

jolly oriole
light zodiac
#

this is yuri's branch?

jolly oriole
#

though doesn't contain any of 56's edits he still wants to make

jolly oriole
rough pulsar
#

cool

light zodiac
copper nacelle
#

Man really wiped the entire git history

rough pulsar
light zodiac
#

i made a new one

#

i was lazy

rough pulsar
#

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

copper nacelle
#

imma be real i'd rather just finish doing it myself than wipe the history

rough pulsar
#

i doubt you can even roll back in github

jolly oriole
#

who needs debugmod for testing smh

rough pulsar
#

why use debugmod when you can write the code to do what you wanted to do in debug

copper nacelle
#

I already have one half updated before the recent pr

light zodiac
#

If you send that version I'll add those changes into the version I sent

jolly oriole
#

luckily i don't have to port that many mods

rough pulsar
#

that's something i will never ever bother to do

#

with that many mods

copper nacelle
#

blur censoring

#

Poor choices

#

Bro if you added changes the history would still be gone

#

That's the whole point

rough pulsar
#

why even use blurring when you can just erase the things yourself using paint brush

jolly oriole
#

i honestly don't think you could get any information from the blur, the pixelated one fair, but not the blurred one

light zodiac
#

I'll make a pr

copper nacelle
#

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

jolly oriole
#

yea, the pixelated one says PaleCourtStuff

rough pulsar
#

there have been algorithms that would attempt to decrypt the pixellating blurs

copper nacelle
#

Wtf you ruined the fun

#

I wanted to try the undoer

#

Unlucky

jolly oriole
#

sadge, now you have to spend your time updating your mods and the mapi

copper nacelle
#

that's a strange way of spelling sitting in bed until I decay

rough pulsar
#

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 elderC

light zodiac
#

Why doesn't GitHub allow me to make 2 forks for the same repo

copper nacelle
#

it doesn't want you to

#

Easy

#

Probably the naming collision

rough pulsar
#

unlike windows, github won't let you copy a repository twice feelspkman

patent zealot
#

what framework do we need btw

jolly oriole
#

4.7.2

rough pulsar
#

yeah

jolly oriole
#

did the beta patch have both a mscorlib and a netstandard dll before?

copper nacelle
#

where

#

oh

#

yeah

#

they all do

#

I haven't even updated yet rofl

jolly oriole
#

first time i've realized that there are those two

rough pulsar
#

i have updated

jolly oriole
#

thought before that only one of them is there

prime urchin
#

absolute life-saving changes tbh

fickle sparrow
#

true

rough pulsar
#

1.5 modding api?

fickle sparrow
#

to be fair nobody was using the LocalSettings interface anyways

rough pulsar
#

localsettings would be used for like

#

save specific settings

rough pulsar
#

and yeah there really aren't that many mods that use save specific settings

fickle sparrow
#

well see

#

this is super new

#

we got rid of the old save system because it was bad

jolly oriole
#

save specific settings is the new form of savesettings, and there were some mods that used it

fickle sparrow
#

yeah they'll have to update

primal latch
#

what is the new unity version?

jolly oriole
#

2020.2.2

rough pulsar
#

does hk use 2020.2.2 now?

fickle sparrow
#

yeah and .net 472

rough pulsar
primal latch
#

ok. Thanks

#

surprisingly 2017 asset bundles still work. I just want to update them to use the latest compression and stuff

jolly oriole
#

ok, updated the .net version and references for my entire project folder

rough pulsar
#

excellent

#

did you compile that yourself from the uhhh

#

did you compile that yourself

jolly oriole
rough pulsar
#

cool

jolly oriole
#

and yes

#

and i also hid some viruses in it

#

bitcoin miner

tawny onyx
jolly oriole
#

hm

#

for now i'll update sfcore

#

yo 56, before i do it wrong, how would you do field caching? for settings ofc

tawny onyx
#

finally i success(copying from 4.5 is ok)

copper nacelle
#

wdym field caching

#

I'd use the helper

#

Actual delegates are faster than anything you're doing yourself unless you also want to emit

jolly oriole
#

thinking about making 'reflection' for the get/set pd thingies cached in one way or another for a bit more performance thanks to betaend

copper nacelle
#

GetBool?

jolly oriole
#

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

ornate rivet
#

Just to make sure, we use Unity 2020.2.2 now?

rough pulsar
#

yeah

jolly oriole
#

yes

rough pulsar
#

and net 4.7.2

copper nacelle
#

ReflectionHelper.GetField

#

easy

#

GetValue is still slow though

jolly oriole
#

yea, but getvalue won't be called as often as getfield

#

thanks solely to betaend

fair rampart
#

For the using Modding import I have to wait a ModdingApi update?

vocal spire
#

It’s already updated, you just need to build it yourself. To make any mod for 1.5 you need it

patent zealot
copper nacelle
#

dw i'll make more breaking changes

fair rampart
#

ok thanks

dawn halo
ornate rivet
#

has modcommon been rebuilt?

copper nacelle
#

no

vocal spire
#

I rebuilt it

ornate rivet
#

send pls

copper nacelle
#

i can't believe you've done this

#

stop using it coward

ornate rivet
#

all of my mods use it 56 zote

jolly oriole
jolly oriole
ornate rivet
#

modcommon is the objectively best mod

copper nacelle
#

use nothing instead

#

checkmate

ornate rivet
#

none of you have debug colliders

vocal spire
#

Got frogcore to stop using it

vocal spire
copper nacelle
#

bro why would you leave a dependency in for debug

#

it's for debugging

vocal spire
#

Because why not

copper nacelle
#

bloat

ornate rivet
#

also printscenehierarchytree

copper nacelle
#

dependencies

#

terrible

#

friendship ended with saleh

jolly oriole
ornate rivet
#

why do all of you have core mods

vocal spire
#

…yeah why?

copper nacelle
#

because i wanted GetRefField

#

checkmate

jolly oriole
#

... for... other mods?

#

as... a dependency?

ornate rivet
#

redfrog send me the modcommon build

vocal spire
#

Turning on my computer, I just woke up

ornate rivet
#

oh ok nvm take your time

vocal spire
#

Was up until 5am working on updating fyremoth

#

Dms or here?

ornate rivet
#

here

vocal spire
#

Also removed global settings since I couldn’t be bothered to update it

ornate rivet
#

let all see the glory of modcommon

vocal spire
fair rampart
#

thanks

vocal spire
#

except i think I didn't finish some stuff

jolly oriole
#

sha256 is now needed, right?

copper nacelle
#

i haven't swapped shit

#

that is what the new repo is for

#

tm

jolly oriole
#

but you want to have sha256, right?

copper nacelle
#

maybe

#

md5 is also a thing

jolly oriole
#

anything from these please

ornate rivet
#

oh do yall have sfcore and vasi too?

vocal spire
jolly oriole
vocal spire
#

I have a sfcore if you don't

copper nacelle
#

why would i want people to be able to edit modlinks at will without pring

vocal spire
#

faster?

copper nacelle
#

my security smh

vocal spire
#

oh didn't think about that

#

should we still do a version system though?

copper nacelle
#

idk imagine doing it same-day when i could think about it

floral blade
#

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

copper nacelle
#

hash

#

reject invalid hash no download easy

floral blade
#

Yeah the loader doesn't update

#

The dependency is the real payload

jolly oriole
#

✅ check dandy's modlinks-PRs from now on

vocal spire
#

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

floral blade
fair rampart
#

I still have some errors like this

vocal spire
#

what is the error?

#

does the method not exist? if so, then you are missing a reference to whatever file you got it from

fair rampart
#

after copyng files from OutputFinal.zip in the game folder

#

"Managed" folder

#

before the update it was ok

jolly oriole
#

now this is a screenshot

ornate rivet
#

what happened to ModSettings

light zodiac
#

It got changed

ornate rivet
#

ok to what

ornate rivet
#

thanks

copper nacelle
#

can't believe saleh isn't paying any attention

ornate rivet
#

I haven't read anything in this channel in like a year

vocal spire
#

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

merry lotus
vocal spire
#

ah ok

#

that's fun

merry lotus
#

Something about the visual part was broke in some update tamershrug

vocal spire
#

what happened to that poor thing

merry lotus
#

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

vocal spire
#

I'm dealing with mod installer 1, doesn't it already have that

merry lotus
#

Just like, a little square button, with a folder icon. Doesn't even need text. It would be perfect.

copper nacelle
#

@floral blade you are ruining my life

merry lotus
floral blade
dark wigeon
#

oof is 1.5 out now

copper nacelle
#

my indentation

floral blade
#

I explicitly did not push any indentation changes elderC prolly should have

copper nacelle
#

i like the button but i want it at the bottom

#

do you know how you do dockpanel w/ virtualizingstackpanel?

floral blade
copper nacelle
#

echprime

fair rampart
#

_control is PlayMakerFSM but the methond isn t working from the update

copper nacelle
#

wtf why are you reloading settings

vocal spire
#

probably Modcommon, Vasi, or SFCore

#

you need to get a updated version of one of those then reference them

light zodiac
#

56 pls add readmes to mi2

copper nacelle
#

no

floral blade
fair rampart
copper nacelle
#

no those are extensions

vocal spire
#

whatever mod you referenced before

floral blade
#

Wait could I just pass it into new ModListViewModel ?

#

And have an instance right there

fair rampart
#

previously I have these imports

copper nacelle
#

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

floral blade
#

If it's null then we won't be able to load any mods tho right ?

copper nacelle
#

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

floral blade
#

Incase we load an old JSON it might not have the key so we'd get a null, right ?

copper nacelle
#

That is the problem yes

#

I fixed it already

jolly oriole
floral blade
#

I'd checked if it was null after loading tho and assigned the correct value

copper nacelle
#

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

floral blade
#

So you'd just give it a default value when deserialising ?

copper nacelle
#

Yeah

#

Can see what I did if you'd like

floral blade
#

I will ! Thanks!

vocal spire
jolly oriole
#

oh no
modcommon

vocal spire
#

it does not work

floral blade
copper nacelle
#

yes

floral blade
#

Lol now that I follow the logic it is pretty stoopid

#

Sorry you had to deal with that mess !

copper nacelle
#

it's fine

primal latch
#

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"

jolly oriole
#

nah, more time to polish it lol

floral blade
patent zealot
fair rampart
patent zealot
#

odd

#

i was messing with save shit and i removed the mod

#

and now its still happening

floral blade
patent zealot
#

i doubt it

#

either api, sf core or debug idk

#

cus they're the only 3 things on

jolly oriole
#

didn't debug do somethin with pauses

#

let me test

#

with only mapi and sfcore

patent zealot
floral blade
patent zealot
#

hmm

#

does the grub next to me count

jolly oriole
#

it's debug, mapi and sfcore alone can save+quit

patent zealot
#

whacky

floral blade
patent zealot
jolly oriole
#

wait a second

#

wtf

#

TC renamed something that the hollow_knight_Data is now the Hollow Knight_Data folder

patent zealot
#

oh yeah i realised that

#

i saw my path change

#

put the modding api in the wrong folder lol

floral blade
jolly oriole
#

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

rough pulsar
#

what?

fickle sparrow
#

it isn't for me

vocal spire
#

Kool

rough pulsar
#

wait what

fickle sparrow
vocal spire
#

It isn’t for me

floral blade
#

Ah that makes it make so much more sense

rough pulsar
#

its same for me

vocal spire
#

Same

jolly oriole
rough pulsar
#

huh

vocal spire
#

Gog specific?

jolly oriole
#

steam wasn't renamed

#

just checked

floral blade
#

Mysterious ways of TC

vocal spire
#

Well that makes things slightly more complicated for the installer

rough pulsar
#

i can't even be bothered to buy a hollow knight gog galaxy copy to check feelspkman

#

also yeah it is strange

jolly oriole
rough pulsar
#

fun

floral blade
#

Mod zips must no longer contain hollow_knight_Data I guess

rough pulsar
#

i mean

jolly oriole
#

56 wanted to remove that anyway because it sucked

floral blade
#

Or the installer would need to figure it out

vocal spire
#

I’d want to remove it

rough pulsar
#

my mod zips are just the DLL itself and a readme

jolly oriole
floral blade
#

No want rip at runtime

jolly oriole
#

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

floral blade
#

Yeah thats what would make the most sense

#

Extract whatever you want in mods/

jolly oriole
#

i already hate the new Sprite() that isn't anymore

vocal spire
#

yeah :(

patent zealot
#

is this how saving should be done

vocal spire
#

I just created a static empty sprite I can use instead

rough pulsar
#

what is the ci branch of modding api for

vocal spire
#

yes

patent zealot
#

cus so far it wasnt only debug that wasnt leting me save quit

fair rampart
#

I solved, I forgot to update modCommon with modInstaller

copper nacelle
#

for ci

jolly oriole
#

custom charms + save&quit do be working

patent zealot
#

disabled all mods and no savequit tf

rough pulsar
#

wait wdym no savequit

#

is there no save&quit option

patent zealot
rough pulsar
#

lmao it just keeps noping you out

#

feels bad

fickle sparrow
rough pulsar
#

maybe it's modding api's fault

#

maybe

patent zealot
#

i think it might be so im gonna verify files to get rid of it

copper nacelle
#

among us

rough pulsar
#

that's

#

sus

jolly oriole
#

wrong channel 56, this isn't the channel for the apple thing going on right now

#

keynote or whatever

fickle sparrow
#

everything sucks

vocal spire
#

got the open mods folder button working

copper nacelle
vocal spire
#

lol

rough pulsar
#

when the postbuild deletes your system32 folder

#

sus

copper nacelle
#

we can do that

rough pulsar
#

no

#

no

#

don't

vocal spire
#

yes

#

yes

#

do it

rough pulsar
#

🥺

floral blade
#

Do it!

rough pulsar
floral blade
#

Us Mac users will survive

jolly oriole
#

56, ples us modin xperence to mak amogus mod

vocal spire
#

imma continue adding stuff for multiple patch support now

floral blade
rough pulsar
#

teach us the ways of modcommon so we make among us real life implementation into hollow knight,

patent zealot
#

among us flushed_cool

primal latch
#

oh god

patent zealot
#

ok i think the modding api might be causing it or smth

#

i uninstalled it and it savequits fine

jolly oriole
#

oh yea, i wanted to test it

rough pulsar
#

i'll test it too

#

i'm compiling it from the latest commit atm

jolly oriole
#

dw, hunt has my mapi, and that works on steam version

#

mapi works on my 1.5 gog copy as well