#Lethal Level Loader [Custom Content Loading API]

1 messages · Page 26 of 1

main ravine
#

You've done so much already for this with LLL that I'm more than happy with, but had to ask 😄

forest turtle
#

is it possible to add new tiles to the vanilla dungeon tile pools with LLL?

idle ravine
chilly radish
#

not sure this is a good alternative but try LethalDays and set it to ~30 in config

main ravine
chilly radish
#

no sadly

chilly radish
#

is there a way in unity to set the spawn chances of the custom scrap?

#

im assuming GameObjectChance but Main Path Weight and Branch Path Weight confuse me so thats why i wanted to ask before i try anything

zenith flax
#

no

chilly radish
#

does LLL just auto assign it?

#

or allow it to be changed?

#

nvm i see that i need to add code for rarity

forest turtle
idle ravine
forest turtle
zenith flax
idle ravine
#

not yet, wanted to get a tile working ingame to show off before fully unveiling it, just trying to make a nice tile that fits the style isn't my expertise

#

though afaik the actual code of it is already fully complete

idle ravine
zenith flax
#

It’s gonna be fundamentally flawed without @sour spindle’s lighting fix though no?

idle ravine
#

covers all the equivalent LLL bases such as reference swapping

zenith flax
idle ravine
zenith flax
#

It’s a runtime thing

#

Basically all custom content has incorrect lighting and i can fix it but people threw a hissyfit because all current custom content was designed with the brokage in mind

idle ravine
#

is it something intrinsic to bundling the assets or is it something that could be fixed without strict dependency on the mod at runtime?

zenith flax
#

It’s runtime

idle ravine
#

(also added you as collaborator to the git)

idle ravine
# zenith flax It’s runtime

if their code is public I prob could just incorporate it into my mod to apply specifically to tiles added by my mod

idle ravine
forest turtle
mellow flame
#

I thought the lighting thing was fixed, when I testing out making a combination of all 3 vanilla interiors, the main entrance room lighting was working. Like the fan shadows

crisp galleon
# mellow flame I thought the lighting thing was fixed, when I testing out making a combination ...

I still haven’t had a chance to try interior stuff and don’t remember the issue too much so maybe this doesn’t make sense, but does your thing use the vanilla tiles? I might be misremembering but I thought the project that brought up the shader issue was like a ground-up remake of the vanilla factory that was supposed to be identical. So, like, it wasn’t THE rooms, but identical copies. But maybe they didn’t remake the rooms, instead just the actual generation stuff for the dungeon. I honestly can’t remember.

sour spindle
#

its speciifcally stuff loaded from assetbundles

mellow zinc
#

Where do I go for custom interiors?

sour spindle
#

wdym go

#

#dev-interiors ?

mellow zinc
#

Yeah that.

zenith flax
#

Having to talk about LLL for a non LC related thing and I just realised currently 374 projects depend on LLL?

mellow flame
#

But does that include mod packs too?

zenith flax
#

Only if they are mislabeled. Correctly labeled modpack count is at 3,672

digital breach
#

there's a lot of mislabeled modpacks iirc, but whoever you're giving the stats to doesnt need to know that giggle

zenith flax
#

this is true australia pls gimmie $30,000

mellow flame
#

The point it is, it’s a hell of a lot of mods that rely on lll

digital breach
ivory niche
#

Is there a way to turn off the lll patching when testing outside of the game? Generation works inside the game

main ravine
#

Pretty much the only reason we have such neat modded maps that work in the first place as well as they do

#

I salute you Batby 🫡

tall kindle
crisp galleon
mellow flame
#

go the LLL dll

#

and exclude platform to editor

ivory niche
chilly radish
#

anyone got an example mod by chance for a weapon added using LLL, currently trying to figure out how to add 2 melee weapons and a gun

tall kindle
chilly radish
tall kindle
#

use te Shovel class not physics prop

#

and itll let u input a hitforce

chilly radish
#

also i fixed my unity black void issue, a model i added kept a maxed brightness light

tall kindle
#

nice

chilly radish
tall kindle
#

ye

chilly radish
#

...i see... 🥲

tall kindle
#

ah you're doing a shotgun reskin, should be easier than making ur own gun ye

chilly radish
#

oh yeah

#

anyway to change ammo capacity?

tall kindle
#

probably not

chilly radish
#

oh well ¯_(ツ)_/¯

chilly radish
#

is there a list of the animations i can use for grab?

north vigil
#

heya whats the correct way to stop items spawning with LLL? I had it set up like this but apparently even with a rarity of 0 my items are still spawning

zenith flax
#

🤔

#

whats in your level matching properties after that code

north vigil
#

was about to sleep when I got alerted of the issue so cant check rn, but thats the only code that touches the LevelMatchingProperties of the items

#

clearing the level tags should mean they dont spawn on anything right?

zenith flax
#

well it depends on if theres anything in the other lists

north vigil
#

wdym by other lists?

zenith flax
north vigil
#

oh right I only use level tags for all of my items, dont touch anything else

zenith flax
#

based

#

not sure

#

when you say alerted do you mean someone hit you up about it?

north vigil
#

yeah 1 person did then another person verified it wasnt working for them either

#

the rarity works, like lower values are less likely etc, but a set rarity of 0 in the config still has a chance to spawn seemingly

zenith flax
#

can't think about it too much until you confirm the numbers are right on your end after applying your code

north vigil
#

yeah thats fair, mainly threw in out here now in case there was an answer by the morning

#

I'll get back to ya tomorrow with the results

north vigil
#

is there a way of viewing the Level Matching Properties in game with UnityExplorer or similar?

#

Or should I just log the values

north vigil
#

@zenith flax ok tested it and my rarity changing code works, default is set to 20 for rarity for this specific item both in unity editor and in the default config value, it's respecting my config change in game so thats working as expected so really not sure whats up

#

when I spawn in an item with a rarity set to 0, the log shows nothing as expected too, as theres no leveltags set to the item

#

and nothing is set in any of the other lists, only using the Level Tags for my item spawning

north vigil
#

... wait hang on a couple items are using planet names too, so that might be the issue for a couple of them...?

#

still doesn't explain my enemy tho as they only use inside properties and only use level tags yet they still spawn apparently even with a rarity of 0

marsh chasm
#

I'm porting a scrap mod I made a while ago from LE to LLL, and I'm wondering if anyone could help point me to where I set spawn odds

north vigil
marsh chasm
#

Ah, is it Planet Names?

north vigil
#

also worth noting theres a tool called the Creative Content Converter that can port LE mods to LLL with little to no effort

north vigil
marsh chasm
#

I've done that already, I just need to upate spawn odds lol

#

When you say "Level Tag" is that like interior type or something else

north vigil
#

gotcha, then yeah you can do planet names if you wanna do specific moons

north vigil
marsh chasm
#

Ah, I see, that's cool

#

So I can set individual spawn odds for the vanilla moons scrap should spawn in Planet Names, then set spawn odds for custom planets in Level Tags

north vigil
#

can do aye

marsh chasm
#

Sweet, and Rarity also directly equals spawn weight, right?

north vigil
#

cant remember exactly how it equates with LE but yeah

#

i've found 25~30 to be about vanilla weighting for a standard item if that helps

marsh chasm
#

If I have a 10-weight object and 2 5-weight objects, the first object has a 10/20 chance to spawn

#

(This mod has 121 scrap in it already, the spawn weights are ruined lol)

north vigil
#

lol gotcha, then yeah it functions that way

marsh chasm
#

Sweet, thanks for the help!

north vigil
#

no worries, happy to help

chilly radish
#

anyone know all the animations i can call for grabbing something? ik theres HoldLung or HoldJetpack but what else?

tall kindle
#

HoldForward i think for hte zeddog scrap

steady ingot
#

Theres also the HoldMaskToFace iirc but its coded into the haunted item script, and its not called in the item asset like the rest

chilly radish
#

oh btw found out if you use Imperium by giosuel and use the freecam u can rotate an object w/o dropping it, made it so much eaiser to find the right values

#

using unity explorer ofc

umbral oracle
#

Has LLL ever fixed decreasing the speed of a moon's time causing the 3rd day of a quota to be removed, or is there another mod that tackles it already?

chilly radish
umbral oracle
#

In general

chilly radish
#

LethalDays works

#

set to roughly 35 in config for 2x day

zenith flax
#

no

umbral oracle
#

Will it be addressed?

zenith flax
#

At some point maybe

umbral oracle
#

Good to hear.

chilly radish
#

how could i go about adding a sound to scrap that stops playing when picked up, or picking it up and pressing e to stop it from playing, kinda like maxwell

crisp galleon
# umbral oracle Good to hear.

The thing is, it’s a vanilla issue technically. It would be cool if LLL fixed it, but it’s not technically an issue on its end.

umbral oracle
#

It technically is because you get an option from LLL to change the speed of a moon’s time

crisp galleon
#

Time of day is in selectable level isn’t it? Pretty sure that’s vanilla, not LLL. Either way, vanilla’s quota deadline is not actually counted in days, but by hours spent on a moon and then rounded or something. Don’t know why, maybe originally it wasn’t going to be a 3 day deadline and rather x hours allowing you to go to more/less moons depending on how fast you were.

umbral oracle
#

Yes, I know all of that, but you can’t edit that in vanilla, so it’s still associated with LLL. If the feature isn’t going to work properly without it ever getting fixed, then there’s really no point to it

hallow token
#

anyone know if lethallevelloader and lethal quantities play nice at all?

#

im currently adjusting a lot of stats for moon balancing in my modpack and i want to make sure i can actually use lethalquantities for it since it makes it a lot easier to understand and sift through than the cfg file for LLL within thunderstore's UI

tall kindle
#

I think so

hallow token
#

i'm specifically modifying scrap pools and their individual rates, enemy spawn rates, map and dungeon size, and the types of interiors that can spawn since i have a few modded ones

#

i hope everything works out lol

#

i just dont want to load in and have the loot be completely broken/never spawn and the dungeon tiles generating incorrectly

chilly radish
#

is it possible to stop and audio clip from playing if another one plays, i.e. the grab and pocket sounds on a scrap item

zenith flax
#

might have better results asking in #dev-item…

tall kindle
#

pretty sure the answeri s no anyways but ye, theres channels for these things

chilly radish
#

yeah thats my b

#

ty tho

zenith flax
#

I think i fixed the mod merging stuff today

tall kindle
#

@zenith flax while you're working on this, any chance u could make a public field in the footstep material system you've got going that has the string or smthn that would simulate the games own tags so I can pick up on specific tags

north vigil
pallid cedar
#

@zenith flax is there a way to get the current loaded extended level?
I want to be able to load a new level from a list and make sure its not the same as the currently loaded one, I've done this via scene name so far and would like to migrate to the numberless identifier from LLL

pallid cedar
#

perfect, ty

digital breach
#

🫡

hallow token
#

so, kinda of a dumb question but im not very familiar with LLL. i am trying to use lethal quantities to balance some moons in my modpack that im making and as far as i can tell, the scraps, monster power, facility size, etc is registering correctly. the one issue is that loot frequently spawns on top of itself in some moons. thats probably because i kept the map sizes pretty small (2.2 map size * 1.5 dungeon size max) with some moons that have 30+ scrap minimum. its not that big of a deal, but is there any way to force the loot to disperse through the interior more than it does by default?

#

probably not the best at balancing either, but i felt like huge map sizes are just never a good idea beyond the size of stuff like titan, march, and artifice

idle ravine
hallow token
#

so if i have a lot of scrap i would have to increase the map size to make it work, right?

idle ravine
#

Yeah; mainly you'd need to have more scrap rooms, though the only knob you can turn without code is the size

hallow token
#

ok no big deal then

zenith flax
#

@rough edge Why was your PR closed?

rough edge
#

I deleted forked repo

zenith flax
#

Ah ok

#

Big apologies for it taking so long to implement

rough edge
#

you can still reimplement it yourself if you want to

digital breach
#

Hey I finally decided to look into why route locked nodes cause errors like this one -> #1180739684654121091 message

You can replicate the error by trying to route to a moon that is locked and then typing anything else in the terminal.
The reason for it is having the field acceptAnything set to True

#

it's trying to load a compatible noun that likely doesnt exist, hence the outside of array error

#

you can avoid that issue by just setting acceptAnything to false

tall kindle
#

thats a really indepth report, thank you for ur support darmuh

digital breach
#

gonna probably implement a patchwork fix in openlib or something at some point if you dont have time to get to it by next LLL update

tired solar
#

what's openlib?

tall kindle
#

darmuh's lib

tired solar
#

huh, so mostly a terminal related library?

digital breach
#

Mostly yea

#

Needed somewhere to throw my stuff so I could reference it in multiple mods

#

It’s open to everyone I just ask that you don’t break anything my stuff relies on lol

tall kindle
#

Broke it

tired panther
#

this question has probably been asked a million times, but how come my custom interiors arent loading? They all use LLL, I've tried downgrading the mod, changing stuff in the config (even tho I dont really understand whats going on there), idk man. I just cant get custom interiors/dungeons to load UC_Cry

tired panther
#

Aight

digital breach
unreal crest
#

Might be being stupid, but how do you reference a scriptable object that the game would have already?
For reference, I want to add GeneralItemClass to my item's spawn position types but the spawn code checks for object equality so I can't just assign it in Unity since this'll make another instance of the object, failing the equality check.

I've seen discussion [back in March](#1205741904881516595 message) about this but don't know how to add a "dummy" reference to an object that LLL resolves later.

#

Could just remap it manually but seems like the sort of thing that would've been handled

tall kindle
#

And then just set it to that

unreal crest
#

well yeah that's what I meant by being able to do it manually

#

I just thought LLL might have handled it somehow because I read discussion on dummy objects that get remapped somewhere

#

I guess I'll do that until someone confirms that I'm not just dreaming up what I thought lol

idle ravine
tall kindle
#

Wdym by LLL handling item groups, hazards and vents

unreal crest
#

I tried it out and it had a different hashcode to vanilla items so it was definitely a different object instance

#

Meant that it didn't have any tiles to spawn on because of this code fragment in RoundManager.SpawnScrapInLevel:

Log: No tiles containing a scrap spawn with item type: {itemName}

List<RandomScrapSpawn> randomScrapSpawnList =

    ScrapToSpawn[i].spawnPositionTypes == null 
    || ScrapToSpawn[i].spawnPositionTypes.Count == 0
    || index1 != -1
    
    ? objectsOfType
        .ToList<RandomScrapSpawn>()
    
    : objectsOfType
        .Where<RandomScrapSpawn>(x =>
            ScrapToSpawn[i].spawnPositionTypes.Contains(x.spawnableItems)
            && !x.spawnUsed)
        .ToList<RandomScrapSpawn>();

Essentially failing the .Contains since it's a different instance

tall kindle
#

Yeah but doesn't just doing findobjectsbytype give u the exact instance u need

#

I'm probably slow and u agree

#

I'm leaving in and out the convo rn cuz im eating lol

unreal crest
# tall kindle Yeah but doesn't just doing findobjectsbytype give u the exact instance u need

You are right in that you could use FindObjectsByType to get the reference of the pre-existing object in code and add it on (which is what I will be doing now), but my point is that I thought LLL would have handled this so I can just refer to the GeneralItemClass scriptable object in Unity's editor, and LLL would recognise this and map it on for me.

There's never a case I can think of where you want another instance of GeneralItemClass floating around so any reference to this class should be replaced by the one that already exists - i.e. LLL would have been calling FindObjectsByType and replacing the reference automatically in my mind (or something equivalent).

idle ravine
unreal crest
#

compiling and loading it up in game

tall kindle
#

It was probably overlooked

#

Not a feature many use

idle ravine
#

it should definitely do that, for a custom dungeon?

tall kindle
unreal crest
#

Maybe, I don't want to rule out me being stupid either but it does look like it was forgotten or there's a way I'm unaware of

idle ravine
#

oh maybe I got it mixed up, I don't think the replacement is for items

#

just random scrap spawn

zenith flax
#

Didn’t i already say i didn’t do this yet or was that someone else

#

Someone else

#

I forgot to restore itemgroups in items

unreal crest
#

Oh cool, so just referring to the itemgroup in Unity will be enough on item creators' ends when you fix it?

zenith flax
#

Ye

#

Right name

#

also idk brought up that whole hashcode thing but like

#

That’s not relevant in the sense that it’s abit odd to refer to it like that

#

It’s not because they have different hashcodes, they have different hashcodes because they are different objects

unreal crest
#

I thought if the hashcode is different they are different instances so the equality wouldn't be true

unreal crest
sharp marten
#

hey batby, if i'm looking to register network prefabs to custom enemies (made by others), what's a safe patch to do?
just looking for where LLL finishes loading its enemies, and then patch it right there
`
nevermind, looks like even MenuManager.Start is perfectly fine here

tall kindle
#

barch what are you doing SusEyes

sharp marten
#

specifically bamboozling the giant specimans prefabs

#

😳

tall kindle
#

sus

#

go on

zenith flax
#

Hopefully updates sooner on all the projects Ive teased. Ngl been jumping abit between all of them learning new things which has been neat

#

If Gale didn’t exist I probably would have been thinking about making a mod manager after this package manager stuffs

queen tundra
#

Is there an example .lethalbundle file I could use for some quick testing?

crisp galleon
queen tundra
#

You don't have a bundle that you use just to test LLL itself?

zenith flax
#

lmk whats up

queen tundra
#

I'm trying to make unit tests for LLL, that's why

#

and/or integration tests

zenith flax
#

Very intested in hearing how that goes aha'

#

Worth noting current LLL does have a form of content validation but it's fairly shit and a lot cleaner in a wip build i gotta force myself to finish up

quiet stream
#

how the hell do I get rid of this

#

it randomly filtered me to "asteroid" for whatever reason

#

and I can't undo it

zenith flax
#

filter none

quiet stream
#

I've never used the filter option lol

quiet stream
#

I tried to do like filter moons or just filter and it didn't work teehee

slim wind
tall kindle
#

metewah

quiet stream
#

perfecto for smooth brains like me

unique geode
tall kindle
#

idk i made it like... 3 months ago now?

#

4*

unique geode
#

XD you should still remember stuff in your own mod hehe

#

They both sound funny though

queen tundra
# zenith flax Very intested in hearing how that goes aha'

It went pretty well. I was able to create unit tests for loading an asset bundle without having to modify the base plugin very much.
Unit Tests: https://github.com/linkoid/LethalLevelLoader/blob/smiteunit-tests/LethalLevelLoader.Tests/AssetBundleTests.cs
Changes: https://github.com/IAmBatby/LethalLevelLoader/compare/main...linkoid:LethalLevelLoader:smiteunit-tests

I think it would be easier if there was a way to test the rest of the plugin without having to create a different asset bundle for each test though. I don't know enough about to project to know how to do that though.

GitHub

A Lethal Company API to allow for custom Level & Dungeon integration. - linkoid/LethalLevelLoader

GitHub

A Lethal Company API to allow for custom Level & Dungeon integration. - Comparing IAmBatby:main...linkoid:smiteunit-tests · IAmBatby/LethalLevelLoader

mellow flame
#

had 10gb worth of old bundles in my recycleing bin that I forgot to empty lol

pallid cedar
#

@zenith flax do modders have access / control over the numberless name of their moon? I'd like to add configuration for each modded moon but I need something to identify the moons and that would ideally be something the modders are aware of and or can control

zenith flax
#

modders do yes

#

by their planet name

pallid cedar
#

what happens if two planets have the same name?

zenith flax
#

someone gets to switch 🙂

pallid cedar
#

so it wouldn't load both of them? i mean this is probably an edge case

zenith flax
#

stuff like configs would work unintendedly

pallid cedar
#

wdym

zenith flax
#

a lot of configs related to moons compare against a name

#

if two have the same name

pallid cedar
#

what I am trying to do is add a config file for each entity and moon for balancing and adjustments, and each file would contain a unique entity / moon name that is known and also consistently unique

#

so numberless name would work for this?

zenith flax
#

I use specifically extendedLevel.SelectableLevel.PlanetName.StripSpecialCharacters() (stripspecialcharacters is a lll extension)

#

its the same as numberless except it removes a couple other characters that can possibly break bepinex config binding (eg. [)

pallid cedar
#

alright, thx

tall kindle
#

my next moon is gonna be named ##[]$

zenith flax
#

bitch i doubt it

idle ravine
#

Moon named ]drop tables;

tall kindle
#

it makes sense lore wise!

olive bear
#

@zenith flax I was looking into making scriptable objects and it would be nice if I could just find mine inside of your .lethalbundle files that way people don't have to pack another bundle. I see inside of your AssetBundleLoader script you have a handy event for after your bundles finish loading that I can use but your dictionary containing the asset bundles is marked as internal along with all the related methods so I can't use it without jumping through a few extra hoops. I also can't just load the bundles myself because then the game throws errors about loading bundles twice. Is there any reason for this or could it be changed in a future update? (I know there are ways for me to get around it but it just seems unnecessary)

zenith flax
#

at some point i need to redo the entire asset bundle system so probably during that

#

cant promise an eta

queen tundra
zenith flax
#

Very possibly but I can't commit to anything due to my irl circumstances making my work on this super inconsistent

slim wind
tall kindle
#

that SO is not one of batby's

#

its their own

olive bear
olive bear
tall kindle
#

Just out of curiosity, what would you gain from having the publicised assembly in terms of the asset bundle?

#

Is there like a private list of em somewhere in LLL?

olive bear
#

I want to check if the bundles contain any instance of my scriptable objects. Without accessing to the bundles to look in them it's a little hard lol

olive bear
tall kindle
#

Ahh okay that makes sense then

chilly radish
#

you and uneko ever figure out what was causing the ship in motion issue? im having it too : (

ashen arrow
#

is there any way to access the "CreditsWorth" property and edit it in a config?

spring creek
#

Crossposting for help from the Cull Factory mod since this may be an error with my map setup, but does anybody know why my interior is unloading in random chunks with Cull Factory? It doesn't do this with any other moon. In multiplayer there's also some weird audio issue where audio on the moon's surface is still playing despite being in the facility

#

The latter issue tells me I set something up wrong, but every script/setup I compared to like Experimentation or Titan, checks out

smoky ocean
#

@zenith flax Hey, Is there any way to replace vanilla moon scenes?

nova obsidian
#

You have to write a plugin that transfers a modded level's properties to a vanilla level and disable the modded level scene being registered in config.

smoky ocean
#

Okaythx

nova obsidian
#

Here's an example

    {
        public static ExtendedLevel extendedLevelDine;

        public static ExtendedLevel extendedLevelDineHybrid;

        [HarmonyPatch(typeof(StartOfRound), "Awake")]
        [HarmonyPriority(1000)]
        private static void Postfix()
        {
            foreach (ExtendedLevel extendedLevel in PatchedContent.ExtendedLevels)
            {
                if (extendedLevel.SelectableLevel.PlanetName == "7 Dine")
                {
                    extendedLevelDine = extendedLevel;
                }
                if (extendedLevel.SelectableLevel.PlanetName == "DineHybridDummy")
                {
                    extendedLevelDineHybrid = extendedLevel;
                }
            }
            if ((Object)(object)extendedLevelDine != (Object)null && (Object)(object)extendedLevelDineHybrid != (Object)null)
            {
                extendedLevelDine.SceneSelections = extendedLevelDineHybrid.SceneSelections;
                extendedLevelDine.SelectableLevel.randomWeathers = extendedLevelDineHybrid.SelectableLevel.randomWeathers;
                extendedLevelDine.SelectableLevel.factorySizeMultiplier = extendedLevelDineHybrid.SelectableLevel.factorySizeMultiplier;
                extendedLevelDine.SelectableLevel.dungeonFlowTypes = extendedLevelDineHybrid.SelectableLevel.dungeonFlowTypes;
                extendedLevelDine.SelectableLevel.spawnableMapObjects = extendedLevelDineHybrid.SelectableLevel.spawnableMapObjects;
                extendedLevelDine.SelectableLevel.spawnableOutsideObjects = extendedLevelDineHybrid.SelectableLevel.spawnableOutsideObjects;
                extendedLevelDine.SelectableLevel.spawnableScrap = extendedLevelDineHybrid.SelectableLevel.spawnableScrap;
                extendedLevelDine.SelectableLevel.minScrap = extendedLevelDineHybrid.SelectableLevel.minScrap;
                extendedLevelDine.SelectableLevel.maxScrap = extendedLevelDineHybrid.SelectableLevel.maxScrap;
                extendedLevelDine.SelectableLevel.levelAmbienceClips = extendedLevelDineHybrid.SelectableLevel.levelAmbienceClips;
                extendedLevelDine.SelectableLevel.maxEnemyPowerCount = extendedLevelDineHybrid.SelectableLevel.maxEnemyPowerCount;
                extendedLevelDine.SelectableLevel.maxOutsideEnemyPowerCount = extendedLevelDineHybrid.SelectableLevel.maxOutsideEnemyPowerCount;
                extendedLevelDine.SelectableLevel.maxDaytimeEnemyPowerCount = extendedLevelDineHybrid.SelectableLevel.maxDaytimeEnemyPowerCount;
                extendedLevelDine.SelectableLevel.Enemies = extendedLevelDineHybrid.SelectableLevel.Enemies;
                extendedLevelDine.SelectableLevel.OutsideEnemies = extendedLevelDineHybrid.SelectableLevel.OutsideEnemies;
                extendedLevelDine.SelectableLevel.DaytimeEnemies = extendedLevelDineHybrid.SelectableLevel.DaytimeEnemies;
                extendedLevelDine.SelectableLevel.enemySpawnChanceThroughoutDay = extendedLevelDineHybrid.SelectableLevel.enemySpawnChanceThroughoutDay;
                extendedLevelDine.SelectableLevel.outsideEnemySpawnChanceThroughDay = extendedLevelDineHybrid.SelectableLevel.outsideEnemySpawnChanceThroughDay;
                extendedLevelDine.SelectableLevel.daytimeEnemySpawnChanceThroughDay = extendedLevelDineHybrid.SelectableLevel.daytimeEnemySpawnChanceThroughDay;
                extendedLevelDine.SelectableLevel.spawnProbabilityRange = extendedLevelDineHybrid.SelectableLevel.spawnProbabilityRange;
                extendedLevelDine.SelectableLevel.daytimeEnemiesProbabilityRange = extendedLevelDineHybrid.SelectableLevel.daytimeEnemiesProbabilityRange;
                extendedLevelDine.SelectableLevel.levelIncludesSnowFootprints = extendedLevelDineHybrid.SelectableLevel.levelIncludesSnowFootprints;
                Plugin.Log("Dine replaced with Dine Hybrid!");
            }
        }
    }```
#

||there is probably a much better way of doing this but this is how I achieved it with my Dine replacement originally||

smoky ocean
#

Thanks

nova obsidian
#

In case you're wondering, I wasn't able to replace the SelectableLevel directly in the code so that's why I had done it one by one on the properties that mattered.

#

It threw up an error if I tried to do it all at once.

zenith flax
#

ive been very sick my bad yall

crisp galleon
#

It’s ok Batby. Take your time. We hope you get well soon!

spiral siren
#

filed a bug that should be a quick fix: https://github.com/IAmBatby/LethalLevelLoader/issues/145

Tolian's been having issues with a custom apparatus spawn due to this, although I'm assuming it can be worked around by making an ExtendedItem for the custom apparatus

GitHub

Prefabs that are supposed to be network-spawned from SpawnSyncedObject instances are not found when they are contained by a tile that is injected through DungeonFlow.TileInjectionRules, due to the ...

tall kindle
#

Yeah a couple if people had this, I assume u should probably just be registering it as an item

peak seal
#

Is there any updated tutorial on how to make custom scrap? I (probably) succesfully made a unity project with the help of AudioKnight's Custom Moon tutorial, but i don't know how to continue

crisp galleon
maiden elm
#

im back!
finally motivated to continue working on what I was cooking back in March this year

#

one problem tho

#

theres been like 3-4 updates since I last worked on my project and the modding pipeline for custom interiors has changed since I was last here

maiden elm
#

idk if im getting unlucky or its not spawning

#

probably have to rebuild the bundle with the current version of LLL

crisp galleon
# maiden elm probably have to rebuild the bundle with the current version of LLL

You might get better help in the dev-interior channel. I would think that it should be spawning just based off of the fact LLL seems to think it’s a viable dungeon flow with 300 weight (assuming that’s yours). You could try using LLL config and bumping its weight up/bumping facility weight down to make it more likely.

maiden elm
#

Aha yeah I should try and do that just to lower the odds of facility because rn it’s the only thing that’s spawning which is a bad sign

#

It should be like a 50~/50~/plus whatever mansion and mineshaft equal

maiden elm
#

we good!

#

I fixed it

zenith flax
#

@spiral siren ty for the issue, in this case tho if they did want custom they would want to register that themselves

#

rn LLL isn't built to autodetect/register custom content that is found in references

#

you have to explicitly pass it to me

#

semi by design semi by the edge cases created in stuff existing in scene files that i couldnt check in make it kinda inconsistent at best

spiral siren
#

wait but it does auto-register SpawnSyncedObject prefabs

#

it just misses injected tiles

#

that didn't seem intended to me

zenith flax
#

yes

#

that is unintentional and i will fix

#

It should be possible to work around this by adding any custom items spawned within injected tiles as registered ExtendedItems.

This is what i wouldn't be doing

#

oh i think i misread work around

#

kinda

spiral siren
#

it did work tho I believe

zenith flax
#

if they did want it custom apparatus then they should do that yes, regardless of this issue

spiral siren
#

Tolian tested it a few hours after I submitted

#

because it wouldn't save you mean

zenith flax
#

its a weird issue where vanilla doesn't fully support what people want here

#

cuz what people want is just recolours of the apparatus

spiral siren
#

I may be wrong, but I think that the apparatus is intended to save to a different ID than the one that's spawned

#

not entirely sure

zenith flax
#

yeah rn it would be fucked

#

after unfucking that issue you pointed out tho theres pros and cons between trying to let LLL replace your fake apparatus with the real one or trying to get a custom item setup for it

spiral siren
#

hum, interesting

zenith flax
#

cuz from what ive seen 99% of people just want the vanilla apparatus reference but with perhaps a different model colour

#

but there isn't a clean way to do that

spiral siren
#

ah right, yeah

#

duplicating it isn't super nice

zenith flax
#

ideally vanilla's random mesh and material system would be a little restructured to handle that niche but oh well

#

Do you know where i need to grab those tiles btw

#

no stress if you don't

spiral siren
#

oh sorry I was distracted thonkin about something

#

it's in DungeonFlow.TileInjectionRules[i].TileSet.TileWeights.Weights[j].GameObject.GetComponent<Tile>() I believe

#

yrup that's where it be

maiden elm
#

oh is it possible to put water in interior units and have that work with LLL now?

#

I remember back 8 months ago I was unable to do that

#

that and quicksand

chrome spire
#

how can I go about making it so the dungeon/interior is always different when you change a moon? Or maybe so that the percentage chance for the dungeon to that we've already been to to spawn again gets lowered?

idle ravine
chrome spire
#

oh wow thank you very much

crisp galleon
true void
#

@zenith flax I've added some custom scrap to my custom moon using LethalLib, but it doesn't seem to be recognized by LLL. A user reported when enabling Content Configuration settings for my moon, custom scrap no longer spawns and I'm not sure how to fix it

crisp galleon
gaunt hinge
tall kindle
crisp galleon
#

Oh, maybe that’s what it was

steady ingot
#

or well theres a possibility but its not workin

true void
#

If I register an item with LLL and LMPs, do I still have to have it in the Spawnable Scrap section of the Selectable Level or should that be enough? I can't get it to spawn through LLL and I'm not sure what I'm doing wrong

steady ingot
#

You are spawning them in thru LMP

#

Thats where you give it a rarity

#

I’d recommend using Planet Names in LMP

#

Just make sure you add the ExtendedItem to your ExtendedMod

maiden elm
#

I forgot about that

#

Well quicksand and water are handled by the same script afaik

#

So if one works

#

Theoretically the other would as well

north vigil
#

hey so I have an item I add to the store using LLL and checking the checkbox for it in it's SO, mostly works fine although it seems it gets removed from the store when loading the same save during the same play session, any ideas?

steady ingot
#

Ye I had similar issue before when the store item shows up 50% of the time

north vigil
steady ingot
#

Nope

crisp galleon
tall kindle
north vigil
#

Steps To Recreate:

  • Start a game
  • Check store, Holding Pen shows up
  • Quit to main menu
  • Reload same save
  • Check store, Holding Pen doesn't show up and cannot be purchased
tall kindle
#

@zenith flax there u go goat

#

Someone did the think AG_Pray

tall kindle
north vigil
#

profile code
019253a9-5886-4366-5660-60ee3f83eaac

north vigil
crisp galleon
# nimble umbra Water is a quicksand, is it?

Yes, or, well, pretty much. Same script but a bool determines if it’s quicksand or water if I recall correctly. I’d assume quicksand would work inside, but I would’ve also assumed water inside would’ve been fine in earlier versions but since something must’ve been stopping it, I wasn’t sure if that’d been fully removed or just changed to allow water but block quicksand somehow. I assume both works but didn’t want to say with certainty quicksand does since I haven’t actually seen it done.

tall kindle
#

i really need to get rid of this beta version of LLL from my dev profile lol

plush wing
#

I also made a fix for the disappearing items from the store but I also saw the exp branch not having that code anymore so I wasn't sure if I should bother making a PR for it.

tall kindle
unique geode
#

Why aren't you using the current live build of LLL?

#

🤔

tall kindle
#

Because I was given a version to test my mods in?

unique geode
#

:3

wet vortex
#

is there still the glitch where setting the moon time anything but 1.0 will use 2 days instead of 1?

tall kindle
#

yes

unique geode
wet vortex
#

yeah

#

i want to get rid of centralconfig but it's the only option for doing that

unique geode
#

CentralConfig is good if you know what options to not touch

wet vortex
#

i have everything turned off except moons, and everything in moons is default except time speed

#

i have everything else handled via the LLL config

#

actually i never turned off the dungen safeguards, but idk if turning it off would be good or bad. it spammed errors loading black mesa interior when i played earlier

north vigil
plush wing
#

I don't know.

#

Like I said, the relevant code for items was commented/removed.

crisp galleon
#

Hey @zenith flax, I was just curious if you've got a minute about the extended story logs. I know at one point there was some issues with them. Is this still a thing or might I be doing something wrong? I see mine in the terminal but can't seem to open it. I know there's another mod for custom story logs so I can just use that if these don't work so it's not a huge deal. I was just hoping I wouldn't need to add another dependency, you know?

chrome notch
#

would like to know this as well

lone mist
#

I have this bug when loading up on modded moons where (I believe) the reverb gets messed up and theres different timings for the audio for left and right ear as you can hear in this clip. It's uncommon but happens on many different moons.

#

(listen with headphones)

crisp galleon
crisp galleon
kindred bramble
#

Is there a way to Dump all items in the game with LLL's tag system? I would like to have list of items that are conductive, Metal, etc...

I want to use this data to make a spreadsheet for feeding into SCP 914 in the SCP interior.

I can do this all manually but having most of the work done for me would be ideal.

tall kindle
#

Yes, you'd have a mod output that for you in the format you'd like, lol

#

Very easy to access

kindred bramble
tall kindle
#

of course not

#

why would there be a mod that exists to send a formatted string of a specific LLL content tag, just ask uhhh

#

lass to do it

kindred bramble
#

haha

spiral siren
#

has anyone else encountered issues with LLL in the Unity editor creating one extra content tag each launch that then has to be manually removed to prevent a null deref? I'm not sure if this is an issue with how I've set things up or if this happens to everyone

#

I'm considering making a script to fix it, and the ideal solution I think would be to reimport the content scriptables, but for some reason doing so doesn't actually reload the file from disk where these stray missing content tags are not present thonk

tall kindle
#

when is the null deref happening?

spiral siren
#

upon loading into a save, it tries to merge duplicate content tags by placing them in a dictionary, but one is null and the dictionary doesn't want null keys, so the entire loading process fails and it gets stuck with the black foggy screen and interact prompt

tall kindle
#

i feel like there would be a lot of complaining if LLL was currently causing foggy screen on loading save

#

i would check if your guys' pack or something you guys are doing is doing this instead

spiral siren
#

it's not an issue on release unless we forget to remove content tags in the editor

#

perhaps most people aren't registering their ExtendedMod in editor or something?

#

we have it set up to register the ExtendedMod in plugin awake, so LLL is actually loading things as it would in the normal player

tall kindle
#

wdym you register the extendedmod in plugin awake, shouldn't LLL be handling all that?

spiral siren
#

I don't think it knows how to in editor, it certainly doesn't find the ExtendedMod for the moon

spiral siren
#

figured out that I can modify the AssetModificationBlocker in the LC Project Patcher so that it includes mod files in its ScriptableObject modification blocking

#

it seems to be preventing LLL from messing with it

sharp hill
#

for some reason my LLL config has nothing in it

#

for the moons and interiors

#

am i doing something very wrong?

#

found the issue and fixed it

fallen cove
#

How do you make The Locker https://thunderstore.io/c/lethal-company/p/zealsprince/Locker/ enemy work with LethalLevelLoader? Doesn't work if I add "Locker:100" to "Enemy Settings - Inside Enemies Spawning List" as the only enemy in that list even. Is the "Locker" tag wrong?

heady quartz
#

trying to set up an interior mod rn but running into an issue where when i go into a lobby the screen goes black and i get these errors, followed by some spam logs, noticed a LLL related issue near the top and wondered if i maybe set up something wrong there..?

nova obsidian
#

I keep getting this error with custom scrap in LLL [Error :LethalLevelLoader] Removed: 3 SpawnableItemWithRarities From CurrentLevel: Titan Due To Invalid Properties To Prevent Errors.

#

I'm trying to figure out what it's originating from but it doesn't say

ionic sleet
#

I got the same error message when I put the spawn rarities string in the wrong place

tawdry terrace
#

anyone else having an issue with moons not showing up on the terminal?

fierce onyx
#

So I have a question and I'm going to try an be as detailed as possible. I'm assigning the Company Mines interior by LCIntoTheDarkness to the mod moon Polarus by Wesley. It works just fine but the dungeon generation is enormous. I've tried tinkering with the dungeon scaling settings to reduce the dungeon size, but no matter what I set, the dungeon remains the same large size. I theorized that maybe the interior has a set size, so I assigned it to experimentation, but to my surprise, it generated a much smaller version for it. So my question is, am I doing something wrong in LLL? Or is this likely an issue with Polarus and/or the interior?

My LLL settings for the mines.
Content Config = True
Dynamic Size Restriction = True
Minimum Size Multiplier = 0.4
Maximum Size Multiplier = 0.6
Restrict Dungeon Size Scaler = 0 (tried 1 as well)

My goal was to reduce the dungeon size to about 40-60% of it's original size with these settings, but I am observing no change. I did search for others that had a similar issue with dungeons not resizing and confirmed that flipping the Dungeon size scaler from 0 to 1 does nothing for my case.

nova obsidian
nova obsidian
#

Wait so when making custom scrap with LLL

#

if you don't assign a rarity or give a rarity of 0, it throws up an error 🤔

fierce onyx
sullen coral
#

@zenith flax What exactly does LLL replace with vanilla in terms of prefabs, materials, etc.? I want to create a variant of the Mineshaft interior and want to know exactly what I can leave as stubs for the sake of filesize optimization

tall kindle
#

He made a list before, idk if we ever pinned it

#

But I don't believe he replaces any materials or anything like that

#

Water was a special case, and that was only its shader

chrome notch
tall kindle
#

Ty

chrome notch
#

from your message lmao

tall kindle
#

Oh it was? Lol

#

I completely forgot I wrote what gets replaced from batby

zenith flax
#

Someone bother me if it broke

wet vortex
#

nothing seems to be broken with it

#

the only thing that might act weird is the 8% chance for a hoarder bug infestation but i haven't seen it cause any problems

digital breach
#

resilient code W

crisp galleon
#

only broken thing I'm seeing is the moon info text on the main monitor still doesn't scroll 😔 (still not 100% certain that was a qol feature LLL added but even if it was I'm just messing with you)

wet vortex
#

i actually got a hoarding bug infestation on a modded moon/interior yesterday and there were no problems, so LLL is fine

lyric dagger
#

quick question,
is LLL currently able to make modded moons for current version? I'm a little out of the loop for LC modding

crisp galleon
lyric dagger
#

alright cool, thank you, I've been meaning to update an older moon mod I made and I wasn't sure

nimble umbra
#

At the beginning there was Lethal extension with lethal sdk made by holographic wings

#

But it was quickly abandoned after batby started doing its thing

#

But LLL was inspired by LethalSDK

#

Without lethal sdk lll will never come to existence

umbral oracle
#

HDLethalCompany and LLL don't mix well together upon resetting the lobby.

nimble umbra
#

I don't recommend using HD lc since its not updated for a very long time

umbral oracle
nimble umbra
#

Nope

steady ingot
umbral oracle
steady ingot
#

That I dont think so, maybe ask about it in its thread #1277558798726205441

storm lance
#

Hello, i can't find any info so i'll ask here : What is sort by 'tag' ? What is a 'tag' and how does it work ?

plush wing
#

The first thing in pins of this thread.

storm lance
#

Alright, but it shows for items tags and i don't understand how it relate to the terminal moon Sorting ?

crisp galleon
storm lance
#

Oh, i didn't see that, thanks

digital breach
#

Anyone familiar with making interiors/dungeons for LLL, if you add the electric box to your interior are you adding your powered lights to either of these lists in RoundManager? Is there a separate collection that LLL maintains for your powered lights or is this done independently by each interior?

#

I'm guessing if you were following vanilla logic you'd be tagging your dungeon's powered lights with the "PoweredLight" tag?

crisp galleon
#

I will say I haven’t touched interiors or code yet but I do have lights on a moon that shut off with apparatus pull and I think that’s done purely through using that tag somehow

sullen coral
#

I believe @gaunt hinge does the same

gaunt hinge
#

yea

prime zealot
#

is there a way to find dynamic level tags in my modpack? I think some moon mods I have added, added custom tags but I don't know what they are since they didn't list them on their readme's

#

There a file or something idk

digital breach
# gaunt hinge Sounds about right

hmmm, alright i think I need to do some unity exploring then. The RoundManager FlickerLights method doesnt seem to work for me with most (if not all) custom interiors

spiral siren
#

if it works there, then it's an interior mod issue and you gotta report it to every dev lol

#

I don't think there's any reason your light flicker call shouldn't work on modded interiors if they're set up right, but maybe there's some check that I forget about

digital breach
digital breach
#

not sure if that's more than the average amount of powered lights for an interior but it does seem like a lot, and there's a handful of null lights in the list (this is the lights list not the animators list)

zenith flax
digital breach
young acorn
plush wing
#

It's still around.

#

Just less likely than before.

spiral siren
#

Gets a reference to a component of type T on the same GameObject as the component specified, or any child of the GameObject.

spiral siren
#

Not sure what's up with the nulls, probably @main ravine has some scuffed copied prefab somewhere lol

#

although some may actually be intentional, I forget

digital breach
#

its the only interior i've checked with unityexplorer so far so i'll need to see if it happens anywhere else

spiral siren
#

we did have some animations tied to the lights in the past, not sure if any stuck around after we switched to an apparatus event

#

I haven't looked at Black Mesa in a good bit since I've been busy with OpenBodyCams stuff, but I am close to being done with that I think

digital breach
#

yeah no worries, i'm just trying to rap my head around my goals for the ghost codes lighting event

supple cape
#

Hey, I've got a problem with LLL.
I need to put it on for modded moons and maps.
But as soon as I put it on, all the vanilla moons disappear from the terminal.
On the other hand you can grab I know with titan for example it says it costs 700, but I haven't tried to go there.
But not necessarily knowing the game by heart if there is a way to restore the display of the moons in the terminal I want to know.
Thank you

spiral siren
#

ya and the similar array getter works the same

spiral siren
digital breach
#

it seemed to be the overhead ones weren't but i'm not 100% sure. Turns out I need to update lethal to get rid of the fog lmao

spiral siren
tall kindle
#

i mean its very misleading, i've also never had a situation where i didnt want that, but super misleading

zenith flax
#

I don’t like that it’s not implied in the function name

spiral siren
#

yeah

#

making that clear would make the method name pretty long

zenith flax
#

especially when doing a getcomponent + inchildren is very simple

spiral siren
#

Unity devs seem to be allergic to that

tall kindle
#

GetComponentsWithChildren idk

spiral siren
#

and concat would be ugly too lol

#

cleanest thing would be with a collection expression and even [thing.GetComponent<OtherThing>()].Concat(thing.GetComponentsInChildren<OtherThing>()) is very stinky imo

spiral siren
#

or GetComponentsRecursive perhaps

#

but experience has taught me not to trust the names of Unity methods anyway, I always check the docs or test things in UnityExplorer if they're not totally clear lol

tall kindle
#

fair

#

reminds me of Physics.SphereCast not really being a sphere but more of a capsule and not being able to figure out how to use Physics.CapsuleCast, though both could be a skill issue on my end

spiral siren
#

do you mean SphereCast is a capsule with the capsule oriented so the height is in the direction of the ray? thonk

#

or..how is it a capsule?

tall kindle
#

well, think about a sphere collider in unity, you cant scale it in a direction, but with a capsule you can, when doing a SphereCast i was able to scale it in a direction, so that really confused me lol

#

and then i tried doing a CapsuleCast and just couldnt get it to actually do anything so i just went back to a raycast

spiral siren
#

sounds like you were looking for OverlapSphere maybe

#

SphereCast is like sending a sphere collider forward a certain distance and recording what it hits

tall kindle
#

weird, when i was testing it with the laser hazard it actually completely how i'd expect a capsule collider to act

#

actually i still am using it lol

spiral siren
#

I mean, it would return all the same colliders that a capsule collider would hit if its upward direction was instead in the direction of the ray you're casting

#

because a sphere cast in some sense "stretches" that sphere forward

#

but I believe it does so in a way such that the things that sphere would hit first as it is being "moved" forward appears first in the list of colliders

tall kindle
#

huh

spiral siren
#

(though that is not totally guaranteed afaik)

tall kindle
#

thats interesting, i guess if it worked how i imagined then it'd just be OverlapSphere duplicated

spiral siren
#

capsule cast would allow you to stretch it upward and in the direction of the ray

spiral siren
#

as far as I understand it, that's what it is, although probably more mathematically correct than stepping a sphere would be hopefully

tall kindle
#

i imagined it exactly how an OverlapSphere is, just one big Sphere at the center lol, i didnt think that it duplicated the sphere towards the direction of the ray

#

which also brings me to something i couldnt figure out

spiral siren
#

wait, then what did you think the distance of the spherecast was for?

#

or.. I guess it's an optional parameter, so maybe you didn't notice it

tall kindle
tall kindle
#

but for some reason, the player crouching just didnt seem to move the colliders of the player down and they were still being hit

digital breach
tall kindle
spiral siren
#

maybe your sphere cast was too thicc?

plush wing
#

Nom nom.

spiral siren
#

perhaps anyway

tall kindle
# spiral siren huh, that's odd, it definitely does lower the box collider

it does because traps like the seamine from surfaced u can crouch under, but i just couldnt manage to replicate the player dodging the ray by crouching no matter how much i tried moving the laser above tthe player so that it would BARELY touch the player's colliders just incase it was a small difference lol

spiral siren
#

either that or I fiddle with the settings so that they cull

tall kindle
#

in the end i did this 💀

spiral siren
#

(which only affects perf in editor because we don't always run CullFactory there)

zenith flax
# spiral siren but then you have to allocate twice or concat

If your dealing with optimising allocating you probably wouldn’t be using a workflow like that anyway

At least in my head it’s weird because in those situations there’s usually a setup where there’s a dedicated collection parent with all the relevant objects inside it, so having said collection parent also be involved feels off

digital breach
spiral siren
#

more complexity + extra allocations though

zenith flax
#

Forsure but I guess my argument is that the weirdness should be avoided, not simplified

#

It feels weird because it is weird

plush wing
#

Was the item terminal nodes disappearing after lobby reload ever looked at or not?
It has been a while since I last saw people complaining about it.

#

Nodes or items themselves, one of the two, I don't remember.

digital breach
#

interesting that the vanilla interior is the one with the least powered lights lol

spiral siren
#

would be nice if you didn't have to check the docs for sure lol

#

looking at FindObjectsOfType vs FindObjectsByType

#

🤪

spiral siren
#

lighting in Black Mesa is pretty extreme in the other direction, it even has two lights for some fixtures, I'd like to remove some or all of those extras at some point if possible

digital breach
spiral siren
#

it's a large part of the reason why it pretty much requires CullFactory, although that could be helped by reducing the light fading range

digital breach
#

yeah that makes sense

#

I think going forward I'm going to avoid using RoundManager's FlickerLights method and try to write something myself. I have a feeling calling the vanilla method so frequently might be breaking the animator or something

#

also calling the vanilla method as I am now means calling this line of code (even though I have flashlights affected set to false) a bunch which can't be good on performance FlashlightItem[] array2 = UnityEngine.Object.FindObjectsOfType<FlashlightItem>(); nvm, there is a yield break before this so we're good there

tall kindle
#

i just knew one could let me choose parameters

hexed mesa
#

My gut tells me that one is ordered and one is not

#

From me memory, besides the parameters

zenith flax
spiral siren
#

the names definitely indicate that to you for sure

tall kindle
#

wdym select?

#

lol

spiral siren
#

the parameter that tells whether to sort

#

sorting is slow

tall kindle
#

ohhh ic

digital breach
tall kindle
#

if you dont care about order i assume so

spiral siren
#

unless you know you need sorting, always use FindObjectsByType(FindObjectsSortMode.None)

digital breach
#

I mean if I want to order I usually do so after I have my collection

spiral siren
#

yeah

tall kindle
#

time to use FindObjectsByType in Update, thanks for the tip zaggy!

spiral siren
#

instanceID sorting is not terribly useful

plush wing
#

And then some scattered around this discord blaming Terminal Formatter for hiding items.

digital breach
#

oh yeah i've had people blame my terminal mod a few times too

tall kindle
#

if you havent blamed a terminal person in your modding career have u really modded this game?

plush wing
#

Well, I am always blamed whenever LGU gets something new made because there were already other patches on it so lol.

main ravine
tall kindle
#

500 lights there shouldnt be any more that were null

#

would be easier to make an editor script that pointed you to missing's than looking through all those lights, lol

digital breach
#

here give me a sec i'll give you an accurate count of everything that is null

zenith flax
spiral siren
spiral siren
#

would be curious to find out, actually

digital breach
#

here's the counts I had

[Debug  :ghostCodes] allLightsFixed Count: 433```
#

so 27 null lights?

spiral siren
#

looks like that list isn't even used actually

digital breach
#

Yeah I think I’m the only one that uses it right now

spiral siren
#

what do you use it for?

digital breach
#

Changing the light color during the light flickering event

#

Although I realized recently I need to cache the original color if I’m gonna keep doing that

spiral siren
#

you'd be better off constructing your own list in a hook on the method that populates the vanilla lists, and use AddRange(animator.GetComponentInChildren<Light>()) so you actually get every light (and have no nulls)

digital breach
#

I also found using my own coroutine to set the animator to “flicker” is working a lot better than using the one in roundmanager

spiral siren
#

if a light animator has multiple light children (as the ones in Black Mesa do), then it won't work

digital breach
spiral siren
#

well, it should be your own separate list, but the lights list in vanilla doesn't catch all the lights like I mentioned

digital breach
digital breach
#

It’s also easier to use an existing list than figure out which lights are all in the interior lol

spiral siren
#

not sure if that's possible

#

next best thing is to get all children of a light animator, rather than just one

spiral siren
#

I didn't think it involved changing light colors

#

and... looks like you can tell the flickering method to not mess with flashlights?

digital breach
spiral siren
#

the flicker animation turns the lights off and on multiple times though

#

it's not the same thing to do it manually with the lights

digital breach
digital breach
#

The lights only change color once when the event starts and once when it ends

#

And it’s an optional thing in the config since the color change doesn’t always look great

spiral siren
#

hm, I see

#

yeah, sounds like something you would want to transition, but that could be quite slow

#

especially on black mesa 😅

digital breach
#

yeah i'm kinda contemplating removing the config option & changing color stuff

#

and if I do keep it I would rather build it into the new coroutine that calls the animator

digital breach
#

anyway, I appreciate all the help from everyone with the custom interior questions 🙂

tall kindle
#

yw

spiral siren
#

I'm curious, how does everyone get their moons or interiors to load in the editor? as I understand it, a lot of people have their own hacks, but LLL doesn't actually load any of that automatically

I've created a patch that makes LLL load any ExtendedMod or ExtendedContent in the assets automatically, so if for example you're using a dummy lethalbundle or something to get your moon or interior to show up, that shouldn't be necessary

#

Unsure if Batby is interested in merging that since I think it was suggested before that it do something like that, but if it is within scope I'm down to make a PR for it

crisp galleon
#

Moons load fine, or at least they used to but I think I broke the player controller script in my project somehow. That’s not an LLL thing though. I do think I’ve seen people say interiors require a bit of a process though.

spiral siren
#

do you have to set things up to make the moons load, like adding them to the list of selectable levels in StartOfRound/RoundManager (I forget which it is)?

#

the Black Mesa moon doesn't show up automatically in our project at least

#

fun, apparently Unity doesn't even support loading a scene that's in an asset bundle in the editor's play mode

#

or not with the usual methods that is

crisp galleon
#

It’s been a really long time since I’ve done it, but I think the lethalbundles were just stored in a folder I created within LethalLevelLoader in the project

spiral siren
#

right, that was what Plastered was doing with Black Mesa before we put it on git

#

the asset bundles were too big for that

#

not sure if that was the only reason, but it's certainly not ideal for that to be necessary

#

not sure how loading an asset bundle with asset paths duplicated against editor assets works

#

if it works for others then I suppose that's fine, but I'm gonna see if I can get loading these scenes in editor to work with a lil patch

prime zealot
#

Do dynamic level tags get added to each other? An example is Forest:5. If I also have Valley:5 on the same intieror, will it's weight be 10?

crisp galleon
#

I think it just uses the highest one

spiral siren
#

^

crisp galleon
#

In this case they're the same so 5

prime zealot
#

Dang, I hoped they would've added together

crisp galleon
#

Would be cool to have more options, but that's probably a whole thing.

#

Some overriding stuff for example because I have an interior idea that I think would fit most "valley" moons but not really Vow. Not a big deal and not a great example but 🤷‍♂️

tall kindle
#

there was a PR made for that feature but was never implemented

crisp galleon
#

Yeah, I figured. It sounds cool but I can imagine being difficult to get working well (haven't seen the PR).

tall kindle
#

its mostly just a thing that wasnt wanted afaik

zenith flax
#

I agreed that it was a valid problem, you pitched a potential solution and I said I wasn't a big fan of it and you made a full PR for it anyway

#

So yes I rejected it 😭

tall kindle
tired solar
#

I was going to do it anyways, which it will be in ContentLib, though back then I was planning on just making it work whether or not it was accepted to LLL by forking or whatever

smoky ocean
#

Custom ambiences

#

Is it possible?

tall kindle
smoky ocean
#

Okay thanks

zenith flax
#

brother what on earth does this have to to with me

violet coyote
#

oh whoops wrong channel

#

sorry!

zenith flax
#

Thanks everyone for 7 millie 🙏

main ravine
nimble umbra
#

@zenith flax is there any eta for lll new update?

#

Im looking forward to experiment with custom footsteps

#

But as far as i know, this feature isn't working yet

umbral oracle
#

I'm assuming there's still no fix for LLL causing the 2nd day to be skipped when decreasing a moon's time, right?

wet vortex
#

not yet

#

central config has the ability to slow down time while not skipping the 2nd day

#

i'd use that with only the time settings enabled and everything else off

#

there are some people looking into fixing it themselves though, so hopefully it gets figured out sooner rather than later

umbral oracle
#

Thx for letting me know, I'll use that

umbral oracle
#

Isn't

#

CentralConfig's timing inaccurate

wet vortex
#

what do you mean

umbral oracle
#

Lass believed the time of a moon was something else other than 13 min iirc

tall kindle
#

she might've fixed that but she defaulted everyday's timer to about 16 minutes cuz she thought a day was 16 minutes

wet vortex
#

didn't know about that

umbral oracle
#

Oh my god wtf

#

How am I supposed to do the math here

#

Why isn't it just 1 by default like LLL...

slim wind
#

🙃

true void
#

Hello, I would like some help, is it possible to set the Level Loader configuration for the moon to have any random interior even if it is a mod? something like "any"

I also wanted to do the same with the mobs, not specifically select which ones can appear and their weight, just that it's all random and anyone can appear.

#

Scrap too =p

crisp galleon
#

Unfortunatly, interiors control what moons they spawn on, not the other way arround. You could add "Vanilla" and "Custom" to the interior configs in the section for level tags and that will make that interior spawn on all moons. Unless the mobs/scrap have their own config I think you'd have to add them into the pools for each moon individually.

crisp galleon
#

Dynamic Level Tags List would be it. Manual Level Names List would be like "Vow" or "Rend" or any other moon name.

main ravine
#

Black Meaa I've always wanted to be 1.5-2x day length

#

To give time for exploring and whatnot

chrome notch
#

yes i would also love to have this

crisp galleon
#

It's a vanilla thing so either Batby or some other dev would have to change how that function works. It's kind of beyond me though. I did try to look at the script and it looked more complicated than I would've thought, but I only skimmed briefly.

#

A skilled dev though could probably write a mod that patches that function and then we could use it as a dependency.

chrome notch
#

i mean, it's already been done (central config). it's just that the mod also includes other things that people probably don't want

#

so it's not very easy to just slap it on as a dependency

crisp galleon
#

Ah. I see.

wet vortex
chrome notch
#

it would be very nice if the time fix was uploaded as a separate mod

wet vortex
#

it would, but that probably won't happen untl someone else figures it out

chrome notch
wet vortex
#

yea i saw it in the coderebirth thread

#

thanks though

crisp galleon
#

Thanks! I saw it in the mod showcase channel

#

Might have to make it a dependency. I’d originally wanted one of my moons to be slightly longer.

wet vortex
crisp galleon
# wet vortex are you able to set the day speed manually in your moon's assetbundle? cus if yo...

Yeah, every moon (vanilla and custom) has a field for the day speed multiplier. They all just have it set to 1 since messing with it causes issues. I've tested adding this to my testing profile and using LLL to configure the multiplier now works fine, so theoretically I can change the value in my Unity project, build the bundles again, and push an update and it'll just work as long as this is a dependency.

wet vortex
#

that sounds right

slim wind
#

forgot to ping you earlier

crisp galleon
slim wind
#

😅

sullen coral
unique geode
#

It's already been in the pack for a bit now

#

XD

#

Cus mrov made it a dependency for WR when he released it

sullen coral
#

Ah

umbral oracle
#

Do I need to include the underscore in the scrap's name, or can I just register it like... AC UNIT:100 for example in the scrap roster of a moon

sullen coral
#

This would be a question for the mod dev of the item, not for here

#

Since it depends on how their item interacts with LLL and if it can be specified in it

#

And if so, what the internal name is

umbral oracle
#

Iirc it's that

#

Imperium doesn't show underscores at least, I think

zenith flax
#

LLL will remove and/or ignore certain special characters which may or may not be relevant

umbral oracle
tender jolt
#

Is there anything I can do about this?

crisp galleon
tender jolt
#

but what it actually does is

#

when you type in the name of the rocket launcher in the store
example: "RocketLauncher"
No message appears and no prompt is given to purchase

#

I'll try the terminalconflictfix

tender jolt
#

That literally fixed it

#

Thank you so much

maiden valley
#

how can i prevent interior desyncs when using the config from LLL :(

#

i keep getting desyncs on march

zenith flax
#

In theory should be from a different mod

#

I haven't had a solid report of desync in a long time

maiden valley
#

could it be generic interiors? or lethal quantities? given i have all interior settings turned off on LQ

wet vortex
#

that's the only reason i can think of that causes interior desyncs

maiden valley
#

yea ofc

#

i think i figured out why tho

wet vortex
#

would you mind dropping a modlist/code

#

oh what do you think then

maiden valley
#

i was using LQ to change march's interior size multiplier to 1.7

#

but using LLL to actually assign the interiors

#

because LQ isnt letting me assign interiors for some reason

#

thats a whole different can of worms though

#

#1213985212686532638 message

crisp galleon
#

I liked Lethal Quantities but never used it in depth. But I’ve heard people say it’s been breaking with recent game updates.

acoustic sonnet
#

the interior settings are 100% intact tho

warped pilot
#

can someone remind me how to check in the logs where i broke the LLL config? got logoutput.log open

#

mustve done something wrong, since it reset. thankfully had a backup, but itll just keep doing that til i fix it ofc

honest blade
#

Hi, I'm trying to adjust the ordering and grouping of moons in my modpack with LLL, I have it sorted based on price, why are attenuation and volition not grouped? They are set as free moons. Is there a way to custom order and group things?

zenith flax
#

There is no way to manually adjust them via LLL no. That result is strange however, Any chance you are using any filters?

crisp galleon
zenith flax
#

Wouldn't completely suprise me

honest blade
maiden valley
#

@zenith flax does LLL's api let you check for interiors on a name basis? I don't know how it registers interiors, or if I even need LLL's api to check for the current interior name, but I wanna do something like this for modded interiors:

if (currentDungeonType == 4)
        {
            num += 6;
        }
zenith flax
maiden valley
#

i just dont know how lethallevelloader indexes interiors

zenith flax
#

you can't do anything like this by index

#

it's not a constant

#

I have stuff for this though

#

@tall kindle do you have anything source code-wise for the on extendedmod loaded event type shit

maiden valley
#

i apologize btw, im still learning yeah

tall kindle
zenith flax
#

do you know how events work yet

tall kindle
#

its absolulely disgusting since i copypaste a lot but i can send the link for it rq

zenith flax
#

tyvm

maiden valley
#

for anything

zenith flax
#

This is super explicit in the sense that you are very specifically calling that function

maiden valley
#

yeah

#

i did this in my clay surgeon mod

zenith flax
#

events on the other hand are more generalised. With events you can instead create an event and "invoke" it. This means other functions can "listen" to that event and when it invokes anything listening to it will run

#

FunctionA just yells out to the crowd that it's happening for anyone who cares to listen

maiden valley
#

is this better practice?

zenith flax
#

Overall yeah in many ways, But you'll need it for what I'll show you

#

for a comparable reference your harmony prefix patches and postfix patches more or less work like events. a postfix function would be listening to when the base function is being called

#

where-as the base function doesn't know nor needs to know that anyone is listening

#

Why this matters

To do what you want LLL has two event based steps to get what you want

LLL provides a "callback" (basicially same term as an event) whenever it loads an ExtendedMod or LethalBundle. Even better it lets you provide an author name or mod name to filter said results

#
    private void Awake() {
        AssetBundleLoader.AddOnExtendedModLoadedListener(OnExtendedModRegistered, "XuXiaolan", "ImmersiveScraps");
    }
    internal static void OnExtendedModRegistered(ExtendedMod extendedMod) {
        if (extendedMod == null) return;

(From Xu's code)

What this is doing is just being like "Hey LLL if you ever load a mod with the author name of XuXiolan or the mod name of ImmersiveScraps can you please let me know about it"

#

So now you can grab whatever mod you want

#

from this you can grab whatever stuff in the mod you want too, which in your case is a dungeon

#

ExtendedDungeonFlow contains this cool thing

    [System.Serializable]
    public class DungeonEvents
    {
        public ExtendedEvent<RoundManager> onBeforeDungeonGenerate = new ExtendedEvent<RoundManager>();
        public ExtendedEvent onShipLand = new ExtendedEvent();
        public ExtendedEvent onShipLeave = new ExtendedEvent();
        public ExtendedEvent<List<GameObject>> onSpawnedSyncedObjects = new ExtendedEvent<List<GameObject>>();
        public ExtendedEvent<List<GameObject>> onSpawnedMapObjects = new ExtendedEvent<List<GameObject>>();
        public ExtendedEvent<List<GrabbableObject>> onSpawnedScrapObjects = new ExtendedEvent<List<GrabbableObject>>();
        public ExtendedEvent<(EnemyVent, EnemyAI)> onEnemySpawnedFromVent = new ExtendedEvent<(EnemyVent, EnemyAI)>();
        public ExtendedEvent<(EntranceTeleport, PlayerControllerB)> onPlayerEnterDungeon = new ExtendedEvent<(EntranceTeleport, PlayerControllerB)>();
        public ExtendedEvent<(EntranceTeleport, PlayerControllerB)> onPlayerExitDungeon = new ExtendedEvent<(EntranceTeleport, PlayerControllerB)>();
        public ExtendedEvent<bool> onPowerSwitchToggle = new ExtendedEvent<bool>();
        public ExtendedEvent<LungProp> onApparatusTaken = new ExtendedEvent<LungProp>();
    }
#

A bunch of misc gameplay events

#

with this you can listen to when a specific dungeon does a specific thing

#

big text dump so let me know if any of this doesnt make sense or is the wrong vibe

maiden valley
#

hey sorry about that, was ingame

#

ahhh

#

okay i see

#

thank you for the info :)

zenith flax
#

LethalLevelLoader.LevelManager.CurrentExtendedLevel and LethalLevelLoader.DungeonManager.CurrentExtendedDungeonFlow are also global ways of accessing the current ones

#

But yeah in general you can't ever do stuff based on index id's or anything because mod updates or modpack updates will change that

#

handling modded items in saves is a nightmare

#

also in LLL vanilla content is a mod too if you ever need to access that

maiden valley
#

is it possible for me to replace the vanilla moon scenes

#

with LLL

quiet stream
#

is there a tag moon developers widely use for moons of theirs with a lot of green? like, "Lush" or "Jungle" or smth

prime zealot
#

forest

#

oh nvm

maiden valley
#

might help to reference these?

#

so Valley

quiet stream
quiet stream
#

I was looking thru them for these

crisp galleon
zenith flax
#

when did toolbox hit a million downloads lmao

crisp galleon
quiet stream
#

Might not end up using valley for the super green ones though, their green is way more saturated than the grass on valley moons

#

red and yellow ones will go on valley since the vanilla tree's leaves and a few of the vegetation props are of similar colors

brisk schooner
#

This looks like LLL is not handling GameObject.GetName returning null(?) and throwing later when trying to use it

#

Or maybe one of the objects in the list is null? I'm not sure

south hawk
#

[Error :LethalLevelLoader] Removed: 8 SpawnableItemWithRarities From CurrentLevel: Adamance Due To Invalid Properties To Prevent Errors.

#

What does he keep deleting?

#

Scrap Settings - Scrap Spawning List
This is how I understand the setting for the appearance of only this scrap on a certain moon?

honest blade
#

Sometimes when I load some moons I get softlocked with the ship doors stuck closed with this error

maiden valley
#

i found out how to make the vanilla moons reroute to custom ones on landing

#

sadly i cant figure out how to make it switch back to the vanilla one in orbit

#

but its progress

maiden valley
#

nevermind i just wasnt updating the monitor after round end lol

crisp galleon
# maiden valley

I actually really like that! Maybe I'm weird but I liked that Dine had a fire exit that you needed tools to get to from outside. Gave the tools a use and I guess it prevented our group from splitting up right away to go to different doors, plus it was then great if you were lost deep inside and found the fire exit. Also, in this case the 2 fire exits is cool since only March has multiple. I also don't like the current setup of main being on the little hill bunker thing and the fire exit on the main structure. That just doesn't feel right to me.

chrome notch
south hawk
#

And on vanilla, the main entrance looks like it should be a firefighter

crisp galleon
chrome notch
#

i just mean the concept of replacing a vanilla scene at runtime

crisp galleon
#

Ah, yeah.

maiden valley
#

ohhh shit

#

yeah i did this way differently

#

i replaced the entire scene

#

it looks like he just changes the objects in the scene to use the new assets

#

i like

#

um

#

lol

maiden valley
#

um ignore that obvious line misplacement in the middle lol

#

i pasted it on the wrong line

umbral oracle
#

When will the issue /w custom scrap be fixed

#

I have bad memory so Idk if you have something going on irl but yeah

tall kindle
#

What issue with custom scrap

umbral oracle
#

When you enable content configuration on a custom moon, all its custom scrap disappears

#

E.g. Polarus

tall kindle
#

Isn't that because wesley fucked up his scrap?

#

@gaunt hinge ^

umbral oracle
#

Wtf, now it's on Wesley??

#

I was told it was because of LLL's issue

crisp galleon
#

insert always has been meme

#

(Technically it could've been an LLL issue at some point but now it's on Wesley if you're encountering it with his stuff)

tall kindle
gaunt hinge
#

Nuh uh
Blame me
It'll be fixed when I update

tall kindle
#

I knew it was generics fault

chrome notch
#

of course it's monty's fault

south hawk
#

[Error :LethalLevelLoader] Removed: 220 SpawnableItemWithRarities From CurrentLevel: EGypt Due To Invalid Properties To Prevent Errors.

Is this what you mean?

zenith flax
#

@maiden valley can’t rn but I’ll show you how to do proper when I can

maiden valley
zenith flax
# maiden valley this is what i have atm i have no idea if this is good practice at all but when ...
        internal static ExtendedLevel referenceToMyNewDine;

        [HarmonyPatch(typeof(StartOfRound), nameof(StartOfRound.Start))]
        [HarmonyPostfix]
        private static void StartOfRoundAwake_PostFix()
        {
            foreach (ExtendedLevel extendedLevel in LethalLevelLoader.PatchedContent.ExtendedLevels)
            {
                if (extendedLevel.SelectableLevel.sceneName == "Level6Dine")
                {
                    extendedLevel.RouteNode.displayPlanetInfo = referenceToMyNewDine.RouteNode.displayPlanetInfo;
                    extendedLevel.RouteConfirmNode.buyRerouteToMoon = referenceToMyNewDine.RouteConfirmNode.buyRerouteToMoon;
                    extendedLevel.SceneSelections.Clear();
                    extendedLevel.SceneSelections.Add(new StringWithRarity("MyCustomDineSceneName", 100));
                    return;
                }
            }
        }

see if this works

maiden valley
#

ah

zenith flax
#

Unless you wanted your selectablelevel to be used instead too?

maiden valley
#

well

#

yes

zenith flax
#

ah ok

#

momento

maiden valley
#

its a rebalancing mod and it also changes curves and spawns and stuff

#

so i was just replacing the entire selectable level

zenith flax
#

making me open unity

maiden valley
#

sorry 😭

zenith flax
#

@maiden valley edited code above

#

instead of copy pasting values between them you can instead just redirect the terminal

maiden valley
#

bah, its no good
just continues to load the vanilla scene
i had to do "Start" instead of nameof(...) because its private and it wasnt letting me access it

#

but i would much prefer to do something like this because while i did get the weather to sync i think it broke with stuff like WeatherRegistry which is a nono

nimble umbra
#

i need someone to make a fork with working custom footsteps because yes

maiden valley
# slim wind did it? 😳

also yes, but its bc i was changing currentWeather of the selectedlevel and i think it was conflicting with weathertweaks

#

it was causing Weather: to show twice in the planet summary after landing

#

ill try to get a screenshot

maiden valley
#

ive noticed that with weathertweaks installed it only shows the incorrect weather sometimes

#

otherwise its always correct

#

it looks like it applies my weather when landing and then immediately after it applies weathertweaks causing the conflict

slim wind
#

if you want to change weather in Registry use WeatherRegistry.WeatherController

maiden valley
slim wind
#

it should be logging any changes that you make

#

hmmm

maiden valley
#

let me see

#

i meant "did nothing" as in no weather changes happened in game

slim wind
#

you're changing the weather while in orbit or after starting the ship?

maiden valley
#

after starting the ship

#

oh

#

i tried this i meant *

#

retyped that wrong

#

this is called after StartGame

#

should i be doing it in orbit instead

slim wind
#

I'm pretty sure I've made my system with assumption that those changes are done in orbit, but I'd have to double-check if your scenario would work

maiden valley
#

ah

#

should i just do a postfix for setplanetweather in startofround

#

or whatever its called

slim wind
#

you could call that then

#

sadly I'm not home right now, but I'll be happy to check your code and help you later 😅

maiden valley
#

ahh

#

nw

maiden valley
#

i got it working 😭 sorry for the trouble batby, you were an amazing help thank you so much for this

#

you're awesome batby tysm

slim wind
maiden valley
#

well it doesnt matter now, i dont have to change the weather at all with batby's solution :P i still appreciate the help though hehe, but there should be no errors with ur mod now from my testing

slim wind
#

this is when i'm using WeatherController after landing

slim wind
#

if you get any issues with Registry, hit me up 😇

maiden valley
#

you're too kind!!

maiden valley
#

why is LLL forcing my level's hazard level to be A-?

#

i have tried setting it to A+ and S but it just sets it to A- ingame on the hud

#

does it use some kind of algorithm for calculating hazard levels?

zenith flax
#

yeah, in the extendedlevel somewhere you can manually turn that off

maiden valley
#

ah, i see

#

@unique pike that is why

#

im a liar Lol

unique pike
#

ohhh

maiden valley
#

OH and there is a level tags list