#archived-modding-development
1 messages · Page 522 of 1
how does the mod know it's been reinstalled / updated ?
check if file exists
GetVersion
it would just be usable after a restart ?
the player might re-install the same version of the mod
how to know if discordrpc needs to be installed:
- check current appdomain if discordrpc is part of loaded modules
yeah that makes sense
a file check would work as well i assume
if it does not then add the file and then indicate to the player that we need a restart to work
is a restart needed though?
can't one just Assembly.Load or AppDomain.currentAppDomain.Load?
basing that on what redfrog said, idrk how drpc works
Those had problems iirc since it’s a com assembly or something
ok, then assembly load prob doesn't work, but appdomain load is made for that according to ms docs
everything should be set up for modlinks to be added now, but personally i'll wait with updating my mods until TC releases the next 1.5 patch
the beta branch has 1.5.71.numbers, stable is at 1.5.68.11808
oh 😮
narts can't be nutted on anymore sadly
even though the new/old damage calc is still in the fsm, the old/new one is again used
can we change the value of a variable at a certain FSM event ?
so that every time it happens the new value is used instead of the old one
this is not a single FSM though, like all NPCs FSMs have this thingy
would this second one work to replace all SetScales ?
it worked!
good job
If I understand what you meant then yeah, I do it all the time
That's basically the only thing I do other than insert methods ._.
ik it takes a long time to make skins, but has anyone considered making an actual knight (medieval) skin? I think that it'd be dope, if possible.
also, could someone link a good tool for skin creating
I dont know what to use
Fun fact: they changed the sprite of the hollow knight in 1.5
i would be willing to if someone helps me ngl
I noticed that it was all messed up so Frog ripped it and confirmed it
making a skin alone is difficult
wait there’s a new beta?
oh it was out for 3 days already lol
did they fix nail damage like they claim?
Yes
nice
Can you send frog's rip?
Thanks
How long till we have a full folder of all the sprites?
Most of them didn't change, right?
And the rest just need to be ripped like this one
Hm
How would I get hk’s fonts in the unity editor?
assetstudio
Thanks
or just find perpetua/noto serif CJK SC online
hey, im working on a custom knight skin and there's some inconsistencies in the run animation. namely, i think it takes one frame from another animation and puts it in the middle of the run animation. this means its using a different sprite for the head and it looks really bad on my end. anyone know what animation it pulls from? 😦
anything that might have to do with inbetweens like running start and a little bounce when it hits the ground could do it
if these are not the things there might be something wrong with the file names
i wonder when tc will put their beta branch release onto the stable branch
Let’s first make the mapi for this version public
Well I just realized I probably need to rewrite how I get sprites for gameobjects for CustomKnight +
Why?
you can already get it, so by definition it's public
It's even on the release page now
Nice
As a pre release tho but still
I meant on the mod installer
update the modinstaller to have it work with https://github.com/HollowKnight-Modding/HollowKnight.ModLinks and you're good to go
No multi-patch support 😩
1432 sucks
but you can fork it / make someting similar for other patches, if you make a modinstaller that supports those additional repos
Nah
I’d say: release the api. Get rid of the daily 100+ questions of “hewp 1.5 is bwoken”
then 1.5 is still broken as only like 5 mods are updated
True
so, they'll still say "hewp 1.5 is bwoken" lol
the reason why we need to be able to specify a version
Just wondering: how are you guys planning to roll out 1.5? Seeing as a lot of mods aren’t on 1.5 and a lot of mods probably won’t be updated until the 1.5 api releases
make a warning on the modinstaller that not many mods are compatible with 1.5
maybe on startup/ just on the main menu
Or maybe just wait
Didn't RedFrog/Someone already add multipatch support to mod installer?
he did
Yeah I love being ignored
that was fast
what was ?
stean scam
and mods being fast ?
yep, in <10 seconds
speedrunning
sped
sussy
ヘンタイ
so true
true true
are you under the water saleh?
is there too much raining?
yes
raining something very good
thank you 56
glad this channel is going back to its roots
?
bless you
is there a way to change the attack speed of the knight with mod development?
like 15 attacks per second
something
something
apidocs
i believe you can change the constants found in the player's variables
@fair rampart
ide already displays which variables exist in a class
SFgrenade has this which are the default values
Attack duration or cooldown is prob what you wanna change
too fast for the work knight
or to something very high and call it invulnerable knight
but just to be sure set both attack_cooldown_time, attack_cooldown_time_ch, attack_duration_time and attack_duration_time_ch to something low
attack_duration_time is how long the nail swing is
idk what attack_cooldown_time_ch is
anyone care to explain?
charm - quickslash
oh
ah
does anyone have a way to search for a string in a dll? You can't do that with il/dn spy
but you can
text/number
virgin number vs chad zahl
permanent dung aura 
whoops
permanent gamer odor 
true
modding moment
what happens if we add too many inventory items to the player using sfcore
does it just give up displaying or overlap
i have never tested the journal list limit
probably a good idea for a mod to just add 42069 random items
oh so new inventory items are just in a seperate journal-like tab?
yes
well, if anything adds custom items, the whole inv screen (the one containing dash and stuff) is moved to its own screen
but imma test with the 1.5 version i have already downloaded
im using sfcore
do we want to keep the warning Couldn't find a Hero, make sure one exists in the scene.?
have you tried finding a hero
I mean: it clutters the output_log file and makes it very hard to find an error
does it even log much without misuse from a mod
the hero is missing 
yes. It also logs it in the menu without mods
more than once?
like is it actually spammy
cause you can just use unsafeInstance
for me no
yes
sus
me neither
lemme check
as in, neither modded nor unmodded 1432 spams that when staying in it, may be 1 or 2 lines of it, but not continuously
is it 1.5 that spams it
1 sec
it might just have to do with preloads
1.5.68.11808 vanilla player.log stays at ~3 KB
1.5.68.11808 modded player.log stays at ~22 KB
Just tested without mods on. It might just have to do with preloading
nope
IDK
in my mind it was spammed a lot in the console
do you have mods on
I tried with and without
oh no, reflectionhelper changed
so basically getattr -> getfield?
yeah
silent dying?
nice
Is PlayerData.SetBoolSwappedArgs a function written by TC? (EDIT: apparently it's by the modding api?
)
just writing it works now just fine wtf
Visual Studio is drunk once again
Sigh
Meanwhile I'm in visual studio code because normal vs 2019 lags my computer 🥴
doubt
The API updated to change the signatures of those hooks, to make it clearer when you intend to override the original value.
yeah
if you check the xml i put some examples in and all too
yea, but i don't want to change my method, so i spent 2 hours more to not copy paste them
i'm fairly certain VS will definetly show me that
The API replaces all PD field calls with methods (since fields can't be hooked)
The result is pretty ugly though
and sometimes is even worse, especially with variable gets/sets
So, in the unmodded assembly-csharp, they're all field calls?
yes
huh
and gets
fields are just an offset in memory
Yeah, I knew call was the wrong word, but I couldn't think of what would be inclusive of both read/write
access ig
so having
res = current;
return false;
is to not have a custom string being returned ig
with the first line not even being needed
yes
oh god, res needs to be assigned smh
Apparently "" doesn't create a new string anymore according to SE? string.Empty is definitely prettier though imo
why does github stop doing markup from https://github.com/HollowKnight-Modding/HollowKnight.Modding/blob/master/Assembly-CSharp/ModHooks.cs#L536
theoretically they're interned and so all options use the same amount of memory, ez
ugly though smh
The rest of the markup is also kinda broken or that's how github works
Either way
🥴
smh, pinging people 
if anyone has suggestions on changing the hooks btw feel free
Pre release for a reason
I don't
hooks look nice, though idk why orig is needed for language hook
idk seemed nice to have
kinda wanted it on all of them but that's a pain
could also just have (string orig, ref string current)
would be beter ngl. Having orig for language is kinda wierd
i think i just successfully updated sfcore and tot
time to test 42069 inventory items
apparently it works, just have like 1 fps when scrolling a step
Is it worth considering encapsulating the event arguments? Something like this might be nice
sheet is amazing to have
care to explain?
even though i think no one but me uses it
it's different sheets where you can have the exact same key for a language string
like a different sheet of paper with keys written on it
cool
yeah that might be nice
instead of the get; set;, readonly should also work
^^
...
public readonly string Sheet;
public readonly string Key;
public readonly string Orig;
public readonly string Current;
}
The constructor can still set those values
Only after created it can't ever be set again
Unless i'm wrong
the current needs to be assigned though, after a hook, but otherwise yea
You could also do
public string Sheet { get; init; }
on the newer version of C#, right?
Not sure how important the decision to expose properties or fields is though.
yeah
6969 has like 0.5 seconds to update the scroll position when i press up/down, 42069 like 2 seconds, but otherwise the only limit seems to be ram
Potential use case for orig: you want your modification to the string to be “add some stuff to the end, but only if the current isn’t vastly longer than the orig already”
change it if it hasn't been changed
is also a thing ig
properties vs fields is just a matter of future proofing and a bit of overhead
overhead is bad if i want to do recursion
can you make it new Vector2(0.5f, 0.5f)?
Oh
should put that into a helper that takes a string (possibly the simple file name) and a width and height, saves you some typing
You're right
btw, new texture can be given 2, 2, loadimage will resize the texture
and having file.readallbytes not the best, loading from embedded resource stream is better
Can you show me an example on loading from embedded resource stream
alright I am ready for my lessons on hollowknight modding
How can I find out the file names of the charms?
oh wait, you aren't in vs are you?
if you have it in vs, right click -> properties the file, set it to embedded resource, then address them like the link does in a format like "Assembly.Folderstructure.Filename.extension"
for that it needs to be part of the project ofc
Luckily I already have downloaded the charm sprites from wiki 
but are those accurate to the game sprites
I mean they are certainly not ripped from the game sprites
Just from the wiki instead
All the sprites can be found in art-discussion
yes
It's just as if I found a gold mine
lol
or take this incomplete pack
I am in 1.4.3.2
are they even different than 1.5?
boomer
Idk thought i heard smth about that
Why are you not stealing code from customknight ?

it's got logic to load charms and stuff right ? Just use the sprites for inventory instead ?
I'm just assuming it loads them from file
It does yeah
the default folder
Yes yes, but name arrays and files in the default skin would let you start off
wait it depends
i believe it just doesn't change anything when no skin is selected
It definitely does not
Just shows the menu on pause ?
If you do apply a skin it would apply things from that skin
As Far as I can tell the default folder is more of a resource for people wanting to make skins than an actual "revert me to default"
Because it still loads the default skin from disk lol
Even though it should have a copy of the default sprites in memory
I'm back
I'm just gonna steal the entirety of https://github.com/SFGrenade/TestOfTeamwork/blob/master/Consts/TextureStrings.cs#L61 and modify it into my needs 
smh
did any sprites change in 1.5?
some spritesheets changed, but idk about specific sprites
you mean like the order of the sprites on the sheet?
the spritesheet for the fungal wastes / mantis village got bigger, but that's about all i checked
oh huh really? I'll take a look at that
tbh not really feeling like extracting and organizing 10K files again for the sprite folder, so if nothing got added then I hope I don't need to do that
dw, 1432 only has 3608 sprites/spritesheets
yeah but you can extract a lot of individual sprites, I extracted over 10K with asset studio
yea, but idk if asset studio works with unity 2020
seems like it does
heroupdatehook works if only the knight can be controlled or exists right
Only if it exists and it’s GameObject is active(basically whenever it exists)
Cool
is it possible to trigger a "pause" input from a mod ?
yes
like bring up pause menu and close the pause menu in a way other mods dont break
what are the language string ids thingies for charm descriptions?
everything is possible with mods, the only thing limiting is how difficult those things might be
CHARM_DESC_X
thanks!
i mean i don't want to break other mods by trying to trigger a pause in mine
i guess it would depend on how the other mods detect their pause behaviour
Imagine if there was some sort of an UI where you could change other mods' keybinds
if the mods let anyone to do so
Wouldn't that be awesome
you mean the new custom mod menu ?
You might be able to make something like that with the new custom menu api
I mean close
each mod needs to implement it tho
In 1.5?
Yes
yep
The new menu api is super cool, it works with controller, is in an obvious but out of the way place and looks good with minimal effort
i'm definitely using it in 1.5 CK
please do!!!
I also have documentation for it 😤
it took like a month to reverse engineer HKs menus


what's wrong?
No
Like the method where you return a list of the settings, or the one where you return a menu you’ve set up yourself
oh
uhhhhh
so its a bit complex
but essentially its whenever a UIManager is created
relevant code
hmmmm
nvm I thought I found a bug but I didn't 🥴 my code actually works
Apidocs bad >:( and no, i won't make them better >:(
I can't tell if this is ironic or not
take a guess
likely
considering i already contributed to the apidocs (and probably should update what i changed for sfcore 1.5 like next tuesday), i think one can categorize that as ironic
should we have a 1.4 and 1.5 section or just replace everything with 1.5 stuff?
well I'm not going to delete the Utiny stuff, that shit took way too long
mark it at the top with something like "This only works with the 1.4.3.2 patch"
why does this give me 404
if its about a document then , i'd suggest to make a new one for 1.5 & link the doc for 1.4.3.2 in it.
1.5 would be the default one that opens
Oh I guess it was about apidocs lol I'd still suggest the same tbh
Just download API from release page
im just gonna wait until weird softlocking glitches in 1.5 mapi stops happening
What soft locking glitches?
i mean for me i occasionally cant exit to menu, one time i was stuck in an elevator transition
for FSMViewAvalonia if i change the hkpath.txt to a 1.4 installation, would it show me the 1.4 FSMs?
with open you can already open 1432 assetbundles and view their fsms, but the hkpath is probably used to determine the hk installation checked with select scene and the resources one
i could probably build the non avalonia fsm viewer and change the place it looks for hk
i meant that as in "yes, you can look at 1432 fsms"
ok
but give me a minute to test it myself with that .txt as i have technical problems with it rn
is there a fsm change that is known so i can tell if i'm looking at the correct one
convo_finish and talk_finish events, idk which one is 1432 or 1.5
oh, you mean compiling yourself with that changed txt, then maybe, i haven't looked at the code
oh wait
now that i read the code
yes, should show 1432 fsms
Thanks
yep, just tested, works
they get more creative
Fun
why tf does gog have to be different
yes
in the meantime, i got steam installed in a vm
now can test hk mods on linux at <1 fps (well, once i downloaded it)
i just test on mac and release
how can i display the console in the game?
the one that usually appears in the bottom left
if F10 doesn't toggle it then you have to go to the modding api json and enable it
ah ok, thanks
also another question, how can I read a value from a flag in the current save file and use it in a mod?
PlayerData.instance.{the value you want}
Or PlayerData.instance.Gettype(field name)
Replace type with Int, String, Float, ect
also why is this error happening? i can't find anything about this on google
incase anyone knows
How did you create the project
class library
Or is this a project you’ve already used before?
it worked before fine but this is the 2nd time it's happening today after i repaired VS
..
or anything at all
Huh, was that removed with the new get/set hooks?
did you reference assembly c-sharp.dll?
isn't this 1.4 (seeing from the mod common)
i'll try re-referencing it
Ah, then it should be there
and are you using modding
Should be there without it
yes to that as well
oh wait
relaunching VS fixed this
what is going on with my VS today though
literally hadn't touched it in days and like 6000 things are broken for no reason
an old isma attack was giving problem to the programmers and needed overall balancing, so I decided to remake it
does isma attack with acid ? or vines ?
wait and see
looks like vines
i am impatient okay ?
Wait is that right? PlayerData.instance.GetInt("maxHealth");
looks right
because it's not working ingame, it seems
are you trying that while having a save loaded (ingame ingame) or in the main menu?
oh maybe that's why
maybe it just tries to read a save file before one is even opened
wait but it shouldn't from the looks of it
public MoreBaseHealthUI() : base("More Base Health UI")
{
On.GameCameras.Start += MoreHealthDisplay;
}
oh, uh, gamecameras start at the game start (or after preloading is done), so that is way before any save file is loaded
i see
the workaround i did was to just preload whatever and have a set amount of additional masks being added
yea, i wanted to just read from the save file instead of having a static number in the code
then you'd have to manually load every save yourself and get the max health across all of them
why not just from the save that's being loaded?
ModHooks.Instance.AfterSaveGameLoad?
then you'd have to remember how many masks are already there and only instantiate new ones
but also possible
how do I set a value in game manager to a value i want
GameManager.instance.value = myValue ?
I'm doing GameManager.instance.TimeSlowed = true; but I'm getting a this property has no settter
then check with dnspy if it has an internally used bool and set that instead
if not, idk
could i use reflection?
yes
also dnspy shows me public bool TimeSlowed => this.timeSlowedCount > 0;
then ig set timeSlowedCount to 1 or something
thanks its working now
Leak from pale court 👀
we're about to see slowdown in pale court 👀
i mean, yea, parries
can somemone teach me how do I create a mod?
ok thanks
I just realized
Can I colorize soul based on frames?
@arctic wraith good place to start modding https://radiance.host/apidocs/
How does one spawn a block of ground ?
var ground = new GameObject("", typeof(BoxCollider2D));
Yes but, I'd have to supply the sprite myself right ?
Any chance I can copy it from the game instead of using an assembly resource?
preload a platform from some scene?
Okay I'm going to try that
Don’t forget to set it to layer 7
Or 8. Not sure
what's PhysLayers.Terrain ?
enum value for terrain layer
oh and do i need to be using GlobalEnums to use it ?
are those updated? Some of the layers aren't in it so I'm just wondering.
idk which ones are missing
finally claw can be collected !
It was too high?
i guess it's all the "Shiny Item Stand" that might break 
I find it funny that claw is too high on the shelf to get
even though there's like a 100 of them in that room, the knight just wont pick the others because they're not shiny 
Hi all, anyone have good suggestions for software to create custom skins?
idk but dandy wants to share this so it can help eventually https://prashantmohta.github.io/HollowKnight.SkinRemixer/
That's really cool
dandy, can you add the parts of the "Yeah Whatever 3.0" custom knight skin?
is that the green skin lol?
yeah
"the green skin" 🙄
to be fair i remembered it from the HUD lol
and yeah you could copy over the effects / slashes from this using the remixer
nice
So dandy
what are the current limitations of the remixer?
I know there's the whole thing with eyes not being entirely precise, and hats dont always work well with a different type of horn than the one they were designed for, at the moment
but are there any actual big problems?
the hat/hair thing is just another layer, so it's still a lot of work from the artists perspective to create different variations. my ideal would be to not require the artist have to draw all poses , like for eyes we only require 1 eye png to create it.
biggest challenge right now is horns/head shapes. once i have that & a bit of refactor i'd consider the remixer to be complete. (that and also supporting sprint.png )
also while the groundwork for hats is done it's not implemented fully yet , i'm hoping to finish that one the coming weekend
unrelated to this, what controls the size of the light around the knight ?
i saw a HeroLight but increasing it's localScale does not increase the light significantly
the light was increasing properly, it was the Vignette that was not scaled at all so the light being scaled did not matter much FML.
Assuming this is for smol Knight, i didn't think to test that with debug. I just noticed the light issue, but didn't think to toggle the various things that could affect it
it is for smol knight, i might just end up only scaling the Vignette back up if that makes the dark rooms playable
Can't you make it so that horns come on two separate layers, so one will be in front of hats/hair always?
And then they won't need to leave empty space for the horn, which is messed up with different horns
sir, this is #archived-modding-development
(use a channel like #off-topic next time)
Can but then each skin needs to have the horns on separate layer
is API already updated to the current HK version? Or it has just released so nobode had time to do anything?
the api for 1.5 is currently basically a beta version, some things are subject to change, but overall it mostly is done
new hk patch?
1.5.72.11824?
nail art damage again
what will it be this time
glad on the elevator spikes though that was annoying me
should (hopefully) be the nart damage change from 1.5.71., which reverted it back to 1432 workings
unless tc decided to change it yet again
because i submitted my opinion to have 2x+strength+fury narts (instead of 2.5x+fury)
1x for cyclone
.71 was only on the beta branch
Tc is kinda questionable atm
atm? 
what does atm means
At the moment
ATMs are those things where you can withdraw money from a bank account
hi after the patch I have an error in "using Modding"
i can solve by simply refreshing the assembly references or I have to do something else
if you are referencing the game files directly, the update will have overwritten assembly-csharp, so the Modding namespace will not exist
How do I change timescale like in Debug?
Time.timeScale
what's this link btw?
yeah
Like, there isn't anything else you didn't mention because it should be basic and common sense and yet for some reason I'm not aware of
it'll get reset if you get hit and shit
Ah, thanks

How do I hook the end of a focus? Only BeforeAddHealthHook or is there a more successful-focus-specific way?
ops i have replaced assembly-csharp but the game crashed
probably just use spell control
spell control?
I imagine this one would trigger off benching and hot springs too?
probably it was the assembly c sharp of the previous patch
Ah, didn't think of that
Thanks
Spell control it is, then, once I figure out what it is
I think this means to modify the Knight-Spell Control FSM
whe have already an updated assembly c sharp for modding?
What's "Dream Focus"?
I would guess when you try to absorb Herrah, but IDK
Doesn't seem like it?
Doesn't seem like what I need, though, either
Aight so how do I access the Knight's FSMs in code 
HeroController.instance.LocateMyFSM("")
I'm an idiot, thanks 
I need to change it only once, right?
Not, like, every scene or something
everytime a save is loaded, or on every herocontroller.start
So should I hook loading a save and then do this?
either hook the aftersaveload hook (i think this should work), or on.herocontroller.start (this definetly works)
On.HeroController.Start
yeah that is what hookgen does
Cool, thanks
For whatever reason this isn't working :/
.gameObject.LocateMyFSM
oh
Stupider problem, why does it not recognise the }
are you using 50 spaces or is there something behind Playmakerfsm
Oh ok
What'd it do?
Wait you're right
it's inside a random function
idiot
me, that is
not you
you're fine
Yes, you get it and the files that need to go with it from the ModdingApi GitHub repo. You can get a pre built ver from the actions tab
Oh
I thought they meant 1.5 in general
We’re there really that many changes in the code?
How do I make isTrue act like isFalse? I tried sendevent but it doesn't fit
I mean no I just haven't bothered changing out the files
https://drive.google.com/file/d/1EcqPY6qldQLkaAoUGchjP0yomJG_vPxG/view?usp=sharing
API for .72 if someone wants
Welp for now I'll just change SetIntValue I guess
thanks
Someone does want
But I'll need to know at some point how to finish early
also .72?
Oh
I dont see a reason it wouldnt
Yes
Thing.isTrue = thing.isFalse
In general, what type are isTrue and isFalse in here
FsmEvent, also you can look yourself with dnspy or just in your ide
Where are the change notes for the 1.5 beta branch?
Am I doing something wrong that's causing the "defeatedNightmareGrimm" and "killedNightmareGrimm" values to continue to return True?
IDK, but instead of bull you should return orig
not in the new hooks
Nvm, there was another function hook overriding it completely
happens
bro you return null if you're not changing it
yeah, have you not looked at the docs for it that are only in some doc strings or xml files or whatever
i have no idea where that would be displayed tbh
looking at some text when autocompleting functions 🙄
this sounds like a you problem
I should setup docfx
So much effort
I should also update the ci
Also effort
docfx sounds like automated wiki for functions and stuff, nice if it is
yeah it's just display xml doc in html
what
i never ever knew that before
they do be part of the assembly
The language.gethook signature got changed
Right click and click on create overload function
And then make your old function work with new signatur
sorry my visual studio is not showing "create overload function"
Then comment out the current LangGet function and let Vs make the function with correct signature
Make "Res = " what you want to change text to and return whether you want to change it or not
So something like case "HORNET_MAIN":
Res = "Hornet";
Return true;
res = key switch {
"A" => "amogus",
_ => null
};
return res is null;
maybe nullable was better
are null strings used though
it's likely possible that one can make repo wiki automatically using both that and https://github.com/marketplace/actions/publish-to-github-wiki
but not sure
thanks Mul and 56 now is working as before
i know that null variables are definetly used
alright so tryget it is
does anyone here know the fury cyclone slash damage values?
Could this help?
lol, sry
#archived-modding-development message api/debug if you want to test yourself fwiw
oh no, not this again
code to set the damage to 1x+strength still exists, but until i can test it with a mapi (too lazy lmao) i'll say that .71 had it back to 1432 behaviour (1.25x+fury)
thanks, I'll look into this
alright thanks, good to have this confirmed. I was mainly unsure about the way fury damage is calculated for cyclone slash. I don't remember how we got the damage values for fury + great slash/dash slash
that is btw not info for the newest release (.72)
did something get messed up there again
i just didn't look at it
oh ok, I'll just assume it's the same as .71 for now
I have a compiled version of the mapi built against the current hollow knight version if you want to use it: https://drive.google.com/file/d/1qIkfiN1oUqpzODTBFcdlbfj0Gr1l-bl7/view?usp=drivesdk
I also made some quick direct ports of Debug Mod, ModCommon, and InfiniteGrimm that should also be functional https://drive.google.com/drive/folders/1rOOkoOGWApqKFeLfdi5-vVFHGqlK9QmM
Which debug did you build?
anyone else getting this on latest HK with mapi ?
[Position out of bounds!]
Obtained 21 stack frames.
#0 0x007fff6c6be33a in __pthread_kill
#1 0x007fff6c5d593e in raise
#2 0x000001061fe461 in operator delete[](void*, std::nothrow_t const&)
#3 0x000001061febac in operator delete[](void*, std::nothrow_t const&)
...```
if i verify integrity it works, but readding mapi seems to break it again
nvm i didn't update my vanilla folder and i guess even the pre-release is on the older 1.5 build 
yes i didn't think that it would matter since the major version didn't change
ty, i built it with the new Vanilla folder and it works now
pog
🤔
What did you do?
i ilasm'ed the following:
//test
Ok, I may have ported an older version of Debug Mod without looking at some of the other forks first 🥴 . Plus it looks like you already made a port so I can just use yours.
why are JsonNet, docs & override folders needed
could put the additional dlls from jsonnet n override in a folder called binaries or libs or something
the docs could be moved to the wiki or the apidocs repo
true
cil has some funny optimizations that you can apply. For example: you can load arg 1 by ldarg.0 if you need to load it twice immediately after eachother you can also load it once and use the dup opcode. This saves a few CPU cycles
hk playcount checker 
1357
rookie numbers
sadness in macness
close
works better
How did you make that?
How does it work?
And is it coded in cil?
That last one is the most important
it checks registry entries
i have an ASIC for it
lmao
Why? You can make it faster then c#
ok and
Then why is it slow?
ah yes let me make my life horrible to get speed that doesn't even matter by using cil
and crash the runtime
i mean almost everything under the hood uses unsafe and some fucked shit
it's the tech
Probably not if you have to integrate it in c#
what
impressive levels of pepega
Well, an assembly is just a set of instructions. No types or functions defined. You would have to come up with a way to be able to make it interact with c#
yeah you just declare an extern function
Not difficult
Or use an unmanaged function pointer
But assembly doesn’t know functions

It only knows jump points
It also doesn’t know variables
Only memory
And opcodes
ok and? i don't see your point about it being slow
You would have to write systems to integrate all of that into assembly. That will probably make it slower then using the out of the box support of cil
functions are just jump points + a calling convention
this
literally nothing special about it, you can write something in pure assembly and have it extern the function
which you can use in your c# code
you do know cil JITs into assembly yeah?
have you heard of interpreted languages
56 make hk in assembly so i can get 3k+ fps 😤
ok, make playmaker in assembly
56
yo did that benchmark at some point, right?
what was the most intensive thing again?
found it
how do i get the point mod
uh no? it's not converted to assembly, that would be jit/aot
even then it's compiled to machine code not assembly if you want to be really technical
True
The difference between jit and interpreted is that jit first compiles into and intermediate language
i re-install system recently
Why is there even a registry entry for the amount of times you opened HK?
the modinstaller still haven't get a new uptade right?
When it'll get an uptade you'll probably hear about it
have patience, when it gets updated the pinned message in #archived-modding-help will change
Ask unity
dw, you're not the first one to dox yourself with a screenshot of that lol
1.5.72 modded w/ debug unpause glitches <#822831192150638643 message>
ah ok
Here
Awesome
pog
is this what the checker also gets ?
Yes
would if i made it work on mac
alright
what
this is wrong again, interpreted can actually have its own intermediate language like python. my point is that python never converts this to machine code. never. jit converts intermediate to machine code. python just runs the intermediate language in c written to handle each instruction.
the program is never converted to machine code, only the interpreter is
mods too fast
@cedar hemlock ok thanks
:+1: ig
Ah ok
oh damn, doing that with a 2 year old account
probly got hacked bc idiot clicked link
dang hadn't blocked this mod
ayy wtf
nice
lucky
how much do you have
maybe i should try to predict ss release date now
smh
no that doesn't count
@vocal spire what happened?
usual scam "leaving CSGO, trade with me here" message
idk if dnspy is just looking at the wrong assembly, but it's really looking to me like somebody forgot to update this constructor.
public FsmTransition(FsmTransition source)
{
this.fsmEvent = source.FsmEvent;
this.toState = source.toState;
this.linkStyle = source.linkStyle;
this.linkConstraint = source.linkConstraint;
this.colorIndex = source.colorIndex;
}```
thank you old constructor for wasting my time
bruh
they're the ones which work with unity
what problem
i heard several times that debugging on hooks is not a good idea
sad
wouldn't exactly mind line numbers for unity stuff though you get me
or the docs actually working in my fucking ide
i should've done this earlier
imagine looking at line numbers
which ide is that
rider
could be done on vs with https://docs.microsoft.com/en-us/visualstudio/gamedev/unity/get-started/using-visual-studio-tools-for-unity?pivots=windows probably
oh yea
you can just take them from the editor
and then your ide is actually functional
amazing stuff
you need them or already did?
i got em

if anyone else wants them










