#archived-modding-development
1 messages · Page 523 of 1
oh yea, that unity xml with the typo in some vector stream function
look in the uimodule xml on line 267 and tell me that it's a vertex st(r)eam
oh lol
yay
kill me
no, first pale court
true
as far as this goes, mostly in response to the problems people had/feedback given
removed the nullable stuff as you can return orig and that was confusing anyways
and then simplified the bool tryget stuff to just use a return
removed 'orig' from langget vs current as people didn't think it was too helpful
generally this should be easier to use now, the main change from 1432 just being that sets return instead of setting themselves and gets get the original value
hopefully not too much of a pain to update but i think it'll be nice
new hk update again?
was in the middle of debugging fyremoth, then steam is updating hk....
I may or may not have also crashed steam
api built for new patch https://drive.google.com/file/d/1BN9YfKRrfqikpQqHYyNw-voRo8ZrdLrL/view?usp=sharing
[ERROR]:[API] - Error: System.NullReferenceException: Object reference not set to an instance of an object
[ERROR]:[API] - at System.Delegate.Combine (System.Delegate a, System.Delegate b) [0x00030] in <9577ac7a62ef43179789031239ba8798>:0
[ERROR]:[API] - at Modding.ModHooks.add_LanguageGetHook (Modding.LanguageGetProxy value) [0x00008] in <c2a48dab016a4177be1ebaa8c1a99f48>:0
[ERROR]:[API] - at Fyremoth.Fyremoth.InitCallbacks () [0x00013] in <858ad8b8baf0461eabc995e5fc05b2ed>:0
[ERROR]:[API] - at Fyremoth.Fyremoth.Initialize (System.Collections.Generic.Dictionary`2[TKey,TValue] preloadedObjects) [0x0015b] in <858ad8b8baf0461eabc995e5fc05b2ed>:0
[ERROR]:[API] - at Modding.ModLoader.LoadMod (Modding.IMod mod, System.Boolean updateModText, System.Boolean changeSettings, System.Collections.Generic.Dictionary`2[TKey,TValue] preloadedObjects) [0x00047] in <c2a48dab016a4177be1ebaa8c1a99f48>:0
[ERROR]:[API] - at Modding.ModLoader+<LoadMods>d__8.MoveNext () [0x00534] in <c2a48dab016a4177be1ebaa8c1a99f48>:0 ```
strange error
something tells me I did something else wrong
Seems to just be a problem with LanguageGet
I cloned and built the api
That’s all
tried again with the one from actions with the same result
the one from actions is about one hk version old
well I did something very wrong
verified files, was fine, tried again with the built one, same result
imma sleep for now
Did they update how they implement language?
Isn’t this mentioned in the modding help pins?
Fyremoth leaks but not really
is the mapi in actions updated to .75?
I meant to reply to the hk update message but mobile sucks
As long as the latest commit says "updated ci to .72", no
@light zodiac frog posted a build
Although it is probably broken
thanks
Seems to be an issue with registering the callback
Is our way of using hooks up to date?
Idk
How would you know?
why did you ask then bro
https://github.com/HollowKnight-Modding/HollowKnight.Modding/commit/140c4fb9d640b1f2a8ef89feef23b54404f03e41 does this fix the issue with mac zips?
I asked frog
idk what this means
There was an issue with zips by macOS that created a wierd file that also had the extension .dll and that crashed the game
should then ig?
Wait, you added that to the mapi itself? Lmao
epic
someone dedicated enough could hide both top left list and the icon 
if you're hiding the icon without modifying the API it gets kinda obvious you get me
it's also clearer than like the tiny text
it's also fun
not perfect obv
yeah
though i think this is sufficient reason for doing it lol
passed my exam, so now i can port mods to the new MApi / hk version
smh, not verified commits
everyone is too lazy to make a GPG key 
don't worry, like 10% of 56's commits are verified
oh no, i have to build myself, no ci for it smh
congrats
thanks
What's that spaghetti doing there?
it's amazing, isn't it?
Is it entirely functional?
it's about as functional as the other sprites
No the mapi
it do be working
afaik 56 still wants to remake a bit of it, but most of it is done
mul posted it a bit earlier
here
a few
i believe modhooks are static more idk (exept 2020 and 4.7.2 )
Why thank you 
Is there any documentation yet?
not that i know but i haven't been keeping up date rly
modhooks static, the signatures of those also changed afaik
save settings changed
new modmenu stuff
set/get player bool/int/string hook, language.gethook, reflectionhelper changed
can you, perhaps, send me basic documentation/a list of changes?
If it's not too much
It probably is though
56 put examples follow those
link?
in the repo
oh damn, sfcore even gets an update, the item helper now should show amount of items you have (36 rancid eggs count as a single item) / total amount of items (121 rancid eggs count as a single item)
well, not "now", but when i upload it
so like a count of held type of items / total types of items ?
yes
before (or currently, depending on how you want it) it displays the numbers of the hunters journal
ah cool
did you also test the bug I sent here?
i hate discord
also: why does the mapi use a custom version of mscorlib?
to have reflection.emit
on it after i ported the entirety of sfcore
ok
apparently building it just now worked, so
i just add a counted item with a custom sprite, right?
Expansion of my flappy knight idea:
The player is a shade, and they're looking for their hollow shell (the mask they drop on death),player has infinite 'jumps' and touching any and all walls damages the shade. picking up the shell allows the player to play as the knight for a short duration of time but every shell breaks eventually.
defeating THK is just a way of stealing their shell, permanently.
@primal latch ping for visibility
what do you mean?
how you encountered the bug
<@&283547423706447872>
<@&283547423706447872>
<@&283547423706447872>
too late
lol
lol
lmao that was fast
They do it in several channels
I didn't encounter it. @lofty quiver did
that is already done, but i'll try to get 2 simple keys ig
Hey, can i help?
sfcore itemhelper bug, 2 keys displaying flower sprite
Yea, if you need i can send a screen, but not now...
Damn
Ok

weird flex but ok lol
I don't even own this game for 3 months on PC
I got it for free around 3 months ago when I volunteered for Fyremoth
where was a debug build for .75 again?
you mean of the mapi?
nah, debug mod
Don't think there is one
@copper nacelle I used steamcmd to download the unix version so you don't have to: https://github.com/HollowKnight-Modding/HollowKnight.Modding/pull/54
thanks
is there a .75 modcommon build?
uh, can others try to debug themselves geo? i don't get the geo
I do get it
hm, weird
ok, setint and getint hooks don't seem to work like the docs suggest they do
having
private int OnSetPlayerIntHook(string target, int orig)
{
return orig;
}
makes it so i never get geo and possibly any other pd int

debug as in use debug mod to get geo?
both
get works fine
I'm able to get geo using debug mod
same
i know how to fix the setint hook, i'll just throw an exception and then it will work
oh I'm bad
return.png
does anyone have a .75 build of modcommon?
I’ve got one that kinda works
Same one I used for other 1.5 patches
for some wierd reason
🤔 what
Has that been my problem
yes
My Modcommon fails to load but the library part is fine
I will figure out why that happens
imagine having anything fail
Did you really think I’d put in the effort to slightly change modcommon’s code?
not really
not updating legacy code 
change every method to
throw new NotImplementedException();
Ah yes I love when windows stops working 
@floral blade why is my big knight doing this
oh my god
Iirc you need to hook some extra methods (ex: turning) for it to look smooth
turning?
beeg knight
also why doesnt it become big from y and x. currently is only becoming big on y
Did you change Look left look right hooks ?
56, can you remove that single line? it's literally killing everything rn
i just changed 0.5 to 5
that is probably the reason then
wait a second, i could just make that change myself
I might have hard-coded 0.5 somewhere lol
i changed that but it still doesnt change the knights x scale
There's also the setscale fsm thingy
in setVignette?
Oh wait there's also the check to see if you're actually smol or not
currentPlayerIsSmol = ( (playerTransform.localScale.x*playerTransform.localScale.x) < currentScale ) && ((playerTransform.localScale.y*playerTransform.localScale.y) < currentScale );
Yes but this should only impact if HKMP is on iirc
Maybe there's a vanilla check to fix x scale ?
oh damn, i appear to have made an error with selecting the sprite to display
defaultSprites["Simple Key"] = (Sprite) UObject.Instantiate(equipmentGo.FindGameObjectInChildren("Xun Flower")
nice
that explains the report
I'm just gonna yeet everything that related to hkmp for now
Makes sense
For now you could try removing the check on time and call smol / beeg every playerUpdate and see if that works as expected
Iirc that makes the knight flash different sizes, might be remembering wrong tho
Yes but the hooks are overriding the scale in smolknight anyway
does the chinese translation use traditional or simplified chinese?
nvm, appears to be simplified
more custom text (lower right corner)
@light zodiac seems to be working fine! (edit: figured it out)
a feature request though: can you change the number of the save in the save select screen to match it's backup number ?
I don't get what you mean?
this is save 12, yet the number says 4
This should save as save 12
And it does
Just the menu didn't update because uimanager needs to be destroyed for getmenuscreen to be called again which is required to generate new buttons
this looks great! could the note be made static / the first thing the player sees ?
it does save as 12, it just keeps saying 4 on the left
you can always manually do the menu stuff btw
you can call the update thingy
Oh like that
i call it manually to update ck
for example, i just keep a reference and call menuSetting.RefreshValueFromGameSettings() to update the horizontal lists
yeah
all of the actual Modding.Menu code should be able to just be done through user code
yes i tried that, made a custom knight entry beside mods lol was fun
that's how i figured mods menu was being yeeted
yeah if you don't even want to use the ICustomMenuMod shit
you just hook on to UIManager.EditMenus
i like this because this gives mods a standard place to live, the only other menu system i'd go to is if something like weavercore's taskbar thingy was in mapi itself.
so that players didn't need to go in 2 level deep menus
mhm
I might look into making a better way to add things directly to the options menu?
I'll see
yeah, i don't see debug / benchwarp using this, for example
I don't want to pollute the option menu though
please consider a small taskbar like menu on the top of the screen, that can be hidden
if i want this i will steal mods menu code 
i'm not sure what you mean, it's basically the same menu / control logic right ? just shows up on top
yes, pretty much
it would be tiny and would auto hide 
part of my goal for the mod stuff built into the api
no more clutter on pause menu even for mods like debug
is to replicate the look and feel of vanilla menus
and this would be a fairly dramatic break from that
that is true, the menu looks and feels seamless i cannot argue with that 
yeah they look seamless because I spent like a month or something reverse engineering all of the structures 
also I'm not sure how controller players would navigate something like that
cause it might be kinda counter intuitive
the only reason i want something like that to be a part of mapi is :
it gives everyone a clear incentive to use the standard way of doing it rather than a bunch of ways of implementing it existing & it would be better than current pause menu clutter that exists.
wait what pause menu clutter
i agree that there's not a simple solution for controller players either, because that would be kind of upto the mod to implement, just a standard way to show / hide a mod's interface is all i ask
honestly though like
keybind to show the menu
its possible in game I think
maybe
debug + benchwarp + hkmp + customknight on 1.4.3.2 was a mess if one didn't use the hide menu option of each of them for example.
oh is it because they like
A lot of mods in 1.4 use their own menus on the pause screen, and they overlap of you have some of them at the same time. Some mods are adding ways to toggle their UI, but it's not a standard
yes this
too burried in for something like benchwarp / debug , sadly.
Does the mods menu currently go Options > Mods in 1.5, like in 1.4? Because a simple change of putting Mods into the top menu would already be nice.
Possibly a shortcut code could be put in to pull it up too, like SHIFT + [Pause button] could pause and instantly open mod options. ||(This might be overkill though.)||
that was actually really easy lol
and not stick everything in the option menu
i was just being stupid
if you wanted you could add a custom keybind to pause -> switch to menu
just create a coro thats like
I meant put the button for mod menu in the top pause menu, assuming it's currently in the options menu. I haven't messed around with the 1.5 API stuff, so for all I know is already there.
so like GameManager.instance.TogglePause() and then UIManager.instance.UIGoToDynamicMenu(yourscreen) to open that screen?
it is in options currently
the problem is : if it's upto mods to implement a pause menu they'd all come up with different solutions and it'll be back to the old setup pretty soon i think and then show/hide the keybindings setup is back again where you have to hide all other mods before you use one and so on and so forth.
instead if we could have a "hide all mod uis except this one" button that was part of the api itself i feel like a lot more mods would be onboard with that
you see
you can have bindable keybinds now
and this would interface directly to the menu
so it would be hide all mod uis except this one
maybe i'm missing it but how does one achieve this ?
with custom pause menu UIs i.e.
yield return GameManage.instance.PauseGameToggle();
if(GameManager.instance.gameState == GameState.PAUSED) {
yield return UIManager.instance.GoToDynamicMenu(myMenuScreen);
}
basically this
im not sure if you need to iterate through the two things that are being yield return'd
but its a solid maybe
anyways
yes but custom menus just draw whatever they want when the game is paused right ? 
no
they would use the menu api
you can place text panels and shit on the menu screens
oh if they all used the menu api then it would work
yes
yes
like you can just create a MenuScreen wrapped around your custom drawing
all of this garbage is optional
yep gotcha, now to just incentivise people to use this in their mods vs just drawing beside pause menu
well I mean
its super easy to like
kinda use the menu
so if they don't use it

trolling imo
i like it , i just want it to be used a bunch so i can have my mods and my clean pause menu
yeah
I just need to make sure of something
uh
what does this do
it just adds a single frame delay to the start wtf
w h a t
local girl is incredibly confused
How would I add a boss to godhome?
well it kinda works
its just slow
I'm gonna implement a patch that moves it directly to the screen
i present to you my bad krita edit
that's going to be effort lol
and i dont need that text anymore
each of those "CK" is a button that directly does this magic
Does the modding.menu stuff reload on language change?
doubt it
smh
lang integration is extreme effort
create a component that auto edits the text tbh
Ok
that exists though
Yeah
yeah then just add that
its so easy
adding it to the api is so much effort
and way too many settings for it imo
(- textfield)
- sheettitle
- textkey
but also pretty & would solve this issue for most people, a horizontal scroll would be avoidable by using a ">" key to go to next page
it also makes accessing mod menus a pause + one click without cluttering the pause menu itself too much
that completely breaks the vanilla feel honestly
so I'd rather not include it in the api
people can add this themselves its super easy
I have the out variables for a reason
yeah but then it's not a standard so no one would do it 😦
Just switch the text for Lang keys
either way i think i won't change your mind
i accept defeat
fine I might add a lang key meme
if C# had sum types it would be like so much nicer
with this maybe i can consider moving debug UI to the mod menu
I am adding something to make it easier
I'll wait for that ig
yeeted it
Gonna all be in the MAPI?
no i yeeted it and copied thingies into my mod
nah, other lib mods or copy pasted into the mod
Oh shit
SFCore when
So I'm gonna have to copy in all the fsm stuff?
oh fuck, there was something
works for now, still want to add docs
who needs docs
true, some helpers have a single public function, idk if i need to tell the people what that function is called
mms
forcing modders to play ag nice
what's ag ?
All staGs
i am just as confused now as i was earlier lol , do they mean that they cant save and quit so they need to get all stags to finish the game ?
yuri
no need to autotranslate
or: have those as additional methods and let the users care about having the correct lang strings
all glitches
oh the one where the menu makes one float ?
ok this is working
I also uh
broke the mods that use menus
🥴 they just need to be recompiled
🥴
look whats a little breakage
its not my fault C# handles optional arguments in a scuffed way
anyways tldr
free trick
idk if the null check is really useful but can't be too safe
you can also call PauseToggleDynamicMenu(menuScreen, true) to be able to actually toggle it instead of only opening it
nice
I spent like 10 minutes trying to figure out why the the menu wasn't closing
and then I realized I forgot to set the ui state to paused

also if you wanted to add some sort of taskbar
I think you should be able to get all of the loaded menu mods and construct it yourself
basically a budget modlistmenu
I'm like 35% sure you can get a list of all loaded mods
from outside code without reflection
of course you can just use reflection if you need to but 
I guess I can cache the built menu screens or something
and expose them to a public thingy
?
i love letting others handle things
alright
BuiltModMenuScreens gets wiped each EditMenus call
wait I made a funny error
actually I doubt anything will happen
why am i bothering with letting users pick unique names? but do i want to generate random strings?
With ICustomMenu is Getmenuscreen called before the mods initialize?
after
its called at the same time as IMenuMod btw
Nice. I just wanted to know whether I would get screwed over for including a dict in init and looking for that
yeah you can totally do that
so does it get wiped or no?
so if i'd just do var x = ModHooks.LoadedModInstances() at some point for example , do i need to worry about the mods disappearing from the list ?
if they get toggled off for example
nah none of them actually get mutated
when the menus are rebuilt
BuiltModMenuScreens will become a new dict
but the old one wont get cleared
so the references my mod holds will be useless ?
yeah
just acquire a new reference the frame after EditMenus I think
or something like that
playerupdate it is then ah yes
either way its functionally the same
because I can't really guarantee the order of EditMenus
most likely your hook will be after modlistmenu though
like just reacquire ModHooks.LoadedModInstances when you need to
wait so if i understand correctly GetMenuScreen could be called multiple times throughout the life of the mod, and devs need to be careful about it
yeah sure
could will
SubmitAction = _ => UIManager.instance.UIGoToDynamicMenu(ModHooks.BuiltModMenuScreens[thisMod])
this will always work as long as thisMod has a menuscreen
alright then this is perfect, mods don't really get added or removed after the initial load
yeah
currently
although when the menus are rebuilt
I'd just iterate through them just to make sure
foreach(IMod mod in ModHooks.LoadedModInstances) {
if(mod is IMenuMod immod) {
//add the button with
SubmitAction = _ => UIManager.instance.UIGoToDynamicMenu(ModHooks.BuiltModMenuScreens[mod]),
// etc etc
}
// same thing for ICustomMenuMod
}
this will lazily evaluate ModHooks.BuiltModMenuScreens
so even if for some reason this is called before ModListMenu is built, it will still work
i still gotta wait till all the mods are loaded though, i don't think there's a way to know right now when that is , correct ?
no the mods all load first
otherwise there is no way any of the mod code would be run
i mean could it be that my mod could be in the middle of the load order and there are other mods that have not been instantiated, yet?
1. Load all mods
2. Call `Initialize` of all mods
3. Create ModListMenu
ah that answers my question
actually
I'm pretty sure this is right?
yeah it is
the constructors run really early
i guess there's the preload objects step after it
either way you don't need to worry about the load order there
only thing that might be sketchy is the ModListMenu?
but I doubt it because you're lazily accessing it
there is another concern, the cancel action on all mod menus' buttons etc will take back to the mods menu and not pause menu
yes that is intended
you click escape to exit the pause menu
vanilla menus work the same way
like theoretically
yep i get that it is intended but if i invoke the menu manually, then wouldnt player expectation be to go back to where they started from ?
you could just call the build menus again right
and set the modlistmenu to the option menu
but like I wouldn't worry about it
yes, that works
like probably don't do that tbh
some mods will probably have side effects in there i am sure of it
yeah thats why I wouldn't do it
most people will be clicking the escape button tbh
true, but it does break the experience a bit.
could the modmenus not take the backmenuscreen when going to a menu ?
(idk if that'd break vanilla)
changing that would require rewriting a shit ton of code
I'd essentially have to keep a global stack of menus and that is hellish
like straight up TCs menu code cannot handle that
and imo its way more effort than its worth
i suppose that makes sense
ideally the menus would have been written with a pushdown statemachine but sadly its hard coded
i hate the delicate flower
even has text that you can't see in-game
yo 56, docs for hooks in front of the delegate or the public static hooktype hookname;?
auto formatter or something
my casts 
and the latter
mostly
Like you describe the hook itself, maybe an example over the hook
and then you explain the args/return over the delegate type
Anyone do know files for gifs soul like focusing (Not for knight) I am looking for ones that does gif on vessel soul(Not mini ones)
I seem couldn't find ones
anyone know if gradow == fifty-six ? I think it is but it's been a long time
They aren’t the same
ok thank you 🙂
also nice name
follow up question: what's gradow's username on github? lol
404'd; i think he changed the name but the xml file is a static link
I think I found it?
thanks ❤️
I want to make custom designs for certain charms, I saw killer whale's skin can do that
So I wonder
What is the file to use? I uses sprites folder from sprite packer usual. Charms aren't in there.
Is it ok to grab bunch of files from #art-discussion pinned? To use for custom skin?
Yes, you can also find the charms in the default skin for CustomKnight iirc
So I got some time on my hand the coming days in the afternoon. What has to be done to the mapi before release?
stare at it really hard
<#archived-modding-help message>
@light zodiac as far as i understand there's a navigation graph thingy, that tells the UI which element to go to when pressing up / down buttons , without that i think controller/keyboard navigation breaks.
how else do you build the menu
one of the previous versions had an auto nav thingy that was removed i think , presumably that did similar stuff
CreateAutoMenuNav removed in https://github.com/HollowKnight-Modding/HollowKnight.Modding/commit/e3c3804823e2c4d061e8ccfbc21bae26713b0435
Still looking for a serious answer
Stare at it really hard
Oooh I know
@primal latch do you think you can start working on documentation
We already have documentation written 
Theres like nothing we are really waiting on ngl
I mean the real thing thats the roadblock is other mods tbh
So if you wanna update those to 1.5 that would make things faster
or at least just tell the devs to update
cause ive been developing my mod on 1.5 for like months now so its totally possible
and yes you gotta use the navigation graph
it should be pretty simple
GridNavGraph is god tier
I'm gonna add more customization in the future to them
I'm pretty sure there are double digit number of mods that are updated
yeah but Im sure some still aren't and its better to not have a bunch of mods break on the new version plus theres not a whole lot that needs to be done to the modding api
Could fsm util stuff be added to the API?
wdym
just use sfcore then imo
Fair
Can you send a link?
so just include the xml
thanks
What xml?
It was like 2 weeks ago imo
No I mean, time for me
but does this stop mapi from having an official and modinstaller from having a beta release ?
I mean yeah we could literally release it rn
but like theres no real thing in the api itself that we are waiting for
Is there a way to remove a mod from the top left of main menu?
Like how toggling mod does
dont think so plus we kinda need that for speedrun validity
dont pause 
i mean one could just build their own mapi for avoiding this
I don't know why, but my old buzzbo mod never appeared for me in the topleft
My reasoning for this is since mods can make custom menus and stuff, the mod menu can have 2 entries for the mod, the toggle switch and the custom menu. It would make sense to add the toggle switch into the custom menu but then the mod still does show up on top left of main menu
It did for others though
It appears if you call initialize?
wdym?
so much effort tbh
Anyways
Suppose I take this and wanna use it https://github.com/HollowKnight-Modding/HollowKnight.Modding
How do I do that
what
toggle inside mod menu is a good idea, the mod can itself handle it's lifecycle
A wait I'm dumb
Go to actions and download the mapi
yeah I was gonna add the toggle inside the mod menu
Just make the toggle list public
But what do I do with whatever is in there?
you download it and use that as refs
Toggle just call unload and add to that dictl/list right?
the what
now this makes sense
ok I have a solution
if you disable a mod using your own toggle it still displays in top left
What will the actual mods use?
because one mod having 2 entries in modmenu
yknow what nevermind, I'll get this on my pc there and then come back when/if I don't unerstand
I'll just pass a param of the action to toggle the mod into the mod menu
and have IToggleableMod have a property to tell if it should be on the main mod menu
so the mod can tell mapi to toggle itself on and off ?
yes
might want it to be only off
it still needs to be IToggleableMod
yeah and
It adds to the dict and calls unload
then there needs to be something to tell mapi if the mod does not want to show up with the toggle in mods menu directly
yeah
thats what I said
I'll add something to IToggleableMod
or actually
something in IMenuMod

this is going to break all mods
that use menu stuff
I read something of "use sfcore" me happy 
but what if i as a bad mod dev tell mapi i will show a toggle so it doesn't need to but i dont
... through clever deduction skill i have concluded that it would then not need to implement the interface at all
break fast move things
would the modlog display count as a modmenu ?
it's info that shows up and can be hidden, but is also an overlay
idk
not really
like things that should be overlayed while the game is playing are a bit out of scope
agreed, no real way to make them interact-able via controller either
because it's busy controlling player
mhm
thats why I don't wanna really touch it
debug is already not able to really be used without a mouse
oh Mul was planning to port debug to modmenu i think
I have done a grand total of 2 buttons from the top menu till now
a mod that after player interacts with a certain ingame object , unloads itself and yeets it's own dll and settings file
You can't yeet you own dll unfortunately
why not ?
i have deleted mods while the game was running before
with IMenuMod mapi adds the toggle?
nope
you have to add it yourself
oh
yeah you still have to put it in the list
but the MenuEntry is preconstructed
if that works, can we just update the modinstaller to work with the amalgamation that is multi patch modlinks or the new modlinks to have the people be satisfied and not ask 36 times per hour in mod help?
guys why is the mod installer not working??? No i haven’t checked the pins
guys it give me it requre most stable version to run!!!!!! what is thismean,
1.5 is not stable 
so fucking true
btws Yuri , any plans on adding a textbox to modmenu ? not sure how it would look with vanilla styles or if it's even a common requirement.
ah you see
thats hard
I can't use unity's textbox
so I'd legit have to code one by hand
which I will get around to at some point
in fact
When i try to follow the tutorial on the modding api for creating an enemy, the code always errors. Does anyone know why?
Also, i'm using Visual Studio if that helps
Here is the code from the website:
And the tutorial: https://radiance.host/apidocs/Assets.html
how would i go about making a mod that replaces sprites for a boss, specifically ogrim?
it would help to say what the error is
why not ? is it not theme-able ?
Isn't this saleh's code?
What code did you use
Prob missing assetbundle
Or a reference
in the case you mean a boss under that name, pale court hasn’t released yet.
If you mean white defender or dung defender, either wait for CustomKnight + to release or look at the code for a mod that replaces the sprites for a boss
simplest way would be to preload ogrim, and replace their spritesheet on game load itself with a sprite in the embedded resource , i can share the code for washer knights if that helps
yeah the washer knights code would be helpful thanks
yeah i meant dung defender
https://github.com/PrashantMohta/washerknights there you go
thanks!
all of the controls are wrong
like the selection and all of that stuff does not act correctly
I tried but it didn't work
you mean the navigation graph bit ?
like the navigation shit itself
yeah all of the keyboard and controller controls
just died
ah could you not just wrap it in a wrapper that uses mapi navigation stuff but inside is unity input ?
well I tried that as well
but its just bad
so much had to be changed that it was just like
why bother
like legit its just easier to write it myself xd
personally i think it would be okay if we could not navigate to it in v1
as long as it emulates the feel of HK's UI since without it all mods will end up using unity's inputbox anyways
but yeah if it is too annoying to work with might be simpler writing your own setup
I mean heres the thing right
if I can't make it feel like the vanilla menu
I'd rather not advertise it to be the thing to use
yes
that makes sense
the only situation where i would consider that better than mods using unity's input is if mapi updates could make it more seamless without mod devs requiring to updating
when i use this do i have to place the horizontal config myself?
is there an in depth guide for using weavercore?
Other mods can use WeaverCore
IIRC it just doesn't have good doumentation for others to read right now? And it currently only works in the Main Menu.
I also wondered about that
really?
I thought a lot of mods used it
like corrupted kin... and a couple others
I asked Nick(? I think Nick, but I'm very forgetful with people that aren't super active) about it a few months ago.. They mentioned that one of the issues with it right now, is just that there's not very much user-friendliness in the way of using it.
Currently, I think that all of the mods that use it, are made by the person that made it, so no docs needed 
it?
weavercore
@charred topaz
did i do something wrong, the toggle option still shows up
https://github.com/TheMulhima/Easier-Pantheon-Practice/blob/master/Source Code/Init.cs
OH
Source code is always a documentation 
YEAH I KNOW WHY
I didn't need to look at my code btw
I just remember coding the bug 
wait nvm
this is correct
you code a bug???? 
tc coded quite a few
yeah I fucked up nvm
so coding a single one isn't that big of a deal
rogue not
uhhhh
don't mind
@floral blade sorry im very new to c# and vs so im a bit confused, theres errors in the washer knights project so i cant build to a dll, did i load it up wrong?
which references did you add
cuz dandy's install is going to be different than yours
probably missing all references to mapi & unity dlls
how do i add those in?
i add them manually, but i know there's supposed to be a visual studio trick to add them easier i just dont know it
i add 1 and copy the path manually in the csprof for the rest
There isn't much documentation on the mod right now since it's still pretty messy and several areas of the mod are subject to major changes. However, one area that I have documented is the Settings Menu and how to create panels https://github.com/nickc01/WeaverCore/blob/master/WeaverCore/Settings/Panel.cs
You can find an example of how it's used in Corrupted Kin : https://github.com/nickc01/Corrupted-Kin/blob/master/Assets/MOD FILES/Scripts/CorruptedKinSettings.cs
Added documentation and guides for my mod is something I really want to get to. I recently finished reworking my crappy compilation system and there's a few other things on my to-do list before i get to it.
ew, would require me to have a weird hollowknightmanaged folder somewhere instead of linking to the gamefiles i do update regularly
@radiant basin you'd want to set the path to these .dll files correctly
you just change the property to your managed folder location I don't see the problem
yeah
thank you
you can change HollowKnightRefs its so clean
... i meant that as in: contributing to other mods' projects requires me to have the hollowknightrefs of the one i'm contributing to
well yes that happens with all of them
theres no way around that because people have different file structures
its better than uploading all the ref dlls in the repo
but this actually works on its own? or does this require something else reffed or something
what
you can change the content of the HollowKnightRefs tag to literally anything
instead of having to change each file path
> i can copy paste that into my .csproj (that's literally it)
> i need some extension or something
which one
what
first one
ok
can you set properties in .csproj.user
or whatever the fuck it's called
I remember I had a different file path so I just added the ref twice to someone's project with a condition for the file existing
Ideal
time to update some mods 
I can find 0 documentation on csproj.user
i should write a python script or something to automate that for me
i don't want to do this by hand
meanwhile me : make a symlink in ./vanilla in each mod and actually point to directory with refs & never commit the symlink
it works 
uh yeah I have a symlink directory in my workspace
but toggling it off doesnt yeet it from top left menu
wdym?
like
apply ?
it will only turn off the mod once you go out of the menu
for performance reasons
is that part of a csproj file? mine look vastly different
i did it in main menu and opened a save to check wheter language.get hook wasnt hook
stop using ugly csproj
true
all my homies hate old csproj
less goo

idk, i use whatever vs generated for me
but I'm using the one i made in my mod
how would i do this?
which inclused this funny
nooooooooooooooo
ok multiple things mul
so like
do you think i copied the project structure from anywhere
all of the CancelActions need to run
the files would be all in your managed directory if you have modding api installed, just add their paths here or create them in the same path structure as the file has right now , where . = current directory
ModToggleDelegates.ApplyChange or w/e
you also need to use SetModEnabled and GetModEnabled for the toggle option
otherwise it wont work
I'm not following
but i will not give this up 😤
btw, my mods are pretty much all set for release whenever the ModInstaller is up with the latest MAPI
did you check against the second modhooks redo meme
i have sfcore ready (and possibly tot? idk)
🥴
you could always send them here for someone to use
You mean the commit where the null and out parameters were removed from some of the hooks, yes
I could, but I was also looking to make an announcement video on it too since IKG's got a new feature
@fickle sparrow even if a mod does not implement IToggleableMod it still gotta handle ModToggleDelegates in GetMenuScreen ?
wait a sec, i just realized that the "god" csproj still has around 200 lines of references
modtoggledelegates will be null if its not toggleable
you don't have to do anything with it if you don't want to
so just change the function signature
yes
makes sense
now to make custom knight toggleable again
no default methods in interfaces sadly
youd probably need a third interface magic to make it work i guess
wait is this a typo ?
um
not my typo though
this means its already there and you dont need to add it again
break the interface easy
you only need to add the reference for the ones with a path in the screenshot i sent

ok my code be working
oh I should add the version description
that would be based and estrogenpilled
as the cool kids say
shit
buttons can't have descriptions
🥴
just add text below it
easy descriptions
cause
idk
I assume I center the description on a button
fuck you all I'm slightly breaking the API
ok this should work
i finally got it to make the dll and it works, thanks!
now the hard part
damn I was so stupid 3 minutes ago
can i do a ModToggleDelegates() ?
i don't really understand what i need to do with it tbh
im gonna upload the code
i hate how vs does this


can anybody write me a python script to make this good (so combing all itemgroups in one and redo the references in the new way)?
what is this and how would i find dung defenders version of it?
check pins for gameobject dumb
it's the scene + object path for a watcher knight
ah ok
in this <#archived-modding-development message>
thank you!
you just look for whatever dung beetle person is called
it works ! but weird that the menu remains
which menu
how else are you going to renable it
so true

wait no i am dumb
lmao
yeah I need the menus to stay for many reasons
lemme see your code
pushing
would this be right?
wouldnt it be better to check the current scene and then find the boss and change its sprite?
idk im just editing dandys washer knights,,
i'm not sure you need the corpse there
unless the corpse uses the same sprite then it could work
yuri i regret asking you for giving mod makers the option to toggle mods
what do you mean you got a spinny cursor though
can I have error logs or something
there wasn't much of a log in modlog , it may be CK doing CK things but it looked like the game froze
you need to activate ModToggleDelegates.ApplyChange in the cancel action or like
a submit button
not when you create the menu
i call it in my apply() function
I feel like this is a problem with your unload code then
its literally a Log lol
can I see the Player.log file
the function is to unload stuff not make logs



