#archived-modding-development

1 messages ยท Page 461 of 1

fickle bolt
#

and a camera lol

dark wigeon
#

Tk2d

#

It's kinda special though

fickle bolt
#

how so

dark wigeon
#

It's a monobehaviour that creates a sprite but when we build the scene I don't get the sprite sheet

fickle bolt
#

oh so you arent suposed to do anything and the knight just hops in with the script?

dark wigeon
#

So we could either create a sprite renderer for all the tk2d monobs, or we could wait until the scene has been created and manually decode from resS

#

Sorry, enemies are tk2d

fickle bolt
#

oh yea i noticed that but they are invis

dark wigeon
#

The knight is too but as you said, it gets created by script

fickle bolt
#

ah

dark wigeon
#

If you could commit your code, I want to see if I can get it working

#

Idk where you set up the monobehaviour at so I might be able to parse it early

fickle bolt
#

because i didnt understand how the whole loading process worked so i wrote it myself to figure it out

obtuse stag
#

is there a github for the debug mod?

fickle bolt
#

what is the point of the monoSceneReplacers cuz they caused issues for me and removing them didnt cause any harm

dark wigeon
#

What file

copper nacelle
fickle bolt
#

what file what

obtuse stag
#

thanks

dark wigeon
#

Monoscenereplacers

fickle bolt
#

oh

#

reference crawler

obtuse stag
#

I've got no idea how to do anything, so examples is how it goes

fickle bolt
#

or uh it could possibly be loader ill check

#

yea its crawller

dark wigeon
#

Not important, it's when I was testing loading with you

fickle bolt
#

ohh

#

well if you get rid of those it basically makes monobehaviours work lol

#

uh and also 0x72 is behaviour 0x73 is script u mixed them up in some places

dark wigeon
#

Anything that says list of replacer is a list of new assets being added to an assets file

#

Where did I do that

fickle bolt
#

yep but mono and scene were just added together

dark wigeon
#

I think it was about ordering actually

fickle bolt
#

it might have just been the comment that you used the wrong name for and the functionality could have been ok actually

dark wigeon
#

I made two lists so monobehaviours came second

fickle bolt
#

oh

dark wigeon
#

I ran into an issue like this earlier where unity would crash if the monobehaviour came before a gameobject

#

It's possible that it just always works out here

fickle bolt
#

oH is that why its crashing lollll

#

sometimes my thing still crashes

dark wigeon
#

Lol that's it then

#

Good ol unity

fickle bolt
#

it might not be tho ive had a number of different crashes

#

its so fun cuz you cant even get help from unity people if there was an issue since its an ancient version

dark wigeon
#

Also no error messages or debugging

fickle bolt
#

well

dark wigeon
#

C# debugging ish

fickle bolt
#

i can get the log in Rider from before it crashed

dark wigeon
#

I can't get the c# debugger to even work

#

I have rider but I'm using vs right now and it refuses to debug

#

So just debug.log all the way

fickle bolt
#

oh well i couldnt get debugging to work in editor scripts

#

so yea debug.log ftw

dark wigeon
#

Editor scripts are worse yeah

#

How much faster is the dll?

fickle bolt
#

faster than ?

dark wigeon
#

I built a release build in hopes of it going faster but it wasn't too much faster so I just replaced it with the code again

fickle bolt
#

oh

#

do you have the whole of hk code not in a dll ? wut

dark wigeon
#

Ohhhh

#

This is for scripts

fickle bolt
#

yea lol

dark wigeon
#

It's all in HKEdit.cs lol

fickle bolt
#

but you just have fields right ?

#

oh

#

you mean mine

#

yes

dark wigeon
#

Yeah one file now

fickle bolt
#

well theres a few in the util package but the important stuff is all in one cuz didnt really see a need for more

#

mine isnt for worldedit tho so obviously a bunch of your stuff is missing

#

like editdiffer

dark wigeon
#

I feel like a lot of this stuff could be a lot easier if the API was smarter, ie adding a new pptr field into an array or creating a new typetree entry

#

But pathid management is awful

#

Even with assets manager

fickle bolt
#

yea editing the asset file structure in memory is big pain

dark wigeon
#

Yeah esp in memory because there's no filename

fickle bolt
#

and this is kinda an issue which has happened ever since i imported hk code to unity but i didnt really try to fix it yet
just some random classes dont load

dark wigeon
#

If it could not load type, maybe there's another type it depends on?

fickle bolt
#

hm i will look at the files that it cant load and see if they need something

#

gamecameras always fails and i didnt get to checking which others ones repeat

dark wigeon
#

Ok you do that, I'll work on the saving part if I have time but next week I'll be gone

fickle bolt
#

ono

#

saving is cool tho

dark wigeon
#

Saving is worse and better at the same time

#

Just have to configure a different unity to accept the changes

fickle bolt
#

different unity ? ๐Ÿ˜Ÿ

#

but we use the same as game

dark wigeon
#

Player vs editor

#

You know, typetree differences and such

fickle bolt
#

oh yea right

#

oh i suck i need the firstpass dll of course

dark wigeon
#

Lol big brain

fickle bolt
#

well this is a sad day, i have to replace all the references to aseembly-csharp-firstpass with hkcode-firstpass and thats not easy it seems

dark wigeon
#

Ah yes, now you know what I deal with

#

Except now it's script dependencies not assets dependencies

fickle bolt
#

rEwIrIng asSet PoINTers (2 /. 3) except its not

solar jacinth
ornate rivet
#

Should Fennel's slash be parriable?

fickle bolt
#

im not really a fan of
Recursive Serialization is not supported. You can't dereference a PPtr while loading. (Constructors of C# classes may not load objects either. See stacktrace.) and gameobject has multiple entries of the same component annnd componet could not be loaded when loading game object o god

solar jacinth
#

@ornate rivet yes pls

dark wigeon
#

@fickle bolt welcome to the club

fickle bolt
#

โ™ฃ

dark wigeon
#

rEwIrIng asSet PoINTers (2 /. 3) except its not
Wdym it's definitely replacing the pptrs with the correct ones

fickle bolt
#

i mean its assembly references not pointers

#

ur thing is fine

dark wigeon
#

Is buildsettings m_Version not the same as typetree.unityversion ?

fickle bolt
#

m_Version is the same as application.version but i never checked version on the typetree

dark wigeon
#

Yeah idk why it's on typetree

#

I'm thinking of moving things around and renaming fields, even if it's different from the original

#

Hash fields are still called unknown

fickle bolt
#

what the heck it seems that unity dosent allow

GameObject

  • PPtr<MonoBehaviour>
    • PPtr<Animator>

this is anger

#

cuz thats how its generated

dark wigeon
#

? Wdym

fickle bolt
#

but it makes unity angry

#

Recursive serialization not supported. You can't dereference a PPtr while loading so idk how to open it then

dark wigeon
#

Wait does your asset have multiple base fields?

fickle bolt
dark wigeon
#

O wait I'm dumb

fickle bolt
#

no im dumb ive spent three hours on this one thing

dark wigeon
#

Those are component indexes

#

So you create a gameobject with this component and that's the error message?

#

References to assets in monobehaviours should work fine

fickle bolt
#

if you have any nested pointer it does this i think

#

maybe i have to dereference them before loading or perhaps have the monobehaviour in the same file as the referenced thing ? idk

dark wigeon
#

O I think I know

fickle bolt
#

๐Ÿ‘€ ๐Ÿ‘€

dark wigeon
#

Recursive serialization I think is when you have a pptr to a serializable class

#

So instead of writing out the pptr it just writes out the data

fickle bolt
#

oH ~~ is that why they have a $ in PPtr<$type>~~

dark wigeon
#

Kind of like struct vs class in c#

#

So it should stop after the 8th depth

#

I think $ means from .net and not a unity c++ type

fickle bolt
#

oh lol

#

but uh

#

probelm is this is at the 8th depth

#

i must go deeper but how is a mystery

dark wigeon
#

None of those fields reference back to startmanager right

fickle bolt
#

they shouldnt

#

ignore the decompilation errors becuase im not actually using the decompiled source

#

but you can see the public vars at the top

#

also this isnt specific to startmanager, it happens with any monobehaviour that has public variables which arent a simple value

dark wigeon
#

What about just unity types but no .net types

fickle bolt
#

Im not sure what would happen then cuz I can't easily test it

obtuse stag
#

Is there any plans to improve the documentation and examples?

#

I'll reckon it's a bit hard to understand much like that

fickle bolt
fickle bolt
#

turns out it dosent matter if the monobehaviour variables are .net classes or unity types or just primative types, none of the monobehaviour data makes it to the exported scene file ablobcry

dark wigeon
#

You want it to be like the right but it makes the left?

fickle bolt
#

yea

#

But left bottom is also correct and that's what I get when I check the children during conversion

#

and right is the original scene from the game dir

#

do you know if I need to do anything other than adding the result of getmonobasefieldcached as a reference to save the additional monobehaviour properties?

dark wigeon
#

Add a type tree for it

#

Pretty sure there's a class somewhere to do that

fickle bolt
#

oh uh yea I didn't so that at all

#

whoops

dark wigeon
#

Templatefieldtotype0dconverter

fickle bolt
#

oh great, thanks I'll try that

dark wigeon
#

Make sure to add that to the type tree list before you create the new assets file

fickle bolt
#

you mean before i save it to disk ?

dark wigeon
#

Before create blank assets is called

fickle bolt
#

ah yea ok

#

sorry for dumb but where on earth do you find that method ? its not in type0d, typetree or assetmanager, monoclass or anywhere i would expect

dark wigeon
#

TemplateFieldToType0D.TemplateToTypeField

#

Not converter, sorry

#

You may have deleted it, but it's still in my repo

fickle bolt
#

that would explain

dark wigeon
#

Yeah, sorry

dark wigeon
#

Also it probably doesn't matter but monoclass doesn't add $ to class names fyi

fickle bolt
#

oh ok

#

well i think i failed to generate my tree properly... I made an array of every template field for every monobehaviour and called TemplateToTypeField(monoTemplates.ToArray()) on it and then tried to shove it into the MonoBehaviour type tree

var type0d = C2T5.Cldb2TypeTree(am.classFile, assetName);
type0d.classId = (int)info.curFileType;
if (assetName.Equals("MonoBehaviour")) {
  type0d.pTypeFieldsEx = fieldTypes;
}

and there werent any errors but nothing new happened either blobsadlife

dark wigeon
#

monoTemplates is the output of monoclass?

fickle bolt
#

oh uh i just did

baseField = am.GetMonoBaseFieldCached(asset.file, asset.info, managedDir);
monoTemplates.Add(baseField.templateField);
``` on every monobehaviour ![thonk](https://cdn.discordapp.com/emojis/310219883252154369.webp?size=128 "thonk") was that wrong
dark wigeon
#

Put in just baseField.templateField into it

#

Ok this is a little weird though

fickle bolt
#

your typefield generator method takes an array tho so i assumed i needed every field not just one

dark wigeon
#

Yeah I see

fickle bolt
#

also theres a stringtable that i left empty in your method and idk if its important ๐Ÿ˜Ÿ

dark wigeon
#

Just pass a one item array of the base field I guess

#

It's been so long since I did this .-.

#

Just try things until it works I guess

fickle bolt
#

lol alright

dark wigeon
#
MonoClass mc = new MonoClass(); mc.Read(m_ClassName, Path.Combine(Path.Combine(Path.GetDirectoryName(inst.path), "Managed"), m_AssemblyName), afInst.file.header.format); Type_0D type0d = C2T5.Cldb2TypeTree(am.classFile, clName); TemplateFieldToType0D typeConverter = new TemplateFieldToType0D(); TypeField_0D[] monoFields = typeConverter.TemplateToTypeField(mc.children, type0d); type0d.pStringTable = typeConverter.stringTable; type0d.stringTableLen = (uint)type0d.pStringTable.Length; type0d.scriptIndex = nextMonoId; type0d.pTypeFieldsEx = type0d.pTypeFieldsEx.Concat(monoFields).ToArray(); type0d.typeFieldsExCount = (uint)type0d.pTypeFieldsEx.Length; types.Add(type0d); sidToMid.Add(sid, nextMonoId); nextMonoId++;
#

From first commit

fickle bolt
#

oh that makes it so much easier thanks!!!

fickle bolt
#

i assume you do that once for every monoscript right? not sure what clName should be tho, is it just MonoBehaviour?

dark wigeon
#

yeah MonoBehaviour should be fine

#

just make sure each script gets a unique scriptIndex

fickle bolt
#

ok great

fickle bolt
#

uhhh sorry for being so bad at this but your sidToMid map is confusing me, cuz i'm not sure where you get the sid that you add to it or what i should be using the map for after its filled out (during replaceassets maybe??) i tried to just ignore it but that didnt work either blobcry

i looked through your hkworldedit code to try and see how you did this but i couldnt actually find the snippet you posted (closest i found was https://github.com/nesrak1/HKWorldEdit2/blob/master/Assets/Editor/Bundler/MonoClassFixes.cs#L29-L50)

fickle bolt
#

ok it seems that asset.file.file.typeTree.pTypes_Unity5[asset.info.curFileTypeOrIndex].scriptIndex; gets the sid but there are clashes between files from different namespaces (eg playmakerfsm and RecycleAfter2dtkAnimation are both 53... )

dark wigeon
#

scriptIdToMonoId, it just keeps track of script ids

#

its more like scriptIdToScriptIndex where scriptId is like the class name and namespace and stuff

#

so it gets that script info, checks if it already has a scriptIndex, and then either gets a new one or grabs the existing one

fickle bolt
#

oh so sidToMid.Add(new ScriptID(m_ClassName, m_Namespace, m_AssemblyName), curMonoId); not the numberical id

dark wigeon
#

the key here is the scriptId and the value is the scriptIndex or monoid

#

yeah unity's naming is a bit confusing

#

probably a little of uabe's fault too

fickle bolt
#

ah ok so its only used to prevent generating a typetree for the same script twice?

dark wigeon
#

yes, but I think unity will crash if you use the same scripts across multiple scriptIndexes

fickle bolt
#

fair enough

dark wigeon
#

you did find the original code right

fickle bolt
#

nope

dark wigeon
#

oh, sorry

fickle bolt
#

ohhh dunno how i missed that, sorry

dark wigeon
#

it was in the first commit, not the master

fickle bolt
#

yea i looked through the first commit cuz thats what you said earlier but i guess i failed

fickle bolt
#

well hooray every monobehaviour except playmakerfsm gets the correct fields now!!

solar jacinth
dark wigeon
#

Playmakerfsm won't open in uabe iirc

fickle bolt
#

oh

#

well unity crashes when i open the scene but everything looks good in uabe now thonk_dye

#

i wish i could see why it crashes lol

dark wigeon
#

Good ol unity

fickle bolt
#

i mean that works too

dark wigeon
#

Lol

fickle bolt
dark wigeon
#

I mean same

#

I'm pretty sure I have hundreds of crash logs

fickle bolt
#

yea those are all from the last two days tho :(

#

i will try attaching visual studio debugger to unity so i can get more crash info

dark wigeon
#

Maybe even thousands, I've been doing this for a few years

fickle bolt
#

gosh

dark wigeon
#

Not the hkeditor but modding in general

fickle bolt
#

i mean same but not hollow knight

dark wigeon
#

Just imagine if uabe was open source

fickle bolt
#

ikr why is it even closed source ? its not like the dev makes money off it

buoyant obsidian
#

To hide the malware of course

#

So much beautiful software, closed source without reason ;-;

fickle bolt
#

it even has a git repo tho just no source

fickle bolt
#

0mg how r u supposed to debug scEne opening without unity just crasHiNG ( also pptr recusion still unknown )

#

attaching vs debugger pauses it before it crashes but all the code is in assembly

dark wigeon
#

Have you ever heard of gdb or r2? troll

#

Oh for one scene, whenever I got an eror I didn't understand, I loaded only a range of gameobjects in the editor and slowly closed the range until the error was one away

fickle bolt
#

oh yea I dunno why I didn't think of just using an actual debugger (probably cuz it's not my code idk), and only exporting a select few object is smart, thanks

dark wigeon
#

I think his reasoning of keeping closed source is the same as paint .net

buoyant obsidian
solar jacinth
#

yeah whats it

dark wigeon
#

don't want people making money off of it and redistributing it off as their own

copper nacelle
#

G P L

buoyant obsidian
#

I'd fork the fuck outta Paint.net and let you do arithmetic in value fields

#

how am I supposed to know what 1/4 of 1920 pixels is, I should be able to type 1920/4 and have it evaluated

dark wigeon
#

Same, but I always have speed crunch open

#

I think gimp does that tho, right?

#

@copper nacelle he (paint .net author) said people were doing it regardless of the license and said he couldn't put up with it and stopped providing code

copper nacelle
#

ah

#

Unfortunate

buoyant obsidian
#

that's a huge bummer

buoyant obsidian
#

uh oh

#

am I gonna be able to build this in Visual Studio

unborn flicker
#

you're missing a ton of references, so no

#

playmaker at least

#

probably assembly and the rest too

buoyant obsidian
#

I just need to rereference the assemblies yeah?

unborn flicker
#

yeah, you need to replace all of those with the right paths

#

Some may not be necessary, but it probably isn't worth the effort to check

buoyant obsidian
#

Built it :)

#

Now to fix bugs feelsgrubman

dark wigeon
#

what are you building

buoyant obsidian
#

just updating Lightbringer after all this time

#

really should've done it sooner tbh

rain cedar
#

Rewrite from scratch tbh

buoyant obsidian
#

Honestly looking back at this I really should

rain cedar
#

I'm sure the old code disgusts you by now

#

Time to toss it out

buoyant obsidian
#

It really does but if it ain't broke

rain cedar
#

If it ain't broke fix it anyway

buoyant obsidian
#

I have other projects I should be working on ;-;

rain cedar
#

Impossible

buoyant obsidian
#

and I need to find a job

rain cedar
#

Same

buoyant obsidian
#

accidentally died while killing muzznik and now I need a pre-Muzznik save >:(

#

thank god it backs it up with a previous version

#

I don't think the BlueHealth hook works properly

unborn flicker
#

Is there a dump of 1221 gameobjects? Asking because I was thinking of making lever skips a qol option for randomizer, so it would be nice to have a reference for what the hitboxes used to be

#

A bit too lazy to actually pull out the 1221 api and dump it myself though zote

copper nacelle
#

I think I have a metric fuck ton of 1221 fsms

#

Not obj dumps though

unborn flicker
#

Unfortunate. I assume it would just be changing a BoxCollider2D component, right?

copper nacelle
#

Idk

unborn flicker
copper nacelle
#

You can still hit the lever hotboxes at the same spot with the gate not open so like fsm or component

unborn flicker
#

yeah, yeah, the damager has a ton of layer checks. That's probably it

#

Do you happen to have an fsm dump of Damager-damages_enemy from 1221 resources.assets, 56?

rain cedar
#

An option more controversial than no hard saves

#

Impressive

unborn flicker
#

true

#

although, lever skips really aren't as influential as it might seem

#

since shade soul lever skip is hard removed, they're really just shortcuts

#

Not sure if I'll actually follow through at this point. Mostly just curious as to what kind of work is actually required

rain cedar
#

There's probably an fsm bool check for if you're in the attack range

#

If you remove the action I imagine that's enough

unborn flicker
#

Yeah, I can try changing that. I just wasn't sure how much of the patch was altering range boxes vs hit detection through walls

rain cedar
#

Levers don't check for walls or anything

#

There's just a trigger you have to be inside for the hit to work

unborn flicker
#

I think you are right.
Levers don't check that, but they do check for attack type which comes from the damager which does check against layer (and also is responsible for canceling 0 nail damage hits and so on). I don't think that gets altered from "nail" when an attack is canceled though

copper nacelle
#

@unborn flicker

unborn flicker
#

Thanks. Yeah, doesn't look like any changes in the relevant state

buoyant obsidian
#

now SpriteFlash isn't working all of a sudden pepega

copper nacelle
#

cast

#

If you're using the non-deprecated one

#

I think I had something like this happen

#

I was trying to refactor lightbringer

buoyant obsidian
#

Some of this code is actually terrifying

copper nacelle
#

yeah it's awful

buoyant obsidian
#

I scrapped recoil

copper nacelle
buoyant obsidian
#

that definitely should not be on SpawnBeam

#

it's in the attack method once again

#

Alright I think it's done

#

with potentially more bugs than I started with

#

oops

#

I really should strip these and slap them on GitHub but for now gitignore is enough

copper nacelle
#

strip what

buoyant obsidian
#

the dlls

copper nacelle
#

just make a folder called References in the same folder as Lightbringer and put them all there and my csproj should work as-is

#

wait

buoyant obsidian
#

yeah but you shouldn't upload game dlls to github

copper nacelle
#

one folder behind the same folder as lightbringer

#

yeah

#

idk why you have them there at all is what I'm saying

buoyant obsidian
#

yeah I already moved them to a new folder named libs like in my Risk of Rain 2 project

#

yeah me neither

copper nacelle
#

yeet them

buoyant obsidian
#

I assumed clicking and dragging .dlls in would reference them, not add a copy into my project

copper nacelle
#

very nice

buoyant obsidian
#

I'm keeping them just in case

copper nacelle
buoyant obsidian
#

but what I do for RoR2 is upload stripped dlls

copper nacelle
#

like just headers?

buoyant obsidian
#

so anyone can build the project with just what's on GitHub

#

method names and such

#

so you can reference anything properly

copper nacelle
#

that sounds nice

buoyant obsidian
#

Is there any version file I have to update for this?

#

ah, GetVersion()

#

1.03 to 1.20 sounds fair right

copper nacelle
#

sure

#

I'd swap it to the csproj meme though

buoyant obsidian
#

that's scary

#

=> scares me

copper nacelle
buoyant obsidian
#

ok how do I add the updated Lightbringer to the mod installer again?

#

Update the file on Drive?

copper nacelle
#

Yeah

#

And there's a shasum in the modinstaller

#

@solemn rivet add 753

#

Make sure not to replace the file on drive but to just add a new version

solemn rivet
#

753

#

tell me your github name

buoyant obsidian
#

wait

solemn rivet
#

wat

copper nacelle
#

x753

buoyant obsidian
#

windows didn't copy properly

#

where do I sha1 this dll?

solemn rivet
#

done

#

wdym

copper nacelle
#

sha1sum

#

in like git bash

solemn rivet
#

or if you have 7zip

#

you can just right click

buoyant obsidian
#

995E1E6AF1942D3E0CC1812E3F30B59180D3BEBA

#

thanks Gradow

#

wait I think I did an oops

#

I was supposed to put more than just the .dll on Drive right?

#

I need a readme

copper nacelle
#

replace the zip

#

with the same zip but with the dll replaced

buoyant obsidian
#

I lost the old zip :)

#

drive won't let me download old versions for some reason, just fails to load

copper nacelle
#

i replaced it with a zip

buoyant obsidian
#

idk why Drive won't let me download files

#

I'm not authorized to view that page, apparently

#

I can download the folder it's inside of though, weird

#

thanks Google

#

why's it suddenly missing the .dll at the end

copper nacelle
#

you saw nothing

buoyant obsidian
#

A6529DCB9A7451AD0268F8C84E83B55A2A0967B4

#

done

copper nacelle
#

wait

#

are you sha1ing the zip

buoyant obsidian
#

yeah?

#

should I sha1 the dll

copper nacelle
#

yes

buoyant obsidian
#

ok done

#

another pull request for Hacktoberfest :)

copper nacelle
buoyant obsidian
#

Only 2 pulls to go to potentially win a t-shirt

copper nacelle
#

FeelsOkayMan

#

wait fuck it's the first 50k

#

i require pull requests

buoyant obsidian
#

Oh good I found a bug in my mod already

#

time to get another pull request :)

#

idk if same project twice counts

solar jacinth
copper nacelle
#

time to make dev branches so i can merge my own stuff

buoyant obsidian
#

this bug is beyond weird

#

while time fracture is equipped recoil doesn't work

solar jacinth
#

seems legit

buoyant obsidian
#

might be that timescale changes nullify knockback

#

since knockback and timescaling both happen when taking damage

solar jacinth
#

ah

buoyant obsidian
#

BUT WAIT

solar jacinth
#

i remember the first time i used that charm , i was hella confused

buoyant obsidian
#

Only weak knockback is affected

solar jacinth
#

top ten anime plot twists

#

ok what does that mean

buoyant obsidian
#

Time Fracture makes you immune to weak knockback...

#

STEADY BLOW

#

THAT'S WHY

#

Time Fracture overwrites Steady Blow

solar jacinth
#

now that makes sense

buoyant obsidian
#

behold

copper nacelle
buoyant obsidian
#

bruh don't gimme that, this is the perfect solution

copper nacelle
#

it really ain't

#

edit the IL

buoyant obsidian
#

madman

#

Sent another pull request

copper nacelle
#

really going for that shirt

buoyant obsidian
#

nah I doubt sending multiple to the same repo works

copper nacelle
#

fair

buoyant obsidian
#

if I was really going for it I'd have prepared day 1

#

it'd be nice to get such a cool shirt though

copper nacelle
#

yeah

buoyant obsidian
#

AHAHAHA

copper nacelle
solar jacinth
buoyant obsidian
#

Enjoy being 50,001

#

Quick who needs a professional to take a look at their repo and make changes

flat forum
#

what

#

you can always fix DeadHallownest

civic hare
buoyant obsidian
#

Honestly your code is pretty clean, since you're not using Unity animations for attacks that's about as good as you can do when it comes to positioning and timing attacks

ornate rivet
fickle bolt
#

so after like 2 days of trial and error I have learned .... gasp ... that if you give the asset replacer for a MonoBehaviour a monoScriptID, it will crash unity ๐Ÿ˜„

#

even if that monoscript id points to a typetree which is identical to the regular monobehaviour typetree aside from having the different monoscriptid blobsadlife

fickle bolt
#

@dark wigeon in AssetTools.NET/TypeField_0D, you make fatal flaw

public string GetNameString(string stringTable)
    {
      StringBuilder stringBuilder = new StringBuilder();
      if (this.nameStringOffset > 2147483648U)
      {
        this.nameStringOffset -= 2147483648U;
        stringTable = Type_0D.strTable;
      }
      char ch;
      for (int nameStringOffset = (int) this.nameStringOffset; (ch = stringTable[nameStringOffset]) > char.MinValue; ++nameStringOffset)
        stringBuilder.Append(ch);
      return stringBuilder.ToString();
    }

nameStringOffset is permenantly changed so if you do getnamestring more than once it will crash

dark wigeon
#

oh yeah that got fixed a lready

fickle bolt
#

oh lol i thought i had latest

#

oops

dark wigeon
#

I think I just haven't pushed yet

fickle bolt
#

ah

dark wigeon
#

ok check now

fickle bolt
#

wowie big commit

#

wait but two commits before that, you did changes for 2019 (breaking), but im using unity 2017 for hk soo isnt that bad news ?

dark wigeon
#

no, it means added support for 2019

fickle bolt
#

ah ok so it still works with old ver

dark wigeon
#

for example, what was originally thought a boolean was really a byte

fickle bolt
#

aha

dark wigeon
#

so now it becomes a byte, but that's it

#

same for the bufferedpath stuff

#

byte vs string

dark wigeon
#

Were you able to figure scripts out

#

Make sure are you setting the preload, pretty sure scripts crash without it

unborn flicker
#

How does the start button actually start the game? I see the GameManager method, but is that called through an event or something?

copper nacelle
#

Canvas delegate I think

unborn flicker
#

Hmmm. I'm trying to override that so that the mod sets the scene to load into on newgame

copper nacelle
#

You could probably just override BeginSceneTransition and just check that the last scene is menu

#

Might be overkill though

unborn flicker
#

That actually sounds easier almost

copper nacelle
#

@unborn flicker Am I being dumb or is textObj just always going to be non-null?

#

it's DontDestroyOnLoad(ed)

#

but then each method has a null check anyways

unborn flicker
#

Is this for benchwarp?

copper nacelle
#

yes

unborn flicker
#

Is the gameobject null or hidden when the pause menu isn't up?

#

idr

#

same for menu title

copper nacelle
#

Idk

#

It's private so it shouldn't die without like an explicit destroy

unborn flicker
#

I'm updating Benchwarp once I'm done with rando tonight

#

So let me know if there's anything I need to add. I am going to look into the null ref logs again

copper nacelle
#

Alright

#

I'm just refactoring

unborn flicker
#

I also need to find out why instantiating a bench refills hp zote

#

it is quite mysterious

obtuse stag
#

oh, are you working on Rando 3?

#

I don't know if you have fixed it already, but if you let the nailmaster live and he goes to see sheo, the item located there is unavailable

#

@unborn flicker

unborn flicker
#

Yes, I will fix that

obtuse stag
#

sweet ok_grimm

#

I'm slowly progressing towards my goal of making the objectives mod, I opened the github today

#

but there isn't any actual code

copper nacelle
fickle bolt
#
Make sure are you setting the preload, pretty sure scripts crash without it

oh.....................

unborn flicker
#

Is there a way to make on hooks that go immediately after a method is called?

#

nvm, found a different way

#

shroompog it actually works

copper nacelle
#

๐Ÿ‘€

unborn flicker
#

I was having trouble loading into an arbitrary scene out of start game, probably because of not loading knight pickup or something

#

fortunately, there is a start new game option which simply puts you at a respawn point

#

in godhome, and with a lot of other stuff, but that's not really an issue

copper nacelle
unborn flicker
#

It looks very nice and humanly generated. I will merge it without a second thought sherma

copper nacelle
#

๐Ÿ˜ค

unborn flicker
#

well, hold on

#

Can you make sure the save settings work on your branch?

#

Like, don't carry over across saves and disappear randomly and stuff like that?

#

That is why I never updated it to the current API settings

#

or I could do it later

copper nacelle
#

I haven't swapped it to current API settings but sure

#

besides like the class name

unborn flicker
#

oh, ok

#

I wasn't sure what exactly that change had entailed

copper nacelle
#

the actual change is from generic => a field

#

Do you ever clear hasVisited(*)?

unborn flicker
#

it does look much better though

#

no I don't think so

copper nacelle
#

On even on the old settings I had them not clear

#

like not those ones specifically but like in general

unborn flicker
#

It is set up to clear on the menu

copper nacelle
#

Ah

#

It's SetBool

unborn flicker
#

yeah, I did it one by one instead of replacing the settings

copper nacelle
#

changing to the new api settings for this is going to be semi-painful

#

you have to change the field get cause it returns a ModSettings

#

and SaveGlobalSettings is private

unborn flicker
obtuse stag
#

is this a new mode monkas

#

randomized starting point?

unborn flicker
#

yes, no

#

that would be much more work than a single afternoon would allow

fickle bolt
#

he flash

obtuse stag
#

is it something you would consider doing?

#

at some point, I mean

unborn flicker
#

maybe

#

doesn't seem very interesting though, given stags

obtuse stag
#

ah, right

#

what does open mode do then?

#

if you're willing to say, that is

unborn flicker
#

it isn't finished yet

#

once it is, I'll be happy to answer questions

obtuse stag
#

makes sense ok_grimm

#

meanwhile I'll continue on my crusade for my own mod

#

It will happen one day!

unborn flicker
#

gl and have fun sherma

#

It probably sounds silly, but by opening github you have made much more progress than 90% of people who say they're going to make a mod

obtuse stag
#

well, I said I had no code, but it's not 100% true

#

I managed to rename the empty example mod

#

it compiled properly, which is a success in my book

#

now that I got the bases covered, I need to figure out how UI works, and add the meat of the mod

heavy pelican
#

the mod that changes pure vessels sprites is on hold for now

obtuse stag
fickle bolt
#

does anyone know what version of PlayMaker is used in hollow knight? The DLL version is 1.6 but it turns out that every playmaker DLL is version 1.6

unborn flicker
#

Button colors don't work on your pr 56 :/

copper nacelle
#

wtf

unborn flicker
#

Also, text is too large

copper nacelle
unborn flicker
#

Surprisingly, the style menu worked for some reason?

#

nothing else worked

#

or, at least, visibly worked

#

I didn't actually try to see if the buttons still set the bench

copper nacelle
#

wait what part is broken

#

ah

#

options cooldown does not turn yellow

#

scammed

unborn flicker
#

all of the bench buttons did not turn yellow

copper nacelle
#

what

#

like the warp ones?

unborn flicker
#

and setting buttons

copper nacelle
#

the warp ones worked for me but not the setting meme

unborn flicker
#

yeah the panels opened but the buttons did not react

copper nacelle
#

this one works for me

#

but like the options thing does not

unborn flicker
#

huh

copper nacelle
#

ah

unborn flicker
#

I had all white buttons

copper nacelle
#

I am the fool

#

These are not fields

unborn flicker
#

Looks good

copper nacelle
#

Okay cool

#

I pushed the commit

unborn flicker
copper nacelle
#

o

#

i can fix that

unborn flicker
#

Thanks

copper nacelle
#

The sub-menu ones are too big right

unborn flicker
#

Yeah

#

I had it at 12pt originally

#

even changing it a little makes it look way too big/small unfortunately

#

Actually, while you're looking at the mod, if you have any ideas as to why deploying benches refills hp, that would be great

#

I'm rooting through the fsm trying to find the problem right now

copper nacelle
#

i have found the problem

#

it was not font size

unborn flicker
#

box size?

copper nacelle
#

the other ones had the same name/text

#

in like options

#

the settings ones do not

unborn flicker
#

oh yeah

#

Originally they all had different names for some reason

#

but I fixed most of the benches last time

#

bad decision making left over from 1.0 tbqh

copper nacelle
#

Would changing WarpOnly to like Warp Only in both spots break anything

unborn flicker
#

I don't think the names should matter at all

#

They're only referenced in top menu anyways

copper nacelle
#

perfect

safe hamlet
#

56 out here tryna get those 5 prs done

copper nacelle
#

yeet

unborn flicker
#

ok, it seems the fsm change I made to remove the range check is causing the bench to instantly restore hp

copper nacelle
#

i am also getting infinite mp

unborn flicker
#

yeah, I'm removing that

#

I thought it would be a good fix to just always fill mp instead of trying and failing to drain the soul meter

#

but it ended up being op

copper nacelle
#

you can do like AddMP(1) instead of 100

#

and then remove it after

unborn flicker
#

Yeah, I've tried that too for a version, but there were still cases where the soul meter didn't update even after setting it to 1 after the warp

#

No idea what causes it to break

copper nacelle
#

cursed

unborn flicker
#

because it isn't consistent at all

copper nacelle
#

Yeah I remember trying to get it to update for something else and it was fucked

unborn flicker
copper nacelle
unborn flicker
#

I tried to remove the hp refill at rest burst, and later I decided to remove the range check at Idle

#

Ok, is the latest commit on the pr good?

copper nacelle
#

Yeah it should be

unborn flicker
fickle bolt
#

i cant even move it the only way to get rid of the panel is to force quit unity

dark wigeon
#

Use an alt drag ahk script to move the window or use autoit's window tool to copy uncopyable text

#

I forgot to say but the preload list should have pointers to monoscripts not monobehaviours

fickle bolt
#

i think i figured out the preload table by looking at the preload table of the hk scenes but thanks

#

although they dont include some scripts like FsmTemplate and they have duplicates of others like PlayMakerFSM which is weird

#

and autoit worked to grab the error message ty

obtuse stag
#

oh right @unborn flicker again, I don't know if you fixed it, but this time, for benchwarp, there's a pretty nasty issue if you were to teleport to a bench while on a conveyor belt. the knight will be stuck in a sliding motion until leaving the save

unborn flicker
#

Ok, but if you're just trying to glitch with Benchwarp, that really is beyond my control

#

I don't know much about conveyor storage, but I would imagine that is what is occuring

#

Oh, I did misunderstand the original message. I thought you meant placing a bench on a conveyor

#

I think the point still stands though.

obtuse stag
#

ah, my goal wasn't to glitch it, I just warped after hitting a dead end

#

just something that happened so I thought I'd report it

unborn flicker
#

Nah, thanks. I will look into it next time I update Benchwarp

#

But that will not be soon because Benchwarp was updated on the installer last night

obtuse stag
#

no problem yeah

#

it's mostly a corner case anyway

#

and isn't permanently damaging either

fair rampart
#

What's the process for getting a mod onto the installer?

obtuse stag
#

I recall there was a github for the links? probably to do a pull request with a proper mod

copper nacelle
#

๐Ÿ‘‰ Ayugradow/ModInstaller

ornate rivet
#

technically you didn't say modlink

#

so I win

copper nacelle
#

๐ŸŒ

ornate rivet
fair rampart
#

Do I have to get a DLL onto the drive?

ornate rivet
#

yes

#

that's what you link in the modlink

#

well the id part of the shared link at least

fair rampart
#

Should I just like

#

post the zip here and have someone with permissions put it on there?

ornate rivet
#

oh you dont have perms?

#

I would give them but I'm not on my computer rn

copper nacelle
#

local man unable to use gdrive app

#

if you dm me your email or whatever I'll add you

#

added from mobile btw ๐Ÿ˜ค

obtuse stag
fickle bolt
#

@dark wigeon How do you know the exact location that the editdiffer script will be at ? https://github.com/nesrak1/HKWorldEdit2/blob/master/Assets/Editor/Bundler/Loader.cs#L124 ? My thing seems to be crashing when it tries to convert the m_Scripts in the scene into project references (fileID 0 -> fileID 2) GameObject references runtime script in scene file. Fixing! so I could fix that by just fileID 2 to begin with but im not sure how you calculated the pathID since yours is hardcoded

dark wigeon
#

It's just the order I added the dependencies

#

Nope I'm dumb

#

Id 1 is the asset assets file and id 2 is the edit differ assets file

fickle bolt
#

right, but how did you get the path ID (11500000)

#

because I want to get the path id's for all the scripts in the hk dll

dark wigeon
#

It's just what unity uses

#

Ohhhh

#

I think they are all 11500000

fickle bolt
#

oh really lol

dark wigeon
#

Grep the metadata folder and search for different things, they probably are

#

You could probably write a tool to search each assets file for their scripts and make monometa hashes like in constants.cs

#

Idk if you'd have to for that but ๐Ÿคท

fickle bolt
#

oh the paths are saved in metadata? thats great yea i guess ill make some sort of tool

#

they arent all 11500000 btw, the first one i checked was 1938007157

dark wigeon
#

Check edit differ and see if it's 11500000

#

All I know is I put a few different monobehaviours into a bundle and opened with uabe and I think they were all 11500000

#

But that was a long time ago, I may be wrong about that

fickle bolt
#

were they scripts you made in the editor or were they part of a dll?

dark wigeon
#

In the editor

fickle bolt
#

yea mine are dll so maybe thats why

dark wigeon
#

So that also might be a difference

#

Well anyway good luck

fickle bolt
#

thanks ๐Ÿ˜ƒ

fickle bolt
#

uh since when could path ids be negative... or is this just because ubae uses long instead of ulong ?

dark wigeon
#

It uses a qword in the headers which I think is unsigned

#

Idk if they are unsigned or signed in real unity or not

fickle bolt
#

oh well hm i guess it dosent matter if the path ids correctly resolve

dark wigeon
#

What's the issue?

fickle bolt
#

oh nothing it turns out sry

fickle bolt
#

uh i think there might be something wrong with assettools.net because I can read the metadata files in uabe just fine but if i try with AssetTools.NET either with AssetsView or by doing it in code, i get https://gist.github.com/raphydaphy/42f86cfccd0e5d483634fef1ef13af57 crash

in assetsview it happens when i try to view the asset and otherwise it crashes when i do getATI

 foreach (var info in table.pAssetFileInfo) {
        var type = info.curFileType;
        // crash:
        var ati = this.am.GetATI(this._assetFile.file, info);
}
Gist

GitHub Gist: instantly share code, notes, and snippets.

dark wigeon
#

My guess is you need to enable typetree

#

I realize it was stupid not to enable it by default if it existed so I'll change that in the next commit

fickle bolt
#

uh sadly it crashes with the same error when fromTypeTree is enabled

dark wigeon
#

It's probably not your fault, but I'll have to wait until I can debug it to help you out

fickle bolt
#

yea since it works in ubae and not in assetsview i am pretty sure its not a problem with my code

fickle bolt
#

nvm i'm extra stupid today, fromTreeType does fix it sorry

dark wigeon
#

Yeah I really need to fix that

#

I'm hoping to rewrite a few bits, especially fix the unsigned values to signed

fickle bolt
#

sooo uh your GUID128 Write method is kinda messed up blobthonkang

#

i had to flip my guid string before splitting it into least and most significant bits and then switch the bits to make it work

#

for example 419b7acb43d23667b0e5b717c6a309a2 in AssetsView actually means 76632d34bca7b9142a903a6c717b5e0b

#

this is what i did to overcome it

var guid = "76632d34bca7b9142a903a6c717b5e0b";

var guidCharArray = guid.ToCharArray();
Array.Reverse( guidCharArray );
var guidReverse = new string(guidCharArray);

this.GuidLeastSignificant = Convert.ToInt64(guidReverse.Substring(0, 16), 16);
this.GuidMostSignificant = Convert.ToInt64(guidReverse.Substring(16, 16), 16);
dark wigeon
#

It's not broken, it's just that unity always flips to two hex chars of the bytes in a guid

fickle bolt
#

oh...

dark wigeon
#

I guess an "actualId()" would be helpful

fickle bolt
#

perhaps yea

#

AssetsView should show the real id

dark wigeon
#

Yeah that too

fickle bolt
#

a string->guid128 method like my code above would help alot because i was super confused until i realised what was going on

#

aaaand now unity is crashing and not even giving a report.. and attaching a debugger does nothing either now discoparrot how fun

dark wigeon
#

Like I said, the api is a bit too confusing. It favors control over user friendliness and makes things that could be easy complicated

fickle bolt
#

lol isnt it your api ?

dark wigeon
#

It's uabe's

#

Just rewrite to be the same in c#

fickle bolt
#

o how did you even get the source

dark wigeon
#

I didn't

fickle bolt
#

thonk_dye wut

dark wigeon
#

I just compared outputs until it matched

fickle bolt
#

oh i see

#

sounds painful

dark wigeon
#

It didn't take that long

#

I didn't add the whole library right away

#

To be fair, most of the library is just reading and writing fields which were already in the c++ api

fickle bolt
#

yea i guess

#

have you had unity crash without a log before? im not sure how to debug this

dark wigeon
#

Yeah I always get crash logs

fickle bolt
#

oh no

dark wigeon
#

I just close them because idk how to read them

#

Not like I have the unity source code or anything

fickle bolt
#

when i attach a debugger it just silkently stops debugging when it crashes and dosent catch anything

dark wigeon
#

Huh idk

fickle bolt
#

im only exporting a single gameobject so i guess it wont be that hard to narrow it down

dark wigeon
#

Does this happen all the time though? Could it just be a one time bug?

fickle bolt
#

every time with the Town-TileMap gameobject in thie Tutorial 01 scene

#

its the same object that caused the immovable window crash earlier, its very cursed

fickle bolt
#

ok damm it's literally any monobehaviour which links to another monobehaviour

#

I feel like I'm just going in circles lmao

dark wigeon
#

You see why I didn't try this earlier

solar jacinth
#

what is the gravity scale and mass in hollow knight

#

please i need it

dark wigeon
#

Did you check the Knight's rigidbody?

solar jacinth
#

i dont know how to

#

also wdym

dark wigeon
#

Either debug log the rigidbody on the knight gameobject in a mod, or use an assets viewing tool to look at the rigidbody data. I assume it's unity physics and not script physics so the rigidbody should have things like gravity on it

fickle bolt
#

all those properties load with no errors or warnings

solar jacinth
#

oh shit

fickle bolt
solar jacinth
#

@fickle bolt can you view knight's rigidbody?

fickle bolt
#

um

#

knight isnt in the scene

solar jacinth
#

ah

fickle bolt
#

its added at playtime

solar jacinth
#

waht

copper nacelle
#

Knight_Pickup

fickle bolt
#

i could try loading the knight pickup scene

solar jacinth
#

that would be good

fickle bolt
solar jacinth
#

ah yes

#

thank you

fickle bolt
#

np

solar jacinth
#

bruh what kind of gravity scale is that

fickle bolt
#

a 0.79 one

solar jacinth
fickle bolt
#

knight has like 500 scripts tho so one of them (herocontroller?) probably changes jump curve

solar jacinth
#

ah

floral furnace
#

afaik every movement/player physics is on HeroController

solar jacinth
#

so gravity chnages?

floral furnace
#

No wait im mistaken player movement, unless they control the player's downward velocity from there

dark wigeon
#

Yeet mbs working

fickle bolt
#

not all of them tho

#

tk2d stuff crashes for instance

#

i made a blacklist and whitelist system for scripts so i can weed out the ones that work and figture out why

fickle bolt
#

seems that vectors inside monobehaviours get turned into arrays when converting the scene and this breaks any monobehaviour which has a list

fickle bolt
#

whats more AssetsView just straight up dosent show any gameobjects which include monobehaviours that have vectors (if i try opening the origional hk scene in assetsview)

flat forum
#

@fickle bolt hey, I've been trying to keep up, but ended up unable to, what are you doing?

obtuse stag
#

i'd think it's a level editor?

fickle bolt
#

i'm just trying to load hollow knight levels into unity with all the components intact - nes's level editor already supports every component except monobehaviours but it turns out that they didn't include monobehaviour importing for a reason ...

fickle bolt
#

btw nes do you have any idea why vectors are being read as arrays in MonoBehaviour base fields? i've spent a while trying to figure it out (and in the process i discovered that assetsview, uabe and uabe.net all have different behaviour for vectors.... saddave ) but tbh i have no idea especially since gameobjects have a vector which loads correctly blobsadlife

dark wigeon
#

I didn't think unity actually cared about it but it might...

#

Anyway the reason some have vector is because that type is not a c# array but a c# list

#

I just put only array for both in the mono deserializer but that's probably wrong

#

Works fine for reading but but for writing

#

Don't worry about assetsview though, I know about those issues

#

Anyway... The problem is in monoclass, I can just generate another type tree template specifically for lists later today and we can see how well that works

fickle bolt
#

well the type in the c# class for the monobehaviour is a normal array but unity seems to store it as a vector and when it's not a vector it dosent read the data at all

dark wigeon
#

Hnn spaced_out_thinking

#

Ok try making a script with a list and an array and see how it's serialized

fickle bolt
#

oh, smart, I'll give that a try

dark wigeon
#

Make a bundle not a scene

#

That way you can see the type tree

fickle bolt
#

right, yea

#

they are both vectors ๐Ÿ‘€

#

my script was just

public class SerializeTest : MonoBehaviour {
    public List<string> stringList;
    public string[] stringArray;
}
dark wigeon
#

Build the project now and see if it's the same

solar jacinth
#

harry potter

dark wigeon
#

deathly hallows

#

pt 3

fickle bolt
#

uh it's like 2am for me so I should probably sleep now although I'm pretty sure it'd be the same because SpatterOrange in scene 80 has an array which is a vector in uabe

obtuse stag
#

knightly hollows

dark wigeon
#

Go to sleep @fickle bolt

unborn flicker
obtuse stag
unborn flicker
#

ah, checked to make sure, and the hook passes the value from getintinternal in dnspy

#

for increments and decrements, I mean

#

So I guess I can take out the set hook in any case

solar jacinth
#

finally its fixed

unborn flicker
#

Ok, I replaced InfiniteNotches on the installer, so hopefully there will be no more issues

obtuse stag
fickle bolt
#

10 hrs later but yes string[] and List<String> are both vectors in the scene file in all three formats

  • In the .unity scene file
  • In an assetbundle exported using AssetBundleExporter
  • In the exported scene when the project is built
dark wigeon
#

Ok guess I need to fix that

fickle bolt
#

hm yea i tried to figure out how you determine what type of field something is but i couldnt figure that out

dark wigeon
#

Like what value type? Wdym

fickle bolt
#

like just where in assetstools you actually determine if its an array or a vector or whatever it is

dark wigeon
#

In assetstools it's .valueType

#

Depends on what it is though, for some things, I think you can only determine by the time name although I can't remember which that is

fickle bolt
#

oh but valuetype seems to be just numerical types

#
public static EnumValueTypes GetValueTypeByTypeName(string type)
    {
      type = type.ToLower();
      string str = type;
      if (str != null)
      {
        switch (str)
        {
          case "bool":
            return EnumValueTypes.ValueType_Bool;
          case "byte":
          case "char":
          case "uint8":
            return EnumValueTypes.ValueType_UInt8;
          case "double":
            return EnumValueTypes.ValueType_Double;
  • many more different sized ints
dark wigeon
#

Enumvaluetypes has arrays as well

#

And strings and stuff

fickle bolt
#

ooh

dark wigeon
#

Are you decompiling this?

#

In the source, the arrays from that method are commented out to match uabe's assets tools

#

Idk why though

fickle bolt
#

oh yea i was looking at decompiled source, now i switched to the actual assetstools project and its a lot clearer

fickle bolt
#

yay i fixed it (it was actually an easy af fix once i realised what was wrong, i just changed SetArray in MonoDeserializer to make a vector instead lol )

#

see https://github.com/raphydaphy/AssetsTools.NET/commit/bad426220d1c546d4c9f1c52248c9717c09cd640 just ignore my debug changes to assetsview

fickle bolt
#

well I can consistently export any monobehaviours now but this has only revealed countless new issues... For example I now need to export all the scriptable objects from the globalgsmemanagers file in order to fix textmeshpro scripts which rely on several scriptable objects at specific file locations

dark wigeon
#

You know at one point I was even thinking about manual deserialization

#

Idk about these scriptable objects though

ornate rivet
#

why can't I set one playmakerfsm to another

copper nacelle
#

what

rain cedar
#

It's a monobehaviour

#

You can't create/destroy/move/whatever those other than with unity methods

copper nacelle
#

You could destroy it then set it to the other one by serializing and unserializing

rain cedar
#

Sounds dumb

copper nacelle
#

yes

rain cedar
#

Do it in F#

#

I could improve my EventManager

#

I'm sure you can get delegate type from an event and create an instance dynamically

#

Then I wouldn't have to have the new whateverhandler shit

ornate rivet
#

sigh, this is unfortunate

rain cedar
#

Why do you even want to copy an fsm?

ornate rivet
#

make something parryable

#

Shade uses nailclash_tink

rain cedar
#

It's probably easier to make your own parry component than try to copy the fsm

ornate rivet
#

yep doing that now

dark wigeon
#

Did someone say f#

rain cedar
#

no

ornate rivet
#

someone did not say f#, Sean did

copper nacelle
#

Is there any way to get unity to serialize stuff which isn't fields like a: b

#

_key: [], _values: [] sucks

rain cedar
#

Probably not

copper nacelle
#

i hate unity

#

I have an idea

#

Serialize a List<KeyValuePair>

#

I hate it

rain cedar
#

Probably not much better

copper nacelle
#

yeah

#

It'd be like

[
    {
         key: "disableWhatever",
         value: true
    }
]
rain cedar
#

We could make our own serializer

leaden hedge
#

you could probably make a utility to edit it

#

probably easier than getting unity to be useful Kappa

rain cedar
#

Yeah or that

#

Would be super easy

copper nacelle
#

could just use newtonsoft

#

i hate adding dlls

rain cedar
#

The real big brain play is making the editor a unity game so you can use JsonUtility

leaden hedge
#

galaxy brain

#

make it a mod in hk

rain cedar
#

At that point you've just done the thing 56 gave up on

#

With in game settings

leaden hedge
#

ifhy

rain cedar
#

@copper nacelle go in game settings man

copper nacelle
#

effort

#

idk how to submenu

rain cedar
#

Hide current menu

#

Show submenu

#

Copy the mods menu I guess

#

Also fix it being giant in game please

copper nacelle
#

impossible

rain cedar
#

Very nice

fickle bolt
#

Does anyone know what version of playmaker is used in HK?

copper nacelle
#

PlayMaker, Version=1.6.0.0, Culture=neutral, PublicKeyToken=null

fickle bolt
#

no sadly every playmaker version is labelled as 1.6 in the dll

#

The real 1.6 came out in 2013

dark wigeon
#

Ez plays, download every possible version and diff until the bytes match

fickle bolt
#

the problem is there is no download archive and the only way to get old versions is to ask houtong games personally for a specific version

#

I would literally do that otherwise

dark wigeon
#

wOw that sucks

fickle bolt
#

yep

dark wigeon
#

Hmmmm salien_thinking

#

No metadata in the fsms either?

fickle bolt
#

not that I could see

#

The version number seems to only be in the editor files not the runtime dll ;(

dark wigeon
#

Well you could always take the big brain idea and ask the hk devs lol

#

But yeah if they never update the dll then idk

fickle bolt
#

I guess I'll just push my luck and ask hutong for an archive of past version's

dark wigeon
#

Ok gl

fickle bolt
#

lol thx

#

oh you were suggesting asking TC not hutong thonk_dye that is a very big brain method indeed

copper nacelle
#

@leaden hedge how do you make stuff exist

#

my menu is just empty

leaden hedge
#

im in stream

#

lol

dark wigeon
#

Yes tc

#

I did something similar for uwe and they answered me

#

But tc is a different group of people

fickle bolt
#

uwe?

dark wigeon
#

Subnautica

fickle bolt
#

ohh

ornate rivet
#

as far as I know, a frame is shorter than 0.1 seconds zote

dark wigeon
#

According to my calculator a frame is 0.016 repeating seconds

ornate rivet
#

same

dark wigeon
#

Wait I'm dumb 0.1 is 6 frames lol

#

Decimal points

#

I guess I thought it said 0.01

unborn flicker
#

Hmmm, I tried moving all gameobjects in a rectangle around this platform, but the collider didn't move

#

Oh well, now my building is burning down, so I think I'll just scrap that idea

unborn flicker
#

Anyways,
I was wondering @copper nacelle if it would be possible to change the API so that it can access mod settings before fetching preload names

#

That way Benchwarp won't have to always have 10+ second preloads

copper nacelle
#

That should already be the case

#

Activator.CreateInstance calls the constructor, which calls LoadGlobalSettings

#

You'd just adjust your FetchPreload to check settings

unborn flicker
#

Oh, hmmm. Maybe I messed something up when I tried last time then

copper nacelle
#

With the old Mod<T1, T2>, you can also force a load with LoadGlobalSettings because it's still public there

unborn flicker
#

Ok, I'll try that next time

#

When I tried it before, the settings call from Benchwarp never went through, so Benchwarp didn't preload and every mod after Benchwarp in the load order also failed to preload

copper nacelle
ornate rivet
#

isn't the player's nail supposed to be tagged with "Nail Attack"???

#

I remember it being like that in Pale Champion

#

when I try to use that now to detect if the collision is from the player's nail, the nail isn't tagged with "Nail Attack" anymore

#

figured out the problem

#

nvm I did not figure it out

#

nvm nvm I think I figured it out

dark wigeon
#

Nvm nvm nvm I think I didn't figure it out

ornate rivet
#

actually I did this time

#

but now I have a new problem

#

ok I think I got it to work

#

it works

#

except it's even more annoying than the game

#

I will count that as extra credit

copper nacelle
ornate rivet
#

how doth one maketh thiseth lesseth annoyingeth

copper nacelle
#

make the window to get it shorter and decrease the freeze frames

ornate rivet
#

ok

fickle bolt
#

blobsadlife GetMonoBaseField dosent seem to do anything when i use it on monobehaviours found in globalgamemanagers

#

this is sad day

fickle bolt
#

pixel art boss

ornate rivet
#

next "new" boss won't be pixel art