#[WIP] Unity AssetRipper / Fixer
1 messages Β· Page 3 of 1
btw is anything going to explode if im moving a dll into the project via a postbuildevent
Nobody makes @trail oriole bleed his own blood
Depends on if they get loaded directly. Plugins in-project in /Mods/ are fine to remove/overwrite/etc
cool, this isnt even a bepin plugin so
Plugins outside of the project are locked forever (until unity is reloaded)
One of the benefits of using the editor anyhow. Not super sure about non-plugins in editor and what happens to them
it seems to be going well
Oh actually I can't do an option that doesn't load from bepinex, that one is automatic
i already got quick scene menuitems ported over from my shitty plugin
wym
I can't exclude plugins from bepinex, but I can exclude plugins from the editor since I have to inject those with a patch
So it'll probably just be a toggle
you can't exclude plugins from the basegame folder?
from here, no
but isnt it already excluded if you have that one bool turned off
No that uses the local bepinex directory next to your project
Just saying you can't exclude plugins from those directories
yeah i did not know it was doing that
ye
To explain my intended usecase a little
all the mods I want loaded when I hit play I want to be in my basegame folder, for 1:1 testing parity
but I also need lethallevelloader, lethaltoolkit, monomod hook in the project itself to develop w/ lethallevelloaders custom scriptableobjects and such
Makes sense
so i don't want the plugins i have in the project to be loaded
Yeah I'll just add a toggle for that and it should work fine (hopefully)
We shall see
thank you
sorry for throwing you so many issues btw. ik it's like good but from my experience in devving LLL i know it can just kinda feel sucky sometimes
Nomnom, blink twice if your trapped
hm it seems I actually can't exclude the one in the editor either
I think loading an assembly checks the main project if it already exists or something
Since it always prioritizes the one in the editor
odd
can you somehow patch harmony, check the assembly location and bail out early?
atm I don't know if it's just a thing NET does, or if it's from the plugin loader yet
pain
I send the log file to you in message
hm my stuff is basically what you have (yours is newer but basically the same). So not really sure what .NET prerequisites you could be missing somehow π€
You know I wonder
What happens if you run the exe directly through a terminal?
[Project Name]\Library\PackageCache\[com.nomnom.lc-patcher@version]\Editor\Libs\AssetRipper~\AssetRipper.Tools.SystemTester.exe
Or even just opening it
so that is
I don't get what the prerequisites are 
Just tried with your version of net 8 and it worked fine still for me. Does someone else know more about .NET things here?
@humble ember Is it possible to test my moon without building the asset bundles
no
Danm
not sure if you figured out a way to get the game's actual posterization shader working yet, i have a kind of scuffed way that works
essentially:
- Open the game's files with AssetsTools.NET, and extract the posterization shader's
AssetTypeValueField - Open an assetbundle with a dummy shader
- Replace dummy shader with posterization shader
- write assetbundle
- at runtime, load the assetbundle and use the shader in a custom pass
the shader - as far as i can tell - works perfectly as normal
you do need to have the same material properties though (including some invisible ones, it showed up as fully black until I did posterizationMaterial.shader = x;)
i can write up a more detailed poc/PR something if it would be helpful
Oh damn, yeah if you could write a more detailed poc that would be great (so I don't do a step wrong lmao).
Wonder if the steps could be done for the other shaders, like the blob
I don't see why not
As far as I know it'll only work in play mode though, maybe I'll try making it work in editor but idk how assetbundle-loaded shaders are handled in that context
I don't think the game has too many custom shaders
are there any others that have been causing you trouble besides the poster/blob
less anal picture
Basically none of the SG ones exist in editor for us
That's about it though
I think the single FlyingBugs VFX asset is also borked, but that's more of an actual asset issue
Damn been using the patched project to update turret key, and man it's great
@trail oriole @naive steppe and a few others wanted to help in LLL documentation and stuff, is the destroy safeguard publicly available?
Also made one for the resources findall one
Although the resources one may be a misjudgement of how it worked since it acts differently than I thought in a build
π
Was getting an audioclip from the game, and it wasn't working in the editor so I thought it wasn't able to work there. But in a build it doesn't get it either, so I assume it's because it wasn't loaded yet?
@humble ember is there a common way to get an audioclip from any point in time? I assume there isn't just a list of them in some object somewhere
feck
Ah I'm dumb, I can just grab the clip from the key I already have
It's in the item props!
we cookin
Yeah that destroy guard above works absolute wonders
I wonder if it should disable components that come through it
Probably, just a simple
if (obj is MonoBehaviour monoBehaviour) {
monoBehaviour.enabled = false;
}
uhh
idk
monobehaviours wont have issues
in theory you should actually let them through
Well like some mods may destroy a component on a thing, like my giant does that so I can add my own physics prop (this is before I knew the whole plugin-in-unity pipeline so that's why this is here)
ok fair prefab related stuff might be relevant
little concerned that some mods wont handle this half measure well though
in general
i say that not having a solution though
oh even the destroy blocking in general i mean
like i do destroy stuff for a reason
It's probably fine tbh, editor will be nearly 1:1 with the game but it may have some places like this where it can differ so the project doesn't get bricked 
yeee but with certain mods itll break
Is it safe to update to v0.4.0 in place?
cuz i destroy stuff to prevent issues with other mods
It was for the resources.loadall thing right?
Wost case we can patch the edge cases with some different logic if needed. Like if a mod does the loadall, could patch so it doesn't allow for blacklisted assets to get grabbed. Example obv, but stuff like that is doable to an extent.
Yeah destroy just prints an error and doesn't nuke the asset by default (so my thing just converts that into a warning instead), but destroyimmediate will nuke the asset from orbit.
So goofy
Although
It defaults to false, so why is it still killing it lmao
Yep, only thing you have to do is remove the bepinex utility folder from inside of tools/bepinex in the project (since it's now in the package itself)
There is also a new pass to patch the quality settings, but it isn't that important
Copy that π«‘
Pushed stuff like auto loading into a moon, skipping intro/main menu, loading save and/or resetting it, etc
grouping it a lil better
Cool, pushed that
When will 0.4 be out to main
Probably tomorrow
Let's go
I think I have already solved that problem.
It seems that the x64 version of SDK did not appear in the correct folder.
alright first time ive ever used the tool what did i do wrong :p
huh is my AR exception messaging thing not in that, is this from the main branch?
newest branch yeah
Ok grab 0.4 and see if it still errors
Append #v0.4.0 to the git link to install it
like this?
Yep
do i need to remove the previous package or will it overwrite
Not actually sure tbh
ill remove then

oh my .net isnt updated apparently
might be why it failed last time
'cause i have it, just not 8.0
Could be, you need .net 8. In the main version it would put the error in the info messages, but in 0.4 it emits the actual error string
It's in the requirements 
I really wish I could easily check for that for the user, but I kinda can't
rip
tbh I might just merge 0.4 into main now
Been using it all day, been good for me at least
If it breaks blame Starlancer 
Plenty of people have blamed my mods for breaking stuff already π€
i love when discord is super scrolled up with no indication
It do be like that 
get scrolled 
I haven't gotten around to updating to 0.4 before this anyhow, since I've been looking at AI code most of my computer time today lol
Oh right I didn't put this in the readme
If you have 0.3 and go to 0.4 you need to remove the utility scripts from tools/bepinex
Starlancer HIMSELF goes into the code and breaks everything
am i supposed to expect this
this is upon first restart
'cause i know it says it'll restart multiple times
i dunno if its like in the middle of its tthing and i just should ignore andlet it keep going
ftr I have the UAS DunGen implemented
That's fine
just additional info
ye
That would do it
i'll let it finish and see how it goes
i've already removed the old dungen stuff from other projects so i know what to get rid of
If it isn't in the assetsstore folder then it wouldn't have removed the ones from the rip so the dungen guids will all be broken + duplicate scripts
good to know for FAQs
also 0.4 is on main now so you don't need to be on the branch anymore
noice
I literally just did that 
alright let me try from scratch and not be an idiot
gg
deleting the uas dungen seemed to be ok but i think some stuff was a little bork
so im not gunna take risks
Dungen is borked a bit when loaded
All you have to do is add 2 references to unity ai tho
what do you mean?
something to note - which might be what they're talking about
for DunGen UAS you need to implement the Unity NavMesh under the integration folder
for it to run properly with LC
The tool does that
ah okay
Just missing references
I ran it on an empty project yesterday and it had no issues with references with the dungen asset in the assetstore folder. The tool installs all dependencies, including the ai one, and imports the package from dungen for you after.
Must be on an mis-matched version of dungen idc really
When you get things like that show me so I can see if it's an actual issue, a user issue, or needs an FAQ entry.
It's just a skill issue and no one has ever had the same issue

Nice, yeah that's all fine
very nice, very impresive
does the tool also consider Terrain2Mesh?
or just dungen for now
It's in the project, but not really sure what it is supposed to be for
Terrain2Mesh is because Unity Terrain is a fucking mess
and really unoptimal to work with
collider sizes, decals, navmesh, etc is just better handled on a Mesh as opposed to Terrain
so Terrain2Mesh is a plugin we can use to export any terrain to a mesh while customizing colliders, exporting splatmaps etc
extreeeemely useful
Ah, well all the terrains that got exported are meshes already I think
aye
Hey nomnom, what do you think would be balanced power level for a P ranked moon
but for people who wanna make moons it'll definitely be a recommended thing, similar to DunGen, to use
200?
I have no idea
Double the power level, double the fun
apparently you can build assetbundles using assets in packages
which makes sense but i have never tried that
like directly in packages
this shit is probably gonna be pretty fucked
i will make a draft PR once i have something workable
Sure
oh wait nice terrain2mesh install didnt actually break anything
i guess the rip doesnt actually include anything from it

oh speaking of which, @humble ember never showed me an example of that >:(
the casette recorder model for DataLogs is under Combined Mesh 17 and its still broken 
i forgor
def not the correct mesh unity is telling me it is
lol what the heck
what was the reason for this again? Are they probuilder meshes that got made at runtime or something? Don't remember what batby said about those combined things
Probably not much I can do about them either way, but curious
im not actually use, generally ProBuilder doesnt name them as "combined mesh"
its unity
because the scenes are static it combines static meshes for optimisation iirc
yeah cause Pro Builder assumes the name of the parent combined object
so if you make an object from say a Cube primitive, do all your shit, combine everything from arches and stairs up to a cube, it'll export as Cube
thats why when you search for Cube under meshes
theres like
500000000 cubes
lmao
Yeah sadly the patched project won't be at 100% parity with the game, but it's quite fricken close for what it is at least
Still need to fix some audio mixer param names and some ui things
Just been super busy 
its weird that the datalog would be categorized as a static mesh tho
i mean i guess it doesnt.. move..
but it is interactable
static just be meaning that
it being turned off/not existing doesnt mean its moving
yeah cheaper than destroying the object
iirc its really bad to destroy/create
vs draw/nodraw
most cases it really doesn't matter 
i meant like in a vacuum
if you had the option to do either
just turn off the draw
For small things, one-off things, even a few a frame is generally fine depending on their total size, but like a bullet hell? Definitely will have problems, so you'd look into pooling.
right
I'm now at the stage where I can test my editor tooling with new custom mods. Exciting
Tree -> Stick 
@trail oriole did you remove the posterization shader option in 0.4? Or was that never part of a public branch?
oh derp, ty
Ye
is there a known water shader error or
@trail oriole prepped a brand new project to go through the setup process, we eatin' good
I think the issue is that shadergraphs break upon rip and can't be recompiled like the rest of the materials
i'm working on a solution but i still haven't tested if it works in-editor
play mode only atm
hopefully it goes well
any pain points or utils that would help on the editor side as you make stuff lemme know. Starting on Monday I will have my time heavily cut for side stuff, but I'll still be able to work on things during the night.
I'll keep you in the loop! :3
Sorry if I haven't posted anything related to shaders atm... I'm currently working on a big project on my own but I will go back at it this weekend!!!
Encountered an interesting issue while helping someone trying to install some packages from git url
apparently having the drive your project is on formatted to exFAT completely breaks git package installation in unity
lmao wtf
Yea, so if you ever have someone complain that they can't install it, that's a thing to check π€
so i fully imported terrain2mesh and ive never seen these sort of errors before
i dont even know where to start lmao
definitely not the same errors i had in evas template
Is that an asset or somethin?
yeah its the thing i mentioned - zeeks uses it to convert unity terrain into a mesh
cause unity terrain is a mess
Ah it's paid, I see
:)
i love hdrp so much
that looks like an faa airspace thingy
@trail oriole https://github.com/nomnomab/lc-project-patcher/pull/2
i would love for some people to test this
https://github.com/legoandmars/lc-project-patcher.git#custom-shader-support
you will have to re-extract
I will check this out tomorrow π
@humble ember found a situation with skipping the intro and not all bundles being loaded yet causing the rest of the bundles to never load. Maybe instead of putting the coroutine onto the preinitscript, you make a new DDOL obj just for that task, then destroy it after? Since if the loading takes too long, and the preinitscript unloads, it nukes all coroutines that were attached to it, so it never finishes.
Did a quick test case and this lets them load in perfectly if the intro is skipped (haven't tested with a bunch of them obv). But you'll know more about how to approach that on your end probably.
@humble ember btw is above a bug if intro is skipped? I didn't see anything that picked the loader back up, so I assume it's a bug. Putting the coroutines on a DDOL obj that loads on the side works well for editor-usage, otherwise they never load if preinitscript gets destroyed before completion (since they get disposed before loading).
Also work sprint starts today so I'll have less time to work on this for a bit. Will have to do so before bed probably, or when I have breaks
Pain. Still need to look at the shaders PR, just haven't had time 
I havenβt looked into yet, sorry!
No worries! Good to know you are aware of it at least haha, no rush though. My temp patch works fine for what I need for now.
This might be related to the asset deletion thing from before, but do you know of a way to prevent or rollback runtime changes to mono behavior assets? Mods that add items to the unlockables list through the StartOfRound instance for example will permanently change the 0_Unlockables asset in the editor
Sorry if you had already talked about this. Been focused elsewhere for a bit
The editor is annoying like that, so you can't rollback or disable the asset modifications. Would need some kind of snapshot system, but then that would need an entire pass to rehook up cloned versions of them or something when the game loads. And then you couldn't poke the SOs during play mode so it's kinda annoying there too.
Ah that sucks
Or you'd have to clone everything at the tool-level and recopy over each time play mode ends, which is also horrible
Yeah that might be too much lmao
What about a manual button to recopy just those in case they get screwed up?
I donβt think this is as terrible as it could be
Maybe, but then you can't play around with in-game stuff without it getting replaced each time you stop playing. I guess there could be a button to copy over the patched SOs/prefabs from the ripper folder (since you can keep that around), and if I remember right I patch those in that folder before copying them over (?). I'd have to check.
Not being able to do that sounds like intended behaviour?
I poke the existing stuff a lot to play with things, like if I want a moon no never have fog so I can test stuff without being blind, I can change the default weather on its SO. It's a limitation I'd rather not impose if not needed, would be better as an optional thing imo.
I was also correct, I patch the stuff in the AR folder
So that button might just work β’οΈ
Would probably have to do these two steps
u cache before play not after rip
Guess we'd have to see how much time that would add onto the time when hitting play. Could cache each SO by guid in its json format then deserialise when the game ends. Issue with that would be if the editor crashes, the assets wouldn't revert hmm.
Oh actually im dumb
Make backup on rip. On asset reload check if any changes were made, if so update backup. on play exit replace any modified with the backup
way leas thinhs 2do
maybe can do it with git cli
any idea why the dropship came out like this in the assetrip?
poor little light is inside of the thing
The ripper does a few oddities with rips (especially with static stuff). So not sure why that's inside the mesh. It's a part of the base mesh, so maybe it was merged when ripped when it isn't supposed to be? Unsure, I'd have to check UE to see if it's a second mesh or not with the steam version.
Any next steps on my end? for now I might just grab the model from my old project and swap it in for my custom moon
Not sure what you mean by next steps, if its merged with the ripped model there is nothing I can do about it
So using your old model sounds fine.
sorry if this is obvious, but I'm having a hard time finding an explanation on how to use the Ripper π
you can cancel saving specific assets through here
idk if it'll break SO changes though
I will try that out when I get a chance ποΈ
I wonder if it's because my old project environment was for v40 and this one is up to date for v49
because I do remember seeing that light on top before
I think Zeekers broke it
yeah I guess so
Yeah there is supposed to be one there
how did he even manage that?
Maybe his model got modified and he doesn't know
maybe he fucked it up when trying to go from the christmas version back to the normal one actually?
cuz it had a star on top
Probably
so he probably just pushed the top part of the mesh down to put the star and didn't bother to pull it back up
thats funny
alright fair enough
From your steps and notes it seems like it is, the part about it doing the replacement on a save worries me slightly. But we shall see
if you run into any issues lmk
Yeah for sure
@sand thistle seems that call + extra stuff works well https://www.nombin.dev/snasylwtxa
A website to host temporary code snippets.
oh nice
is there a way I can fix these missing keyed animations?
This is directly ripped from a vanilla map, all the maps show these things as missing
Not yet π I did a proof of concept for a part of the intro boot sequence near the start of this tool, but I haven't gotten around to fixing more animations yet (it's very tedious to fix the different variants of what it needs to be vs what it ripped as
)
This lovely script that is entirely commented out https://github.com/nomnomab/lc-project-patcher/blob/master/Editor/Modules/AnimationClipPatcherModule.cs
btw do you think you can try out that utility script on your end when you get a chance?
Which reminds me that someone had a fork of assetripper to fix the pptrCurve animations, but I can't seem to find it
yeah sure
That's the only thing that module does atm lul
also my earlier suspicion was right on the first keyframe being lost
oof
but it should be easily recoverable. The pptrMapping still should have all of the frames, it's just not in the curve data
Yeah I have that fixed, just not in the steps yet. Other animation types didn't get fixed with it so I commented it out for now 
Alright just tried out the snippet

1sec
gotta restart unity it's acting up lol
rather than me trying to explain it, which I'm terrible at, here's a clip
The only mod loaded is the ship window mod that I have been working on, it adds a switch to control the shutter as a placable item, basically a copy of the light switch, to the unlockables list
it's not reverted upon ending playmode, but manual changes are
ex in clip
I cri
When they modify it, does it flag a warning on exit?
(if it blocks it prints a warning per asset)
It does print the warning yeah
huh I guess from-code changes don't get flagged as modifications 

Well crap
So close
since the issue was with scriptableobjects
those r like
files
i wonder if you can just make them read only when you hit play
on like an os level
inb4 unity crashes 
How dare it
oh let's go
We found its limitations 
Changing assets from code doesn't get flagged as modifications
god speed
Gonna try this 
o7
were still fine to change them outside of play mode right
Yeah
sickkk
cuz LLL just does so.name checks to replace assetrip content with the real stuff at runtime im working on a thing that replaces assetrip content with like empty so's before build and fixing it after build
so you don't bundle a bunch of useless stuff
π
Tried a smaller version and it works kinda. The list gets reverted by the scene turns blue and the input system has a stroke.
Progress
This time I ignored unity things and specified the search path
Still takes longer than I'd like :/
Parallel import makes it super quick 
Faster than I thought it would be
with parallel
@tranquil hare will probably push this tomorrow, but if you want to test it beforehand here it is https://www.nombin.dev/jeblpqx9ra
A website to host temporary code snippets.
(and to make it faster turn on parallel imports)
@humble ember know off the top of your head why it would show up fine here, but throws an error in the terminal with a null node? My experimental patch for the loading is off, I wait in the intro for it to load, and nothing else modifies the terminal π€
can i see a log
https://hatebin.com/sjywqjlwhz @humble ember
I did notice this loading into the ship just now
Can't fuckin type
wtf there is a null enemy again somehow
HOW
Seems to be an added one at the end 
Ok now there are no null enemies

Ok somehow an item got malformed asset-wise, had to do a copy to fix it
Works now
Need to do more testing on when these modifications happen
Pain
(apologies for mentioning you in errors I didn't realize I was causing)
As a fallback so I don't have to deal with this crap again
Ok that's good, and made the SO reverter faster https://www.nombin.dev/indmwgcura Will push that out after work tomorrow 
A website to host temporary code snippets.
heads up sorry for not responding, reading everything just brain brrring while trying to knock out a bunch of small tasks
All good, ended up being asset stuff since I was in a flux of weird states due to my tool tests
Between this SO revert post process, and the auto-level fixer on boot, I don't get any more missing issues anymore with LLL stuff/other mods that affect the assets
I still have to use the preinitscript patch so I can actually skip through the intro/main menu and keep loading the custom moons but that's fine for now
not sure if this has been fixed yet, or if there's anything that can be done about it, but it looks like if I attach a debugger to a the running game in the editor, it causes the Harmony patches not to be undone upon stopping
I'm on 0.3.0 still so I do need to update, it's possible this isn't a thing anymore
actually, correction, I thought it worked if you connected while it wasn't running, but even that seems to bork my Harmony transpiler somehow
ahh, wait, it may be because it changes the compiled IL
yep that was the issue, never mind
Won't be able to test it until later this evening when I get home, assuming you're still planning on pushing it out today
I think theres a problem when assetripper rips sprites sometimes it seems to crop them. like the helmet in the boot screen the middle one is supposed to be like the left one
i noticed it in that video and remembered this
Yeah, guess it has some issues there
Quite a lot of images/sprites are just completely borked, wrong size, etc
Idk if this code is related but its in the sprite processor for asset ripper
@trail oriole is there a clean way to like rerip
like if i just run the tool again will it correctly replace everything
without destroying assets in eg. Unity/AssetStore, LethalCompany/Mods, LethalCompany/Tools etc
Never tested it, so I assume it would explode lol
π¦
it would be very convenient if that worked
eg. because of that issue with LLL and .Destroy some of my rip is destroyed
so i wanted to just run it again
I don't think it'll work since I nuke the scripts + so folder so I don't get a possibility of duplicates, so I'll probably have to test without doing that and see if it uses the stuff in the project properly π€ There was something anal about the guid patching that made me delete the scripts folder as well, but I don't remember what it was atm. I'm waiting for veri to test out my SO guards before I push those out, which will solve the modification issues in the future at least.
Although I think the assets in the ripper output are patched properly before being auto-deleted to save space. Maybe worst case if those are fine at the end, you keep the output alive and you can press a button to re-copy over?
all i want in this case is for the assetripper to mess with the folders that have assetrip content
eg. rip once
then on future rips it empties out the folders in /Game/ and restores that
ideally it would check if theres even any differences between the rip file and the preexisting file via some file comparison but not needed for this usecase
i just wanna restore my rip without damaging the custom content i have in the project
Just tested, sorry for being so late. Seems to be working well
The only "gotcha" I can really think of is editing an asset without saving the project and hitting play, making you lose the "unsaved" changes
e.g., if you forget to Ctrl+S after editing
That will just have to be something to be aware of probably
I really gotta thank you all for this project, it's helping so much with testing async pathfinding being able to see the debug lines
plus free cam following the brackens
How are you free-camming?
once you start the game you can navigate around the world in the scene view
ohhhhhhhhhh of course, ty
I'm looking at this thread to see if there's some way I can use the Burst compiler in PathfindingLagFix, and I wonder, is it possible for me to build my assembly from the Unity editor so that it can do the necessary steps to enable it?
I'm a bit of a novice with the editor tbh, sorry if this is something fairly obvious
not sure if there's any documentation on generating BepInEx plugins from within the editor
Sadly, you can't make one from the editor, that's one of the limitations, since to build the dll it would need an asmdef. But asmdefs can't access any of the game code, so plugins that need to be built, or need access to bundles, have to be built externally and copied over.
ah, hmm
but would it be possible to have an in-editor assembly that I can call into using only unity types?
that would be quite a pain, but possibly worth it from what I'm reading about jobs in unity
Sure, as long as you don't need anything LC-related, or dungen-related, you can do that yeah
I'll have to look into that later then
jobs are forced to use malloc'd arrays, but the C# interface is supposedly incredibly slow
sick (forgot to mention this morning), I'll add a disclaimer about that in the readme somewhere. I'll push it tonight with some other small additions.
Adding
- a menu item to open the runtime settings SO
- some extra buttons to re-run some inner parts of some steps via the tool
- a patch to clean out null level data
- a patch to put coroutines that are on preinitscript to run outside of it in case the user skips the intro
- the SO save-blocker
- a time-of-day cheat.
Pushed em
Will put the thing batby wanted next on my list
My problems are ingredients for Nomnom
Added a patch step/button to assign the proper render pipeline if missing
gonna repost this here
this is from my dms with batby, apparently this is an issue with the .Destroy command and how it plays with the in editor tools
What version is that from, as I have fixes for that in the latest version
The latest is 0.4.4
yep, updating to latest has seemed to solve the issue
my bad I should've tried that first lmao
ty though this tool is really really nice
No worries!
also
gonna be awful here, you dont need to do this anytime soon
i did notice the combined meshes seemingly do have their uncombined meshes stored as submeshes
yeah one sec
ok so this simpsons lookin ass prop on vow
unity combines them all into one for optimisation but looks like data wise they are still grouped by how they were seperate
Ah I see. Fun
its very much not a priority
I should make a list at some point of things I need to look at
Oh right I need to look at the shader PR this weekend
I keep forgetting 
@pliant heron use this tool with this version
@trail oriole what's the purpose of the SO blocker?
It reverts serialized changes to most LC SOs when you exit play mode
So that messing with stuff at runtime doesn't actually change files?
Yep
Is that only for ripped SOs, or does that apply to ones we make ourselves?
Only the ones from the game
Sweet, ty for the info
(had to make it a bit specific in what it worked on otherwise the exit loading time was too long)
Oh I should also note that people can enable parallel imports to make that faster too
https://github.com/AssetRipper/AssetRipper/pull/1210 Might be of interest to you on your fork when it's merged
4 days ago, yum
did an export with that branch and had some nice results. Doesn't resolve missing script refs tho, ofc
ποΈ
Can't wait for it to get merged then
~~Let someone else do the hard work for me ~~ 
crazy ask but is it possible to replace references to the combined mesh in scenes to the relevant uncombined mesh?
i dont even know how that would work but
uhhhhhhhhhhhhhhhhhhhhhh not sure about that. Would require me to do scene asset scanning and I don't wanna right now 
that isn't the biggest problem i just don't know how you'd have like
reference to where the mesh is meant to be
yknow
youd need the distance from the submesh center in the combined mesh and the center of the combined mesh itself or something
Sounds tedious lmao
cuz in the combined mesh it's inherently offset because theres space between the combined mesh center and where the submeshes actually are
which is "lost" in translation when you uncombine them
bro, this is sick
Doing what I can in my free time before bed 
Will it be yet another utility button for those who've already patched? π€
Yeah it probably won't be in the main patcher for a bit
(It will add a lot to the patch time)
kk, once it hits that's gonna be super helpful
bruh
Gaht daym
wat
Might need someone knowledgeable about meshes to assist with these uvs lmao
Something to do with pixel displacement and the new uvs
Okay I think I found a cheat for ones with mesh colliders
when updating the patcher and re-ripping, is it best to start from a fresh project?
Yeah depending on the update, you won't have to do a full re-rip (depending on what's needed). But until I figure out a way to have a 1:1 re-rip, yeah a fresh project is best. That part of it is still a work in progress π
no worries
Considering each mesh is actually unique, I can just name them what they are in-scene to their new mesh asset
:)
that is insanely usefull
Doing it on the filter itself just does it for that single object now
Doing it from the selected mesh instead will scan all levels for it (batch operation)
Probably won't have this as an automatic thing in the patcher steps, more of an opt-in to what you want to break apart
I think that's for the best, prevents unnecessary clutter
Probably good enough
Pushed it as 0.4.5
goat
Wow, nice work
I've been wondering, it seems like creating materials from code like
new(Shader.Find("HDRP/Unlit"))
{
name = "TileBoundsVisualizerMaterial",
color = Color.yellow,
}
causes an unlit magenta material like this:
any idea the cause or if there's a way to avoid that?
The cause is that shader coding is the devil's domain
I figure that's probably the case actually lol
for some reason it seems like Find("HDRP/Unlit") finds a different instance of the shader than the one that every other unlit object in the project does
Maybe it needs a more specific path? (Just to be clear, I'm only spitballing ideas, I'm not codepilled enough in this regard)
ohh wait hmm
hold on
I think it's actually finding the ripped shader which is busted, rather than the one in the HDRP package
it's possible that there's some way to be more specific, I wonder
but presumably there shouldn't really be ripped copies of the HDRP shaders at all?
I would assume not, the path I'm seeing is .\Assets\LethalCompany\Game\Shaders\HDRP_Unlit.shader
Omg phone
not sure if there's some step I may be missing, but they do show up at least
Try just deleting that shader (and seeing if the search is good after)
I get this in the selection menu, I would assume there should only be one of each
and oddly enough it doesn't seem to differentiate them so I can't switch it to the correct one
Man, I really thought I had ironed out the remaining issues in my old-version-rip-upgrade, but now all of a sudden I can't build bundles
lemme check
Tried building it to a folder on my desktop, same issue
I'm pretty sure it's a me issue and not anything you did Nomnom
dude wait I can just modify the DunGen scripts to debug them can't I 
I just need to bite the bullet and port everything over to a fresh project ; w ;
Try closing project, nuking Library and Temp, and re-opening it
Maybe your cache is dead
kk
lovely for map creators trying to make their maps look like the base game ones
ye
@dull furnace did this work btw for the .Find?
Probably wouldn't hurt
trying without because I'm a rebel
it worked
Nope
Thank god you have the info extractor at least
This will be better for future compatibility anyways
i think that happens when you have 2 of the same asset type using the same name
Maybe some of you meshes have generate materials that are now duplicate?
Ahh maybe. I'm still gonna do a fresh rip though, I've been putting it off but inevitably it's gonna cause problems bc of earlier mistakes
what in the hecking heckin heck
Your project is cursed
Burn it with fire
Oh I know why the shaders copy over, I originally ignored all shaders that weren't shadergraph ones, but then I implemented the category stuff for assets from the game, and that copies over all the shaders.
heck
Yeah you can just straight up delete all the shaders in that folder, none of them are used
I'll add that in later today in the steps
@dull furnace (sorry for mentions lmao) but just so you see it ^
oh yeah sounds good ty
I deleted all the HDRP_ ones, but will delete all of them now
π
I encountered the problem again, and you were 100% right. When I was adding audio clips for building ambience libraries, I put the same exact audio clip in two separate folders and referenced it in my AuralisLevelAmbience, which was what completely broke it lol
alright
new keyboard
my typing is down from like 140wpm to 90 or so but
i can get back to the documentation and testing and stuff
get to test all the new shit poggers whats new this past week
any idea if there's a package I need to install to be able to see/edit HDAdditionalLightData in the editor? currently it seems to know nothing about them
(I have HDRP v14.0.8, seems like that would've included it
)
What do you mean?
In editor there is no info to edit on it since it's all attached to the Light it's with
so the properties it controls would be expected to be displayed on the Light?
the shadow settings seem to be missing quite a few things I would've expected to see, but the specific one I'm looking for is the shadow map dimming multiplier
The temperature thing is from it, the lumens/whatever units is from it, among other settings
oh I found it, apparently there's an option in the preferences to enable "additional settings"
Oh didn't know that was a thing
yeah, I just expected it to work like I saw it in UnityExplorer with two components containing different sets of properties
Where's this setting at?
if you're looking at an component that uses HDRP settings, you can hit the hamburger menu on it and it has a menu option that takes you to the preferences page with the option
lights and cameras should have that for example
oh, and I guess you can do it per section in the component as well
Ahh cool, ty
searching threads still sucks. does anyone know if there's a good way to skip having to type your favorite animal/team role every time in the terminal when playing in editor
I can probably make a cheat for that
So I have just created a project and imported the tool following the instructions, I have imported and moved DunGen to the AssetStore folder before ripping the game assets but when it finish ripping the project throws an error, is it normal?
Also another DunGen folder gets created under Assets
Did you import DunGen and then run the tool? Or did you manually import one of the integration packages that dungen comes with?
Imported the tool
Pressed on "Open" to create the default folders
Imported DunGen.unitypackage
Moved DunGen folder to AssetStore folder
Hm
Oh wait, show me your insalled unity packages
(window > package manager, then "In Project" tab)
I'll push this soon for ya
You have the package installed, hwat π€ What are your other errors
Same error on different places
Unity it's installed... right there why you mad
Exit safe mode
Then open the tool again, and expand Utility. Then send me a screenshot of the packages in the list it has
What if you press install there
It just says packages are already installed
I just tried to re-do everything again and I noticed when importing DunGen is throws this error. I feel like it explains it, now the thing is... Why does it throws that error?
wait it throws an error when importing dungen??
Looks like it
It does nothing, no error, no message at all
That seems good π€
just realising since probuilder stuff is all gucci someone could make a mod to replace all the facility meshes with the "fixed" ones to stop that dump of negative collider errors
That's just the colliders themselves. You can just invert the all the negative axis and it'll remove all the warnings (box colliders, etc)
ok what, I looked at your project and that script is somehow missing an entire using Unity.AI.Navigation;?????
@pliant heron
What... I didnt edit that script at all, so how do I fix it π
It's there in my asset of it 
Wait yours doesn't even have the 2d adapter
Oh yours is an old version
Yours is 2.13.4, while the latest is 2.15.1
Ok so you just have to do two things for that project I think
Put using Unity.AI.Navigation.Editor; at the top of Editor/UnityNavMeshAdapterInspector.cs
Put using Unity.AI.Navigation; at the top of UnityNavMeshAdapter.cs
(where the other usings are)
@pliant heron
Or update your asset
(although that would need a re-rip due to new guids)
Got it! Thank you so much, really!
π Imma put this in the FAQ about dungen
v0.4.6 pushed
- SkipTerminalIntro patch - skips the first-time terminal questionaire (found in runtime settings SO)
- Buttons in the runtime settings SO to open the saves location, delete saves, and delete lc game save data
- Shaders no longer get copied over into the project (since I don't use them)
@tiny gorge ^
https://github.com/nomnomab/lc-project-patcher?tab=readme-ov-file#dungen if anyone hits that issue in the future, it's in the readme
Back to work I go 
For new peeps:
https://youtu.be/dnZG5464ZcE?t=47 watch until like 8 minutes (intro is for this tool)
do you want me to pin that?
Oh yeah if you can

@trail oriole hey bro, a small request
Are you capable of adding new stuff to debug mode for testing moon in editor? I would love to have fly with noclip and control over my money while on moon or at least on orbit
I guess anyone could really make this cheat mod? Anyways, there are cheat mods like https://thunderstore.io/c/lethal-company/p/Hamunii/DevTools/ and this mod allows for fast movement and infinite jumping, including infinite money. No free cam though, but you can use something else for that, such as Unity Explorer.
Can probably find a mod for that for now. There are some cheats in the runtime settings asset you can mess with (has money, stamina, health, etc). Doesn't have freecam, but you can also use the scene view to move around (don't forget to use the editor itself for things!).
Seems Unity's package manager api just lies on chinese computers so now I have to handle the manifest file in the raw way instead. Cool
you can adjust the amount of money you have at any point by searching for terminal in the outliner, finding TerminalScript and setting GroupCredits to whatever you like
@trail oriole super tiny nitpick but the prompt says "Please restart the editor" which is inconsistent cuz ur not really asking π. might be worth changing it to something like "The editor will be restarted"
yeah true thought i was gonna click ok then close it myself
gotta give the user false-urgency 
I'll tweak that, waiting to push another update until I figure out normal-asset guid migration. Then it'll have some smaller stuff alongside it (been a bit stretched with time).
the illusion of free will

@trail oriole looks like the animation clip improvements PR got merged π
I re-exported to see how well it worked, already much more accurate
oh snap!
I'll see if I can just pull that into my fork of AR and update it for the package
Might make the next update 0.5.0 at this point

damn, sorry, wrong place XD
I used this guide and got it into my Unity Template project, but I am not sure where DunGen is (assuming i need that for the interiors) Where should I look to try to find DunGen? Been trying to follow this tutorial here:
https://www.youtube.com/watch?v=lsQl7P0PYs0&ab_channel=MajorBlue7Mods
Hello this is the first video in a series of Lethal Company Interior Mod
this is a Tutorial on How to Make and Create a Interior Mod using the DunGen tool that was used in making Lethal Company.
This one will go over how to setup a Tile and make it Generate with DunGen
tool .
you will have had to have the Unity Template Project setup made by ...
We have really nice Half Life assets we are wanting to turn into a custom interior π
you have to either purchase DunGen off the unity asset store or rip it out of the lethal company assets (will be missing a lot of the visual aids)
Does the LC project Patcher by Nomnom work for getting DunGen to work in unity? I also am trying to follow the tutorial above
is there a way to patch the guids/prefabs of an imported set of rooms to the asset store dungen e.g. from a mod using the asset rip dungen?
If it's in another project you can try https://github.com/nomnomab/lc-project-patcher?tab=readme-ov-file#can-i-transfer-assets-from-another-project-into-this-after-patching
heya, when lethal company updates how will we update our projects to the new version? also, can i rerun the patcher on the project if some changes are made to the patcher
I'm slowly figuring out a way to patch in-place with an already patched project
Took me ages but I finally made headway with the in-place patching. Need to verify with a few more tests, and making sure a fresh patch still works fine, but then I should have some good changes. Will see about getting that done by early next week when I have time.
Seems sub-assets (like audio mixer groups) don't get a proper file id when extracting them so that's one situation I gotta fix 
In place patching success :)
Can't do much testing until later tonight, but if someone wants to duplicate their project and try it out on their end, that would be super useful.
v0.5.0 branch also has a new package installer, that will write to the manifest file if the client api fails to work (such as on chinese machines for some damn reason).
Ah yes
Sounds perfect
@naive steppe if you get a chance, could you try the v0.5.0 branch on a duplicated version of your moon's project (so your original doesn't break on accident) to see if it works on a big boi?
sure thing, I'll do it in a bit :3
There were a couple of errors thrown related to some of my asset store items that I imported back from my pre-nomnom project, but everything seems fine :3
gonna stick with 0.4.6 for now tho just in case
Honestly I think it was just stuff that already had errors lol, like shaders for specific pipelines
I'm wondering if it's possible somehow to include shaders to enable switching to this option in LC release? I'm looking at some issues with area lights cutting off near the edge of the screen in https://discord.com/channels/1168655651455639582/1195583267546595389 and it looks like setting that to High fixes the issue in the editor, but it breaks rendering to set that in the release build
there's also this thread which is relevant: https://forum.unity.com/threads/how-can-he-change-the-shadow-filtering-quality-at-runtime-fix-coming.1425288/
it seems like maybe an entirely new HDRP asset would have to be built and included in a mod to allow switching to that to use the better quality filtering?
From that post it seems like you have to build the game (maybe asset bundle would work too) to generate the shader variants for the filtering option. Then use the public api property to assign it at runtime to the new asset. Although might lead to conflicts if multiple mods start re-assigning it to their own π€
ah yeah, I was hoping it wouldn't be a matter of doing that due to conflicts like what you mentioned
I don't really know enough about how the shader variants for options like this are actually created
does it compile a shader with dead code removed so the variants can't work at runtime?
wonder if you can utilize these for what you want https://docs.unity3d.com/Manual/shader-variant-collections.html
(never used this so I can't add much input to if they are good or not)
Yeee i mess with those abit in the function I mentioned in other thread
oh I see, that does sound like it would be very relevant
@trail oriole weird question but have you messed with unityevents in the context with serializedproperties yet
I don't think so, whatcha doin
@trail oriole does fixing works fine without any issues?
Seemed to work fine for Star, but would be good if a few people tried it on backed-up projects (in case it blows up ofc). Haven't had free time this week to test more myself.
alright ill do a copy then
@trail oriole what version of AssetRipper is embedded in the project?
or if it's a fork, what version is it based on?
well, thinking about it for more than a second, it's probably based on the the fork you have
I'll try to give it a look over after work π«‘ Been stuck in graph debugging for the last week so my brain is becoming a potato, send help
Actually just did a glance over and it seems super minimal on changes lol. Nice 
issue is related to linux having Case-Sensitive file systems, Unity doesn't like that so it has a fit
might close the PR until I can figure out a solution
@blazing light
I am too stupid to understand any of this but is that what u were looking for?
@trail oriole is it possible that if some of ripped assets are corrupted, then while exporting bundle it might be corrupted as well?
That sounds like that makes sense, so I would assume so
You think i can drag files from a new project generated by your patcher and replace them with old ones and it would work?
uhh I'd back up first, but maybe. Can try that then run the between-projects asset migrator to try and have it fix the script guids (main branch doesn't have the asset guid auto fixers for the migrator). Depending on the quantity of assets affected/its references it may be an endeavor.
what is asset migrator tho?
hmmm, I'm looking into the linux support again. I wonder how AssetRipper handles assets with the same name on a case-insensitive file system
You generally won't have same name assets. They tend to have suffixes for duplicates in the same category afaik.
Yeah, just found that out
gonna have to replicate that behavior on case-sensitive file systems
as unity doesn't like case-sensitive file systems
unity moment
getting a weird issue where unity is recursively calling a managed method from native code...
causing it to forever lock up
this clearly doesn't happen on windows machines
now to figure out if it's something I need to fix, or if it's on Unity's end...
seems to have fixed it
let me make sure no other issues surface, then I'll open a new PR
no other issues seemingly
awesome
sorry for all the spam from me in here
but I got linux support working for real this time
All good π
the changes are little less simple compared to my earlier PR
had to mimic the naming functionality of AssetRipper on windows
along with replacing the dir separator character when on linux
i have absolutely zero experience with unity or coding or anything like that and have downloaded the installers and stuff for everything i need could someone like make a tutorial for the project patcher for people like me that just wanna rip some models because it kinda seems like in the installation instructions it assumes anyone reading it already has experience/knows what theyre doing π
If you're only looking to rip the models, you may be better off using AssetRipper standalone
oh oki ill look at that
hopefully itll be easy to figure out lol
what do i select for it to open? do i just like go to steamapps common and pick the lethal company folder
@swift plank srry for ping lol but i think ive found the model i want thru the asset ripper u sent but im not sure how to actually export it
Uhhh, you might need to export the whole project?
I'm not sure
I haven't used asset ripper in a bit
o oki raa
@trail oriole @cunning spruce endless loading, Is there any way to fix it?
This doesn't really tell me anything tbh. What step was it on? Did it throw an error and forget to remove the dialogue? Send the log file from %LOCALAPPDATA%\Unity\Editor\Editor.log
also 23sec is rookie numbers, it can take a few minutes even on strong machines
I've had it go for 2-3 minutes easily
I also can't open project patcher
I waited for 20 minutes but the error remains
huh it seems to be entering an infinite loop for some reason when editing that prefab π€
with other prefabs, too
Do you have an LCPatcherRuntimeSettings SO in the project? (should be at the root)
Well go in the project and look at it
It's infinite looping since it couldn't find it, so it tries to make a new one, which triggers the save detection, which tries to find it, repeat before actually creating it. So see if it has an issue with the asset
mmm
That would do it. Make sure you don't have any compiler errors, as your whole log was filled with exceptions due to the infinite load. (See if you have exceptions turned off or something?). Dunno what happened with your project to break that though
If you don't have any errors, then see if you can assign the script there, or just remake the asset
(also at work so I'm a bit spotty on replies atm)
Can't believe you'd ship it without the script for some people π
Yesterday it was still working, but today it's like this
yep
It works
thanks
Leaving this here, sorry for the spam
https://github.com/nomnomab/lc-project-patcher/pull/14
(Real), lol
In my defense, that was before the request to target v0.5.0
lol
I should add, the video re-encoding only runs when it's on linux, since unity supports .m4v on mac os and windows
yeah, it checks to see if ffmpeg + ffprobe are in the path
if it can't find them it logs an error and continues without re-encoding
oh btw did you test a re-patch of the project in a backup?
a re-patch?
as in, patching an already patched project?
I don't think I did, what should I do to test it?
Yeah, basically back up your project so it doesn't break if something goes wrong, then just re-run the patcher. It will take like 2x longer
Still need to add a popup to somehow detect an already patched project to give a warning about it to backup
Guess I can check for files in the generated folder
No warnings, we die like warriors
No warnings for star, someone else said it crashed their computer or something, so I dunno if that was a fluke or not 
I'll test it then
I don't really have an existing project to test it on though
so it'll be a clean project
Gotcha basically have some assets that reference game things in the root or somewhere not in the generated folders
Like root, mod folders, etc. Not Game
To make sure assets link up, scripts link up, etc
so like, make a prefab at Assets root that references a game component?
(can also just duplicate some game assets and move them there)
Yeah
I tested a lot with duplicating the springman and moving it outside of Game
But should test with a prefab, an SO, and maybe a scene (just dupe and move em)
alright re-running the patcher now
done
no crashes
references seem to be correct
seems like re-patching works fine

how can i re-patch (for v50) can i use Master branch or v0.5.0?
Only v0.5 has support for re-patching. But do it after backing up your project.
re-patching seems to work fine, but yeah do backup first
Hopefully any new objects and stuff doesn't just break it, no clue
this will probably push the linux support back 
Going to push a readme change actually to document this in v0.5
dammit why did it indent
its https://github.com/nomnomab/lc-project-patcher.git#v0.5.0 for the git link right?
Should be ye
it crashed. idk if it was out of ram or something caused it to crash, but i'll try again
on which part?
i looked away, but it was very early on. When i reopened the project all the content from Game where gone
let me try again
If it does crash again (and not the automatic restarts) then lemme know when it happens and give me the editor log before re-opening the editor from %LOCALAPPDATA%\Unity\Editor\Editor.log (otherwise it nukes it)
it crashes immediately after i press the run patcher button. Its not a ram problem
immediately? The heck
Oh I see why
I thought I had a guard for this π€
I'll check to see why that is happening
Doing my own ->v50 re-patch to test on my end as well
Taking 30 years
ok. I do have to say that i have a lot of stuff in my project so it could also mess things up
Where is that dll btw?
Is it one you added yourself? Or is it in the project already
(I can't check yet on my end)
1 sec, i'm duplicating my backup


guess not



