#Welcome to Ooblterra! v2.0.0

8319 messages Β· Page 9 of 9 (latest)

viral flint
#

I added them to that, and also edited the package lock file to reference them instead of the git urls

rustic shell
#

ic

#

did you get the packages purely by downloading the zip from the github repo?

viral flint
#

i got them by copying them out of unity's package cache

rustic shell
#

okie

viral flint
# rustic shell okie

so the directory structure should be like

  • UnityRoot
    • Packages
      • packages-lock.json
      • unity-lc-project-patcher/
      • unity-project-patcher/
rustic shell
#

yeah okay, ill try getting your diff changes again and try that

viral flint
#

πŸ™

rustic shell
#

for me the easy part is the DunGen dlls lol

viral flint
#

what did you do to resolve those issues?

rustic shell
viral flint
#

copying the dlls like I did was not the best since the project had all the scripts missing

rustic shell
#

the DllsToCopy list needed the dll names

viral flint
#

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah

#

does this do it at the right time to maintain script references?

rustic shell
#

there's a button GetGamePackages that'd do it automatically for ya

#

i believe so

viral flint
#

exceptional

#

ok ill re-extract a project later and see if this fixes it

#

if it does then that's perfect, thank you πŸ™

rustic shell
#

thank you for the diff if it does work :p

#

cant believe my code was probably working and i couldnt tell cuz updating the cs files in the packagecache probably did nothing

viral flint
#

😭

#

yeah i actually ran into exactly that issue first as well

#

I tried to edit those files and nothing happened

#

then I realised I needed to rebuild those projects

rustic shell
#

how did you get the package-lock to point to the packages folder rather than git?

#

im not really seeing a format lmao

#

i cant tell if it wants like a url or smthn

viral flint
#

ummm

#

dammit that file is on my pc at home

rustic shell
#

icic

#

yeah im just trying to figure out what to give it for source instead of git, it might by embedded_package but ill keep reading

viral flint
rustic shell
#

icic

rustic shell
#

@viral flint yeah i've being entered into safe mode anyway πŸ˜”, seems like even that might've not worked, ill have to see what's erorring when it loads with safe mode

#

same thing, it must've not applied raaaaaaaaah

viral flint
#

it didn't work again?

#

urp

viral flint
#

because I think this should be able to work fully πŸ™

#

maybe I can even fork unity-project-patcher so it can just be git URL instead of a local package if that's causing problems

rustic shell
#

that would be amazing, rn im trying to have my changes be put into a repo

#

thats my last ditch effort

rustic shell
#

yeah that didnt work lol, I'll leave it to ya, im not sure where im going wrong sadly

viral flint
#

should be done in around 8hrs or so

rustic shell
#

🫑

#

much appreciated

#

imma go update LL after i make sure that hte reason it went into safe mode is the rpc's lol

#

yep, twas the rpc's

viral flint
#

Yepp

#

Classic rpcs

rustic shell
#

@viral flint does WTO not work in v80? (testing a presumably fixed LL rn)

rustic shell
#

ah okie

#

this was the only error i got so i wasnt sure

viral flint
#

for real?

rustic shell
#

ye

viral flint
#

that's surprising honestly

#

perhaps it wont be so bad to fix it up

#

(famous last words)

rustic shell
#

lol, surely

#

maybe i can find another mod to test that isn't heavily code dependent hmmm

viral flint
rustic shell
#

one can only hope

#

but yeah i think fixed LL works so ill try to push that

#

im not on the repo as a maintainer even though i've been the one pushing updates for a while so if hamunii isnt awake then update delayed ig lol

viral flint
#

so are we all planning on pushing v80 updates to thunderstore asap?

#

or waiting until it launches mainline on steam

rustic shell
#

worst case scenario someone reports it not working and i tell em to go back one version or so

#

which i have gotten a couple reports, but i've tried to make it clear on README and changelogs

#

the betas dont tend to last long anyway

viral flint
#

mm yep, because I noticed there was an LLL update pushed for v80 that causes a vanilla install of WTO to not work since it installs 1.6.9 instead of 1.6.8 that WTO currently depends on

#

i explicitly specify v1.6.8 too, but I guess it doesn't do version resolution like that?

rustic shell
#

wellllll it does install 1.6.8 but people probably just auto update lol

viral flint
#

mmmmmmm....

rustic shell
#

oh also

#

im unsure of the scope of WTO

#

did you have like

#

inside map objects like hazards?

viral flint
#

yes

#

there are a few

rustic shell
#

are they registered via LL?

rustic shell
#

wow that is ugly

#

old code ig cant be helped

viral flint
#

yeah this is ancient lol

rustic shell
#

but kinda good for me, i didnt wanna fix LL inside map objects

#

zeekerss changed how inside map objects worked (on my request i think lol), they're a lot nicer now but yeah

#

i dont think anyone uses LL's inside map objects

viral flint
#

does dawnlib have a solution?

rustic shell
#

yeah dawnlib immediately updated lol

viral flint
#

alright ill try and keep in mind to see if some of the stuff we're currently doing manually can instead be solve via dawnlib

#

hopefully a lot of things can be

#

like if WTOSpawnMapObjects could instead just be handled by dawnlib that would be amazing

rustic shell
#

they probably can be lol

#

i'd be surprised if you can find something that DawnLib can't register

viral flint
#

it would only be if there's some extra logic that's needed for some WTO components that is not supported by it

#

though I suspect most things should be able to be ported

rustic shell
#

if there are any feature requests im more than down

#

the goal of dawnlib is to eventually be the sole library, im basically the only creator left, but there used to be another one who wrote most of its systems very cleanly

viral flint
#

if I happen to run into anything im happy to throw up an issue / PR

rustic shell
#

yippee

rustic shell
viral flint
#

🀞

viral flint
#

the project fully patches properly βœ…

#

the only remaining problem is all the DunGen script references are broken

#

(and script references for a few of the other .dll's too, like dissonance)

rustic shell
#

I think those dissonance script references always broke lol

viral flint
#

ah..

rustic shell
#

But the DunGen ones should've been okay if you added the dlls to the SO

viral flint
#

I also added DunGen into the script copy

#

and it copies correctly, but the references are still broken

#

is there something else that's needed to preserve that?

rustic shell
#

I don't think so...

#

Hmm

#

I can investigate it more, how'd you get your rpc's to work?

viral flint
#

everything else is the same

#

I found out that I needed to actually not only build the new script patching dll. BUT also copy it to the Libs directory in unity-project-patcher

viral flint
rustic shell
#

okie ill give it a try

viral flint
#

im gonna investigate a bit and see if I can do anything about dungen

rustic shell
#

ill see if i can get the DunGen stuff working as well

viral flint
#

yeah if you have any ideas that would be awesome

#

so I know for sure it's that the guid that gets put into the DunGen.dll.meta file is wrong

#

same for the other dlls that have missing script references

obtuse raptor
# rustic shell ill see if i can get the DunGen stuff working as well

this isn't a great lead but for what its worth i think if it was order of executioned right on unity's end there's a way of making it resolve itself because when zeekerss upgraded nothing broke (same when i tested it before suggesting it, hence why i thought it would be easy)

viral flint
#

but the question is how to fix that

#

ah so.. when the asset ripper ran, it actually decompiled the dungen dlls as well, and it output them to AssetRipperOutput/ExportedProject/Assets/Scripts/DunGen/**

#

the GUIDs that are used in the project, for example in a prefab that uses a Dungen script like 4x4BigStairTile.prefab reference into the .meta files of these decompiled .cs files

#

they do NOT reference into the copied DunGen.dll file

#

so that explains why the script references are broken

rustic shell
#

oh

#

so the dlls need to be copied from there right?

viral flint
#

well let me see. I think if you just copy in those raw .cs files it should all just magically work

#

AH! IT DOES

viral flint
#

but.. the problem now is that the entire project depends on decompiled source files instead of the proper dlls that the game actually uses...

rustic shell
#

ehh i mean that's kinda fine, it depends on the decompiled source files for the rest of assembly csharp etc

viral flint
#

yeah does that matter? will this just work?

rustic shell
#

it should just be fine

#

you gotta include the dungen dlls into the blacklist thingie though

#

in the same SO where we thought you needed to put the name of em for copying

viral flint
#

yeah they need to NOT be copied

rustic shell
#

yep

viral flint
#

but, can i make it so it auto-copies the decompiled .cs files?

rustic shell
#

not sure, i feel like there was something for this

#

im loading the packages rn so i can check probs

viral flint
#

ah okay so

#

i can add entries here to also copy the DunGen .cs files

rustic shell
#

yep

#

thats where i was gonna go

#

lol

viral flint
#

haha

#

same thought

rustic shell
#

honestly, if you do that and send the repo i could just try it

#

actually i can just try it by editing debug mode maybe?

#

idk if it'll like me adding that in via debug mode lol

#

ill just try it, no harm

viral flint
#

what I'll also do is add the decompiled script paths for the other .dlls that are causing missing script references

rustic shell
#

go for it

viral flint
#

we might as well get the whole thing working

rustic shell
#

my dumbass forgot to remove the DunGen dlls from the dllstocopy btw

viral flint
#

alright im removing ALL the dll copies and replacing them with copying the decompiled .cs files

#

let's see if this works πŸ™

rustic shell
#

honestly im excited to find out why this is bad idea later

viral flint
#

so am i

#

but i want 0 missing scripts

rustic shell
#

yeah fair

viral flint
#

that is my current blind goal

rustic shell
#

while it patches im looking at one of my broken transpilers in dawnlib, with a lot of confusion lol

#

Nvm powers out so maybe I'll do that later

viral flint
#

oh no 😭

#

that was awful timing

rustic shell
#

Yeah lol

#

It happened a few days ago too, I guess I forgor to fill up the elec card

viral flint
#

okay, re-running the patcher again with these new settings

rustic shell
#

Glgl

viral flint
#

ok it does not really work lol, a bunch of the decompiled code has compile errors

#

i guess for now I can leave it to extracting dungen, as this does certainly seem to work, but there will still be a few missing scripts in the patched project

#

maybe that's ok?

rustic shell
viral flint
#

the best possible solution would be to re-write all of script references to instead point to the dlls... but I don't know how to do that πŸ€”

rustic shell
#

if i had a nickle for everytime my power turned off while testing the patcher

#

i'd have 2 nickels

viral flint
#

😭

rustic shell
#

which is a weird amount of nickels to have

#

but yeah im trying it properly this time, properly getting rid of the dlls to copy lol

viral flint
#

I just pushed up a commit that should contain everything you need

#

actually.. i could probably make a script to fix this up now that I look at it πŸ€”

#

okay how would this have to work..

#

asset ripper outputs the .cs.meta files, these contains the GUIDs that will get actually written into the .prefab and .asset files in the project. this script will need to

  • determine which .cs.meta files came from which .dll files
  • make a mapping table of the .cs.meta GUIDs that need to be remapped to the .dll GUIDs
  • determine the appropriate fileID to output for each script, since for .dll files this is what corresponds to the class inside the dll
  • perform the remapping on all assets using the GUID remap table
#

it would go from a .cs file reference that would look like this (note that fileID is always fixed for .cs files)

m_Script: {fileID: 11500000, guid: 5e003a5623c777545aadc493adfc4ef5, type: 3}

... over to a .dll reference that would look like this:

m_Script: {fileID: -7776210, guid: b51bcd74f73a4e44c8c4a24a6fc1cab9, type: 3}
rustic shell
#

hmm

viral flint
#

where 5e003a5623c777545aadc493adfc4ef5 is the guid in the .cs.meta file, and b51bcd74f73a4e44c8c4a24a6fc1cab9 is the guid in the .dll.meta file..

rustic shell
#

i think the guid is fairly easy to get

#

but i dont know the stuff about fileID

viral flint
#

yeah.. that's what im not sure about

#

the fileID is the problem

viral flint
rustic shell
#

lol true

#

okay tiume to try and patch again

rustic shell
#

you should probably be including DunGen. in here, but i understand if you wanna try fixing that stuff with the .cs files and dont bother, lol

viral flint
#

ah! I found how to generate the fileId

rustic shell
# viral flint ah, what's this for?

this is to ignore specific dlls from being included when you press GetGamePackages button which automatically sets up stuff like DllsToCopy

viral flint
#

aaaahhhh

#

alright, i'll take another stab at this tomorrow

#

and hopefully ill be able to give you a patcher that works perfectly

rustic shell
#

<3

viral flint
#

with no missing refs at all

#

fully working project 😀

#

oh but there is one extra thing, the Unity Project Patcher BepInEx package is broken for v80, so when you try to launch the game in edit mode it throws a bunch of errors in a harmony patch somewhere 😭

rustic shell
#

sounds dreamlike

viral flint
# rustic shell i wonder why

if you check in Library\PackageCache\com.nomnom.unity-project-patcher-bepinex@72a7520ec2\Editor\Patches it contains some cs files that I think need updating

#

probably the patches are broken now 😭

rustic shell
#

bleh, fair

#

it works perfectly so for now ill let people know and update the wiki, many thanks <3

signal kelp
#

lurking paid off

rustic shell
#

@signal kelp no die

brave spindle
#

hi hat

exotic temple
#

@viral flint Is there a specific reason the .dlls for DunGen aren't being copied? plink

#

Or uhh

#

Plugins that use DunGen stuff complain about not being able to find it (LLL for instance)

#

(Manually, I did not repatch)

viral flint
#

I am currently working on a different solution that remaps the guids from the .cs files to the .dlls

exotic temple
#

Oh that's what I did ye lol

viral flint
#

Do you have a tool that can do that?

exotic temple
#

I do not plink

viral flint
#

Ah..

exotic temple
viral flint
#

😭

#

Fair enough

#

Yeah so when I can work on this next, ill fix this problem up properly and have a fully patched project with .dlls

exotic temple
#

Yeah lol

#

I should warn in the ripper thread actually

viral flint
#

Wait are other people using this?

#

Oh its not quite ready yet

#

Lol

#

Sorry 😭

rustic shell
#

Hmm yeah I didn't realise that wouldn't work interior wise lol

#

Since stuff like assembly csharp is okay with being .cs files

#

I am a little confused though on why it doesn't like the DunGen stuff being .cs files if it doesn't mind Assembly CSharp stuff being .cs files

#

@viral flint do you know what the logic behind that is?

#

Also since I now know why stuff wasn't being applied I'll try myself to get the dlls workin lol

viral flint
#

I havent looked into it before

#

It might have something to do with how BepInEx works, maybe?

#

Perhaps it has some special fix up it does for the main game assembly

#

This is just a guess

rustic shell
#

Talking with Zaggy about it a bit, I'm guessing maybe dlls have extra info that normal .cs files dont

signal kelp
frail pumice
#

HI HAT

signal kelp
#

soundreality hi hat closed acoustic sample 455286

brave spindle
#

yay!

frail pumice
#

Hat knows ive been doing that joke since the first hi i said to him hehehehe

brave spindle
#

ohh

frail pumice
#

thats why he said cheese reference hehehehe

#

im SMARTER THAN YOU MONTY

#

DIE

#

DIE MONTY

brave spindle
#

die

green laurel
#

hello i think there's something wrong with the glass in the chems item, it doesnt show at all when runtimeicons generates an image for it

viral flint
#

ill take a look

green laurel
#

no, normally transparency works just fine with these icons

midnight sapphire
#

Oh, fuck

#

This mod literally does

#

not load

#

Uh

#

Is this just a me thing in v80, or

polar verge
#

doesnt work in v80

viral flint
viral flint
#

I had a go at this and it results in duplicate bundle loading errors followed by a startup freeze 😭

[Error  : Unity Log] The AssetBundle 'LethalCompany\profiles\WelcomeToOoblterra80\BepInEx\plugins\Skeleton_Studios-Welcome_To_Ooblterra\content.lethalbundle' can't be loaded because another AssetBundle with the same files is already loaded.
[Error  :LethalLevelLoader] AssetBundleInfo: content.lethalbundle failed to load or is already loaded. Skipping...
#

so from what you were saying, it sounds like I should need 3 bundles?

#

maybe a layout like this?

  1. content with my mod content
  2. welcome_to_ooblterra_level.lethalbundle with the ExtendedLevel asset only
  3. welcome_to_ooblterra_scene.lethalbundle with the scene only
viral flint
#

the more im looking through this, the more im thinking a bunch of this patching code is actually just doing the same thing multiple times.

for example, we have code that registers enemies programatically in a script, but we also have ExtendedEnemyType definitions for them.

I think LLL was never seeing those ExtendedEnemyTypes though because our bundle was just called content, so it was ignored

#

yeah this is messed up

#

no wonder this shit wasn't playing nice with LLL...

viral flint
#

alright i've got some work to do

viral flint
exotic temple
#

o

exotic temple
#

If renamed to content.lethalbundle, LLL should just handle registering stuff in it

viral flint
viral flint
#

fyi, I will be updating WTO as soon as I can after I get back from my holiday (ending April 18th)

viral flint
#

making progress on this now. the next update should also significantly boost compatibility with other mods, as everything will be handled and registered by LLL

#

things were previously being all manually handled by WTO, which I think would lead to compatibility issues with other mods that tried to modify enemy / item spawning etc.

leaden wren
viral flint
#

v80 is still WIP - I'm making progress but there's a lot of migration from very old modding practices to new LLL based ones, so it's taking a bit

brave spindle
#

Totally understand!

leaden wren
#

True

north beacon
#

can the enemies spawn on other moons aswell?

thick kayak
#

Not from what i know

novel kiln
viral flint
fallen sable
#

if they do however