#Welcome to Ooblterra! v2.0.0
8319 messages Β· Page 9 of 9 (latest)
i got them by copying them out of unity's package cache
okie
so the directory structure should be like
- UnityRoot
- Packages
- packages-lock.json
- unity-lc-project-patcher/
- unity-project-patcher/
- Packages
yeah okay, ill try getting your diff changes again and try that
π
for me the easy part is the DunGen dlls lol
what did you do to resolve those issues?
copying the dlls like I did was not the best since the project had all the scripts missing
the DllsToCopy list needed the dll names
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah
does this do it at the right time to maintain script references?
exceptional
ok ill re-extract a project later and see if this fixes it
if it does then that's perfect, thank you π
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
π
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
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
ummm
dammit that file is on my pc at home
I know you can edit the package-lock.json to do it, or maybe just do it through unity package manager https://docs.unity3d.com/6000.3/Documentation/Manual/upm-ui-local.html
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
I think it's "source": "embedded", "url": "file: ..."
icic
@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
I can write up a more detailed set of instructions for how I did it later today, and also include the dlls in the copy dlls part and see if I can get a nicely extracted project
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
that would be amazing, rn im trying to have my changes be put into a repo
thats my last ditch effort
yeah that didnt work lol, I'll leave it to ya, im not sure where im going wrong sadly
alright ill have a go and see what's up
should be done in around 8hrs or so
π«‘
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 does WTO not work in v80? (testing a presumably fixed LL rn)
it's not been fixed up yet
for real?
ye
that's surprising honestly
perhaps it wont be so bad to fix it up
(famous last words)
lol, surely
maybe i can find another mod to test that isn't heavily code dependent hmmm
ill take a crack at doing a fixed version tonight. maybe maybe maybe it will be straightforward π€ π€ π€
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
so are we all planning on pushing v80 updates to thunderstore asap?
or waiting until it launches mainline on steam
i've been pushin v80 updates
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
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?
wellllll it does install 1.6.8 but people probably just auto update lol
mmmmmmm....
oh also
im unsure of the scope of WTO
did you have like
inside map objects like hazards?
are they registered via LL?
yeah this is ancient lol
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
does dawnlib have a solution?
yeah dawnlib immediately updated lol
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
they probably can be lol
i'd be surprised if you can find something that DawnLib can't register
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
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
if I happen to run into anything im happy to throw up an issue / PR
yippee
doing this now
Lmk how it goes (I was sleeping)
π€
okay so, it almost works
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)
I think those dissonance script references always broke lol
ah..
But the DunGen ones should've been okay if you added the dlls to the SO
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?
I don't think so...
Hmm
I can investigate it more, how'd you get your rpc's to work?
follow the project patch steps as per https://thunderstore.io/c/lethal-company/p/TeamXiaolan/DawnLib/wiki/4097-a-unity-setup/, except use
https://github.com/Skeleton-Studios/unity-project-patcher.git#lc-v80-fixeshttps://github.com/Skeleton-Studios/unity-lc-project-patcher.git#v80-fixes
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
if you try and extract a project with those two links, it should work and you should get the same project I have right now (everything working aside from dungen script refs)
okie ill give it a try
im gonna investigate a bit and see if I can do anything about dungen
ill see if i can get the DunGen stuff working as well
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
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)
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
well let me see. I think if you just copy in those raw .cs files it should all just magically work
AH! IT DOES
but.. the problem now is that the entire project depends on decompiled source files instead of the proper dlls that the game actually uses...
ehh i mean that's kinda fine, it depends on the decompiled source files for the rest of assembly csharp etc
yeah does that matter? will this just work?
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
yeah they need to NOT be copied
yep
but, can i make it so it auto-copies the decompiled .cs files?
not sure, i feel like there was something for this
im loading the packages rn so i can check probs
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
what I'll also do is add the decompiled script paths for the other .dlls that are causing missing script references
go for it
we might as well get the whole thing working
my dumbass forgot to remove the DunGen dlls from the dllstocopy btw
alright im removing ALL the dll copies and replacing them with copying the decompiled .cs files
let's see if this works π
honestly im excited to find out why this is bad idea later
yeah fair
that is my current blind goal
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
okay, re-running the patcher again with these new settings
Glgl
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?
yeah it should be fine
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 π€
if i had a nickle for everytime my power turned off while testing the patcher
i'd have 2 nickels
π
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
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}
hmm
where 5e003a5623c777545aadc493adfc4ef5 is the guid in the .cs.meta file, and b51bcd74f73a4e44c8c4a24a6fc1cab9 is the guid in the .dll.meta file..
it's a good thing the easter long weekend is coming up π
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
ah! I found how to generate the fileId
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
aaaahhhh
alright, i'll take another stab at this tomorrow
and hopefully ill be able to give you a patcher that works perfectly
<3
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 π
sounds dreamlike
RIP lmao
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 π
bleh, fair
it works perfectly so for now ill let people know and update the wiki, many thanks <3
lurking paid off
@signal kelp no die
hi hat
@viral flint Is there a specific reason the .dlls for DunGen aren't being copied? 
Or uhh
Plugins that use DunGen stuff complain about not being able to find it (LLL for instance)
It ceased once I reverted this: https://github.com/Skeleton-Studios/unity-lc-project-patcher/commit/585ae8d5212d4fc810102372a225faa976041e10
(Manually, I did not repatch)
So the reason it was copying the
.cs files was because otherwise all the asset references that refer to dungen files all break across the entire extracted project, since the project relies on the guids of the .cs files and not the .dll
I am currently working on a different solution that remaps the guids from the .cs files to the .dlls
Oh that's what I did ye lol
Do you have a tool that can do that?
I do not 
Ah..
Did Find and Replace on Notepad++ lol
π
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
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
Not sure honestly
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
Talking with Zaggy about it a bit, I'm guessing maybe dlls have extra info that normal .cs files dont
chee referenc ? HI
soundreality hi hat closed acoustic sample 455286
Hat knows ive been doing that joke since the first hi i said to him hehehehe
ohh
thats why he said cheese reference hehehehe
im SMARTER THAN YOU MONTY
DIE
DIE MONTY
die
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
that's a bit odd. it doesn't have anything to do with the transparency does it?
ill take a look
no, normally transparency works just fine with these icons
Oh, fuck
This mod literally does
not load
Uh
Is this just a me thing in v80, or
Not updated for v80 yet
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?
contentwith my mod contentwelcome_to_ooblterra_level.lethalbundlewith the ExtendedLevel asset onlywelcome_to_ooblterra_scene.lethalbundlewith the scene only
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...
alright i've got some work to do
this stuff is wrong, I just need to actually use the Extended content assets properly
o
Doesn't content contain some more ExtendedMod stuff
If renamed to content.lethalbundle, LLL should just handle registering stuff in it
It doesn't work because then both LLL and WTO both try and load the the bundle, leading to the above error message and loading freeze
fyi, I will be updating WTO as soon as I can after I get back from my holiday (ending April 18th)
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.
@grim bridge once you have updated ooblterra to V81 could you add this plugin when you build the moon? https://github.com/DaXcess/LCVR/blob/dev/Docs/COMPATIBILITY.md
sure
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
Totally understand!
You got this!

can the enemies spawn on other moons aswell?
Not from what i know
I had a glitch awhile back where they did, but they're no supposed to
they aren't meant to
if they do however