#Lethal Level Loader [Custom Content Loading API]

1 messages · Page 21 of 1

zenith flax
#

your setup will be 1:1 with vanilla maps scene wise

rich aurora
#

Just curious what might be a potential culprit as to the indoor weather for the map in question

tired solar
#

I think I did the ILHook for modifying the save id to the name of the level

zenith flax
#

oh?

#

about to go to bed but

tired solar
#

It's nice to see everything seemingly at least working, with just a single ILHook that does the same thing for multiple things in multiple methods

[Info   :LethalLevelLoader] ILHooking method: GameNetworkManager::SaveGameValues
[Info   :LethalLevelLoader] Matched in cursor position 146, for Level{0}Mold
[Info   :LethalLevelLoader] Matched in cursor position 163, for Level{0}MoldOrigin
[Info   :LethalLevelLoader] Matched in cursor position 192, for Level{0}DestroyedMold
[Info   :LethalLevelLoader] Matched in cursor position 211, for Level{0}DestroyedMold
[Info   :LethalLevelLoader] Finished modifying 4 save data IDs
[Info   :LethalLevelLoader] ILHooking method: GameNetworkManager::ResetSavedGameValues
[Info   :LethalLevelLoader] Matched in cursor position 76, for Level{0}Mold
[Info   :LethalLevelLoader] Matched in cursor position 89, for Level{0}MoldOrigin
[Info   :LethalLevelLoader] Matched in cursor position 102, for Level{0}DestroyedMold
[Info   :LethalLevelLoader] Finished modifying 3 save data IDs
[Info   :LethalLevelLoader] ILHooking method: StartOfRound::LoadPlanetsMoldSpreadData
[Info   :LethalLevelLoader] Matched in cursor position 10, for Level{0}Mold
[Info   :LethalLevelLoader] Matched in cursor position 36, for Level{0}MoldOrigin
[Info   :LethalLevelLoader] Finished modifying 2 save data IDs
zenith flax
#

in hindsight i realise i could probably prefix es3 itself...

#

thats sick though would be down to use

tired solar
#

ye, it's really simple too

#

This is the whole thing

private static void MoldLevelID2LevelName_ILHook(ILContext il)
{
    Plugin.logger.LogInfo($"ILHooking method: {il.Body.Method.Name}");
    int modificationsAmount = 0; // debug purposes
    string matchedStr = ""; // debug purposes

    ILCursor c = new(il);
    while (
        c.TryGotoNext(MoveType.After,
            x => x.MatchLdstr(out matchedStr) && matchedStr.Contains("Mold"), // The save file key, e.g. "Level{0}Mold"
            x => x.MatchLdloc(out _) || x.MatchLdarg(0), // levels, via reference or 'this'
            x => x.MatchLdfld<StartOfRound>(nameof(StartOfRound.levels)),
            x => x.MatchLdloc(out _),
            x => x.MatchLdelemRef(),
            x => x.MatchLdfld<SelectableLevel>(nameof(SelectableLevel.levelID)),
            x => x.MatchBox<Int32>()
        )
    )
    {
        Plugin.logger.LogInfo($"Matched in cursor position {c.Index}, for {matchedStr}");
        c.Index -= 2;
        c.RemoveRange(2);
        c.EmitDelegate<Func<SelectableLevel, object>>(selectableLevel =>
            { return selectableLevel.name; }
        );
        modificationsAmount++;
    }
    Plugin.logger.LogInfo($"Finished modifying {modificationsAmount} save data IDs");
}
tired solar
#

okay just looked up how to do regex (asked ChatGPT) so I can search every instance of mold in the context of save data keys lol, in vscode

slim wind
#

regex 😳

#

.*.*=.*

tired solar
#

uwu

#

anyways, I think this is pretty neat

slim wind
#

nice

tired solar
true summit
#

I usually see Bottles mentioned twice in the scrap list on moons

#

removing the duplicate should be alright?

mellow flame
#

anyone have any good moon/interior packs updated?

mellow flame
#

what interiors use the LLL config?

#

majority?

merry marsh
mellow flame
#

bet thx

young acorn
#

how do you reduce the quality of the navmesh you generate?

crisp galleon
# true summit removing the duplicate should be alright?

I imagine so, assuming they’re not different bottles (one vanilla and one modded). If you haven’t altered the config in other ways you can delete it and have it regenerated next time you launch the game if this does seem to break things. If you have messed with a lot, I imagine you could also copy the config file as is to keep as a backup if removing the duplicates breaks things.

true summit
#

oh, no, it's on a fresh profile so probably nothing bad

small trench
#

something i've always wanted to ask is that when i make the time progression multiplier make the day longer on a moon, it bugs out and upon going into orbit the days to meet quota hits zero. is this a known bug or am i doing something wrong

crisp galleon
true summit
#

can't find the kidnapper fox enemy or the vain shroud in the outside enemies part under any moons in the config

#

this alright for now?

#

clay barber's there

young acorn
merry marsh
true summit
#

got it

soft eagle
mellow flame
#

for some reason payed moons cost money for me

#

I mean they dont

#

there free

#

im using selene choices btw if that matter

hollow rivet
#

does lethallevelloader work with v55/v56

crisp galleon
# hollow rivet does lethallevelloader work with v55/v56

Someone who knows more might be able to help better, but I’m under the impression that the answer is kinda. Some new functionality is missing (I think the spreading moss stuff doesn’t quite get saved for each moon independently from what I understand) and modded moons need to add things like the new dropship for example.

hollow rivet
#

ok

jade ore
#

LLL v1.2.4 is causing an infinite black screen for me on v55, does anyone know how to fix this?

jade ore
#

yeah i dont have that installed

unique geode
#

Then the problem likely isn't LLL, LC_Office is the only interior I know of that breaks on V56 however Dantors is also very busted and has been since V50 so if you have that I'd remove it as well

rich aurora
#

Neither Hospital nor LC_Office is in the pack
I see Scoopy's and Bunker in the pack but haven't seen anyone reporting problems for interiors for either of those 2 mods

I see a lot of NREs related to LethalProgression and it hasn't updated for a good while, curious if that might be what's causing problems

brisk schooner
#

Hm, it might not be the direct issue but NREs can always cause more trouble later down the line, might be worth trying without whatever mod is causing them

rich aurora
#

Hmm I think I found something, they're using an outdated version of Lethal Progression

#

Let me see if it's causing me a black screen

#

Strange, even the outdated version isn't causing me a black screen when standalone

unique geode
#

It could be Bunker tbh

#

Bunker sadly was abandoned because the author lost all his work

rich aurora
jade ore
#

ill try these suggestions and report back, i said it was LLL causing the issue because I was previously using an outdated version of LLL, which worked but broke the terminal. this issue only started once I updated LLL to the latest version

rich aurora
#

Well I can say it's neither of the interiors that's causing it at least standalone

#

Interesting, it isn't Coroner either
I'd think it would've been since v55 added 2 new causes of death

unique geode
#

Coroner is broken in V56 though

brisk schooner
#

Yea, Coroner is def broken. It fails gracefully, but it can't hook the method it needs based on that log

rich aurora
#

It's broken but at least standalone it isn't causing the black screen
Might need to deactivate one by one if feasible to isolate which one's causing it

#

Cause I see GI is in there and I know that one has some problems with v56 too, but one of those problems I don't recall being a black screen

acoustic sonnet
unique geode
#

Or did you not see the news about him losing everything?

acoustic sonnet
acoustic sonnet
#

saw the latest post

#

I was thinking of an older one

#

o7 well not my fav bunker was fun

#

especially being one of the early interiors

jade ore
#

ok so i disabled each mod that requires LLL one by one, and the problem only stopped once I disabled LLL itself

#

disabling coroner didnt fix the issue either, the only thing that does is disabling LLL which isnt ideal

acoustic sonnet
rich aurora
#

According to logs, LE is not present

#

Hm, how long ago was your previous version of LLL exactly? 🤔

jade ore
#

sorry for the wait, no i don't have LE installed, and the previous version of LLL was 1.1.4

tall kindle
#

totally unrelated, but i remember when yall played balatro and got addicted to it and i found a dice game i've gotten addicted to called rollscape @zenith flax @slim wind

#

super fun

true summit
#

no custom scrap to be seen

#

something about not changing their default spawn weights? though I changed them back to their defaults and this still happened

waxen fog
jade ore
#

ok i fixed my issue by putting LLL first in the dependencies list for my modpack

zenith flax
#

nah

jade ore
#

figured it out by installing all the mods manually but backwards lmao

zenith flax
#

that does nothing

jade ore
#

that fixed the issue

zenith flax
#

nah

jade ore
#

ok

fair dome
#

its coz mod order isnt supposed to matter at all

#

maybe u deleted the config so a new one could generate
or created a new profile from scratch for a new config to generate

brisk schooner
#

bepinEx has no concept of load order at all, like it loads things in alphabetical order followed by dependencies for the current item

tired solar
#
GitHub

Move DLL copying from main csproj file to a personal, gitignored csproj.user file, so the main csproj file doesn't have paths that don't apply for everyone.
Also I added a little section to...

GitHub

Removes a bunch of lines from the gitignore file that aren't needed, while hopefully not breaking anything.

fair dome
#

13k deletions dead

tall kindle
#

lol

#

hamunii working on what doesnt matter Kek

tired solar
fair dome
#

it does matter. i need to free up 1 MB of space off my hard drive. fumo_stare

tall kindle
tall kindle
zenith flax
#

after i update lll and LT though theres way more gains in giving a shit about toolbox

tall kindle
signal blaze
#

im using r2mod loader thingy and im using this mod but my friends are downloading the files, they are just seeing a black screen when they join a game

#

pls help

tired solar
#

@zenith flax I cooked a bit with Nullable, which idk how much you know about it, but in any case it should help a lot with avoiding Null Reference Exceptions, and so will result in better code. https://github.com/IAmBatby/LethalLevelLoader/pull/119

I'll need you to at some point take a look at this pr and you'll also need to explain to me what to do with LevelManager.CurrentExtendedLevel and DungeonManager.CurrentExtendedDungeonFlow since there seems to be some null checks with these in some places, but then not in others similar looking situations and idk what's up with that since I don't really know the code that well yet. So anyways yeah, with these two variables, there's a bunch of nullable warning stuff for now. Also I'm no expert with Nullable so idk if I did a good job with what I did so far lol.

Anyways, it'd be good to enable nullable and then build everything from now on with it in mind

GitHub

Enables the Nullable feature of C# in csproj to help better deal with null values.
<Nullable>enable</Nullable>
Basically, this will make you specify if your variable types are nullable ...

#

there's also one more pr from me you can check out, for enabling embedded debug symbols

tall kindle
#

What's nullable do again?

brisk schooner
#

it enables warning about nullable types that you haven't either check for null state or coalesced into a guaranteed non-null state

#

I always have nullable on by default, it makes you code better

tall kindle
#

Ah ic

brisk schooner
#

NREs basically can't happen if you follow the nullable guidelines.. in normal CSharp. In unity the game will keep going after a throw so bleh

tall kindle
#

Tbf if the game stopped after an NRE we wouldn't have any mods Kek

brisk schooner
#

I really hate that design philosphy, its made its way into the Godot engine too

#

A throw means "handle me or throw me up the chain and halt" not "catch and then spit out an error"

tall kindle
#

I mean, it'll still create bad unintended behaviour, doesn't really give any reason to completely stop the program though

brisk schooner
#

Every program I write is designed to stop on catching throws unless I specifically catch a throw type that I know how to recover from. Unity catches all throws and never stops, it turns throwing into Debug.Log and then you wonder why people post 2mb log files and can't figure out which mod is actually causing the problem, bleh

tall kindle
#

Ctrl + F Error is definitely better than nonstop crashes at any pack with more than like 30 mods, hell even vanilla sometimes throws em for whatever reason.
It's not great, but it'd be such a huge con, just my opinion though

brisk schooner
#

I think you fundamentally don't understand exceptions and their purpose

signal blaze
#

they needed to redownload

#

and go to patchers

brisk schooner
#

Like its their literal point to be trapped and either responded to or thrown up the chain farther and then the program exits if no handler exists for a specific exception. If you just want a log that says "thing happened and that's bad" then you catch your own exception one level up and print that and recover. Unity's current behavior is covering for bad practice and making worse programmers out of everyone that doesn't try/catch properly :<

tall kindle
#

Maybe I dont, but it'd be such a horrible experience if the game stopped everytime it encountered an a NRE, especially with mods, it may make worse programmers but I don't expect 90% of modders to really want to be program pilled

#

Fuck, now batbys got me saying the word pilled

brisk schooner
#

The game has so many NREs because we're allowed to just do whatever we want and not catch our exceptions

tall kindle
#

I'd love to catch every exception, and I try to do that, but sometimes it just slips by and most of people I know won't really be doing that, which is bad I know, but it's cuz of that that it shouldn't self destruct because of it

#

It's not like you're saying anything I disagree with entirely, it's just not something that can really have a workaround from what I'm seeing atleast in a modding sense, dunno

tired solar
#

hmm, someone should make a mod that explodes fucking everything if Unity spits out an error 🤔

tall kindle
#

Go for it

#

Idk whos gonna use it but yeah

#

Lol

tired solar
#

True, Xilo's Disintegration mod isn't too popular either

tall kindle
#

For good reason I imagine

#

But hey, u got this

#

Just don't forget to cause an NRE urself on the main menu so it crashes

brisk schooner
#

There's a trigger volume in the ship you can delete that is referenced every frame at least once so you can maximize your NREs per frame by just deleting it

zenith flax
#

@tired solar im probably gonna pass on that nullable PR

#

i appreciate it but it's not a standard i want to actively maintain

#

too much sauce

knotty sentinel
#

hey, im new to modding, could you send me that tutorial? I'm having an issue with my current method and I would like to try another method for custom scrap

#

basically idk who xulian is

#

also if anyone knows, my custom scrap works in lethal expansion and obviosly thats outdated but is there anyway to port it over to LLL and if so could someone send a tutorial. Lethallib just does not work for some reason

jade sandal
knotty sentinel
#

thx

jade sandal
#

Np

knotty sentinel
# jade sandal Np

oh yeah which unity project file does he use? is it the og lethallib one or asset ripper one?

knotty sentinel
#

hmm, might try that one, nomnomabs isn't working for me currently as its giving me random game errors

#

thanks again tho

zenith flax
jade sandal
#

Oh yeah

#

I forgot

tired solar
# zenith flax i appreciate it but it's not a standard i want to actively maintain

I do kinda get where you're coming from, but nullable is about writing better code. And sure, it requires you to know when to mark a thing as nullable ?, or to pretend a null isn't null !, but you will learn to write better code.

And I wouldn't really say that maintaining Nullable is a burden, it's more like that Nullable maintains your code. If you keep writing code without Nullable, your code will be harder to maintain that if you wrote it with Nullable in mind, because you basically tell the programmer in the future how to use your existing stuff safely.

It can also help contributors who don't know your code well to not write NREs, and people who use your API prgorammatically would know what arguments can be null and whatever, which is also nice.

near patio
#

I just found this, might be more what you’re looking for

#

It’s called Creative Content Converter if the link isn’t working

knotty sentinel
#

I have installed the nomnom project patcher via git url and I have a bunch of errors in it. how do I fix them?

tired solar
knotty sentinel
#

kk

mellow flame
#

is there a way I can go to the moon, and choose what interiors spawn on that moon, rather than the other way around

zenith flax
#

no

crisp galleon
#

Hey, I've been informed that trees now have some sort of collision trigger to destroy them when hit by the car I guess. I see the object in my patched project that should house this script, but it just has a missing script warning. Does anyone know what that script should be? I'm hoping it got ripped but not linked properly because if it's just entirely not in my project then that's going to suck. The cruiser prefab also seems to be missing a collision scrip, but that's not as bad I don't think because that shouldn't impact the actual game's version, right?

tired solar
#

Btw about the Nullable thing, I've found a place (in unused code, sure, but this exists anyways) where there is a potential NullReferenceException as you dereference DungeonManager.CurrentExtendedDungeonFlow in the CalculateDungeonMutliplier (this method name has a typo btw) call just before checking if it's null, and Nullable caught this issue just like that.

Nullable is there to make your life easier and to help maintain the code, it's not a burden on the code base.

main tulip
#

Hello everybody my name is Mutliplier and welcome to

fallen cove
#

Hey I downloaded the EGypt custom level and the Tomb interior for it. Does the tomb interior now randomly come on other levels aswell? Is there a way to make certain interiors spawn on certain moons? I'm looking at the "LethalLevelLoader.cfg" and I can't find a setting for this. My play group I play with might want the Tomb only on EGypt, but not the others so I'd like to configure this for their preferences.

rich aurora
# fallen cove Hey I downloaded the EGypt custom level and the Tomb interior for it. Does the t...

Depends on how the mod developer puts as the default, in the LLL config it should have a "Custom Dungeons" that consists of interiors it reads in, this appears near the top.

If you just installed the mod(s), boot up the game once and start/continue up a run (you don't need to do anything in the run) and LLL should check what moons & interiors you have to populate the config accordingly.

You can whitelist a moon based on specific parameters, easiest one is messing with the "Manual Level Names List" and just adding in the moon's name with an assigned weight like so:
EGypt:300

Tomb interior by default is only set to EGypt with a weight of 300, I do notice in the config it is listed as:
10 EGypt: 300
So if there's issues where it repeatedly does NOT select Tomb interior, try removing the 10 and just have:
EGypt:300
in the entry field to see if it works out, if that still doesn't work out don't be shy to mention what's going on

crisp galleon
small frost
#

Hey guys, I'm making a custom moon and I got a quick question, where do I put this files (tutorialmod.lethalbundle and tutorialmodscene.lethalbundle)?

brisk schooner
young acorn
fallen cove
rich aurora
#

You can also do "simulate EGypt" in the terminal to see the chances for each interior that's present for EGypt in-game

mellow flame
#

i downloaded nom noms patcher

#

but there is no tools section for me

#

to use nom nom patcher

grand valve
#

will LLL be fixed for v56 or will this version be skipped?

unique geode
grand valve
#

hmm you sure? multiple people said it's incompatible and makes them get the black screen with green smoke when they try to host. I tried it and it happens to me too

unique geode
#

LLL likely won't even need updated when V60 drops, V60 is gonna be new vanilla scraps and additional Tiles for the Vanilla Interiors

grand valve
#

when I disable LLL I can play normally

unique geode
#

The only mod that caused that was LC_Office

#

and it was updated

grand valve
#

I see, thank you I didn't know about that!

crisp galleon
#

Just out of curiosity, has anyone figured out what Mold Spread Iterations and Mold Start Position in the selectable level stuff means?

plush wing
#

Mold Start Position is the AI node index of the outside AI nodes where it starts spawning Vain Shrouds, I believe.
Mold Spread Iterations is how many times you want the Vain Shrouds to spread around per moon landing*.

grand valve
#

A question about the weight of interiors, does anything overwrite LLL's config? I put the interior Blue Mines for Offense at weight 20 in the LLL config but in the game it's at 50. Any idea why?

crisp galleon
small frost
#

Hey, I was working in the moon and in the terminal, the custom moon doesn't appear, what do I do? Do I need to complete the terminal route override settings?

zenith flax
#

remove lethalexpansion

small frost
#

not yet

grand valve
tropic atlas
#

does LLL rewrite the item ID's in StartOfRound.Instance.AllItemsList when it adds items, or is it just me doing a dummy by using this array to scan for an item to give?

zenith flax
#

item ids arent used in lethal company

#

in a way where as a modder you can use them

tropic atlas
#

So there's no actual way to load a cache of the base items, got it

zenith flax
#

thats not true

#

that is an unrelated conclusion to the question you posted

tropic atlas
#

Well, not in the way im needing to, anyway.

zenith flax
#

LLL does not touch item ID's and LC doesn't really either

#

what are you trying to do

tropic atlas
#

part of my code involves loading the StartOfRound.Instance.AllItemsList.itemsList to load the items from the base game, which is where the issue comes in is all. without LLL, item ID's and such all work as normal regardless of whether there's modded scrap, or not. With LLL, the entire array gets randomized.

#

by item Id's, I mean the order in the array, since any base scrap, game item etc is saved there throughout rounds / sessions.

zenith flax
#

ok now this makes more sense

#

for reference items have an id value so that was a little confusing

tropic atlas
#

Yeah sorry, I'm still waking up lol

zenith flax
#

Can you elaborate on what you mean by load

tall kindle
tropic atlas
#

I can just use Terminal.BuyableItems, but for example, I run a function that scans the StartOfRound.Instance.AllItemsList, and loads it into an array, then prints it to the terminal with the order, and ID which it loaded. From there, I use those id's in a hardcoded array to load and give that specific item from the ItemsList. I initially did just a scan for a keyword, but this would be inconsistent when paired with modded scrap as quite often the keys could match, however with the load order, you can just use the id which the base game loads in first, and it automatically finds the prefab, and what not that you need. So my code follows a format so far of if (entered item) then => Load game object from the list via the prefab and the item list, and spawn it on the client.

zenith flax
#

I can see other opinions on it but bad vibes for me

tropic atlas
#

but in that example, the list returns a completely different ID with LLL, when not.

zenith flax
#

that's odd

tropic atlas
#

so instead of a key being 5, its a lockpick which is the BuyableItems iirc

#

Yeah I thought so

zenith flax
#

the terminal stuff and item stuff should be consistent in order 🤔

#

oh hm

#

any chance it's just off by 1?

tall kindle
#

all he'd practically have to do is give each enemy an ID, items already have one, and just make a tiny bit more than that

zenith flax
#

have the community campaign me to be hired and i'll be sure to add it to the todo 😛

#

or post release

tall kindle
#

lol, glad to know im not the only on in this server who can still dream Kek

tropic atlas
#

If you test the latest version of CrowdControl, same issue. It is I think, looking back now is your list completely removing the broken binoculars? LUL

zenith flax
#

no offense to you whatsoever but im not testing anything haha

#

not binoculars

#

the cardboard box iirc

tropic atlas
#

ahhhh, yep that'll do it.

tall kindle
#

lmao, theres a cardboard box item?

tropic atlas
#

Yeah lol, does nothing but break

zenith flax
#

some of it's references are straight up broken and fuckup any proper iteration on the items

#

it's like the 1 thing LLL actually really quitely changes

#

@tropic atlas is what your doing allowed to depend on LLL or are you looking for no dependency

tropic atlas
#

yep that explains it all actually, lol. I'm preferably looking for no hard dependency, but if its unavoidable thats fine. I totally get removing that useless broken item from the game haha

zenith flax
#

no no i get that

#

you seem savvy enough to figure out a path to getting around that regardless but something about this in general doesn't sound right

tropic atlas
#

there's definitely ways I can get around it, I was just hoping that it was a mistake I was making right now, or something was causing an issue for you before I just move on. 🙂

zenith flax
#

ohhh

tropic atlas
#

I actually moved from a working method regardless of mod integration to this, so im expecting a lot more issues

zenith flax
#

try RoundManager.Start

#

I do stuff on StartOfRound.Awake because it's one of the earliest (if not the earliest) functions that runs and if you are caching the list before i remove it your info will be oudated

#

in theory if you grab it after it should be right, no?

#

because it would be removed for everyone in the same way

tropic atlas
#

Yeah that should be fine! I can do that, and if not there's always the tried and working method, lol. Ty for the help 🙂

zenith flax
#

no worries

tropic atlas
#

wait no, it still won't be right with vanilla cause the box exists there, lol

small frost
#

I'm making progress, what does this mean?

tall kindle
tall kindle
small frost
#

so... I can't use the Titan moon planet?

tall kindle
#

the animator is null.

#

in planet prefab

small frost
#

HOLY MOLY

#

THANK YOU SO MUCH

tired solar
#

or is this for every enemy instance?

tall kindle
#

that's per instance i think Think, but also even if there is an ID, it's unused

tired solar
#

ah yeah I don't think enemies have a per-instance id, unless you take the placement in the spawned enemies lists as an id

small frost
#

Hey umh, last question, How do I made that the player can stand in a prefab, because my map is a prefab and it dosen't let me stand on it (I fall to the facility)

#

the good thing is that monster can stand

tall kindle
#

what layer and/or can i look at the box collider/mesh collideru used for terrain in unity?

spiral siren
tall kindle
spiral siren
#

ah, I see

tall kindle
#

Same issue with items

#

Afaik only shovel and knife use ID's

spiral siren
#

yeah it'd be nice if it had a shared interface or something

fierce onyx
#

So I notice that the LLL config has an entry for 44-Liquidation. While it's not routable in the terminal, it's able to be selected by the RandomMoons mod which randomly picks a moon upon pulling the lever. I notice that LLL has options to disable custom levels, but is it possible to disable Liquidation as well so the randomizer doesn't pick it? I considered checking out the rando's config, but it doesn't have one.

crisp galleon
abstract bobcat
#

Liquidation is a vanilla moon

plush wing
#

They could be also talking about the RandomMoon.

abstract bobcat
#

Damn

fierce onyx
fierce onyx
rugged heath
#

When trying to generate my dungeon, LLL says its unviable for moons such as Experimentation, does anyone know the prerequisites for a dungeon being viable?

small frost
#

now I just have a problem loading in

tired solar
# tired solar Btw about the Nullable thing, I've found a place (in unused code, sure, but this...

I really don't like bothering you about Nullable @zenith flax, but I just wanna say this, please consider it. The effort to mark things as nullable isn't much at all, and all the effort really goes into getting rid of the potential Null Reference Exceptions, which is the point of Nullable, to give the IDE or whatever the ability to catch NREs for you and make you fix that stuff.

If you really think Nullable isn't worth it, when I have already found potential NREs in your code just by enabling Nullable, I don't really know.

There is also a potential NRE in the internal CreateTerminalEventNodes method if createNewVerbKeyword is false and newVerbKeywordWord isn't found when going through the list of verbs. This is unlikely to cause issues though since this is an internal method, but it's still a thing Nullable caught. My point just is, please enable nullable (aka go through my PR soon when you are gonna start working on something. The PR doesn't change how the code works functionally in any way, and all the changes were minimal)

idle ravine
#

Yeah nullptr checking is something they drill into you at workplaces, never make assumptions about safety

#

Weird that nullable isn't the default in c#

tired solar
#

but yeah, it being enabled by default would be cool

brisk schooner
#

Its the default when making new projects for me

#

like dotnet new console has it in the csproj and its why I started using it

tired solar
#

oh nice

#

also Xilo's LC and Content Warning templates have Nullable enabled, which is nice

brisk schooner
#

Xilo doing good work as always

zenith flax
#

I get the point of it, I do

idle ravine
#

Yeah when I moved to xilos from Evas I got hammered with warns

zenith flax
#

But right now it's pretty difficult for me to put any time into actual LC dev and when I do I try to avoid working on stuff that for the most part is working

#

I gotta pick my battles

#

introducing a new standard that I need to keep up with does add overhead into what I'd need to do to keep working on the project if thats something thats happening which can be problematic when trying to approach new work on it

tall kindle
#

maintaining nullable was surprisingly pretty easy

brisk schooner
#

I'm not gonna slam you about it but null coalescing will become second nature once you learn it

tall kindle
#

i added it into coderebirth after hamunii hammered me to and beside the time it took to bring all my files up to date, it was just something i'd have to consider when i made the type, and it took minimal time

tired solar
#

I do kinda get that, but if you for example aren't familiar with nullable at all and just want something done and don't want warnings, you can disable Nullable for that thing, by doing:

#nullable disable
// code goes here
#nullable restore

But I would recommend learning Nullable instead, since it's pretty simple

tall kindle
#

you can also think of it being enabled as allowing other devs to help make pr's etc more easily

tired solar
#

but yeah, it tells you if you need to check something and people contributing will end up writing code with less NREs

small frost
#

does anybody know how to fix this issue?

#

also, the console is going crazy lol

prisma mulch
#

Looks like somehting got loaded without an reference. Are you trying to run your own mod?

mellow flame
#

how to I add the things from v50 to my moon, pretty much the cruiser

young acorn
crisp galleon
mellow flame
crisp galleon
# mellow flame thx, I already patched it, I actually dont think I had that many issues

Oh, alright. Yeah, I think you can just copy a dropship form a vanilla level into yours and the cruiser stuff should come with it. The only other things I can thing of is the new mold stuff which has a point in the scene and some stuff in the level object and trees now can be knocked over by the cruiser. I had to manually add that script to my trees because it didn’t patch them in. The new enemy can be added to your moon’s enemy list too if you want.

mellow flame
#

appreciate it

#

my moon isnt appearing in the terminal, but I think its because of the moon prefab is not selected, im trying again now

#

yep its appearing now!

#

now im not able to land

#

this keeps spamming lol

crisp galleon
#

I spoke too soon

mellow flame
#

I will double check

#

if those prefabs got reset

mellow flame
# mellow flame

does this happen if the your drop ship is to close to the shuttle?

crisp galleon
mellow flame
#

like which folder there in

#

is it called turret container for turrets?

#

and just land mine for land mine

crisp galleon
# mellow flame is it called turret container for turrets?

Yeah, I think so. You can click the little dot to the right side of the “prefab to spawn” box, switch the menu to “assets” and it’ll list all prefabs with a search bar up top so I don’t think you need their exact folder location.

rugged heath
#

Asking again, but when I try to load my interior with a 9999 change on experimentation, it tells me my interior is unviable, does anyone know what steps it needs to becomes viable? Major told me it was because it failed to generate, but it seemed to generate in unity fine with my test dungeon generator.

sour spindle
#

what does the code that's telling it it's unviable even checking for in the first place

#

what makes it unviable

rugged heath
#

This is just spitballing, but it seems to focus on the rarity? Like how the viable dungeons have (300) and (1) next to them?

sour spindle
#

might be relevant

#

im not sure if this advice is even right cause the dungeon hasnt even generated yet

rugged heath
#

Yeah its not like I see it trying to generate it and failing, it just seems to be lacking some varaible that makes it a dungeon that can even be chosen and generated

#

This is my extendeddungeonflow incase thats important

sour spindle
#

how about your dungeon flow

brisk schooner
sour spindle
#

hmm wait

sour spindle
#

just to be sure try setting your tags to match experimentation's or something

#

like maybethe "Free" tag

rugged heath
#

By the tags, do you mean like in the "Global Props" setting in the dungeon flow?

sour spindle
#

nah the Content Tags, in ExtendedDungeonFlow

rugged heath
#

Or content tags in the extendeddungeonflow

#

Will check that out

sour spindle
#

just add Free and see if it works

#

i wonder if theres a way to disable the content tag stuff for debugging...

rugged heath
#

Will do in a second, but where would I find the content tags of experimentation dungeon flow, is it in a thing for LLL?

sour spindle
#

its in the debug logs, right above the unviable message

#

i wouldnt say you should copy all the tags

#

i think 1 tag matching shuold be enough

#

Free just means your interior is allowed to show up on all free moons or something

rugged heath
#

Oh I see

#

Am trying that out will report back in a bit'

#

Nah that didnt seem to fix it

#

Was there anything else I needed to do to the content tag, did I have to name the contenttag object itself?

sour spindle
#

i thought they were just strings

rugged heath
#

They seem to be objects with scripts in LLL

#

@sour spindle It seems like maybe this is linking to the viable list, the rarity?

#

Its looking to add whatever dungeonflow doesnt have a rarity of 0, which might be why the viable flows printed have the (300) and (1) on them

#

Though I dont know why my rarity injector config stuff wasnt affecting it then

#

Ah I did it!

#

I think its because I didnt enable the "Enable Content Configuration" in the config, I may have also done an error in the injection string but Ill have to check that again.

sour spindle
#

ahhh

rugged heath
#

Its weird because I swear I made it true before but somehow didnt save

#

Im going to test rq if that content tag thing was also a factor or not

#

Well now Id be curious to know how I make preset dungeon rarity, because I could only get this by editing it after I generated the config in LLL's config

#

Ok so that content tag thing isnt needed, just loaded in Experimentation without it

young acorn
#

how do you figure out the ai node index of an outside node?

rugged heath
#

You mean the nodes the enemies travel to around outside?

#

I think they just use their spawn points as nodes

#

Like the same nodes you place for enemy spawn serve as the ai nodes

young acorn
#

vain shrouds use a number to determine what outside node they start on, i want to figure out what ai nodes are what numbers

rugged heath
#

I saw what node my shrouds spawned on, maybe I can help

#

Does it say in the console what number they spawn on when they spawn?

small frost
#

but I kinda discovered that it was something about the cosmetics or something like that, I don't understand really unity and his errors

#

I tested another profile without some cosmetics and it loaded perfectly

crisp galleon
#

I was just about to ask about the ai node index too. I banked on it just being in Unity what number they had, like OutsideAINode (1) OutsideAINode (2) or whatever they are but I don’t know that that’s the case. I’m pretty sure they aren’t necessarily spawning on that node though. I don’t necessarily have them in listed in order in Unity, but I’d doubt it’s relying on how the objects are listed in the Unity hierarchy. I noticed some vanilla levels have -1 for which node it should start on I’m pretty sure, which is odd unless that’s a way of saying “random”.

Unfortunately I’m not able to test as thoroughly as I’d like.

sullen coral
#

Hey @zenith flax, do you know if it's possible to have 2 separate route words? For example, USC Vortex having both "USC" and "Vortex" as route words?

forest turtle
#

Is there anything specific you have to do to get custom scrap to spawn in dungeons with LLL?

#

I've got one loading fine with imperium and or the dev menu but can't seem to actually get it to spawn in dungeons

tall kindle
#

Did you setup the dungeon matching?

#

Oh wait no nvm

#

Can you show your levelmatching and dungeon matching stuff lol?

forest turtle
tall kindle
#

Lol defaults are bad

forest turtle
#

so does this mean I'd have to add an entry for every custom moon I'd want it to spawn on?

forest turtle
tall kindle
#

So is Vanilla

forest turtle
#

OH shit you're right

#

didn't even think about that, thanks LOL

#

gotta wrap my head around the workspace 😭

tall kindle
#

Lol

young acorn
#

how curious. there is no clock on my moon and the sun doesn't progress in the sky at all.

crisp galleon
young acorn
#

i've made sure that's on

crisp galleon
merry marsh
young acorn
young acorn
merry marsh
#

SunAnimator is needed for time I think

#

@slim wind knows more about this

merry marsh
#

@calm eagle uses a custom sun. You know the issue?

young acorn
#

i can't have a sun without a sunanimator

merry marsh
#

I don't remember what it is🫠 I just know something with the sun controls the time. One of these two will know the answer

calm eagle
calm eagle
#

In the hierarchy try searching SunAnimator or any other sun-specific component. If there's a matching item it'll narrow it down

#

This is what happened to me when Warehouse was breaking the clock lol

young acorn
#

hm, there is no object called sunanimator at all. i've just copied the sun straight from vow

calm eagle
#

No, the problem is a component on an object, not the object itself. Gimme a sec and I'll see if I can find specifically what component screwed me over before

calm eagle
#

Might have to try "SunAnimator" instead

young acorn
sour spindle
#

animatedSun is the name of the script

#

@young acorn did you accidentally checkmark the option on your moon that removes time progression

#

its in the SelectableLevel

young acorn
#

i see. i accidentally uncheckmarked it. i may be a little stupid

#

oh wait no it was just uncheckmarked by default because i copied the selectablelevel from liquidation

zenith flax
#

you need your sunanimator

zenith flax
#

if its not there it just dies iirc

sour spindle
#

sunAnimator, the TimeOfDay variable, i mean

#

also TImeOfDay doesnt get the animatedSun object

#

the animatedSun actually assigns itself to TimeOfDay when the moon loads in

zenith flax
#

ye but

sour spindle
#

StartOfRound.openingDoorSequence()

#

anyway at the end of the day

#

the problem was that they had planetHasTime off

#

because they copied liquidation

#

they had a sun animator

#

all these things set the clock value

calm eagle
neat ember
#

Hey does anyone know how to fix a conflict between Sector0 and Secret Labs? I can't get to Secret Labs because the terminal won't let me, it routes to Sector0 instead

abstract bobcat
neat ember
#

Thank you, I'll try that ❤️

mellow flame
#

Im starting to have desync issues

#

and im not sure why

#

never had em before

mortal schooner
# mellow flame Im starting to have desync issues

try deleting everything in BepInEx\config except BepInEx.cfg and regenerating your configs, that will clear any old configuration files, then run mod manager again to regenerate configs, after that make everyone import a new profile (not update existing ones), haven't had any sync issues with my group after doing this so far

#

also if anyone knows the easiest way I can make ALL interiors have equal weighting for ALL moons please let me know (edit: just did it manually)

neat ember
#

does anyone know why I don't seem to be getting the shop droppods on planets? bought flashlights on asteroid13 and nothing ever came.

mortal schooner
crisp galleon
mellow flame
#

its weird, despite 2 interiors having the same chance to spawn, 1 spawns way more lol

#

for me its liminal pools vs xen interior

#

liminal always takes prioirty

chrome notch
#

tbh i honestly feel the same way with xen interior

#

i have it configured pretty high but i've only seen it once

mellow flame
young acorn
#

once extendedmold is made, will it be possible to have multiple mold types on a single moon?

chrome notch
#

i have multiple mold types in my house

soft eagle
#

Hey, @zenith flax , I think I've found a pretty unpleasant bug with the story log feature of LLL. So basically if you have two different moons defined in separate ExtendedMod files (same author name !) and each of them has custom logs and the merge setting is "Matching Author Name", then if you try to collect all of the custom logs there will be an indexing error (coming from HUDManager I think) after which terminal story log screen (even vanilla ones) will break and will no longer function for the rest of the game.

If I choose different author names in each ExtendedMod to prevent merging, then everything works correctly. Could you look into that, when you have the time?

mortal schooner
soft eagle
mortal schooner
# mellow flame Nah it doesn’t

If you've set Enable Content Configuration = true, and the chance is equal then it's probably down to luck, if you type simulate MOON then that will tell you the %, if equal then it is just down to luck

mellow flame
wild wing
#

Getting major desync issues with interiors, is that a known problem or just a problem we have?

#

Just played Azure with 2 friends and dungeon spawned was Tomb. They couldnt enter main entrance and died instantly when they went into the fire exit.

Another round a mate entered "Cry" to land on Crystallum but we landed on CaltPrime which costs 1000 Credits - we only had 200 tho

steady ingot
#

Well Tomb rn desyncs everything, you should probably remove it for now until its fixed

wild wing
#

Oh so Tomb might be the issue for everything then (right now)?

steady ingot
#

Yes

wild wing
#

aight ty

grand valve
mortal schooner
#

if you had only one interior and it was set to 2000, that would translate to 100% spawn chance

chrome notch
#

think of it like a raffle

#

if two people both have 10 tickets submitted, then it's a 50/50 chance

grand valve
#

oh yeah I get that, maybe I explained my issue wrong

chrome notch
#

need more info then

grand valve
#

I made a whole google sheets document just to make my own weights for interiors

chrome notch
#

can you show the config and what shows up when yoh type simulate?

grand valve
#

and the weights I typed into LLL's config are not the shown weights in the game

#

for example, these are my custom weights for Experimentation

#

and these are the ones shown in the game

#

the "Enable Content Configuration" option is enabled for all custom interiors

#

then I thought maybe one of the interiors has their own config, so I checked LC Office for example. In my game it says it's weight is 40, despite me putting 30. LC Office does have a config, but even there it's 120 so the shown 40 come out of nowhere?

#

sorry for so many pictures but I battle this issue since 2 weeks now and have no idea how to fix this. it's quite annoying

chrome notch
#

it seems like maybe r2modman isnt saving your configs

#

can you open them in notepad?

grand valve
#

yeah I did that too, and they all seem to be right

#

last line

chrome notch
#

all looks good to me

#

im not really sure, maybe someone else has some ideas

grand valve
#

yeah no worries, appreciate the effort 🙂 it's a really weird issue, maybe reinstalling thunderstore & mods would help

small trench
#

i got an issue with only custom moons, i cannot land on them. it gets stuck at waiting for crewmates
[Error : Unity Log] Cascade Shadow atlasing has failed, only one directional light can cast shadows at a time

#

and theres a big flickering light in the door of the ship

#

i came here because its only for custom moons, they use LLL

zenith flax
#

its not related to LLL

small trench
#

nooo

#

any thoughts on what could possibly be happening ?

zenith flax
#

I'm not trying to be rude or anything but the log is fairly explicit in what is happening. Who is doing the thing that is causing that is something im not sure of

small trench
#

its okay

#

would a full log help?

#

actually is there a general help channel for this

crisp galleon
small trench
#

i only have two custom moons, secret labs and orion

#

i tried on gordion, experimentation, adamance, they all worked fine

#

im guess vanilla is fine

#

the weird thing is i playtested at 3am last night like 16 hours ago and it was fine

crisp galleon
small trench
#

no new mods, a couple mods updated but i backported them and it still is broken

zenith flax
#

Backported?

small trench
#

all the mods that updated in the past 24 hours i reverted to the version they were before they updated

crisp galleon
idle ravine
#

Multiply the numbers by like 10 (so they're still proportionally equal but definitely larger than the defaults) and see if that fixes it

crisp galleon
idle ravine
grand valve
wanton oasis
#

none of the interior mods i have are showing up. do i have to config it through lethalleveloader now or something?

wanton oasis
#

oh man this is kinda confusing

#

i gotta enable content configuration on each individual interior then manually change their moons?

#

i have no clue what some of these mooons even are

#

that are auto set

#

this is what i get for not keeping up with things for a while i guess

#

oh it auto generates?

#

generating moons i dont even have :/

#

is there a way to straight up disable facility lol

#

and hlaf my moons dont even seem to simulate any of the custom dungeons

mellow flame
#

I can try helping u tomorrow morning

wanton oasis
#

im just brute forcing ever moon at 999 per dungeon right now

#

i hope it works lol

#

It worked!

#

lol

mortal schooner
#

If you send me your lll config file I can double check this for you

grand valve
# mortal schooner <@252491538565824512> try this, I think your configs are out of date or clashing...

yep thank you for your input, I figured it out slowly. So apparently the overwrite priority is like that: custom level cfg (if there is any) -> LLL config -> LethalQuantities config
my issue currently is tho, for the LC_Office interior. in its own config there is only a slider for the weight which goes up to 300 max, and the level list has no weights behind their names. so I don't know how to deal with it when I want a weight of 55 on Experimentation, but a weight of 15 on Adamance for example

#

I wonder if that's even possible if LC_Office's config only has a slider

chrome notch
#

here's how mine is set up

grand valve
#

that would make everything easier tbh

chrome notch
#

i mean this setup works for me so i assume it's similar to what badham said in that it picks the highest one

grand valve
#

damn I gotta try this, thank you

grand valve
#

Okay I came to the conclusion that LC_Office is just broken. I copied your settings @chrome notch and now for some reason it says 40 on almost every moon, even moons which I haven't written anywhere :/

chrome notch
#

make sure this line is empty

#

also set LC_Office moons list to all

grand valve
#

yeah I'd like it not to spawn on Vow and some others if possible

#

will make that line empty

mortal schooner
#

I say nuke your configs, also I don't have lethal quantities but if it changes the chances then try disabling it

chrome notch
#

doesn't matter, if the weight is set to 0 in the config it won't register on planets that you don't specify

grand valve
grand valve
#

thanks guys for the help xD

mortal schooner
#

yeah I actually wonder if it's another mod causing the issue, try only having lcoffice and lll enabled

grand valve
#

for some reason I didn't understand this part but now it makes sense

mortal schooner
#

ya that's probably it lol

chrome notch
#

yes, by default LCOffice sets free planets to 40 weight

grand valve
#

thank you guys for your time and help T.T

#

I just had to read better lol

chrome notch
#

so that's probably overriding the manual moons list, which tbh seems like incorrect behavior @zenith flax can you weigh in on this?

mellow flame
#

I just wanted to make sure im properly lowering the size

#

of an interior

#

this is the correct way right?

crisp galleon
#

I just want to be certain of something. I noticed when launching my moons, one of them has the surgeon or whatever the new enemy is, but I get a warning that it's missing a script. I think it's because when updating my Unity project some of the new scripts didn't get ripped properly (or maybe did but when running that thing that tries to reconnect broken references the script was dereferenced). Either way, for some reason I'm under the impression that LethalLevelLoader or something will just spawn the vanilla enemy so the missing script isn't an issue, but is this true or do I need to hunt down its script, reconnect it, and push a patch?

tall kindle
#

the surgeon shouldnt be the thing that is throwing a msising script

#

can you show the error?

#

/warning

crisp galleon
#

[Info :LethalLevelLoader] No ExtendedMod Found In Bundle: 45valiance.lethalbundle. Forcefully Loading ExtendedContent! [Warning: Unity Log] The referenced script on this Behaviour (Game Object 'ClaySurgeon') is missing! [Info :LethalLevelLoader] No ExtendedMod Found In Bundle: starship-13.lethalbundle. Forcefully Loading ExtendedContent!

If I remember the inner workings, the level has objects for the enemies, which reference a prefab, and I think in the prefab might be where the script is missing from.

#

I can always test. I was just wondering if anyone knew if that's a problem since I'd like to experience the new stuff with friends hopefully tonight or soon.

tall kindle
#

Your enemy list shouldn't use the prefab for enemies

#

I think u can just make an empty object with the name of the enemies

#

And LLL just knows what it is

crisp galleon
plucky gull
#

can in this setting just type "all"?

crisp galleon
crisp galleon
neat ember
#

Maybe a dumb question: I'm looking at the config and many of the vanilla moons have the same values in for min/max total scrap value (300/700)

Are the values being auto-populated here accurate and are they the same as the base game? Or, because they are labeled override are they not accurate and only there to allow me to configure them if Enable Content Configuration is set to true?

(and if they are accurate, it doesn't make sense to me, how?)

steady ingot
neat ember
#

so it's a planned for the future kind of thing?

steady ingot
#

You need to adjust the number of min and max scrap spawn and what you can do is add or remove more valuable scraps like gold bar or fancy lamp etc or less valuable ones like metal sheet

neat ember
#

Ok thanks, I wasn't planning on touching them, the numbers just made no sense with the costs of the moons, so I got confused and started to consider tampering with them

sullen coral
#

It may have been a scrapped (heh, get it) thing from the base game, since those come from the base game's Level system

#

But as stated, they don't work, so you can ignore em

neat ember
#

neato thanks

atomic acorn
#

is it LLL causing this error?

tired solar
tall kindle
#

I believe I heard its handled on the non released version

tired solar
#

huh

tall kindle
#

Mhm

tired solar
#

I can't see anything that would point to it being fixed, unless if it's fixed on batby's machine, not pushed

tall kindle
#

I think he said he added a check for nulls but didn't know the root cause

tired solar
#

the IL offset says it's this that's null (as far as I understand), though I dunno why I don't even get warnings when marking the iteration variable as nullable (maybe they can't be null? But how is it null then?)

tired solar
atomic acorn
zenith flax
#

What was the problem?

autumn thorn
#

wrong chat

#

lmao

zenith flax
#

😭

tired solar
#

Okay I have no idea how that NRE can even happen in ContentRestorer.RestoreAudioAssetReferencesInParent, as it goes like this in IL (C#ified):

var local_9_enumerator = OriginalContent.ReverbPresets.GetEnumerator();
// MoveNext sets Current, returns false if Current doesn't exist.
while (local_9_enumerator.MoveNext()) 
{
    var local_10_Current = local_9_enumerator.Current;
    if (local_10_Current /* IL_00db: The offset shown in the stacktrace */
            .name /* NRE thrown here: UnityEngine.Object::get_name() */
            !=
            null
        )
    {
        // stuff
    }
}
zenith flax
#

I haven't looked at the IL or anything like you are rn but when I was looking through just the kind of natural logic behind what im doing with all that it was really strange

tired solar
#

the best guess I have is that what Unity considers Null here isn't what MoveNext considers null

#

as I think, Unity has its own null thingy

sullen coral
#

@zenith flax For the route confirm override, is it possible to still have it say the vanilla stuff, then my text? Specifically the "Routing autopilot to X, Your new balance is X"

#

Dunno if there's a way to show the balance

zenith flax
#

uhh

#

have you tried just using the vanilla text

#

i forgot the order of execution on this but vanilla does it by replacing specific text

sullen coral
#

I just don't know what the vanilla text is in order to show the "Your new balance is X"

zenith flax
#

what do the vanilla levels say

sullen coral
zenith flax
#

no i mean

#

in their selectablelevels

#

oh i mean

#

terminalnode

#

brain dying

sullen coral
#

Lemme check

#
Your new balance is [playerCredits].

Please enjoy your flight.```
#

Will LLL automatically overwrite it if I also put [playerCredits]?

#

If so then I can do that wolfVibe

zenith flax
#

LLL won’t but ideally LC will

sullen coral
#

Okay I'll check and see for ya

steady ingot
sullen coral
#

It works for playerCredits, so

steady ingot
#

For terminal stuff it could work, it was the ui desc. when we landed

sullen coral
#

Fair makes sense

crisp galleon
# sullen coral

I need to remember to try this since one of my moons has custom text.

zenith flax
#

im reviewing custom moons for my personal modpack 👁️

#

would people want to know the ones i didn't add or only the ones i did add

#

idk if the former would be in bad taste or not

tall kindle
#

considering people already made a kind of distasteful tierlist ranking moons as garbage or good, you're probably good Kek

steady ingot
zenith flax
#

nah its not tier

steady ingot
#

just linked it for you to find the moons easier

#

im curious what you're going to add ^^

tall kindle
#

if you arent playing with peter griffin moon, you're not playing the game right

young acorn
zenith flax
#

dont think so

#

this was only one big group, will do more in the future

young acorn
#

🥹

zenith flax
#

personal list of my opinions of custom moons part 1.

this was done for my personal modpack i play with friends, pass or fail was done via a general vibe check and was determined due to personal bias and a massive preference on vanilla feeling content.

Affliction - Pass
Sanguine - Removed
Kast - Pass (Hesitant)
Celest - Pass [I don't like the invisible walls]
Crystalium - Removed
Atlas Abyss - Pass
Echelon - Removed
Argent - Removed [too big]
Calt Prime - Removed
Psych Sanctum - Removed
Azure - Removed
Vertigo - Pass (Hesitant)
Corrosion - Removed
Desolation - Removed
Collateral - Removed
Devastation - Removed [Really liked though]
Icebound - Removed [Really liked though]
Ganimedes - Removed [Really liked though]

steady ingot
zenith flax
#

text is fine

zenith flax
#

also two random observations

#
  1. i really need to finish up extendedfootstepsurface
#
  1. i think almost every custom moon i've played does not justify how big of a surface it has
steady ingot
zenith flax
#

Vanilla handles it a lot better than custom ones from what i've seen

tall kindle
#

isn't seichi like 4 islands

zenith flax
#

also for anyone curious for like a bias baseline my fav maps in vanilla are adamance, dine and artifice

tall kindle
#

i think u like every single moon generic hates

#

1 to 1

steady ingot
zenith flax
#

Which is funny because i think generic so far has the most potential in regards to being the best custom map creator vanilla wise

steady ingot
tall kindle
#

smh

zenith flax
#

my vanilla map tier list is probably

Adamance
Dine
Artifice
Assurance
March
Rend
Experimentation
Offense
Titan
Embrion
Vow

steady ingot
#

Im just sayin maps need to have a reason for their size - vanilla moons have an issue with it like you’d never walk to certain areas and custom moons have a bigger issue with this

zenith flax
#

I don't think any map needs to be bigger than the average vanilla map but that might be heavy imo's

steady ingot
#

Justifying the areas with only ainodes imo is not a good design - vow has an issue with this, youd almost never walk infront of the ship if its not for bee hives

#

Thats why i dont particularly like junic or gloom, they are very cool maps but just way too huge

mortal schooner
#

I've literally tested every non meme moon, I really wish some of these moons were smaller in size like atlas abyss is my favourite but it's 150mb and my group are poor, there's also some moons that straight up crash on load lol. Current requirements for me are < 100MB, nothing boring, some custom content, good visibility, nothing that goes in a straight line or has things placed randomly, also I avoid maps which you can't see anything cause of the weather or environment

zenith flax
#

for context the size I was refering to was like

#

physical

#

atlas abyss is 150mb????

mortal schooner
#

Oh yeah I was just saying what I'm doing with my modpack, idm the physical size so much as long as there's breathing room, and yeah I messaged zingar about it but I don't know if he's still map making, all the custom designs use a lot of space or they just aren't optimised enough or smth, most maps are around 60-80MB

sour spindle
#

is there a moon optimization guide yet

mortal schooner
zenith flax
steady ingot
# sour spindle is there a moon optimization guide yet

For moon optimization you need to

  • adjust the texture sizes to 1024 maybe even 512, any less is going to fry the textures and will look extremely bad, sometimes even 512 does that 🤷‍♂️
  • turn crunch compression on (leave it on 50)
  • for fbx turn on meshcompression on low settings, sometimes you can even do medium (while you are there TURN ON READ/WRITE - this is not for optimization but for placing your props in environment so it would not throw errors in the logs)
  • use .ogg audios (you can use .mp3 as well but its slightly bigger format, afaik the game will turn the sounds into ogg anyway, but its for sure better to use those then .avi thats has 10x filesize)
  • delete unused meshes, textures from LethalCompany\Game that YOU ARE NOT USING - you are using dropship textures, handicons to name a few
#

512 is good - i use that for most of my textures, i might even use it for all, cant tell honestly ive been messing with that for quite sometime

zenith flax
#

delete unused meshes, textures from LethalCompany\Game that YOU ARE NOT USING - you are using dropship textures, handicons to name a few
no clue what this is about and i recomend not doing any of this

steady ingot
zenith flax
#

This is wrong

sour spindle
#

arent those not even included in the bundle anyway

zenith flax
#

I told you to strip specific assets referenced in your SelectableLevel

#

that is extremely different advice

zenith flax
sour spindle
#

arent there other optimizations i remember hearing about

#

like something to do with optimizing the terrain

zenith flax
#

(theres many many ways to optimise)

steady ingot
#

Well removing unused textures like buttler’s helped my filesize compression and the enemy texture still get placed from the game

sour spindle
#

anyway i would pin that one but theres a lotta disagreement

#

once we have somethin good and comprehensive we can pin it for people to see

zenith flax
#

the dropship and handicon shit you mentioned should absolutely be breaking your moon in certain regards

#

no clue what thats about

#

i didn't suggest that

steady ingot
#

Yeah i specifically mentioned those to not be removed cuz you are using them in your moon

steady ingot
# sour spindle anyway i would pin that one but theres a lotta disagreement

Dont pin it, i guess i missunderstood Batby at the time but the way i did it works for me 🤷‍♂️ just had to make sure im not deleting important ones that i mentioned before cuz then they would be white blocks (had that in one of my patches and also happens in the current version of Code:Rebirth 😳 - not sure how Xu did it, im guessing she did something similar)

#

^talking about the handicon here

zenith flax
#

apologies if i came off strong, i think your advice was just abit to generalised from the original advice

#

wanted to get ahead of it since its a fairly destructive act

steady ingot
#

No worries, yeah i just mentioned things that worked for me but could be dangerous if people are not being through about their stuff, deleting the whole Texture2Ds is a big no-no, you need many of the texture so it could be a tidious thing to go through them that way

zenith flax
#

@tall kindle i haven't touched it in ages

#

i do not know what works

tall kindle
#

omg you released it 🥺

#

tyty

sour spindle
#

why would an enemy be included in the moon bundle anyway

zenith flax
sour spindle
#

ah..

#

in those cases would you block them from the bundle list manually

tall kindle
zenith flax
#

no because thats not a thing you can do

sour spindle
#

you cant?

#

i swear you could

zenith flax
#

nor something you would want to do since you need a way for me to give you the real one

#

otherwise i don't know what you actually want

sour spindle
#

i mean you could keep the enemy properties scriptable but remove the actual prefab if thats how it works

zenith flax
#

in theory yeah but iirc i might be checking the prefab

#

but you can gut out the prefab itself

#

i only check for string

sour spindle
#

hypothetically anyway. cuz apparently you couldnt do that and i forgot

zenith flax
#

@tall kindle make sure to make a lethaltoolkitsettings SO

tall kindle
#

bet, i am currently figuring out the item grab thing by the player too lol

zenith flax
#

@tall kindle what does your bundle builder code look like

#

out of curiousity

tall kindle
#

i can send it here rq, it has mostly taken inspiration from diffoz' and i would've added a couple more things to it over time like a preview of a diff from last bundle size to next and so on

zenith flax
#

ye show

tall kindle
zenith flax
#

oh lol

#

ok

tall kindle
#

i believe this should be still using unity's asset bundle builder, it's just a different looking interface, though i can atleast build indivdual bundles rather than everything at once lol

zenith flax
#

the latest commit of mine is like

#

very broken sadly

#

but im doing some cool stuff ya'll not on yet

tall kindle
#

oh yeah i completely forgot you were doing this spell stuff lmao, are you still doing that?

zenith flax
#

nah that was to help other homie out

tall kindle
#

fair enuff, the relevant parts i need to look at are just the ones about LethalToolkit?

zenith flax
#

ye

tall kindle
#

oh wait i see assetbundlebuilder

#

yeah okay

zenith flax
#

i forgot about this mess

vernal grove
zenith flax
#

a second fire exit in the oppisite direction somewhere would help so much

vernal grove
#

true

steady ingot
gaunt hinge
sullen coral
#

@elder ether

elder ether
#

Me

elder ether
#

the children yearn for lethal toolbox...

jolly cargo
#

@batby, wasn't able to get every LLL moon to load at the same time but these are the counts of various tags on 119 LLL moons + the 13 vanilla

the tag names are normalized here so that whitespaces (and any other special characters), and capitalization is ignored between tags. This is because a bunch of moons add duplicates bc of typos

https://docs.google.com/document/d/1q4GoVhIXInVEhqQqkgYVO0h4BPNfJzfUsE0iMaLf84s/edit?usp=sharing

#

only 10 tags are on more than 5 moons concern

sullen coral
#

tag cheese has 1 moon associated with it

jolly cargo
#

yeah gorgonzola

sullen coral
#

Couldn't possibly be me

jolly cargo
#

oh my god it is u

merry marsh
jolly cargo
#

nice

#

I didn't check every moon for typos, just saw it since its the last alphabetically in my pack

nova dragon
#

Wild how I just started searching for a list of Moon tags and you come here with this doc
Thank you for the hard work 🙏

merry marsh
jolly cargo
#

quite a few use custom but lowercase and one uses modded but LLL adds Custom automatically already

#

so thats why I ignore capitals

sullen coral
#

Oh interesting I didn't know Custom was automatic

#

Makes sense

#

I need to take a look at this and adjust Gorgonzola's tags tbh

jolly cargo
#

I'm not 100% sure but it is on every one of the 119 modded moons I had installed for that

sullen coral
#

Considering I added "custom" and not "Custom"

#

Probably

jolly cargo
#

yeah its like maybe 20ish moons that did that iirc

#

ah but liquidation is tagged as custom btw

elder ether
#

😭😭😭😭😭😭😭

#

i should make a generic moons tag

sullen coral
#

Mfw WesleysMoonsTag has 1 moon

elder ether
#

i love going to wesleys moon

crisp galleon
elder ether
#

yeah

sullen coral
#

idk

elder ether
#

i love

sullen coral
#

needs more cheese

elder ether
#

wesley moon

elder ether
jolly cargo
tall kindle
#

Who's out here being like "I only want my enemy/item to spawn on the luxurious selection of moons that is the generic moons " 😭

brisk schooner
#

gotem

sullen coral
sullen coral
#

So that I can see only those moons on the terminal

elder ether
sullen coral
#

Just like when I type filter WesleyMoons and it shows exactly one moon

#

Very helpful

tall kindle
tall kindle
#

It's a weird but I guess valid way to use the tag system

sullen coral
#

As someone who wanted to do it for trying out Tolian's moons, it was helpful imo

#

Besides I want to alter GenericMoons to exclusively spawn 100% Hoarding Bugs

elder ether
crisp galleon
# tall kindle Who's out here being like "I only want my enemy/item to spawn on the luxurious s...

Maybe if you were a dev for them and had some theme across all of them, and scrap/enemies that fit that theme/lore it'd work. Or an interior. They can apply to a combo of multiple tags and individually named moons, right? So, I guess it wouldn't need to be an exclusive thing, more like "my moons have a higher chance of my scrap/interior". I hadn't thought of using it to filter, but I like that idea actually and might do it in the future.

sullen coral
#

I think it was just GenericMoons in particular she was joshing on, but yea

tall kindle
#

Breh I'm not against a specific set of moons

#

What I said applies across all the moon's that are making tags just under their own name cuz that wouldn't be the first way I'd try to do something across all of like, generic moons

ember shore
#

Are moons which I unregister from LLL via the config still loaded into memory?

tall kindle
#

Pretty sure yes

#

@zenith flax would have to confirm but I don't think there's anything there to detect "you've disabled all features from this bundle, won't open it" without opening it/knowing what's there prior which you kinda do with the bundle

zenith flax
# gaunt hinge

this is really my fault because it's nto documented but

#

you don't need this

#

cuz of the matching by mod name section

#

ideally

gaunt hinge
#

oh yeah wait that's a thing

#

lmao

zenith flax
#

yeah

#

toolbox stuff in sooner than later btw people

#

no promises but

#

stuff actually happening

gaunt hinge
#

hmm I've heard this before lol

zenith flax
#

you have and that was shitty of me

#

the fact LLL didnt hard break during v55 extended my burn out phase ngl

gaunt hinge
steady ingot
#

Youre good, at least you got to recharge yourself a bit

zenith flax
#

naur i just burnt out on other projects lmaoo

#

i've messed with like 6 standalone prototypes since the last LLL update

zenith flax
#

https://thunderstore.io/c/lethal-company/p/IAmBatby/LethalLevelLoader/

LethalLevelLoader 1.3.0

  • Updated mod for Lethal Company version 56

  • Added initial ExtendedBuyableVehicle implementation

  • Added LevelEvents.onShipLand ExtendedEvent

  • Added LevelEvents.onShipLeave ExtendedEvent

  • Added ExtendedLevel.OverrideDustStormVolumeSize Value

  • Added ExtendedLevel.OverrideFoggyVolumeSize Value

  • Added PatchedContent.TryGetExtendedContent() Function.

  • Added public references to basegame manager instances to OriginalContent

  • Updated ContentTag's for new Version 55/56 content

  • Fixed issue with onApparatusTaken event running at unintended moments

  • Added safeguard to prevent multiple Lethalbundles with identical names from causing a gamebreaking error

  • Moved LethalLib from a Hard Dependency to a Soft Dependency

  • Fixed ExtendedItem's not correctly playing the purchased SFX when purchased from Terminal

  • Merged various pull requests to improve the workflow and deployment of further LethalLevelLoader development

It may take some time for this update to appear on the Thunderstore and various mod clients

tall kindle
#

oh nice

unique geode
#

^^

#

So happy to see this though 😄

zenith flax
#

Stuff could break, let me know if it does

young acorn
#

at long last

#

i wonder if i remember how to update LLL in my project

young acorn
zenith flax
#

It should but vain shroud stuff is super weird and the problems with it for custom stuff suckss to mess with so just let me know if it changes for the better or worse

sullen coral
#

Good shit Batby

zenith flax
#

Not yet

#

It's coming

tall kindle
#

alright, im gonna wait verily patiently

unique geode
#

@zenith flax Looks like Celestial Tint got nuked with the new LLL update

#

XD

zenith flax
#

elaborate

unique geode
zenith flax
#

thats not elaboration

unique geode
#

I mean

#

I updated

abstract bobcat
#

It's just the lack of the giant moon below the ship not appearing

unique geode
#

Yeah

#

I was gonna say

#

I loaded a new save

#

and no CT moon

zenith flax
#

log

unique geode
#

Will get it soon, I'm troubleshooting another issue as well rn

#

lol

#

There

#

Story logs appear to be broken too for a lot of moons atm

zenith flax
#

wtf are these fallback handler logs

unique geode
#

No idea

zenith flax
#

@slim wind sorry to bother but just confirming your gone gone rn yeah?

unique geode
zenith flax
#

yes im aware

unique geode
#

And that's not the fault of your mod we were having issues before LLL updated too

zenith flax
#

no its my fault

unique geode
#

If it's your fault then the issue shouldn't have happened with 1.2.4

#

I'm thinking it's just the process of how it's loading that's breaking it, cus if I test on a pack before some mods updated it's fine but now it's not

#

So it's probably loading later than before

#

Idk

#

Unity

zenith flax
#

Hey,

#

I'm telling you it's my fault

#

👍

unique geode
#

🤔 Why was it breaking before the LLL update appeared as well then? Do you know why?

#

@zenith flax Darmuh is reproing the issue on a fresh profile too, seems to be an issue with WeatherTweaks exclusively

#

Has to do with the new config entry he added

#

Foggy ignore levels

#

Not saying there wasn't a compat issue on your side too

#

But it's happening on an empty profile with just BetaTweaks

zenith flax
#

then feel free to say all this to the relevant people

unique geode
#

I'm glad you fixed the compat issue on your side

#

^^

unique geode
unique geode
#

Anyways he's aware of it, so hopefully he'll push an update for the cases where LLL isn't paired with it later

#

Ty for all you do Batby lunxara_love_with_tail

#

Will do some testing after the update hits Gale

unique geode
#

but @abstract bobcat in his pack he could only produce the issue with LLL 1.3.0, but not 1.2.4. WeatherTweaks is odd

abstract bobcat
#

¯_(ツ)_/¯

young acorn
#

what's 1.3.1?

unique geode
young acorn
#

i see

unique geode
#

Mhm

#

At least when paired with LLL

#

@zenith flax You uploaded it in a good flow c;

#

It came with the LTB update

#

Okay doing a test now

unique geode
#

Been wanting the V56 update for Wesley's Moons

#

:3

#

@zenith flax Can confirm things are fixed, ty for the update

#

😄

#

@zenith flax any idea why story logs are erroring still? Guessing moon devs need to update their moons? ^^

#

Yeah something wonky is definitely happening with the foggy block list

#

As soon as I added some moons to it again that wasn't Gordion

#

Oh well

#

LOL

young acorn
#

is an extendedhazard function or whatever planned?

zenith flax
#

planned yes

#

in no

keen harbor
#

will this solve the ship in motion problem?

zenith flax
#

what

keen harbor
#

will the levellethalloarder update solve the ship in motion problem? I'm stuck in the ship with my friends in ship in motion, and everyone says it's because of the lethal level

zenith flax
#

i dont know what you are talking about

keen harbor
#

ow..

steady ingot
# keen harbor ow..

There are many mods that can cause that, LLL has been good for a while now - do you have perhaps moons that are not patched yet to v56? If so you should probably get CompanyCruiserFix if the issue is still happening you should seek help in #help-and-troubleshooting (modlist / log file would be great! Esp. the latter)

keen harbor
#

I asked for help but no one answered me.. and I have company cruiser fix mode and all my moons have been updated too..
since yesterday I have been lost

#

( 0190e409-e48f-5bb6-aebc-6cbea65b238d )

merry marsh
#

@zenith flax I reported this here a little while ago for v1.2.4, but I think the size configuration for interiors is broken. I couldn't get it working and I know it worked in the previous version(1.2.3 or 1.2.2). Someone else in here also confirmed for me that they couldn't get it working either, I'll see if I can find it

zenith flax
#

ah right

#

ill trty n peep it

young acorn
#

@zenith flax LLL bestiary seems to have a few bugs. can't view it without putting view at the end, no noise when viewing the log, the log text being at the top of the terminal without the ability to scroll and being unable to type after viewing an LLL bestiary log until exiting the terminal

zenith flax
#

heard

merry marsh
soft eagle
#

@zenith flax I think StoryLogs got broken, this is what it shows on startup now:

normal peak
keen harbor
#

Yes

#

I'm trying my best to try to fix this but I can't

normal peak
# keen harbor Yes

i have the same problem, is yours only on multiplayer? like if everyone bar the host leaves does it return to normal?

keen harbor
#

Yes I only have that in multiplayer and everyone in my game has to quit for it to work

#

I don't know what to do to make it noticed like before..

normal peak
#

its the exact same problem im having, but it only started happening to me yesterday

keen harbor
#

me since the day before yesterday, and I don't understand why, I uninstall and reinstall mods to see but nothing works...

normal peak
#

one of the things i have found is that it can potentially be a broken game file, i havent tried verifying the game files or doing a full reinstall yet, those are my next ideas hahaha

keen harbor
#

I did it and it doesn't work.. ahah

normal peak
#

im assuming that it doesnt happen if you play without mods?

keen harbor
#

without the mods everything works, but impossible for me to detach myself from the mods haha

normal peak
#

i know what you mean XD

keen harbor
#

I tried several friend codes and I swear I still have the same bug I thought I was cursed xd...

normal peak
#

am I ok to dm you about this issue? maybe we can work it out together with out clogging up chat

keen harbor
#

yes yes

mellow flame
#

why can I not generate a dungeon when I have LLL in my unity project? In the scene view

#

I get this error, I need to remove it to fix it

fierce axle
#

so do we not need company cruiser fix mod anymore?

#

or is it still up to the moons to fix it themselves

mellow flame
fierce axle
#

ok so it probably is up to the moons

#

that stinks

#

cuz a lot of good moons are never getting updated i.e. zingars moons

mortal schooner
fierce axle
#

wow thats surprising

#

looking forward to that

mortal schooner
#

Yeah same but I can't guarantee when it happens as I think he's on a break rn

fierce axle
#

yea he been on a break lol

umbral oracle
#

Have you fixed content configuration absolutely annihilating custom scrap

jade sandal
#

I wonder what the Secondary Prefab for the car is.

steady trellis
#

@zenith flax I'll have to test the new update w/ friends to see if the mismatch custom level ID desync issue is still persistent or if the added sort lines fix that problem (I think it will). I closed my PR for now, but if the issue comes back up it should just be as simple as sorting the ExtendedCustomLevel list by name prior to the levels getting ID #'s.

zenith flax
#

thank you for looking into that though

umbral oracle
#

This goes for custom entities as well

zenith flax
#

no I have not