#archived-modding-development

1 messages ยท Page 133 of 1

compact sedge
#

well I think I got it working 100%

#

need someone on windows to test that I didn't break anything in that

#

shit it's not 420kb anymore

rain cedar
#
   at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate)
   at ModInstaller.ModManager.PopulateList()
   at ModInstaller.ModManager.Form2_Load(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
#

After clicking yes when prompted about my game folder

compact sedge
#

ok

#

is this after clicking yes to its autodetected folder or clicking yes when it asks you to pick a custom folder

rain cedar
#

Autodetected

#

Looked like the right folder

#

Mixed \ and / but that shouldn't matter

compact sedge
#

doesn't matter

#

it broke somewhere else

#

um weird but can you try rerunning it, it's possible it failed to download the modlist from the google drive

#

this isn't code I changed or touched at all

#

or I can add this code I guess

private void PopulateList()
        {
            try
            {
                List<Mod> modsSortedList = modsList.OrderBy(mod => mod.Name).ToList();
                modsList = modsSortedList;
            }
            catch (InvalidOperationException e)
            {
                MessageBox.Show("Unable to download mod list. Are you connected to the internet?");
                FillModsList();
                PopulateList();
                return;
            }
#

well I sent the PR. works on my machine

#

โ„ข

leaden hedge
#

hey 420iq got this working with timeScale

#

asm op intenseface

compact sedge
#

asm is and hopefully forever will be beyond my knowledge

leaden hedge
#
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:
push eax
mov eax,["hollow_knight.exe"+0103C74C]
add eax, E4
movss xmm2, [eax]
mov eax,["hollow_knight.exe"+0103C74C]
add eax, 6C
movss xmm0, [eax]
mulss xmm0,xmm2
mov eax,["hollow_knight.exe"+0103C74C]
add eax, 68
movss [eax], xmm0
pop eax
jmp hollow_knight.exe+3DEAAE

originalcode:
movss [esi+68],xmm0

exit:
jmp returnhere

"hollow_knight.exe"+3DEAA9:
jmp newmem
returnhere:

"hollow_knight.exe"+3DE97C:
nop
nop

theres nothing unintuitive about this :^)

copper nacelle
#

tf

solemn rivet
#

Angle, gonna test it in a bit

solemn rivet
#

I was waiting for your pr to fix a little error I found last night

#

where it would crash if you had a mod in Mods and Disabled at the same time and tried to disable it

solemn rivet
#

@compact sedge reading your pr rn

leaden hedge
#

0x0ade helped and now the time setting works purely from a c# mod

copper nacelle
leaden hedge
#

atleast I think it works

#

it "appears" to work correctly

compact sedge
#

replacing asm with calls to static functions in my mod

Now that's something I can get behind

leaden hedge
#
public bool get_IsPressed()
{
    if (this.isPressedOverride != null)
    {
        bool? ret = this.isPressedOverride(this);
        if (ret != null)
        {
            return ret.Value;
        }
    }
    return this.Enabled && this.thisState.State;
}

anyone know why GameManager.instance.inputHandler.inputActions.jump.isPressedOverride = IsPressed; doesn't work ๐Ÿค”

#

doesn't even get called

solemn rivet
#

isPressedOverride is just a bool?

leaden hedge
#

its a delegate that returns a bool

#

public OneAxisInputControl.IsPressedHook isPressedOverride;
public delegate bool? IsPressedHook(OneAxisInputControl self);

solemn rivet
#

GameManager.instance.inputHandler.inputActions.jump.isPressedOverride = GameManager.instance.inputHandler.inputActions.jump.IsPressed;?

leaden hedge
#

wouldn't work because ispressed returns a bool

#

not a bool?

#

and would infinitely loop and crash

solemn rivet
#

true

leaden hedge
#

because IsPressed calls get_IsPressed

solemn rivet
#

oh

leaden hedge
#

im trying to hook that

#

so I can return whatever should be being pressed

solemn rivet
#

can't you override it inside the OneAxisInputControl class?

leaden hedge
#

this is the OneAxisInputControl

#

brb eating anyway

leaden hedge
#
public bool IsPressed
{
    get
    {
        if (this.isPressedOverride != null)
        {
            bool? ret = this.isPressedOverride(this);
            if (ret != null)
            {
                return ret.Value;
            }
        }
        return this.Enabled && this.thisState.State;
    }
}
#

this is what it should kinda look like

#

but this doesn't work for some reason intenseface

copper nacelle
#

why ret.Value

leaden hedge
#

its a nullable bool

solemn rivet
#

makes sense

leaden hedge
#

but isPressed returns bool

#

so I have to return bool?.Value

copper nacelle
#

o

#

i had that but i just cast to bool

leaden hedge
#

this is a cast to bool

#

thats what it compiles to

solemn rivet
#

GameManager.instance.inputHandler.inputActions.jump.isPressedOverride = IsPressed; still makes no sense to me

#

also, 56, none of my mods use playmaker hooks

#

which is weird

#

cause I thought one of them did

leaden hedge
#

GameManager.instance.inputHandler.inputActions.jump.isPressedOverride = IsPressed; where does it say that

solemn rivet
#

nowhere, but you sent that earlier

leaden hedge
#

oh

#
        public bool? IsPressed(InControl.OneAxisInputControl self)
        {
            Log("checking jump");
            return !self.State;
        }
#

this is a different function ๐Ÿค”

#

this is in my mod

#

not in the OneAxis class

solemn rivet
#

oh

#

now it makes sense

#

much thank

leaden hedge
#
public bool? IsPressed(InControl.OneAxisInputControl self)
        {
            Log("checking jump");
            return !self.State;
        }

        public TAS()
        {
            Log("TAS");

            GameManager.instance.inputHandler.inputActions.jump.isPressedOverride = IsPressed;

            IntPtr target = GetType().GetMethod("get_deltaTime").GetNativeStart();
            // Get an IntPtr to the entry assembly.
            hkexe = DynDll.OpenLibrary(null);
            // The location of the first byte we want to manipulate.
            IntPtr from = (IntPtr)((long)hkexe + 0x3DEAA9);

            // Our writing offset.
            int offs = 0;

            NativeDetourData helper = new NativeDetourData
            {
                Method = from,
                Size = 5
            };
            DetourManager.Native.MakeWritable(helper);

            from.Write(ref offs, 0xE8);
            from.Write(ref offs, (uint)(int)(
                (long)target - ((long)from + offs + sizeof(uint))
            ));

            DetourManager.Native.MakeExecutable(helper);
        }
solemn rivet
#

oh, right

leaden hedge
#

it would have to be GameManager.instance.inputHandler.inputActions.jump = GameManager.instance.inputHandler.inputActions.jump.IsPressed;

solemn rivet
#

I used the playmaker hook to debug

leaden hedge
#

for it to what you were getting confused about

solemn rivet
#

yeah

leaden hedge
#

but yeah I'd runtime detour this

solemn rivet
leaden hedge
#

but get_IsPressed which is what GameManager.instance.inputHandler.inputActions.jump.IsPressed ceases to be a function

#

and doesn't work

#

or shouldn't according to 0x0ade

compact sedge
#

@copper nacelle if anyone can make the modding api work on the beta branch in 30 seconds then why did it take me joining this server for there to be a beta binary for it?

leaden hedge
#

how come theres no api for 1.0.0.0

#

fkn noobs

copper nacelle
#

because no one uses beta

#

I made one like a month ago for chingbling cause he was using beta

#

wokest

leaden hedge
#

if beta was stable enough to be used as a primary platform for mods

#

it'd be stable

copper nacelle
#

it's literally just copying the managed folder and renaming it to vanilla

compact sedge
#

because nobody uses beta
I made one like a month ago for someone using beta

copper nacelle
#

and pressing build

#

chingbling is no one stay woke

#

he swapped off later anyways

compact sedge
#

I've gotten like 6 downloads of the beta api at this point

#

probably more

#

at least 6 people who said they wanted to mod HK that were using beta api

leaden hedge
#

tell them to unselected beta

#

theres literally nothing extra in the beta build

compact sedge
#

that's like objectively wrong

#

for one there's fewer fsms

#

for two, vanilla modding API on mac and Linux breaks controllers

#

but beta api does not

#

for three, steam achievements don't work on vanilla for mac and linux because TC distributed the GoG version by mistake on those platforms

#

yes seriously

leaden hedge
#

who plays on linux and mac ๐Ÿค”

#

and fsms being removed makes no difference for end users

compact sedge
#

1/7th of all people with the modder role?

leaden hedge
#

until people use the c# code in mods

compact sedge
#

maybe 2/7ths depending on if the monomod guy does

leaden hedge
#

which they won't use

#

because its beta

#

so really its just controllers breaking

compact sedge
#

also doesn't wyza at least have a mac

#

so like 3/7ths

leaden hedge
#

as you probably shouldn't even be getting achievements if you're modding

#

as you should have really finished the game

compact sedge
#

I might get banishment on a modded save tbh

#

because it's gonna be my last achievement

copper nacelle
#

monomod guy doesn't have Modder tho

compact sedge
#

oh nvm then

#

2/7 then?

copper nacelle
#

and the Mac and Linux builds were put it in by me

#

and I still haven't swapped to Linux cause :effort:

compact sedge
#

2/7ths of all users with the modders role are also memes

copper nacelle
#

no u

leaden hedge
#

modders are fucking gay tbh

compact sedge
#

yeah glad I'm not one

solemn rivet
#

just u w8 m8

compact sedge
#

I'm gonna be waiting a long time if 56 is any evidence

copper nacelle
#

gradow waited longer than me

solemn rivet
#

I've been here like

leaden hedge
#

56 also only made memes

solemn rivet
#

before KDT even was a regular

compact sedge
#

actually I think you have to make memes to get the role

solemn rivet
#

^

leaden hedge
#

I had to make boss rush to get my modder role intenseface

solemn rivet
#

he figured it out

compact sedge
#

but in the end it was NGG that got you it

solemn rivet
#

I really liked your boss rush tbh

#

much fun

#

such happy

compact sedge
#

gee they should really add it to the game

#

such a good mode

solemn rivet
#

KDT's was better imo

#

bosses had little evil faces

#

it was the best

copper nacelle
#

^

compact sedge
#

really?

copper nacelle
#

gng is too formal

compact sedge
#

are there any surviving videos of it

solemn rivet
#

I'm just gonna downgrade tbh

#

feel like playing it

#

*downpatch

#

oof

#

56 is stealing yo name

#

just sayin

bronze temple
#

@leaden hedge why don't you 420iq hook UnityEngine's Input class methods?

solemn rivet
#

๐Ÿ‘€

leaden hedge
#

dunno if they are used for this

copper nacelle
solemn rivet
#

@compact sedge

bronze temple
#

Unless the game uses a custom native input manager (f.e. Rewired), all input should go through UnityEngine's Input

solemn rivet
#

sorry for the ping

compact sedge
#

ooh neat

solemn rivet
#

but you have to see this

compact sedge
#

where do those assets show up in game

bronze temple
#

and there's nothing inside Unity that should react to the input either - all input handling needs to happen on the game's side

solemn rivet
#

after killing each boss

bronze temple
#

so you should be fine hooking that bridge instead

compact sedge
#

oh

solemn rivet
#

you get a selection screen

leaden hedge
#

it uses InControl

bronze temple
#

oh

solemn rivet
#

megaman-style

leaden hedge
#

which is afaik a custom input manager

copper nacelle
#

the game uses incontrol

bronze temple
#

oh, rip~~, hook that instead :^)~~

leaden hedge
#

thats what I want to do :^)

#

but its a 1 line property getter

leaden hedge
#

so runtime detours won't work

#

and manually putting a hook in doesn't seem to work

solemn rivet
#

don't remind me of those, 56

copper nacelle
#

f5 is left button

bronze temple
#

hm

#

@leaden hedge something that hasn't been tried in practice yet: You could set the MONOMOD_PREVENTINLINE env var to 1 when patching Assembly-CSharp.dll

#

that tells MonoMod to set the NoInlining flag on all methods to true

leaden hedge
#

well I'm trying to get the people that build the api and have it set it up to try getting it to work

#

cough @copper nacelle

bronze temple
#

which works, but the performance implications haven't been measured yet

#

I mean, old Unity's old mono is slow anyway, what are you going to loose? intenseface

leaden hedge
#

my crisp 25fps

#

can't I just asm hack this intenseface

bronze temple
#

if you could find all usages, sure

leaden hedge
#

I think this has enough hacks for one program tbqh

#

I think we can use the proper channels for hooking input intenseface

copper nacelle
leaden hedge
#

its just in InControl

bronze temple
#

If you're insane enough, you could create your own InputDevice class and force it into InputManager.devices

#

AttachDevice is even public

#

and you could call DestroyDevices beforehand to get rid of all other input devices nevermind, this is private

leaden hedge
#

private?

copper nacelle
#

reflection irl

leaden hedge
#

who cares :^)

bronze temple
#

that's the spirit :D

leaden hedge
#

do you remember what we were doing earlier today

#

do you really think we care about "private" :^)

bronze temple
#

that kinda motivates me to TAS Yooka-Laylee thinkgrub

leaden hedge
#

fix my TAS code for HK first intenseface

#

I was gonna do HLD

#

but thats even more of a mess

bronze temple
#

let's just create an universal Unity TAS utility intenseface

solemn rivet
#

more like Eww-ka Laylee

leaden hedge
#

I mean the code I have should fix timing for all unity games

bronze temple
#

more like "setting timescale to 10 makes all collision fall apart" Laylee

leaden hedge
#

only thing left is randomness and input

#

random is definitely on a per game basis

solemn rivet
#

can't yo just do "if random => not"

leaden hedge
#

but replacing all System.Random / UnityEngine.Random would probably work for 99% of games

bronze temple
#

depends on how deep you want to apply the hook

leaden hedge
#

well they might not even use .Random at all or any system libraries

#

they might just count frames and use that

#

although that'd be fixed by the timer hacks

bronze temple
#

might as well just set a seed if you already control everything else

leaden hedge
#

I'm not sure if the order scripts run in is 100% deterministic

#

and as requesting random advances the seed

#

you'd need to set the seed for every request

bronze temple
#

true, yet assuming that you control all input, all timing and that the order in which scripts run is 100% deterministic, you already control when / where a random value gets requested

compact sedge
#

idk where it gets the initial seed from

#

but possibly gettimeofday

bronze temple
#

probably system clock^

copper nacelle
#

setting monomod prevent inline rn

compact sedge
#

it calls gettimeofday a lot

#

as I learned after I added a c++ hook to it

copper nacelle
#

wtf

leaden hedge
#

oh one other issue

copper nacelle
#

the modcommon build is like 100x faster w/out hooking playmaker

compact sedge
#

heh

#

not shooked

leaden hedge
#

for somereason my time hack breaks on the first loading screen

#

but works after that

#

fine

compact sedge
#

so why are we hooking playmaker anyway

leaden hedge
#

it takes like 10 seconds or something to catch up

copper nacelle
#

oh nvm

#

it failed silently

#

ty rider

leaden hedge
#

although my current solution is really hacky

#
            totalTime += unscaledTime * Time.timeScale;
            int fixedTime = *(int*)fixedTimer;
            while(totalTime >= 0.0195f)
            {
                totalTime -= 0.02f;
                fixedTime -= 170;
            }
bronze temple
#

isn't all of this a hack anyway?

copper nacelle
#

i like how adding hooks is an extra 7100kb

leaden hedge
#

its basically send back the fixedTimer back 170 per fixed update it wants to do

bronze temple
#

@copper nacelle gonna appreciate the two autogenerated delegate types per method :^)

compact sedge
#

why 0.0195

copper nacelle
#

ouch

compact sedge
#

why not >= 0.01

leaden hedge
#

fp precision

#

not good

compact sedge
#

for maximum accuracy

leaden hedge
#

because its 0.02

compact sedge
#

that way it fluctuates between -0.01 and 0.01

leaden hedge
#

because it should only run fixedUpdates every 0.02 seconds ๐Ÿค”

#

oh

#

I see

#

I don't think you can trick floating points like that

#

I'm not sure if thats the way it works ๐Ÿค”

compact sedge
#

I don't know what you mean

leaden hedge
#

why would 0.01 be more precise than 0.02

compact sedge
#

because precision goes down by half every time you double the number

leaden hedge
#

the 0.0195 is because 0.02 is actually 0.019999999999999999997

#

0.1 isn't 0.1

#

it's like 0.9999999999999999999999998

#

so it'd still fail

compact sedge
#

why would it fail

#

it's just an arbitrary value that you increment by -0.02 every time you run a frame, and by a frame length every time the game draws a frame

rain cedar
#

Ok floats are imprecise but if you do

if (0.02f == 0.02f)
{
}```
you'll get true because they have the same imprecision
compact sedge
#

the actual number you put in the while loop literally doesn't matter at all

#

that's what I mean

leaden hedge
#

well yeah but sometimes they round down

#

sometimes they round up

compact sedge
#

so why not use a number that results in the highest amount of precision

leaden hedge
#

0.02 = 0.199999997 but 0.02 * 10 = 0.20000000000000002

rain cedar
#

If that was the case floating point code would break all the time

#

I've literally never had to worry about rounding direction

copper nacelle
compact sedge
#

my point is

            totalTime += unscaledTime * Time.timeScale;
            int fixedTime = *(int*)fixedTimer;
            while(totalTime >= 0.0195f)
            {
                totalTime -= 0.02f;
                fixedTime -= 170;
            }

is basically functionally identical to

            totalTime += unscaledTime * Time.timeScale;
            int fixedTime = *(int*)fixedTimer;
            while(totalTime >= 0.01f)
            {
                totalTime -= 0.02f;
                fixedTime -= 170;
            }

so long as you init totalTime to be -0.01f; insead of 0 but the second one gives you slightly more precision

copper nacelle
#

or wait

#

is that on the api building

bronze temple
#

that is when you run MonoMod.exe to patch Assembly-CSharp.dll

#

so probably API build

leaden hedge
#

also I think 0.01 + 0.01 is slightly lower than 0.02

#

so it would fail for >= 0.02

#

I mean making it as low as possible to increase precision is nice

compact sedge
#

except ur never gonna get a frame that's exactly 0.01 seconds long

leaden hedge
#

but I can just make it more lenient intenseface

compact sedge
#

and also idk why it matters anyway

leaden hedge
#

it doesn't really matter

#

but without it it'd randomly skip frames

#

and not update physics on them

#

and with it, it works fine

rain cedar
#
static void Main(string[] args)
{
    Console.WriteLine((0.01f + 0.01f) >= 0.02f);
    Console.ReadLine();
}```
bronze temple
#

you'll find out if the flag is set by opening the patched .dll in dnSpy and noticing [MethodImpl(MethodImplOptions.NoInlining)] appearing all over the place

rain cedar
#

This is a nonissue that you're trying to work around

compact sedge
#

here's the problem I think. the time spent running the stuff inside the while thing isn't being counted

#

so you're getting slightly desynced

#

totalTime -= (0.02f - epsilon);

imo

#

that should fix any skips

#

probably not

#

idk how to code

leaden hedge
#

this code should be taking like ticks to run

compact sedge
#

Isn't the only difference between while(totalTime >= 0.0195f) and while(totalTime >= 0.02f) that the former gives you a total of 0.0005 seconds of total leniency for the code inside to run after which it will skip one frame

#

it's not a lot but 0.0005 seconds is enough to run the code in that while loop probably 10,000 times or more

leaden hedge
#

I dunno

#

it didn't work without it as expected

#

and it worked in my testing with it as expected

#

I'll remove it intenseface

#

I like the way everyone has an issue with 0.02f and not with the random -170

#

which is just some random int that I think works

#

and is probably the actual issue

#

considering the number I'm subtracting from is a float I think ๐Ÿค”

#

I'm not sure tbh

#

also it seems to constantly get faster

solemn rivet
copper nacelle
#

uhh

#

the api has hooks in it

leaden hedge
#

oh its a double intenseface

copper nacelle
solemn rivet
#

playing bossrush

#

hype

bronze temple
#

@copper nacelle do you mean that the patched .dll contains the On namespace?

copper nacelle
#

and then commited it w/ the linux build support

bronze temple
#

oh, okay

leaden hedge
#

if I nop out the movsd

#

@bronze temple

bronze temple
#

Am busy rn, will take a look in a few mins

#

sry

leaden hedge
#

oh I fixed the jank

bronze temple
#

back

#

@leaden hedge is your question still relevant? ๐Ÿ˜…

leaden hedge
#

ah no I injected code elsewhere

#

nop'ing the currentTime instead of the previousTime works fine

#

quality journalism FeelsGoodMan

#

no jank here intenseface

bronze temple
#

Maybe I can affect something, as I have 1/4 as many followers as him :^)

leaden hedge
#

the call out :^)

#

oh I just realized that grimmchild got abducted by the elevator in that gif lol

#

didn't know elevators did that

solemn rivet
#

yeah, was about to comment that

#

the ending

#

bye grimmchild

leaden hedge
#

celeste server mods have 420iq

#

use gay to describe something related to GBJ

copper nacelle
#

big think

leaden hedge
#

and the GBJ prevention I was talking about I suggested LuL

#

and I was obviously memeing

#

its pretty gay tbh

#

also they completely missed the meme FeelsBadMan

#

its funny like kys yourself FeelsBadMan

copper nacelle
#

FeelsBadMan

compact sedge
#

I don't even know what GBJ is but gay as an insult or negative statement is not even like in my vernacular so I cannot relate at all to being warned about saying something like that.

leaden hedge
#

GBJ is gay baby jail

#

which is a softlock in a game

compact sedge
#

oh

#

huh

leaden hedge
#

and thats why its funny

#

gay GBJ is redundant on its own

copper nacelle
#

got up to 0x0ade

solemn rivet
#

best strem

copper nacelle
#

updated modcommon w/ some reflection stuff and fsmutil

keen surge
#

i have suggestion for mod: mod that makes 56 not homoestest

copper nacelle
solemn rivet
vestal hawk
#

Would it be hard to add some sort of counter for how many grubs you have rescued in the menu? Always thought it'd be a nice addition

hollow pier
#

count

solemn rivet
#

just beat the collector

leaden hedge
#

good for you

solemn rivet
#

no

#

I mean

#

if you want a grub counter

#

just... Beat the collector

leaden hedge
#

i know what you meant

#

this is a meme

solemn rivet
#

dafuq

inland mauve
#

q-p

fringe schooner
#

arent you supposed to have 4 masks with lightbringer?

#

cuz rn you have 5

copper nacelle
#

shut

#

the newplayerdata hook is deprecated and effort

fringe schooner
#

wow ruining the original lightbringer

#

56 is officially a bad guy

copper nacelle
#

thanks, i try

bronze temple
copper nacelle
#

about to check

bronze temple
#

(don't mind my pfp, I'm currently stuck with it >.<)

leaden hedge
#

on change screen, if screen = tutorial cutscene

#

set hp to 4

#

unrelated to monomod intenseface

copper nacelle
#

i'll do that

#

@bronze temple works now happygrub

bronze temple
#

Glad that it works :D

copper nacelle
ornate rivet
#

Where to get mod common? hollowface

copper nacelle
#

dieth

inland mauve
copper nacelle
#

ty kdt

fringe schooner
#

what

copper nacelle
#

arent you supposed to have 4 masks with lightbringer?

#

also 1 less charm notch

exotic venture
#

4 masks to start out with

#

the real way of playing

copper nacelle
#

wtf

#

the terraria modloader api thingy

#

is built by

#

decompiling terraria completely

#

applying a bunch of regular patches using a .bat

#

adding some code

#

and then compiling it again

#

i think

rain cedar
#

That does give you the most freedom, I guess

hollow pier
#

tmodloader person says his code is bad

solemn rivet
#

lemme check the pr...

copper nacelle
#

pr makes it perma changed

solemn rivet
#

yeah

#

and there's some language issues

#

@inland mauve what's the dash called in the pt-br localization?

#

I'm too lazy to check myself

rain cedar
#

I don't think the game has that language

solemn rivet
#

I think it does

#

I don't play in it, but when I first installed it, it was in the language options

#

dunno what it's called internally tho

rain cedar
#

I think it has portugal portuguese but I have no idea how different that is

solemn rivet
#

somewhat

#

dl'ing UABE brb

hollow pier
#

gradow e br

solemn rivet
#

u already know that m8

hollow pier
#

kkkkkk

solemn rivet
#

wtf

#

not like this is news to anyone

hazy sentinel
#

p-q

inland mauve
#

q-p

#

stop of stealing my emojis or the innocent grub gonna kill you

copper nacelle
solemn rivet
#

omg

#

dash is "investida" in the pt localization

#

smh

#

<entry name="PROMPT_SUPERDASH">Super Investida</entry>

rain cedar
#

Ok that looks like invested and google translate says it means invested

#

But that makes no sense at all

#

Is the translation really that bad?

solemn rivet
#

"investida" is more like a tackle tbh

#

in other places is "esquiva" which is better translated to dodge

#

<entry name="GET_DASH_2">Use o manto para esquivar rapidamente no solo ou no ar.</entry>

copper nacelle
opal hearth
#

DODGE

#

hey have there been any mod updates i should be aware of

copper nacelle
#

lightbringer makes it say install modcommon and 56 geo has something similar to 753 geo

#

qol has mouse bindings

#

idk

opal hearth
#

oh neat. i already have modcommon.

#

who is 56 geo for? cuz i probs already beat em.

#

is redwing available yet?

copper nacelle
#

yeah

#

56 geo has the same lost kin thing

#

redwing is on the gdrive

#

and/or the installers

opal hearth
#

oh neat cool

#

thanks

compact sedge
#

guess I should be like... shilling it or something

#

I thought I was but maybe not enough

opal hearth
#

i haven't popped in here in like. a week.

#

it's been stupid hot out and i've been exceedingly tired

#

so i didn't even know

inland mauve
#

gradow srry if i did a bad work,its my first time

young walrus
#

that's what she said

inland mauve
#

she?

solemn rivet
#

Savage

inland mauve
#

oof

solemn rivet
#

Anyway, I'm finally home, so I'll review your pr in a bit

inland mauve
#

thanks,ikr its not perfect but i tried

solemn rivet
#

Idk how to translate dash tho

#

Why don't we have dash in Portuguese

inland mauve
#

esquiva

solemn rivet
#

Except no, it's not

#

They are completely different

#

Even their use-cases are completely different

inland mauve
#

(so i need to fix the translation ;-;)

#

i just put dash?

young walrus
#

does it say "butts" all over?

inland mauve
#

butts?

#

(butts is bundas,idk if this says it...)

#

its weird to say it q-p)

solemn rivet
inland mauve
#

ยฏ_(ใƒ„)_/ยฏ

young walrus
#

all words are "bundas"

#

best mod

solemn rivet
#

urmomgaymod v2

young walrus
#

gottem

solemn rivet
#

56 make a mod where each text is replaced by a variation of ur mom gay

inland mauve
#

despacito 2 vs dame tu cosita real life 100% asmr 2018

#

best clickbait ever

#

ya do it

solemn rivet
#

no u

#

commented on your pr

inland mauve
#

;-;

solemn rivet
#

?

#

I didn't say anything bad tho

inland mauve
#

i like to do this face

#

;-;

#

q-p

young walrus
#

you like to cry?

inland mauve
#

i'm weird

#

q-p

young walrus
#

quick play

inland mauve
#

i like to stalk my mom while she sleeps

#

q-p

copper nacelle
young walrus
#

i dont get it

rain cedar
#

The joke is it's creepy

inland mauve
#

isnt a joke

solemn rivet
#

ofc it is

inland mauve
#

k just kidding

#

;-;

solemn rivet
#

new DMS smh

copper nacelle
#

q-p more like

#

p-q

inland mauve
#

q-p is better

solemn rivet
#

d-b is better imo

inland mauve
#

lfmao

#

b-d

copper nacelle
#

better-discord

#

stay woke

solemn rivet
#

damn-bots

#

also 56 uses bd confirmed

inland mauve
#

oof

opal hearth
#

so uhh

#

i beat empress muzznik

#

and now i'm stuck in that room

#

wot the beans, m8

opal hearth
#

also

#

i fought gorb about an hour ago, just unlocked stag nest, left stag nest, fought gorb again. is.. that normal? o_O

rain cedar
#

Yes for some reason that's a feature of it

#

All the dudes respawn

opal hearth
#

ah, fair enough. how strange.

solemn rivet
#

Blackmoth now has official pt-br translations

#

yay

hazy sentinel
#

does it have en-us translations

solemn rivet
#

lemme check

#

no it does not

hazy sentinel
#

fuck

steep sail
#

I can help with RU translation) if it isn`t big

buoyant obsidian
#

Empress Muzznik gets you stuck?

solemn rivet
#

Mapmaker Lich can I send them to you in DM?

steep sail
#

DM?

hazy sentinel
#

direct message

steep sail
#

Oh. Send, of course! (I prefer PM - personal message)

hazy sentinel
buoyant obsidian
#

Direct is just poor word choice

#

I blame Twitter

#

@hazy sentinel this is a direct message to you

#

It's all a big trick to desensitize us to data collection

#

They read our PMs any time they want and if we call them out on it they just say it's a DM not a PM

solemn rivet
#

753 is illuminati confirmed

steep sail
#

)

waxen wyvern
#

Latest ModInstaller crashes if there is not a "Mods" folder already existing

#

it shows up as a .net framework error

solemn rivet
#

thought I'd fixed that

#

oops my bad

#

updated link

waxen wyvern
#

works now

#

ty

solemn rivet
#

np! Thanks for pointing that out

compact sedge
#

I guess I should ask here tho: When making any of y'alls mods. For what parts of it did you most use and rely on DnSpy?

rain cedar
#

Literally everything

compact sedge
#

because it's just not that useful of a tool to me and I wanna know if it's because I've never attempted anything similar, or if it's because I'm doing something wrong, or if I've just found different tools that work as well.

copper nacelle
#

idk how I'd have made anything without dnspy

fair rampart
#

Without dnspy, you'd literally be guessing what does what

#

Which would make modding 1000x harder

solemn rivet
#

haven't seen you in a longe time

#

your name always reminds me of Xenoblade Chronicles' Zanza

inland mauve
#

i think anything possible to do without dnspy is a translation q-p

compact sedge
#

OK to clarify I used the built in decompiler from time to time to figure out how some variable on HeroController is used, and other than that I've used decompiled stuff to find a certain function X, but I haven't really found the analyze functionality useful.

bronze temple
#

Remember when dnSpy was used to actually patch the game? intenseface

fair rampart
#

@bronze temple don't remind us ๐Ÿ˜…

#

@solemn rivet I stalk the chat still, I like to see what all you guys do.

#

I just don't engage unless the talk is about technical stuff

inland mauve
#

co-op dreamshield is actually working?

compact sedge
#

no

inland mauve
#

:<

#

what's happening with him? bugs...updates?

copper nacelle
#

moving and college iirc

solemn rivet
#

I'm not sure they were asking about 753, but I guess that works

#

also

#

Zandra is spying on us

compact sedge
#

in summer school... can totally relate

solemn rivet
inland mauve
#

oof

solemn rivet
#

and don't remind us, 0x0ade

fair rampart
#

Well I can't do much else

copper nacelle
#

summer school gives the 4th of July off

compact sedge
#

yes

copper nacelle
#

no I mean mine does

compact sedge
#

same

solemn rivet
#

I have vacation for the whole month

compact sedge
#

I wanna do my meme mod since it's a strict requirement that everyone make at least one of those I guess

inland mauve
#

co-op isnt workings because lifeblood and that new updates?

solemn rivet
#

great being in the south hemisphere

compact sedge
#

co-op isn't working because it hasn't been updated in 12 years and isn't open source so nobody else can

fair rampart
#

Oof

solemn rivet
#

AA: how about that thing KDT did with the timescale

inland mauve
#

a giant oof

solemn rivet
#

that made enemies shoot continuously

compact sedge
#

what about it

copper nacelle
#

remove all waits from all FSMs

#

imo

fair rampart
#

I made my Co-op mod for another game open source and someone immediately picked it up

compact sedge
#

56 immediately picked up lightbringer because of that and I would have had he not

fair rampart
#

It would be nice if somehow there could be a mod that adds online mp to all unity games, somehow... sadly that's impossible with today's tech. Maybe once day

compact sedge
#

I saw that

inland mauve
#

wtf

compact sedge
#

it was modifying the value reported by DeltaTime using cheat engine

solemn rivet
#

yeah

#

I wonder if we can make shitmothst69 using this

steep sail
#

But... In Unity deltaTime is constant...

inland mauve
#

anyway i gtg

fair rampart
#

No it's not?

solemn rivet
#

not

compact sedge
#

I'm making it just using the api because I want it to be (the first?) shitmodst that's compatible with other mods

fair rampart
#

Delta time is in no way constant

compact sedge
#

feel free to send PRs to make it more shitty I guess tho

steep sail
#

dt is read-only, right?

solemn rivet
#

iirc KDT was actually working with 0x0ade trying to figure a way around that

compact sedge
#

more like KDT is asking 0ade to do all the work

fair rampart
#

Read only != constant

#

You can still assign read only values if you're clever.

steep sail
#

Strange thing of programming)

fair rampart
#

Aka use reflection

solemn rivet
#

the forbidden arts

fair rampart
#

Indeed.

#

I just imagine a programmer sitting in a dark room with a mirror, chanting a bunch of shit and programming reflection code

#

I don't actually know if you can assign constants using reflection... I doubt it.

copper nacelle
#

wouldn't that be useless anyways

#

cause values of constants are put where they belong at compile time and stuff

fair rampart
#

Oh, really?

#

Didn't know that.

copper nacelle
#

yeah iirc

fair rampart
#

Good to know

copper nacelle
#

read an article suggestions the use of readonly variables over constants on things you might change in the future

solemn rivet
copper nacelle
#

because assemblies which were compiled with the old version, even when upgraded to the new version, would still use those old constants

#

cause they're constants

fair rampart
#

Yeah, depending on your patching system and stuff. Makes sense.

#

Is there that much of a performance boost to using constants over read only?

steep sail
#

And he forgot about game name)

BOII
````Gradow - 04-07-2018 21:40 | #modding`
fair rampart
#

I imagine there is some boost but I wonder if it's worth it...

copper nacelle
fair rampart
#

Ah

solemn rivet
#

wut Mapmaker Lich?

copper nacelle
solemn rivet
#

iconoclasts

fair rampart
#

I need to google what exactly inline means in this context, 0x was mentioning it before...

solemn rivet
#

at first I was like "cool icono has rando too!"

steep sail
#

One joke - I`m RU founder of Iconclasts wiki)

solemn rivet
#

ur RU founder of all metroidvanias

steep sail
#

Nope. HK RU Wiki was founded by Plizirim... And now ruled by one of the official translators of the game

#

I`m out - need to look through Blackmoth translations!

copper nacelle
#

`

#

why

compact sedge
#

blackmoth coming to everylanguage โ„ข

solemn rivet
#

(early 2028)

copper nacelle
#

right before hollow knight 2

leaden hedge
#

hollow knight 2 is already out

#

don't you read my rich presence

copper nacelle
#

fucking

#

dnspy on linux

#

is no

#

gonna set up a non shit tiling wm instead

dusky lion
#

Could you use mono decompiler?

copper nacelle
#

but i need

#

a n a l y s e

rain cedar
#

64% and the biggest user is 364MB

#

Do you only have 2GB RAM?

copper nacelle
rain cedar
#

View processes from all users tbh

copper nacelle
rain cedar
#

That's not 10.9

copper nacelle
rain cedar
#

Is your main drive almost full?

exotic venture
#

ramdisk?

rain cedar
#

Could be OS taking a shit ton for swap file

copper nacelle
#

my swap is on X

#

which is 324 free/488

rain cedar
#

Alright

#

Weird

#

Idk

exotic venture
#

at that point i'd assume my windows is possessed and fresh install

copper nacelle
#

considering it tbh

compact sedge
#

you don't need analyze. I didn't need it for any of my mods and I can't see what you could possibly be making that would need it

#

also rider has it

#

shift f12

copper nacelle
#

but does rider have good search

solemn rivet
#

also search all assemblies for a specific term is ok_grimm

compact sedge
#

that's grep

copper nacelle
#

:ech:

compact sedge
#

if you just wanna search for a specific term

rain cedar
#

A basic search isn't good

#

It'll match text but not show you all uses of that exact variable

#

Not reliably at least, there'll be extra results

compact sedge
copper nacelle
#

light theme re

compact sedge
#

and here's that usage

        if (!PlayMakerGlobals.IsBuilding && !PlayMakerFSM.NotMainThread && action.Name == "~AutoName")
        {
          action.Name = action.AutoName();
          action.IsAutoNamed = true;
        }
copper nacelle
#

but like

#

if i search for

#

sendToChildren

rain cedar
#

That doesn't look like grep to me

compact sedge
#

I said rider has it that's what I said

copper nacelle
#

in the Assembly-CSharp solution w/ dnspy console

#

i still won't find the 40 playmaker actions i was looking for

compact sedge
#

this may be a stupid question but why doesn't dnspy work on linux anyway

copper nacelle
#

idk

#

winforms or something

#

i think

#

the wine version can't some type with token 489519843981345 or something

compact sedge
leaden hedge
#

analyse is great for when you know A exists but you want to know what makes it and when

#

and you can just go through Used By until you find the function that actually makes it

copper nacelle
compact sedge
#

which yes means that dnspy is written in fuckn silverlight

#

in case you are wondering

copper nacelle
#

wow nice

compact sedge
#

if I ever have to make a UI in anything other than Qt then I know I'd have died and gone to hell.

copper nacelle
#

gtk

compact sedge
#

is alright

#

I'd use it before I used silverlight

copper nacelle
compact sedge
#

is this shitty knockoff htop

copper nacelle
#

idk

leaden hedge
#

using lbraries to make gui

#

just make a opengl window and render quads intenseface

compact sedge
#

...opengl is a library

#

manually write to your screen buffer

leaden hedge
#

its not a gui library though

#

that'd be very slow

#

I mean I could push vertex data and texture data manually to my gpu

#

but really why would you want to

compact sedge
#

not making your modinstaller in Unity
not making your desktop shell in unity
not using unity as an init system.

copper nacelle
#

emacs as an init system imo

leaden hedge
#

im going to write a windows emulator in unity

#

and use that to run unity games

rain cedar
#

That's gonna run like crap

#

The only clear solution I can think of is to first recreate Unity in a way that works properly

copper nacelle
#

i bet it's folder size shower

#

or some shit

#

the actual fuck

#

i restarted into safe mode

#

4% memory usage

exotic venture
#

virus

solemn rivet
#

u g0t virus.boi

copper nacelle
exotic venture
#

definitely virus

copper nacelle
#

i mean i'll run malwarebytes beforehand then

#

idk

#

ran it like a month ago when this was still happening and it found 0

solemn rivet
#

well

hollow pier
#

make it not reinstall windows

solemn rivet
#

for a free av it's ok

#

but it's not impervious to virus or anything

#

it's just a good free alternative

exotic venture
#

the best antivirus is common sense

copper nacelle
#

yeah

#

back to resetting

solemn rivet
#

56 how many anime tiddies u got

exotic venture
#

what if it's winblows crapfender

solemn rivet
#

those are famous for virus

copper nacelle
#

i disabled win defender

exotic venture
#

then what's hogging all that ram

#

google chrome?

copper nacelle
#

no fucking clue

#

the thing is

#

it's not on my user account

exotic venture
#

๐Ÿค”

copper nacelle
#

and it doesn't show up in the ram sysinternals thing

#

therefore

solemn rivet
#

would process explorer help?

copper nacelle
#

tried that

#

tfw restarting in safe mode killed my themes

exotic venture
#

try enabling secret administrator account to see what's fucky

solemn rivet
#

yup

#

or don't

#

it'll give full access to russian hackers

copper nacelle
#

i've got a cmd prompt as nt/system

solemn rivet
#

all those btc

copper nacelle
#

already

#

i could run process explorer from there i guess

solemn rivet
#

speaking of which

#

maybe someone is using ur pc to mine

exotic venture
#

RAM mining?

#

that's a new one

copper nacelle
#

my cpu usage is like 30

solemn rivet
#

hm

hollow pier
#

haha mine

#

and then

#

mylajoy

#

like

#

myla

#

mines

copper nacelle
#

and dies

hollow pier
#

its a good joke

exotic venture
#

perish thanks

hollow pier
#

perish

#

like myla does

#

haha

fiery obsidian
#

uhhh...

copper nacelle
#

process explorer as nt/system is not recommended

solemn rivet
#

wanna confess?

fiery obsidian
#

i just kinda came in saying i want the light bringer mod but virus stuff and.

exotic venture
#

vmcompute

#

virtual machine

copper nacelle
#

yeah i've got docker on this

hollow pier
#

virtual movel

copper nacelle
#

no

hollow pier
#

verulea n

copper nacelle
solemn rivet
#

melonconfessor virus is unrelated

fiery obsidian
#

k.

hollow pier
#

mbam

#

more like

#

ybham

copper nacelle
solemn rivet
#

order by process reee

fiery obsidian
#

so uh....lightbringe ris non API right?

copper nacelle
#

i was ordering by memory used

#

ree

#

lightbringer API port is on the installer

#

ree

solemn rivet
#

no, it's api

exotic venture
#

lightbringer now is api

fiery obsidian
#

k

hollow pier
#

wow you ruined lightbringer huh

exotic venture
#

thanks to the council of numbers

copper nacelle
#

finna

#

r e s e t

#

my computer won't update anyways

exotic venture
#

or rather, 56 just carried 753 to relevancy again instead of letting him be forgotten

solemn rivet
#

I had to reset my pc last month

copper nacelle
#

fixing issues and updating just makes it fail again

#

good shit

solemn rivet
#

took me literally a couple of days until windows update decided to stop pushin ridiculous updates

copper nacelle
#

holy shit

#

well

fiery obsidian
#

k i got the mod installe.r

copper nacelle
#

e.r

#

gonna keep my files

fiery obsidian
#

spelling isnt my strongest :P

solemn rivet
#

tfw the best, most stable win10 build is the first one

copper nacelle
#

Could not find the recovery environment

#

reee

solemn rivet
#

all the other ones are like shite

#

oh shit

#

rip

copper nacelle
#

i installed this off of some random usb

#

gotta

#

reinstall

#

the

#

installer

solemn rivet
#

replace it with linux imo

copper nacelle
#

no dnspy on linux

#

otherwise i'd already be there

#

it has some typeload errors and dies

fiery obsidian
copper nacelle
#

wait

fiery obsidian
#

that appeared

solemn rivet
#

more info

copper nacelle
#

gradow why is your modinstaller a virus

hollow pier
#

yeah its a virus

#

just download it

solemn rivet
#

because I hate smartscreen

hollow pier
#

no problems

copper nacelle
#

maybe i need to install silverlight in wine

#

still gonna reset this windows install anyway tbh

solemn rivet
#

just throw that hdd out the window imo

#

not worth it

#

unless it's an ssd install

copper nacelle
#

it is

solemn rivet
#

save it

copper nacelle
#

triple booted ssd install so i kinda need it

solemn rivet
#

yeah

#

well

#

rip ur time

#

see you in a few years m8

#

I'll tell tales of your brave ventures to my grandchildren

#

melonconfessor: more info, execute anyway

#

or don't and install it manually

#

your choice

fiery obsidian
#

uh

exotic venture
#

throw hdd out the windows

#

haha

#

also why do you have 3 OSes on an SSD are you 50 million IQ

copper nacelle
#

yes

#

128GB, 30ish to linux, 60 to windows, rest to hackintosh

exotic venture
#

wtf

copper nacelle
#

linux really doesn't take much space

exotic venture
#

i have that small of a drive as fucking cache

copper nacelle
#

i've got like 10gb free

#

i'm gonna try uninstalling some drivers

river eagle
#

where do you even need 3 operating systems corny

fiery obsidian
#

im so sensitive when it comes to viruses so ill get like one tiny virus and go to breakdown mode and scan with everything milliS

copper nacelle
#

hackintosh is fun

river eagle
#

at least 2 should be enough for everything

copper nacelle
#

linux is better than windows

#

and windows is games

#

but i'm trying to get linux up for games using lutris

#

but

#

d

#

n

#

s

#

p

#

y

#

ree

solemn rivet
#

who needs fun anyway

#

linux+windows is win

river eagle
#

why would you need hackintosh when you have linux and windows which both do everything you need

copper nacelle
#

f u n

solemn rivet
#

^

river eagle
#

more like waste of ssd space

solemn rivet
#

f u n

exotic venture
#

hackintosh is fun

copper nacelle
#

also i used it for the modding api mac build

exotic venture
#

also you should dump linux on a hard drive tbh

copper nacelle
#

die

#

my linux boot up is under 10 seconds

#

and must stay that way

solemn rivet
#

as if you needed it

copper nacelle
#

i bet

#

it's gonna be

#

the wiimote driver

exotic venture
#

also are you using grub as bootloader

copper nacelle
#

no

#

i don't hate myself

exotic venture
#

oh ok

#

i was about to say "that's probably even bigger meme good luck if partition dies lol"

copper nacelle
#

w/ rEFInd-minimal theme

solemn rivet
#

pretty

exotic venture
#

oh

river eagle
#

well that does look neat

exotic venture
#

that's really pretty

fiery obsidian
#

wait is the lightbringe rin the google drive folder outdated?

solemn rivet
#

no

fiery obsidian
#

k

copper nacelle
#

the one which doesn't have my name in it is bad

#

simple

solemn rivet
#

and his name is 56 btw

fiery obsidian
#

wait what doe sthe hell mod do?

exotic venture
#

and his name is john cena

copper nacelle
#

5/6 spell damage, 1/3 soul, 1/2 soul gain, 2.5 nail damage, deep focus healing speed, 2x incoming damage

solemn rivet
#

makes your life hell

#

also, Mick didn't believe me when I said I got that skip on lifeblood sadgrub

fiery obsidian
#

oh god.