#archived-modding-development
1 messages ยท Page 137 of 1
Ok if it fucks with the uvs how do I figure out the texture coordinates?
I dunno
If I knew what data it was sending to render sprites I'd have fixed my recolour mod
"apparently" tk2d default shader is super basic
If that's how it works internally, doesn't really matter to me
What's actually visible on a SpriteRenderer is crazy different from a MeshRenderer
but yeah I have no idea what the tk2dsprite shader for hollow knight looks like
but its definitely doing something weird
because the uvs + textures it has aren't aligned like 90% of the time
and im not buying tk2d it find out if TC changed the shader code
go ask 753 for his copy of it
are you advocating software piracy
I don't even know tk2d exists
it was superceded by unity2d
like the only reason you'd use it is if you're on like a 3 year old version of unity
before they added spriterenderers
Yet here we are
Well whatever I don't need to be doing this at runtime
I can manually split the relevant spritesheets
Which is horrible so I actually won't ever do it
But eh
Y'all were completely wrong about tk2d
It doesn't fuck with uvs, my math was wrong
And KDT your math was probably wrong too
Really good to know tbh
Really helps me out
Now I just need to figure out why reading mesh uv is breaking the renderer
That makes no sense
It's hard to get the sprites when the mesh renderer breaks
Or rather the tk2dSprite is breaking I guess
I figured out the minimal code to break them
foreach (MeshFilter filter in Object.FindObjectsOfType<MeshFilter>())
{
Mesh mesh = filter.mesh;
}```
Reading the mesh from the MeshFilter breaks the tk2dSprite
Wtf
Mesh isn't a component
o
The problem here is MeshFilter.mesh isn't actually a field
It's running some crap code that breaks everything when I call get
Ok I think this works
tk2dSprite tk2d = filter.GetComponent<tk2dSprite>();
Mesh mesh;
if (tk2d == null)
{
mesh = filter.mesh;
}
else
{
mesh = (Mesh)meshField.GetValue(tk2d);
}```
Where meshField is reflection to get at tk2dSprite.mesh
pain
if you're just doing it for the material and its maintexture you can do tk2dSprite.GetCurrentSpriteDef().material.mainTexture
ah
Maybe I can get UVs from the sprite definitions though
That'd be better because I could get all of them to fully split the sheet
tk2dSpriteDefinition has a Material and a uv array
is it accurate
Idk good question
Ok it's accurate but I'm getting literal thousands of duplicates
Need to do something about that
Force quit before the game was even done launching
Hooking tk2dSpriteCollectionData.Init to get this
jeez
So.... Could we modify these then reverse compile them for the game?
I guess yeah
It would be easier to just modify the sprite sheet directly
For me at least
Because for modifying these to work I need something that pieces the sheet back together as well
True
can't you just modify the sheets out of uabe
they'll just overwrite, right?
The entire resources would be overwritten
i mean like at run time
HeroController.instance.grubberFlyBeamPrefabL.GetComponent<tk2dSprite>().GetCurrentSpriteDef().material
.mainTexture = Sprites["Lances"].texture;
Yeah I guess that is a reason to not use full modified sheets
If we've got something that pieces them back together at startup mods are more compatible
Nice find Sean! What was wrong with the uvs?
It could be fun to make the MCs nail a fish
Trout
Oh
I had wrong math
:)
y = tex.height - h;
instead of
y = tex.height - (h + y);
@UVS thanks for being right
But yeah UVs are bottom left origin and texture coords are top left
Probably why KDT thought they were wrong
Eww
no
disgusting
I mean texture coords being top left makes sense
and UVs being bottom left makes sense
but putting them together
no
Kinda yeah
I think imma make the nail a fish. And make nail hit sound effects a slapping sound. Lol 
Go for it
make nail sombra's finger and install boopmod
make nail salubra's blessing and attacking make the salubra's blessing noise imo
make salubra's blessing salubra's blessing
lol the false knight fsm is called "FalseyControl"
Falseyboi
so uh why are random spikes fsms in this game
shouldn't they just be gameobjects with colliders
There are some things science can't explain
because T E AM C H E R R Y
The quirrel smear textures are pretty good
and especially weird considering that's impossible in this scene as far as I can tell
that's for uumuu right?
lmao
I assume so
nice he has a health_manager_enemy fsm and a HealthManager
maybe but I'm just using the preliminary scene dump for now before I get into the knitty gritty
which should have been made on lifeblood regular
ur welcome
before
cool that saves me having to walk all the way to his room from the basin tram
(yes I know about debugmod but blackmoth is almost faster at this point)
noclip at 2x timescale
more like grubberfly
at 2x timescale
probably not the worst idea
but too much effort installing debugmod
anyway soul master was well designed
only has 2 fsms
one for stuns and one for everything else
are u even a real modder if u dont install debug mod over and over for entertainment
wow nice
does this only happen when you clip out of the arena
because if so totally understandable
Probably yeah
does modcommon not have a remove transitions thing for FSMs?
I thought you added that 56
i think it does idk
oh it does but it's not a per state thing
it just removes transitions from a list of states with a list of transition names
Why is this a thing?
to hide the dab sprite
it's too explicit
it's spoilers for GnG
it actually has godseeker's face
eww it needs to be a list I can't just use an array
wtf 56
I had another FSM tool that let me just remove all the transitions from a single state
PlayMakerFSMExtensions
My fsm thing has that
Sean's has such a function aa
idk who I stole it from
Oh
oh
public static void clearTransitions(this FsmState self)
{
self.Transitions = new FsmTransition[0];
}
I can just do that then I guess
You stole it from berserkmod which stole it from there
bereserk
bereserk
Bereserk
br
๐ง๐ทserk
is berserk mod in the drive?
nao
7-1serk
stunManager = this.soulGuy.LocateMyFSM("FSM");
stunManager.Fsm.GetState("Idle").Transitions = new FsmTransition[0];
I'll just do this then I guess and save myself the trouble of writing meme code.
there no extensions needed
everything needs more dependancies tbh
make a library just for removing transitions
thank
I'm gonna make extensions to every class as individual libraries
ok I need a function that grows quickly but levels off but not any log function because log grows too quickly to start and levels off too much.
any suggestions
Manually define an array with the desired growth pattern tbh
^
select a few points as then just fit a polynomial imo
or use square roots
or nth roots for that matter
roots seems like the kind of thing I want
don't wanna do a manual array, this baby needs to go up to level 255
even though that will probably be human impossible
what I did with bonfire was
I plotted what I wanted it to be at like, levels 0, 1, 10, 20 and 50
and then chose a best fit
and adjusted it accordingly
you can use logistic functions too
I thought about that too but I don't want an upper cap
nice
at the impossible to reach meme level of 255 I get a value of 4.2 right now which should be impossibly fast for any human. I want a value of 2.0 to be like hardmode NKG difficulty at max speed and 1.0 to be default speed.
2.0 being hit after 11 levels
now to figure out my health graph
what kind of curve you looking for? We got all kinds of 'em!
sawtooth
got it
I'm just gonna keep going with the exponental functions
I mostly used logistic/logarithmic functions for Bonfire
https://www.desmos.com/calculator/t98w8tkeej ok first one is relative speed, second one is relative hits to stun, third one is relative health. x axis is level (imagine you get one level every time you beat the enemy). y axis is a factor relative to base game.
anyone who plays this game who thinks these numbers might be bad please let me know now
before I implement them
Probably the one labeled with 1
didn't click
can't you just use composition to make it easy to swap out curves
just seeing nice pics in discord
looks like half of a sparkler
I like the curves, AA

Round towards the closest .06
just multiply by 2 until you have no decimals
Wow it works thanks KDT
its guaranteed to round the number to a number
it may or may not be correct
but it will be rounded
just multiply by 4 instead
I mean there's a very real chance of getting float.PositiveInfinity
twice as fast
Or negative I guess
I mean you could bit shift to the right
then double
dunno if a bitshift would also shift the exponent on a float
you can't stop me
probably floor but it won't matter much because health's gonna be so high that flooring doesn't matter and hits to stun should only be affected a little @solemn rivet
and relative move speed is a double which gets truncated to floats after some internal double multiplication so no need to round
got it
why are program settings set in the registry
cause windows
and not somewhere easy to edit like a text file

o
lol
@compact sedge gconftool-2 --set /apps/nautilus/desktop/trash_icon_visible --type=bool true
i think kde has a kconf thing or something
it has a gui system settings thing and json files you can edit by hand
and possibly a terminal thing but idk what it's called
imo editing json is so much better than using a random config tool that also edits json
yes
Why does it even matter if the gnome is gay if its the only one left?
this is why you use a tiling wm with no de
no this is why I use kde
bruh bloat only matters to you because you care so little about linux you only give it 5 GB
56 stop using discord while streaming
objectively false
bspwm better
also for the question about registries containing settings
if you don't use a tiling wm on linux you have the ๐ฎ
TIL windows photo viewer was made in unity
unity settings in plain text on non-windows
just saying
also Player.log and ModLog.txt are in the same folder
what's all this junk at the top
or should be
its a function in unity
its called er
secureplayerprefs I think
it encrypts your keynames and values
top one is steel soul mode I think
<pref name="vE5KkxS7T22NbDJZ4Kd3tw==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>
<pref name="vTY9ZwWyCq4cnoiD3hO4Sg==" type="string">dzB6NmNXNG1TeDhBKzh5VHd3MkQ5QT09</pref>
even though the keys are encrypted these strings clearly refer to 1 and 0 respectively
<pref name="5yZTgDVNsDnWj1MVsBSTyw==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>
<pref name="9/i+/xq62ou0CsCGI0SUpA==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>
<pref name="CLxonywPfYP6FMuyc2RcDw==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>
<pref name="D/udoyiO/WJtgTvG4RBBWw==" type="string">ZXo0T1VLdXBWbkJPcTN2QmVvdW5KUT09</pref>
nice encryption
but you can't really encrypt a 1 or a 0
yeah
I never said it was good
well
i said it was encrypted
Why is this even something you have to encrypt?
for the same reason save files are encrypted
otherwise we could cheat
Right so there's no reason
so because graig's an asshole
even though I told people at one point
exactly what to add to registry
to unlock steel soul
its encrypted with the same cipher as the saves
wut
SecurePlayerPrefs.Salt = new byte[]
{
10,
20,
30,
40,
50,
60,
70,
80,
90,
12,
13,
14,
15,
16,
17,
18,
19
};
apparently there is a salt
graig is our enemy 
they just don't understand how salts work
salt ๐ ฑ roke on linux
They missed 11
no they just use the same salt for everything
You're right no idea how it works
so its pointless
also who needs bigints when you could store them as strings <pref name="unity.player_session_elapsed_time" type="string">Mjk4NDIx</pref>
Unity probably can't serialize a BigInt properly tbh
can unity really only serialize the 4 kinds of data that you can put in GlobalSettings
int float string and bool
yes
their serialization is really fast
because it can't serialize anything
oh its used for menustyles too
and achievements
also apparently they stoped using SecurePlayerPrefs, although they didn't remove the actual code and they now use
Platform.Current.EncryptedSharedData
which is extern
so
I should set the one false thing to true so I have all the achievements
I thought I got all of them (I do on steam) but I guess one of them didn't carry over
I don't know if it has things for that are false
I think it just returns false if it doesn't find the key
oh
so that must be something that was true at some point
and then set to false
might be an achievement though
I dunno
I think my favorite thing about Windows is the thumbnail for a fully transparent image is black
Instead of transparent
Also this shit
Grey border for no reason
Transparency was turned white
White was turned transparent because it has some small amount of alpha
Really just all around stellar handling of transparent images
Very consistent too
Hey I'm making my own shop component, what should I replace this dude with?
Putting in the same figureheads is boring
uumuu
How about this?
I like it
Gotta get that white line trace going so it doesn't look out of place
But that's something that actually fits in game and not a shitpost
Your guy's good
but I still want a cameo
@rain cedar famous FR runner?
Uhhh no
who doesnt know deadnamer extraordinaire
noto disu shito agen
https://www.youtube.com/watch?v=RQGa0DPwes0 when will we get nice things such as this in HK
Imgur album with some more explanation of how it works: https://imgur.com/a/PPaUQKi

hey Gradow
I wanted to ask you
the light thing in the behind part of your pfp
is this the Sun Radiance thing?
you know how when you challenge the Sun it opens its wings
that moment
the sun with open wings
I think so
or maybe it's just one of Radiance's default poses
I don't remember, honestly
it was like a year ago or smth
what I did at the time was
I was just going through the Radiance sprites and stuff for the little art experiments
I grabbed all Radiance sprites
and saw taht
and thought "hey isn't this Gradow's pfp's back thing"
OH
you mean the shine behind the blackmoth?
yeah
that's the sun
(I had completely forgotten about that detail tbf)
no, you did not
I'm actually not in any other HK servers so I don't see much
nah, not annoying at all
so
I set PlayerData.instance.defeatedMegaBeamMiner = true;
but the guy doesn't go away
any idea why?
I assume that's CG2?
PlayerData.instance.defeatedMegaBeamMiner = true;
PlayerData.instance.defeatedMegaBeamMiner2 = true;
nope
also, I'm pretty sure that bool is only used for completion, not for actually tracking if it's dead
the defeated bool set other bosses to dead tho
No
k, lemme check in dnspy rq
also, I can't find what the convos with the dream bosses (Lost Kin, Soul Tyrant, Failed Champion) are called
and I need to set those to true as well
is killed not for Hunter's Journal?
yeah
but worth a shot anyways
this.killedMegaBeamMiner = false;
this.killsMegaBeamMiner = 2;```
probably a battle scene
@fair rampart
also put ur art in #hk-art-gallery
๐ซ

What are you trying to do?
Wait so you're removing all bosses from the game?
everything
why
what would be cool (but probably almost impossible) was if someone made a mod which made everything look like it would after the dream no more ending (or any ending in general)
With this mod the game will definitely be Hollow Knight 
and doors
ye
don't forget the doors
because the challenges
and anything that leaves behind a corpse should... leave behind only the corpse
What about charms?
those
are difficult
I'll try and add all that you get from NPCs as shiny items on the ground
which will probably be one of the harder things
So the game will still be beatable?
It ends a different way
well
the story is different
Elderbug is the only one alive
it ends with you giving him the flower
and then he disappears as well
You should name the mod "Hollow Hollow Knight"
and you're the only thing in Hallownest
make this Flower Knight
Mod for now is called DeadHallownest
Remove all music too and you've got yourself a horror game
Yeah, I have it turned off for myself
With just the ambient sounds
force what off
also post art
#hk-art-gallery needs that radiance picture ๐ซ
oh music
Well, it's half edit
so, I don't know if it'll be allowed
lemme ask
well?
how do I force turn off music
if music => not
On EnterRoom
If music != off
{
music == off
}
yeah
i think there's like a music controller
cause it didn't get dumped in my lifeblood dump of fsms
i think
Couldn't you make it so that no matter if you have music on or off it'll still be music == off
there's an AudioManager class
dnspy for mac when

wrong
why are there 2 of them
FoldingPapers
I don't know
the other one is faek
unless I somehow accidentally created a 2nd account
DM them
You know I might know what the problem is
ask for nudes and check if they're yours
You log in through the discord browser right papers?
Alright so what might have happened is that you created a new account
Accidentally instead of logging into your already existing one
Ok
is musicregion on the gm
Because if you simply go to discord.gg on desktop and try to enter discord it automatically takes you to creating a new account
let me try to se if my other e-mail will count as a Discrod account
discrod
well, it didn't work
so it must be fsm
so, must be someone else I'd guess
You don't actually even need an email to make a new account that way
I'm pretty sure the mystery of the second Folding has been solved
hold on
and all this time, it was you
When you go to the desktop discord.gg, you get this page
ye?
After clicking "Open discord in your browser you get this page
and looks like you just typed in there FoldingPapers
mhm
see that was easy
I didn't even have to set an email for the account
I didn't even have to type in a password
hmm
@fair rampart
here's the account I just "created"
didn't have to type in anything else than just the username
mhm
so
currently the installer sets a bool once it installs the API
and that's what it uses to determine if it is, or not, installed
but that's no good
people might already have the API installed when they use the installer
or they may manually remove the api, and the installer will still think it's there
so, I need suggestions on how to deal with this
currently, I have two ideas
one is to check filesize
(so that'd have to be added to the xml, but that's simple enough)
the other is to checksum
any better ideas?
but yeah thats probably ideal, cause if checksum doesnt match, its not the intended file
(or you have a collision in which case F)
eh
filesize would prolly achieve the same result
and I assume less time to actually check
probably arent checking it too frequently right?
as long as its not a dramatic time save, it wouldnt change much
then yeah, if both would work and only checking once means time to check is (mostly) unimportant, whichever is eaiser to implement / future proof?
yeah...
checksum is clearly the best solution
dunno how hard it is to actually implement tho
a quick google says 'very easy', but, we all know how that goes
good luck 
yeah thats what i saw initally too
C# has got a very helpful MD5 class, IIRC in the crypto namespace
btw, nothing beats checking the .dll with Mono.Cecil :^)
imo if you do checksum comparison we should add checksum info to the modlist xml
because
- no need to redownload already installed stuff just to check its checksum
- very very easy way to update mods (the modinstaller could tell you they are out of date by comparing the md5 of the installed and modlist mods)
already added the API's MD5
should I go download every other mod and get their md5s?
well I bet you could automate it
@solemn rivet is this u
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.IO.IOException: The requested operation cannot be performed on a file with a user-mapped section open.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
at ModInstaller.ModManager.InstallApi(String api, String tempFolder)
and then afterwards i get this ofc
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.IO.IOException: The file 'D:\tempMods\hollow_knight_Data\Managed\Assembly-CSharp.dll' already exists.
top error still occurs if i delete it
pain
redownloaded it just in case
still get the error
:agony:
oh wait
is it cause i have rider open and it thinks i don't have api
the answer was it was dnspy
sorry
cause it locks assembly-csharp
I think it's another issue tho
cause ur looking at it
oh
ok
I thought it was because it threw an exception while installing something
so the temp folder wasn't empty
and that breaks stuff when it tries to download
oh
also did you know if you install a bunch of mods really fast you get this
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.UnauthorizedAccessException: Access to the path 'D:\tempMods' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
ye
clicking it again works tho
2fast6me
if (!Directory.Exists($@"{d.Name}tmp"))
{
Directory.CreateDirectory($@"{d.Name}tmp");
}
if (Directory.Exists($@"{d.Name}tmp/HKmodinstaller"))
{
DeleteDirectory($@"{d.Name}tmp/HKmodinstaller");
}
Directory.CreateDirectory($@"{d.Name}tmp/HKmodinstaller");
Properties.Settings.Default.temp = $@"{d.Name}tmp/HKmodinstaller";
Properties.Settings.Default.Save();```
slight modification of what AA added
but if you're not getting errors, I won't change it to that yet
you don't get errors when dnspy isn't open
but if you have like
hk open
it'd probably do the same thing
true
also
1ed11dd7f3992514bf205a7888a87c1098e564f6 *Blackmoth.dll
136f8919accef7822fc3934bad8d9d7e90552aab *BonfireMod.dll
2168adb5402fa96dc9ff7f763fdf9f0fd37240af *BoopSoundMod.dll
9308a6d95c586b51666e9ded3db21d31915d047d *BossRush.dll
40a4a16cd55d4453a7546416a2a663d3d4335919 *CharmingMod.dll
0731a7f278acd73d71cead033911a0a298b5c8a7 *CharmNotchMod.dll
520133ab3c65fbfb192ec530bf8e982236b3938f *DebugMod.dll
79279aa4b0da8f4abdf511cdeea7dbffd8d19ba9 *EnemyHPBar.dll
7481b80cf0502dccaa446a885a51a75e88644db7 *EnemyRandomizer.dll
3d1da1ac278e6fede54c06c88417c6271c358f6d *FragileStrengthForNailArts.dll
8d1b7bc9ce6ca60a785e9b0831d6793f277d704c *grimmchildupgrades.dll
9143de25f74c282791f14d1cb156a70a272c436d *HellMod.dll
1894424c8ac3ffb9e001c443eb64f1f9e6616450 *HPBar.dll
5ea8ad4e85bbb2ecd711de379c39d72c19f20172 *infinitegrimm.dll
49bae2accd5784d77d1e85b31e6526aa02ffba9b *Lightbringer.dll
adf847c8b67d910d32ed7a96f5d2ecfa7d6cb8b1 *Mantis Gods.dll
9de3f1b0c218356947ea88c3824169a210111049 *ModCommon.dll
568cde3e9bb986db153c32e93879cd342d7957c7 *MoreSaves.dll
9294136b07c36fab5523ef345fe05f03ea516b15 *Newtonsoft.Json.dll
f573574c7459c505ee6eb3559079cbdfa5233059 *NightmareGodGrimm.dll
e03e30813074f439d5880780a0568d3262b8fe29 *PlayerDataDump.dll
8090548c716d1eec7d3b65ed7bd4464bf6bf626d *QoL.dll
f8e660f8aa77f24353c77dc55366697102f0cf7c *RandomizerMod.dll
333390bfd5922e8d44c8d9c07f7d39f70e9a308c *RandomizerMod2.0.dll
3a843a5810958dba1846fbb1508c52383caff8a0 *redwing.dll
998550d8bd5d050a8a45679324bce9cbbfff0b6c *websocket-sharp.dll
please someone complain about the visual glitch I've introduced
the "hard" part that I didn't know how to automate was not getting the md5s, but adding them to the mod xml
the easy part is downloading all the mods and doing md5sum *.dll
lol
idk how to fix it tho
idk why it happens tbh
I changed some stuff
so now it recalcs the lists everytime you install/uninstall
it's cute
hey aa
hey
but for some reason it glitches the boxes
top 5 entries
uh well the first entry is from boop mod
newtonsoft needs to be removed from boopmod iirc
:effort:ยฒ imo
remove the boop mod thing and tell me if the failed to load on my mods are still there
okay
and if so send modlog lol
Wtf is this monstrosity lol
no
you have bossrush installed
you need to automate adding the md5 to the xml first 56
so you won't be able to get anywhere
we need you starfox
try catch it imo
e
e
lol what happens if you go into the grimm arena with infinite grimm and ngg
today we find out
also
tell me if grimm's text is weird
aka normal
or if it gets properly changed to something not weird
because I have a feeling LanguageHook is a little weird
god
pfft even the regular knight's stronger than the average god
aa what is this recharge noise
ok ima clone and use the amazing git bisect tool to find out what broke this
git bisect is why, 56, making lots of commits is a good idea btw
hell mod is ruining my brokenness
nope
ree
no exceptions
so weird
modding api already installed
Kreygasm
is it unbreakable though
["CHARM_NAME_18"] = @"Longdash",
["CHARM_DESC_18"] =
@"Strengthens the bearer, increasing the damage they deal to enemies with their dash.
This charm is fragile, and will break if its bearer is killed.",```
wtf
because the older versions have this error now that they didn't have before:
System.InvalidOperationException: Sequence contains no matching element
including the version I sent a PR with
but the newer versions all look messed up but without this error
fucking copy paste
ree he wants me to find the flames
brb finding an ancient commit before I screwed up
are you supposed to never fall with elegy on
cause like
i'm not dashing
but it is
I don't think elegy has defined behavior
oh yeah
that's uh
experimental stuff
that I never bothered removing
:effort?:
honest tho
it is
ye
When dashing, the bearer's body will be able to go through solid objects.",```
yup
that was experimental elegy behaviour
neat
basically "do whatever you want, I don't care"
infinite grimm fucking dies, live
so uh
what caused the InvalidOperationException that this completely unrelated commit somehow fixes https://gitlab.com/gradow/ModInstaller/commit/6452ee02d42439af27bb57ba8ba2b70d22a93fd0
but
I removed that
I added my own handler and removed that MessageBoxManager class tho
so uh since there's no exception I am assuming it failed to download the modlist or something
there's nothing logged in the terminal either
yes
does it matter that my mods folder has stuff that isn't mods in it
including text files, folders, and a mod.bak
no
ok
it should add any dll it finds
weird
the only part of your code that I changed was the offline behaviour
wait no I added that one unless you changed the way it worked
which you did
but
what
why would that \
??
dunno
that's literally all I changed
https://gitlab.com/gradow/ModInstaller/commit/39d6ffe3e8657cdc98a8e0b627c82f37635f233e?view=parallel
@compact sedge so it was you who called us
langget machine broke
gonna try ngg mode with this

idk what's up with language I don't think I changed it at all
oh you know what you added was
ResizeUI
what
it loads the mods properly but doesn't resize the UI
nice ui
literally unplayable
wavedashing in blackmoth when
when you add it
Mod mod = new Mod();
bool isGDriveMod = modsList.Any(m => m.Filename.Contains(Path.GetFileNameWithoutExtension(modsFile.Name)));
if (isGDriveMod)
{
mod = modsList.Single(m => m.Filename.Contains(Path.GetFileNameWithoutExtension(modsFile.Name)));
}
else
{
mod = new Mod
{
Name = Path.GetFileNameWithoutExtension(modsFile.Name),
Filename = new List<string> { Path.GetFileNameWithoutExtension(modsFile.Name) },
Link = "",
Dependencies = new List<string>(),
Optional = new List<string>()
};
}```
hk modding in a nutshell
is the pause menu off-center or you just bad at cropping
@compact sedge the damage dialogue said "so it was you who called us"
bad cropping
OH I KNOW WHAT IT IS
k
this change
+ this.InstalledMods.Size = new System.Drawing.Size(179,1);
- this.InstalledMods.Size = new System.Drawing.Size(179, 319);
because my mono version can't handle real dynamic resizing
fuck u mono
oh
/s
should I revert it back then?
well it doesn't make a difference on windows right
yeah
I don't think so



