#archived-modding-development
1 messages · Page 524 of 1
I mean
are you loading all of the textures in your Initialize code lmao
cause that would make it freeze on load
this doesn't seem like a problem with the api tho
you are in fact
let me comment that bit and check
ITogglableMod on enable calls Initialize again btw
yep need to refactor it to be toggleable again
isn't there a / too much
///// just goes down to /
oh
Yuri it works like magic , it was CK doing CK things
nice
what do i name the dung defender sprite sheet?
dirtyboi.png
oh so i can name it what i want, i guess the name isnt the reason why its not working then
@radiant basin try this instead
i have 0 idea how to do that, its probably not working because i got this wrong
Did you add the PNG as an embedded resources?
AH
does the new xml need an assemblyinfo.cs? because then the assembly version tag in the xml is unnecessary
okay ill try that too thanks
Does washer knight work in HoG?
i think so
it might cuz preloads
it works now thank you!
and yeah it works in HoG
i'm curious what're you planning on making ogrim into?
i want to make the sprites when he rumbles his chest into the "me when beans" ones
so just distorted
okay
i dont know what you're referring to but that sounds like it might be fun
warped boss vs uwu knight
id send it here but ill probably get smited lol its usually spammed in #hk-meme often
Dandy make washer knight roll into a ball of old clothes
see the problem is the art skill that does not exist lol
if you give me the godump i could probably do something as thanks for helping me with this
i went there and it was the first thing i saw lol
niice
yeah dont use assemblyinfo.cs
its useless
also the godump for dung defender would be nice because godump just doesnt make atlases for me
#art-discussion pins
in case that was directed at me , you've already helped me by making the uwu expressions on a new layer
those dont work in spritepacker
they need the animateable versions
i shall attempt a dump defender
bro python fucking sucks
put in multiple lines for fucking reasons, i hate regex in programming languages
re.sub(
"\\\\\\.\\\\\\.\\\\\\\\\\.\\\\\\.\\\\\\\\\\.\\\\\\.\\\\GOG\\\\Hollow Knight \\d\\.\\d((\\.\\d)+)? (Modded|Vanilla)\\\\Hollow Knight_Data\\\\Managed\\\\",
"$(HollowKnightRefs)/",
groupChild.getElementsByTagName("HintPath")[0].firstChild.wholeText
)
ive changed it here but it still does it as WasherKnights
i mean in the .csproj file
bruh
have you heard of my boy
this bit
r"raw string"
i managed to do it through the properties instead
fuck this i'm removing this regex
so true
did you mean the thing in the game said washerknights?
no the .dll file
glad you got it working then !
thanks to you!
dump defender
hell yeah thanks
@light zodiac is it possible to make everything left-aligned, instead of toggleable ones being left-aligned and sub-menu ones being centered? It looks odd, imo.
||I've only loosely been keeping up with the new menu talk, so if this is completely irrelevant with this current version of the 1.5 mods, then I'm sorry 🙃||
Dwarf you testing 1.5 stuff
?
tbh imo the centre vs. left align is very functional, especially when you have a separate toggle and settings in the same list
there needs to be some visual distinction, even if it looks a tiny bit messy
yeah and thats how vanilla does it
Ah. Does it at least auto sort all toggles to the top always then? (They are currently in alphabetical order, so I can't tell just from these)
its mod load order
mod load order is fucked
i'mma prolly finish my 1.5 CK build this week unless Yuri adds more cool stuff then, imma send it over to you 
but wont all toggleables be looped first then the menus ?
i have a fork of mapi where i have sorting them in the order they are needed, but 56 told me to not have that because apparently the types are there regardless, so i'll give the shoutouts for having that weird order
no its just mod load order
@fickle sparrow
i said it doesnt
when
ah it's one for 2 ifs and not 2 ifs 2 fors
found it
yeah i only iter through once
Imo, it's really jarring to have the two different kinds of alignments close like that, and if they weren't coincidentally sorted right now, I would have visual difficulties with it. I personally don't have visual issues like this too bad, as far as it goes, but it may be something to consider, as I know people who will definitely have issues with it if there are more mods there. (The primary difficulty if that if they are mixed up, the center-aligned ones are easy to visually/mentally "skip over")
ideally now the same mod won't have both, so might be worth doing it twice ?
have you looked at the vanilla menus
Is it possible for custom knight mod to change items/spells prompts?
i cant really sort them
no sort just all toggleables then all menus
cant do that
Yes? I don't see that happen anywhere in Vanilla menus 
And yeah, if you can't do anything about it, that's fine- I just thought I'd mention it.
it's better UX though
I honestly just feel like it's always worth mentioning something if it may be an accessibility issues, even if it's not as significant of an issue as other kinds.
I'd put it at the same level as "some fonts are more difficult for certain people to read", which is also something that is not a huge issue, but is something that people can often address if notified about it.
what do you mean by 'prompts' ? and probably not yet
oh man the roar animation is only 3 frames its gonna be hard to make the distortion look right
this should be nice
Prompts are the UI when you find abilities and spells
Showing knight holding or ulitizes
gotcha, and yeah they're not skinnable yet
Good to know
i think my script to change the v15 xml to the "god" xml is good now, but i probably need to add something like project guid before actually using those new xmls
why didnt you link it before
smh
Is there a way to allign the button or do I have to do it manually with adding spaces?
How?
It's created by mapi
$"{icmmod.GetName()}_Settings" do I look for this object or something?
yeah just search for it tbh
this config is all possible I just didn't want to bloat the config structs with it
but if you look at the source you can see the structure
I had a cool PR prepared that added an option to open up a console that would log everything with a designated colour, but I just realised that I am using the windows API to attach a console and I couldn’t find a way to do it on max and linux
Now I’m sad
You might be able to just output to a log file and open a "tail" command on Linux / mac
Not sure if the colors would work then tho
Then I could just tail the mod log file right?
coloured ingame log would be poggers
They probably wouldn’t since I would then have to output colours to mod log which means it becomes hard to read
I could try adding colours in game
just screw over unix people and push it
Nah. I think I got a way
Just wondering: is tail a default command on macOS and linux?
don't output color codes to a text file
I wasn’t planning to
I was planning to just not support colours on unix-based systems
I was firstly planning to add it to an external console
And I could just make it a setting
In game colour console
I mean when you add text to the console you can just inject a color tag for unity to handle
The actual file writing being completely unaffected if you do this only on the console
That was what I was planning
But I need to know if tail is a default command on macOS and unix
why
if you're doing things to the in game log, can you also put a black image behind it, so its readable everywhere
transparent black also works
I could do that
I think tail is coreutils
And an option to resize the console if it's not too much work
Damn. Let’s just rewrite the console
I think so
literally wtf
This will be my first major contribution to the mapi
??
why tf do you need tail
I have no way to directly output to an external console on macOS and linux
Otherwise I could also inject colour into the macOS and linux console
The original idea for this PR was to add a setting to open up a second window with a console that way it doesn’t obstruct the game view and you can have the output on a secondary screen
Can unity not open two windows?
On windows I can use the winapi to create a new console window, but since this uses the winapi I can’t do this on other platforms
There doesn’t seem to be a way
how do i change the player's setting like ingame brightness
Process proc = new System.Diagnostics.Process ();
proc.StartInfo.FileName = "/bin/bash";
sus
Wait…. Not everything might have bash
does that actually pop up a window even
No. You still have to call proc.Start();
I mean on start does it not just spawn a subprocess
?
like if I fork and then execvp bash when no terminal is open it's not gonna open one
Ah. Good point. I’ll have to look into that
Well, it seems there is no default way to open a console on linux. I’ll just drop it and make improvements to the in-game console
I’m not going through the hassle of creating a seperate console application and calling that from the api
That is a bit excessive for this feature
@light zodiac did you ever get big knight to work ?
wdym ?
as far as bad ideas go you could run a webserver and Application.OpenURL 
screenflashes every frame
some vanilla thingy must be resetting knight x scale back to 1 only if it is > 1, i recall seeing something like that and being "smol knight is < 1 so meh" lol
would you happen to recall where that was
i barely know how to view FSMs so it is likely in herocontroller itself but i can check once again tonight
too much work
lol found it
time to fix bug to make bug bigger
how can i get started with making Hk mods?
in case you already know some unity & basic programming
https://radiance.host/apidocs/Getting-Started.html#creating-mods
else you'd do those before hand
hmmmm what classifies as basic programming unity not very well
ty btw
You can't just not post a video lol
i was recording
You gotta become one with WinKey + Alt + G
Glorious !! now all you need to do is make every step shake the screen and increase nail knockback like heavy blow does
is it too big?
I'd didn't realise just scaling up would automatically make the knight slow but that makes sense for it to feel slow
As compared to the animation speed the ground covered reduces a lot
i could increase walk speed
No it's good
Big characters need to slow down a bit under their weight imo
some people dont like screensshake
Can always be a setting, bass boosted thump sound for walking might have a similar effect
This is amazing I imagine kaiju fights now
time to do pv
Someone needs to make pv skin that makes it gojira
My two cents: make it in between that size and base Knight size. It'll still feel big, but will be more interesting gameplay.
Like 2x scale ?
Fun idea, the knight's scale increases by 0.1 every second , so hitbox keeps increasing, getting in some damage resets the timer but not the scale that'd reset only if you die or kill a boss
ignore the fact that i got recked
It looks better than I imagined
now to add the hkmp stuff i just casually yeeted 
and make it toggleable using "big" / "beeg" in name yeah ?
or how about i dont add it
watch as someone adds both smol and big knight and is confused lol
i wanted to make this so you can press key to toggle size
it would work, but not when HKMP , because you need to also let the other players' games know
for single player it would work
so single player it is definately not because I'm lazy
there is a way to make it work, but it's a one time trick lol
tie both biggen / smollen to an animation & make the knight play that anim. when any of the player objects from HKMP play the same clip change their localScale.
it won't work across scene transitions, but for temporary transformations it can work.
it can be made to work across scene transitions if you play the correct animation byforce after each scene transition lol
time to learn how to tie it to animations
its 1 mod btw
yep i meant if you used the HKMP name thing someone could make their name "smol big knight"
is setvignette only used in HKMP stuff?
nope it needs to be done only for local player
but always
no but like before each of its use you check transform.gameObject.name.StartsWith("Player Container")
!
ok
ah
might have been easier to just check transform.gameObject == HeroController.instance.gameObject
do not worry @cedar hemlock
<#archived-modding-help message>
1.5 will reduce some of this
hopefully xD
the new mod menu , if adopted by major mods will take all this out of pause menu
Imagine not having your mod settings in the dedicated settings tab.
Our settings have been in there from the moment we added them
our?
communism
Oh god. You found the secret lore behind the colours red and gold in Fyremoth
why does fyremoth even have settings
even before modmenu existed ? 😮
yes. Isn't there a mod tab in settings?
Settings to activate compatibility with other mods (gives you a flamethrower with hollowpoint)
yes but apart from a toggle there werent a lot of things one could easily add
in 1.4
eh kinda works, i need to adjust the colours a bit more i think
could also make the dung balls into balls of beans
how do i do that?
PFFT
incase you end up doing that, pls also change their NPC text to be a funny meme
for 1.4 yes i think
1.4 🤢
1.4 is the best
nope
yes
nope
yes
net 3.5 can die
1.5 literally ruined my life
sounds like a you problem
is that me when beans
yes
For what?
wait sorry
Hooking?
for the hook? you need to reference Modding
do i need a reference?
reference Assembly C-Sharp (modded one)
^
which i assume you did
Welcome to the modding experience
is this 1432
yeah
Language.Language
that didnt work either
show
ohh sorry
yes that works thank you!
how do i find out what the key for the dung defender starting text is?
Stretch it
where does the game do the thing where it damages the parent if a child's hitbox is hit?
HitTaker.Hit
thanks
which xml?
The recursion depth seems to not actually affect it for some reason?
I did this
On.HitTaker.Hit += (orig, targetGameObject, instance, depth) =>
{
bool checker = Regex.IsMatch(targetGameObject.name, "^W\\d$");
if (checker || targetGameObject.name == "Whip") return;
orig(targetGameObject, instance, depth);
};
And hitting the children still hurts the parent

gimme
very nice
im being dumb i dont know where this language xml is,,
it'd be easier to log it MTmerm
if you log it you can just search in your modlog.txt
ohh i see but i dont get how to use this properly
i think you just need to add this in your hook
Log($"key: {key}, sheet: {sheet}, text: {Language.Language.GetInternal(key,sheet)}");
ah thank you!
it will put in your modlog all for all text that the game fetches while it runs the key, the sheet and the text
so if you search the text you can find the key and sheet
heck it didnt work, i think ill just leave it as is and work on the sprites for now
ah yes the leave a problem and it becomes easier to solve when you come back to it technique
it works quite well for me
<@&283547423706447872>
DUNG_DEFENDER_MAIN is the key for Dung
DUNG_DEFENDER_SUB is key for Defender
THANK YOU!!
so would this be the code?
I assume you want it to say me when beans

oh yes i had beans defender in my head fjdkahkfj
Make main "Me when" and sub as beans
or
🇲 🇪
when beans
Too much me for a meme
like this? it didnt work ingame
Where did you add Modhook.LanguageGetHook
where am i supposed to add it?
Initialize
Modhook.LanguageGetHook += methodname
i made a meme mod
no need for instance anymore?
and isn't it Modhooks.instance.LanguageGetHook but idk
scene name for directory , GO name for pngs and lang key for text
all tk2dsprites go brrr
Add this to custom knight tbh
custom knight only changes the knight
It was/is
i think
when Mul said we could find the GO on scene change i was like i has ideas
well considering customknight already changes charms too....
this is for 1.4
I don't remember washer knight being purple?
its not i was just trying to see if it would override preloads and it does
is there a download link?
Testing purposes
this one is purple for testing
its easier but messier
ah that changed
didn't you know, all washing machines are purple
No?
Either way your asking the player to find the key
Thanks 
when its done add it to art mods
You could probably check for the actual text like "DUNG"
please go ahead
oh i was gonna offer to do that too lol
I forgot those existed
Can we really add any reskin we want to them?
this is a good idea, except when the same text is repeated elsewhere and you might not want to modify it
well it fits there, as its a package of memes
what
Oh yeah Customknight+
pretty much, all tk2d's but hitbox / size does not change
Supposed to support all sheets
it did not reply to that but ok
I meant Normal custom knight
No I meant if we can add specifically to the art mods
Like just add a extra stuff page
I thought they were complete
This is nice
So we can just add an ever-growing pile of shitposting to them
i can add it to CK but then i would need to support skin packs and the whole UI for it
Skin packs?
Btw if anyone here is good with editing sheets while keeping the animation fluid and feels like doing something for me please tell me
Don't worry
Redfrog is adding it to CK+
like people might want to mod all skins for all bosses for example
and if someone has multiple skins for same boss they'd need support to swap ingame
you could just add it to the "packs" that current skins have
like how charms are added
A quick search shows me a instance of CK+ showing up in redfrogs chat as far back as September 2020
this can work, beyond this player can customise the directories
First add initial stuff then think of additional features
could you guys give me colours (names or rgb codes) for all log levels?
Or you can make boss pack selection be separate from knight skin selection
Black for fine
Red for warn
Yellow for debug
Transparent for normal
whats the difference between fine and normal lol
Sorry white
what colour for error?
cool
Green
red for error ,no?
Errors = good
yeah. Then what about warn?
that is a new doc
Just turn log level to 0 in API settings and find out
is 0 high or low
0 is all
ah ok
in order of reducing urgency
Red
Yellow
White
Blue
Grey
this is what i'd do
grey for something you can ignore lol
got a point
blue / white would be normal
But you gotto use green for errors
coming soon to a globalsettings near you
colorblind moment
@radiant basin why here though
because ive been talking about it here
i think convo's passed dude
nice, i assume you'd also want to skin the actual projectile like that ?
sorry about that
yep ive already done that
no worries dude
Would this replace apidocs? Because they do be nice to have docs for the more advanced stuff, like reflection and il
articles section meme
The real reason he asking this is because he wants to put SFCore in there
considering adding support for this using a global stringreplace.txt
best of both ideas
Though the person authoring the skin would still need to know the scene & GO's name , might just be easier to compile a list of common GOs and keys lol
does debug show all lang keys as they are accessed ?
Global setting file exists
Makes sure it's not placed wrong
i assume these would be packaged with the skins , like owo knight might want owo THK for example
so the text would also be selectable by selecting the skin
Globalsettings file? Packaged?
Just generate a normal globalsetting file and make a dict where you ask for key and change
yes, that would allow the player to change the text right ?
Yes
but not the skin maker to change the text and share that with the skin
didnt consider that
I got colours kinda working.... but it gives all of the log the colour of the last log
as in most recent one colors the older ones ?
atleast theres color
you might need to make each log a separate text thingy if you want individually color them
nah. I got a way
is there color code magic ? or rich text html scam ?
looking kinda bad
anyone got beter colours/hex color codes?
and anyone got a color for the OFF level?
I get it probably isn't used, but I just want to add it to be complete
I'll just make it white
i think if the blue were cyan it would work
ah i see
how can I view this cameraShakeFSM? I tried opening Assembly-CSharp.dll in the fsm viewer; it opens an FSM Selector window with zero available selections
'they' referring to current apidocs
fsm viewer needs to open other game resources
what kind of file is valid to open? I tried opening a couple .resource files but the app just closes (crashes?)
atleast, with the avalonia viewer i think you'd give it your game's path and then open a scene via scene list or the resources.assets
I'm using https://github.com/nesrak1/HollowKnightFSMView/releases/tag/1.1 which I found pinned
you might want to use https://github.com/nesrak1/FSMViewAvalonia
is more recently updated too i think
ah ok
I clicked "Open resources.assets" and it opened hk relevant stuff....does it have that default coded? How did it know what I wanted?
i think it might have picked the install location from steam
i don't really know it is all magic code to me lol
fsmview picks steam path for those options, avalonia defaults to steam but can be customized
https://hollowknight-modding.github.io/HollowKnight.Modding/api/Modding.Converters.Vector2Converter.html holy shit my fucking docs are top-notch
thanks! I have the camera shake fsm open; I'm trying to see if I can find where the new CameraShakeMultiplier fits in. I'm new to all this
(update: the multiplier is in code, not the fsm)
beans
how to i see how far a player is from the nearest floor
beans
shoutouts
??
dam
customisable colors when
gonna add a rainbow log to sfcore then
after much pain and stackoverflow it works, case insensitive global replace
replace.txt is like
Elder, Cool Dude
Rest, Do a sit
gotta remove the space
why is info cyan now i gotto do all my logs in debug
uh, did it end up being something like
var outStr = str.ToUpper().Replace(myOtherString.ToUpper(), myThirdString);
?
do commas show up in game text?
if so it could break
i'd only get the color from the switch case tbh
that's possible
no sadly, regex magic
should I add customisable colors?
yes, eye sore
alright
solving this is such a pain 
store it in json
i was gonna but then people gotta format it correctly or it stops working
but why replace, isn't lang changer (forgot the name) not enough?
this can run into the same problem, imma just make it #dandy-pls-replace-with# no way tc uses it lol
the longest lang string in the game:
In wilds beyond they speak your name with reverence and regret,For none could tame our savage souls yet you the challenge met,Under palest watch, you taught, you changed. Base instincts were redeemed,A world you gave to bug and beast as they had never dreamed. - Excerpt from Ode to Hallownest by Monomon the TeacherOur cherished dreams you granted and delivered more,But in dismay you found too late our desires had no end,What cost to tame our savagery? You gave your all and then gave more.Yet still desires lay unquenched, more dreams remained, your energies spent.Amongst it sprang a dreadful scourge,that forced return our aggressive urge,and turned us back to beasts or husks,Our souls consumed by light above.Within your corpse can still be heard the plaintiff cries of one,Who took our pain, and loss, and dreams inside itself to...Through it' pain we found a truth that must now be confessed,For nothing can contain such things but perfect emptiness.
adding it into the mod such that people can skin a boss and change it's text / surrounding flavor text easily and share that
' should be replaced with something
probably "'", but then the "s" is still missing
I marked the pr as ready for review
i was kidding but how about elder=>cooldude
not that bad tbh
right that's what i do then
i think i like it this way lol more meme potential
use the key for precise serious mods , use replace when memeing
In case anyone wants to test it (1.4.3.2)
to replace a tk2dsprite : mods/Swapster/<scene-name>/<gameobjectname>.png
to replace a text with it's key : mods/Swapster/<scene-name>/<key>.txt
(scene-name here is just for organisation, the text will update globally)
to replace a text without it's key (Find & replace style) : add in
mods/Swapster/replace.txt
elDer=>Cool Dude
edit from the future : if using this version you NEED to have atleast one folder inside the /Swapster directory. it can be anything as long as it exists.
I plan to merge this in CK for 1.5 , where it'll probably be mods/CustomKnight/<skin>/Swapster/... to allow skin authors to skin a lot more stuff
Make it 1.5 and I'll test
CK has a lot of pending stuff, i can try building the DLL against 1.5 mapi with the hooks changed if that works ?
Well, this PR I created is officially the most work I ever put into a PR
Now I'll just have to move the settings to a new class
I'll do that tomorrow
Says this while casually Ignoring fyremoth
Imma just stop developing ck+, this is basically 1/4 of the features
nooooooooooooooooooooo
just copy it so you have 25% less mod to make
~~its not like you were making ck+ anyways
~~
what happened here that redfrog want to stop with ck+ 
this happened
the part about making totally custom animations with arbitrary sprite sizes was the bigger allure of CK+ to me anyways
dll for 1.5
What do you use for this?
wdym ?
1.4 + how to : #archived-modding-development message
1.5 : #archived-modding-development message
anything obvious in modlog?
folder structure
GameObject Hollow Knight Boss not found in scene Room_Final_Boss_Core
so its my fault ig
_ ?
is debug accurate?
what you've done seems correct, i am suspecting it just does not exist in the room after scene transition + 1 frame
i've seen some wierd names tc ig
the go do be called "Hollow Knight Boss"
try this code
this
yield return new WaitUntil(() => GameObject.Find(BossName));
that destroys frames while its waiting
changing sprites >>> fps
fps > anything else
i also dunno if it is just this one sprite right ? Swapster could be changing anything in any room
even multiple things in the same room
show current code
1 frame is not allways there
i has problem applying stuff to markoth in HoG cuz he takes forever to spawn
i dont get it
why foreach each game object
just find the one you are looking for
activescenechanged is way better for sprite changing, you can change sprites without any coroutine
CurrentScene is a list of GOs i need to skin
oh makes sense
this happens after the scene has changed i guess, could change it to this
i might fall back to looking for them in update if all GOs are not found
like one for each GO ?
you also have to consider the case of erroneous pngs in the folder
is that better than doing a GameObject.Find in update ?
i mean idk how many times a second the WaitUntil predicate is checked
if i did a find in update i'd add a couple of seconds between searches at-least
unless i completely misunderstood how WaitUntil works
if not find then wait frame and try again next frame is how i understood it work
so once per frame ?
if you are gonna do that wait for like max 10-15 seconds and then just give up of that
yep that's what i was thinking either that or exponential backoff
or just yeet the file from the folder
could you share these ?
1.5 THK is different?
no i mean the sprite for thk in 1.4 is differently laid out i think
yep
thats why i asked you to send me the thingy lol
yeah but like it doesnt load for the first 2s then freeze frame then skin loads lol
i might do disk access on scene change anyway , and only save the apply part
wow the thing that roars in THK fight is not the boss GO?

wouldnt it make sense for the roar to not be a part of THK since there are other bosses with a roar?
no not the roar the THK that roars
oh lmao
yep trying to set that GO's sprite that makes it work on scene load as well, even though now i have added the thingy in update to check
1.5 with check during update
Whats happening with that fanmade modded dlc thats like a whole new area but it looks like the white palace
Test of Teamwork released already
technically not fully done since there's more to it but the platforming challenge part has been released
you'll have to revert to 1.4 hk to play it though
Mul I thought about the problem where skin authors need to find keys / go names and sprites.
I'm thinking I'll just add a toggle that dumps that information for the scenes they visit / text they encountered
It'll be slow as all heck, but it'll make it easy to figure the structure out
doesnt sound like a good idea
because lag
maybe like a key that toggles it. because if they have to toggle it from the start of the game its going to be alot of uncessary info
yeah pretty much,
like you turn it on in settings and then go visit the scene / see the text > the /dump directiory now has swapster's folder stucture with the png & txt files
and then turn it off
I already did this for 1.4 btw, its just not easily swappable (just see my github) and the sprite was made by @naive nimbus for credit
wdym it's not easily swappable ?
Well to swap the sprite for THK you need to add it to the project, and change the name of the sprite in the code and compile it
Dandy solves that problem by asking the user to figure it out
Eh i didn't really make the mod, Redfrog Godfriend and SFG did most of the work lol
I still need to remake it for 1.5
you could just use swapster once it's out
makes it simpler to make skins from a lot of things in game
I made it for someone because i liked the skin, so i'm not going to use someone else's mod
Plus i get some 1.5 practice
you do realise dumping sprites is actually really laggy
i tried to dump only inventory stuff it still took liek a minute
idk about text tho
yes super ded it'll make the game
boss name can be found by debug
and room name by benchwarp
so would that be problem solved?
The point was it'd be easier for the skin author to do this than dig through multiple resources to figure out how to make it work
getting scene name , GO name , sprite.png & key.txt all things are separate resources
but does it work for bosses with multiple spritesheets
text is probably cheap if i write it at once in the end
which ones are those ? it just replaces the texture in tk2d sprite of a GO
tmg, nkg, radiance, absrad and possibly a few others as well
if they have different GOs for the different sprites it would work, i might need to add additional checks for when to find the GO and apply the skin to make it a smoother transition though
it'll check it for radiance once tonight
Well, I'm stupid. I'm moving the console settings to a new file. The save file is loaded when log has been called the first time. The problem is that the load function also logs things.
https://github.com/HollowKnight-Modding/HollowKnight.Modding/pull/56 what should I still do?
I don't really feel like adding the option to resize the console
I just set the console settings to their default before loading
I don't think I should make it more complicate by adding an option for all log functions if they should log with color or not
@floral blade could you maybe test it on mac? I don’t think it makes a difference, but I just want to be sure
sure , if you send me the dll , i can test after work
It should be in the artefacts of the latest test run
This should be the unix build
@copper nacelle what is your opinion on my pr?
why is the console settings a different file
you just want a field in the modhooks global settings with the console settings so it doesn't clutter the top level
I had that
also you should rebase and drop the worktree commit
Rebase?
git rebase
Ok. So should I put it back into the globalsettings?
I mean it should be part of the modhooks global settings but not directly as 20 fields
modhooks -> other struct/class -> fields
I have no idea how to do that.
Just add a field for the console settings into the globalsettings class?
yeah
Ok. I’ll do that later today
@radiant basin what are the methods you've tried already to get the text working
i tried this
welp, time to do some logging
here goes nothing
bruh why is hollow point fix version 0.0
i have 10 sec before my modlog become 10 gyg ;-;
worked 1st time! @radiant basin
lemme send it
hell yeah!!
PFFT
YEAH!!
thanks!!
ill use the image i made yesterday gimme a moment
but does it have the text
oh, no its just this
i can just say that its been updated to replace the text though
ah nice
it seems like you did 2 things wrong, which were easy to fix
- there was no
ModHooks.Instance.LanguageGetHook += Beans;
```In initialize
oh yeah i tried to put that in but i think i was being dumb about it
If I type that I just get Current branch master is up to date.
private string LanguageGet(string key, string sheetTitle)
{
if (key == "DUNG_DEFENDER_MAIN")
{
return "Me When";
}
if (key == "DUNG_DEFENDER_SUB")
{
return "Beans";
}
return Language.Language.GetInternal(key, sheet);
}
```Is not correct, it must be
```cs
private string Beans(string key, string sheetTitle)
{
//Log("Languagegethook called");
if (key == "DUNG_DEFENDER_MAIN")
{
//Log("Dung_Defender_Main found");
return "Me When";
}
if (key == "DUNG_DEFENDER_SUB")
{
//Log("Dung_Defender_Sub found");
return "Beans";
}
/*Log("Key:");
Log(key);
Log("");
Log("sheetTitle:");
Log(sheetTitle);*/
return Language.Language.GetInternal(key, sheetTitle);
}
ohhhh
notice: sheetTitle instead of sheet
How do I rebase my PR? When just typing git rebase I get Current branch master is up to date.
Try git rebase -i HEAD~n where n is the number of commits you want to rebase (not 100% sure but I think it works)
I'm just gonna close the PR and recreate it. I messed some stuff up badly
https://github.com/HollowKnight-Modding/HollowKnight.Modding/pull/57 recreate the PR without messing things up
rebased and redpilled
redpilled?
don't worry about it 🥴
ok
"me when beans" 💀
How does the modding API merge the Assembly-CSharp and Assmebly-CSharp.mm assemblies? I couldn't find it in the csproj or sln files
nevermind. Got it
> open mail program
> 13 new mails
YEP github
why did this have to tell me like 700 lines of how i could make my projects better, smh, 'reference this package through nuget isntead of referencing it directly' smh
it's good
so should i use the system nuget packages or link directly to the games assemblies
IDK why that happened
That always happens
yes
the thing i don't like about that is that those assemblies could be different from the games ones
they're reference assemblies they should be identical api wise
the only weird one is mscorlib
the tool made those 4 identical ones for no reason smh
shouldn't mscorlib also have the same functions
yea dw, i would've stolen from one of your mods made it like that regardless
i'm just amazed that the tool put debug/release for 32/64 bit all on the same level
wait, $(TargetName)? $(AssemblyTitle) should probably also work, so imma use that lol
how is that targetname set though? i kinda need to customize it for my unity mod dlls so i don't have to rename them each time i build
to the project name?
idk it just sets it correctly
just asking because i do need to have the projects TestOfTeamwork and TestOfTeamworkScripts both output a TestOfTeamwork.dll
TargetName just gets set to whatever the name of the built DLL is


the new way just looks a bit odd
better cross platform
ok, edited my projects to the new xml, though i still need to readd the nice after build thing to nearly all of them, also need to do that hkrefs thing
can also do a Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " for assembly signing
Small question: Why does the API use a log level instead of a bool for every level? Maybe you want to log fine but not info. Just adds a bit more customisation
thanks mods
because it's quasi-standard to have a log level and show everything from the selected one and those below (above? idk how it's orderd logically)
Ok. I just wanted to know what prompted the decision.
nvm, just figured it out
yeah essentially the log levels are actual levels
cause its assumed that if you want all debug info you also want all really bad errors
how do you do this
has anyone tried debugging with detours on 1.5
It's probably not the best idea but you basically see what animation clip is being played to take an action (for all remote players)
When you want to transmit the command for said action, you just play that animation ( on local player)
The multiplayer mod takes the clip name and plays it on all clients ( where you're listening for that clip to perform the action )
This does mean that if the animation is played actually in game then the mod for remote players will still assume it was a command and perform the action.
The reason I call it a one time trick is because once a mod uses an animation, any other mod using the same animation is incompatible with it.
(this is also why I prefer changing name to change size in smolknight)
Me when i start typing something in vs
Is there any way to get loaded save id or no?
By other means other than modhooks
are there any recources on how to make mods?
yes, once a save is loaded that slot id is saved, though idk what the field is called
profileID
which animation could i use
appart from this I'm pretty happy with the state of the mod
Quick question: why is the mapi build the same for macOS and unix? I get macOS is build on unix, but there has to be a reason that unity has seperate options for macOS and linux right?
Also, does anyone have a .75 modcommon build? I’m too lazy to port the 1.4 version myself
Fyremoth relies on it. I don’t even know why
Thanks
sfcore 
if you mean modcommon: that's a great question
if you mean sfcore: that's because of title screen, menu theme and possibly other things as well
I meant modcommon
then that's a great question
is there a source code for bonfire mod
actually i just wanna know if there is any chance to set the carefree melody chance to a set number
Edit FSMs
I think
oh
nope, carefree melody chance is entirely in code
i guess i can do something like this right
to make the player invincible and it works in TakeDamageHook i hope
is modding possible without the modding-api?
i... no
you need mapi to even make a class based on mod
oh wait
editing assembly is one thing
Yes if you don't care about compatibility
is there a list of all translateable strings
yes
I changed the ending to .txt and it opens
ok
Can somebody answer this?
Dont mean to rush or pressure, just out of pure curiosity, is there a modding client being developed for 1.5?
Yeah it's still prett much wip
Thanks
Just cause im wondering, 1.4 seems to be causing input lag for me
with no way to fix it sadly
and i wanted to play modded, but the game is unfun while being on 1.4
Well you shouldn't really use 1.5 if you are not making mods
?
Since 1.4 mods won't work on 1.5 modding api
that makes sense
that statement without context is just plain wrong, but with context it do be making sense
Uh yeah
I think the problem for my input lies in that my system is 64bit while 1.4 is 32 bit
i may be an idiot but thats really the only difference i can find
its that or the modding API is just bonkers for me for some reason
i mean, do you have input lag with vanilla 1.5? if no then it's probably the bit difference, if still idk if 1.5 modded can fix that
Don't know if it's just me, has anyone got random glitches that soft locks you and you can't even do anything other than closing down the game in 1.5 modded?
nope
Dang it it's just me then
Vanilla 1.4 works normally
so its the modding API thats screwing me over
Maybe sending log files could help
The parameter here is the target scene right
You could always log it and find out
last I checked that hook is garbage ngl
i can't even check which direction the hero is leaving from in any of these hooks 😔
lmao
🪝
I don't remember which one tho I'll check later
Why would you need direction
reasons


I should make a less shit scene changed hook
And kill the old ones
They're only triggered on sync loads I think 
"ones"? there are multiple?
i only use the unity active scene changed one
Question:
I assume not, but is there a dedicated HK-Modding discord? If not, is there a reason?
Most games i play that have modding communities, tend to have a dedicated server for modding, which allows for more space for various things, like a dedicated 1.5 modding channel vs 1.4 vs old-patches; mod devs could have their own channels for bigger projects, to keep things sorted; channels for more clear updates about stuff (like the Rando Announcement channel on hksc); and just generally more QoL for those who are more interested in HK modding at this point than vanilla.
i'm not aware of any dedicated modding-server, aside of the mod specific ones (hkmp, hk multiplayer) and spread out single channels in other hk servers
Time to bully SRC mods to give us modding section on speedrunning discord
there do be modding and tech-support
But no one uses modding 
that's because it's kept clean of the heathens of hell
very true
I used that for my timer mod to explicity check for sync loads

Is Modding hidden?
ye
👍
Just wondering: if the json file being read wrong causes issues, why don’t we use the build in way of newtonsoft.json to validate it?
the what
I mean we error on invalid json reads
cause its better to error than to silently do something else
is this the right build ? no colors show up for me on mac using this
thanks it works now!
@floral blade
I have question
Why is hkmp stuff in UpdatePlayer function even tho it has its own UpdateHKMPPlayers function
UpdateHKMPPlayers updates remote players
UpdatePlayer updates local player, even when connected to an HKMP server
The reason to divide them as such was because local player's GO is different from remote players
also there seems to be something wrong with the false here
makes sense
yeah that's my bad lol.
i think we don't need that entire if block
You can just do if(fsm.ActiveStateName != "Normal" (...) but ok


