#Lethal Level Loader [Custom Content Loading API]
1 messages · Page 29 of 1
sorry to butt in but im too happy to stay shut, after updating wesley's stuff its gone down to 11 gigs, seriously thank you batby for this hot load stuff
Despite the issues encountered, I cannot deny that an incredible optimization has been noticed when entering the updated custom moons.
The work you have done is noticeable and I appreciate all the effort you put into achieving it.
I look forward to your updates and the new features of this great API, which is now a pillar for the community.
I got this issue @zenith flax , it'll get stuck like this until we route to other moon then going back
known bug, being worked on
smexy devs
Apologies for the inconvenience
I just tried using the mod without the 2 lines of code checking for host and it seems like everyone else can pull the lever now, I don't know if this causes any other issues though.
you're gonna hate me, but is it possible for me to conditionally hide/unhide my lethalbundle in the context of moon-making from LLL @zenith flax
that or registering the bundles into LLL myself?
why hide it
it might be kinda pointless to do with LLL's new hotloading stuff but that's just how i've been doing stuff in CodeRebirth, and galetry gave me a fun-ish idea to try that'd fit in decently well
am i on drugs or did you just type teh same thing twice
how am i meant to hide a file
ohh thats what u meant
i meant like, I know LLL auto loads those lethalbundles, is there a way for me to make it conditionally load that bundle by just not giving it to LLL or something similar?
why
like i said, while probably not as useful as it would've been with LLL's hotloading update, it's just how I've always done every feature, an on/off option.
I haven't gone deep into making moon yet so I don't actually know how much of the overall moon is hotloaded
you can but i don't know if LLL handles it well if you tried to mess with that in menu or anything
i have a way to make it unroutable too
i think..
then with that, since moons are made up of multiple bundles, is it possible/normal to have the bulk of the size on the bundle you hotload then? cuz if so then i can settle with that and just make it unroutable etc
yeah thats how the hotloading works
for most moon releases like 95% of the content is in the hot-reloadable bundle
ah okay then that should be fine
i can figure out the unroutable etc stuff from looking at the github, i can probably find it snooping around ExtendedLevel
Hi! What does "Require Matches On All Possible DungeonFlows" exactly do?
It left me a bit confused (might be cuz english's not my first language?)
hey, how can I fully reset LLL's config file?
You can delete it and it’ll regenerate next game
thank you!
Yo I could still use some help with this if anyone can https://discord.com/channels/1168655651455639582/1333690499558674432
I'm trying to make a config file for a LLL scrap mod I have, but when I try and build the AssetBundle, I get an error saying The type or namespace namespace 'Configuration' does not exist in the namespace BepInEx. Which is odd, because I have a reference to it, and my software recognizes it with no issues. Does anyone know what I might've done wrong, or just generally how to go about making a config file? I've found several different links and tried to follow them, but haven't wound up successful yet.
using BepInEx;
using BepInEx.Configuration;
namespace PikminScrap.Configuration
{
internal static class PikminScrapConfig
{
private const string CONFIG_FILE_NAME = "PikminScrap.cfg";
private static ConfigFile config;
private static ConfigEntry<bool> funnyDoomsdayApparatus;
public static void Init()
{
var filePath = Path.Combine(Paths.ConfigPath, CONFIG_FILE_NAME);
config = new ConfigFile(filePath, true);
funnyDoomsdayApparatus = config.Bind("General", "Realistic Doomsday Apparatus", false, "Makes the Doomsday Apparatus more Doomsday Apparatus-y.");
}
public static bool FunnyDoomsdayApparatus => funnyDoomsdayApparatus.Value;
}
}```
I thought the BaseUnityPlugin already provided a ConfigFile field.
I have some basic familiarity with Unity and programming... but I'm not entirely sure what BaseUnityPlugin is lol. If I remove the BepInEx.Configuration reference, ConfigFile and ConfigEntry break. Similarly, trying to build also gives errors saying The type or namespace name 'ConfigFile/ConfigEntry<>' could not be found. So if BaseUnityPlugin is an automatic thing, it doesn't appear to be working
BaseUnityPlugin is what the Plugin class is when you're using a template from BepInEx.
Ah
From the looks of it, it seems like my class doesn't inherit Plugin... and trying to make it do so just made unity crash when I built the bundles so... uh oh
I didn't mean to make this class inherit BaseUnityPlugin, lol.
Since this class is for config stuff, you will have to make another to be a BepInEx plugin.
i see a potential idea, i go for it whether it seems like it works or not lol. I should stop doing that
So my guess is that your project isn't built for BepInEx environment so it doesn't have the references to the relevant assemblies.
Thus why you couldn't build.
Because coding wise everything seems fine.
My software does actually recognize the BepInEx.Configuration without issue, but I'm guessing that's not tied to the project in that case?
yeah
Hmm
The csproj should have the references then if it's not complaining?
But it is when building.
Yep
And how's your csproj right now?
When you say csproj, what do you mean specifically?
The thing you tell to build.
Ah, I've been building with the AssetBundle Browser
fun
Because asset bundles can't have code in them to begin with.
Because it's done automatically by LLL, yeah.
Any code you want to add, it cannot be through asset bundles, you will need to make a BepInEx plugin for that.
Makes sense
I'm guessing that's also where I go about actually incorporating the config file changes
welp, this is gonna be a whole process
all i want to do is to let people reduce scrap spawn weight, aw yeahhh
I'll probably try following along to this later, but for now at least, thanks for pointing me in the right direction lol
Anytime.
probably more ideal to use #dev-item… for this, if Xu Xiolan isn't to busy I think they might have some nice code for you to reference
Yeah, I wasn't sure what channel to ask for help in, so I asked here in case there was a simple LLL-related solution
yeah no stress, apologies for a lack of that kind of solution 😄
All's good
Heads up to peeps
Sorry about the super delayed update to address the hot-reloading features. one or two things i gotta figure out behind the scenes first and I'm also starting another year of uni next week so i've had to prep for that too. Was hoping to tidy up the 1.4 update beforehand but just slightly unfortunate timing on a handful of things 🙏
Np!
been getting this error a lot lately
also sometimes getting stuck on landing with nothing unusual showing up in the logs
we started this session getting softlocked like 10% of the time, and all of the sudden we started getting softlocked on landing every single time, with it either being nothing in logs, or player loading custom moon
heres the logs in case its helpful
the last bit of null ref spam is from being on the menu after disconnecting
also for some reason every moon says player loading custom moon, except experimentation
next time we will be playing with a decent chunk of mods removed, will reply to this if it was a compatibility issue and the planets load fine
When it says player loading custom moon, what usually fixes it for me is launching a custom moon solo on another save file, then trying again. It's kinda inconvenient, but it works.
Hello, I had the issue with the version 1.4.x (worked on 1.3.13 for exemple) when i was stucked in the game menu (couldn't play the game). It was the interior Tomb (by Tolian) which is the issue ! If that could help !
For more explanation, i had the mod Tomb and Tolian Interiors (i dunno but Tomb was in there too). So it crashed because of duplicate interior
hi everyone, is there a way to modify the size multiplier of a moon ? i recall there was a way at one point but i cant find the parameter in the configs
if not, is there a way to find this value somewhere ?
https://thunderstore.io/c/lethal-company/p/IAmBatby/LethalLevelLoader/
Version 1.4.7
- Tweaked NetworkBundleManager code to improve reliability of the hot-reloading system and prevent unintentional soft-locks related to pulling the lever
Tried my best with testing the various scenarios here, Should fix a lot of them but please let me know if I missed anything
@hexed mesa something like this should be chill for LLL ye?
if (currentExtendedDungeonFlow.OverrideRestrictedTilePlacementBounds.sqrMagnitude > 1f)
{
dungeonGenerator.RestrictDungeonToBounds = true;
dungeonGenerator.TilePlacementBounds = new Bounds(Vector3.zero, currentExtendedDungeonFlow.OverrideRestrictedTilePlacementBounds);
}
this is code critique so up to you on whether you wanna do it or not
should it better to have a bool that allows the bounds value to be used? instead of the bounds having any value
but otherwise it's fine, I can make a change that detects the same boolean check you use and I just don't call my code
i figured just checking if its above 0 is a built in bool check
I could have it explicitly be separate but i do generally prefer simpler stuff like that
I can mark that in the tooltip tho
that's fair, it's a style diff
but also you want to add more that just a placement bounds
perhaps you already saw how I did it but
https://git.touhou.dev/Raphtalia/DungeonGenerationPlus_LethalCompany_Mod/src/commit/16d1c2d05649b13ffc8088464d4fadacad6780d5/DunGenPlus/DunGenPlus/Collections/DunGenExtenderPropertiesCollection.cs#L56
you may want to add more values so the user can finetune the bounds
since the bounds should be affected by the dungeon's final sizeMultiplier, and have a pivot too
mhm fair. I might do just this for now to keep it simple since this is the biggest aspect that with LC's use of dungen should be on the interiors end to tweak but i'll consider more fine-tuning. I have the way i'm checking this as a property bool for you to check if you need incase i ever change my mind on it being a proper bool 😄
this was working for me for fucks sake
Looks like it works on a fresh profile
Correct
pain.
Sorry for bothering Batby :,]
No thank you Batby, I appreciate you working on this amazing API and swiftly pushing updates when issues arrise ^^
i'd need a log
will do in a minute :]
since the update every time we open a lobby we get the black screen bug
I got it twice, in a row, and when I had someone else host they got the same issue
which version
1.4.7
1.4.8 should be coming out on the thunderstore whenever it decides to
Seems to be available already on Gale, I imagine R2 will take longer
yea, r2 is taking awhile
feels like it would be safer to take the minimum of the dungeon flow's bounds size and the moon's original one, then put it at the same position as the original, in order to prevent some special setup breaking with interiors that use this
sorry to be an annoyance, but is there an answer to this ?
you can manipulate the size from the interiors config but i think it might have an issue i need to resolve
i saw that option, but i only have a problem with one modded moon, so i dont really want to modify some interiors just for this one, thats why im asking this
there is not that option at this time no
I'm not aware if anyone is either, but I have had my assumptions constantly questioned in practice
up to you in the end but I personally would hedge my bets wherever possible
I hear you vibe wise but in this case specifically if the moon person is asking for a specific size thats smaller than a specific size the interior author is asking for
i'd probably actually prefer to tell the moon to get bent
hmm
If a interior is specifically asking for a certain size I feel far more comfortable taking their word that they need that
I can see that causing clipping, but I guess they will have to deal with it themselves if that's your solution
moon people can just move the dungeon thingo in that case
yeah hopefully
the only reason its relatively close to the surface is because it didn't need to be any deeper afaik
personally i would have it wayyy lower anyway
tbf the further away from the origin it is the more floating point error is introduced
negligible in the type of range we're talking about probably, but it's definitely not good to just assume it can go anywhere
i hear you
def. not an actual problem for us
i meant more like a couple k rather than a couple hundred
@zenith flax is the content tag rewrite stuff still planned? It's a bit weird but I thought of one where you'd feed the content tag a name and a texture, I think it could be pretty useful for a lot of what people are doing tbh.
I.e. instead of wesley making a bunch of different preset textures dependent on tag, he just reads the texture on a tag and applies it
i gotta raincheck that answer
that's basically the data tag idea that has been floating around for a while 
Icic
it was not only about textures, i suppose the plan was basically about making a DataTag<T> thing and the current ContentTag would become a DataTag<Color> type
that's how i see it at least
Ohh and you'd have a tryget or smthn, I wonder how stuff of type T even works in editor
Generics work in editor if they have a defined inheriting class
For classes at least
Ohh okay that makes sense
Yay!
@zenith flax Couldn't close out a lobby, LLL throws NRE's on exit
I know you generally don't like accepting my bug reports but I have greatly reduced the size of my mod pack and the first thing that errored was LLL, I hope you'll take the time to look into this and fix it ^^
Seems to be throwing when other people leave?
Maybe could be fixed if RequestLoadStatusRefreshServerRpc isn't a RPC because I don't see much point for it to be one if it's constantly being checked if they're the host.
It seems more of a function that is only meant to be done by host and never called by clients.
Yeah it probably tries to disconnect the clients first if I had to guess
hey there, so this is my first time using a mod
i installed this with the mod manager along with a modded interior "liminal pools", but it doesnt seem to be working in game
i checked the config file, which shows that its meant to show up in march, i instead copy paste the entire list of moons from the factory interior and pasted it into the mod interior's prompt, but it still wont work in game
And you enabled content configuration aswell?
One of the pools broke in a recent LLL update
Might be that one
yea nevermind
Pool Rooms was broken, but has just updated
is there any way to fix this
so Gale just doesnt see LLLs config anymore? just this portion is left, but the red button will bring up the whole thing in notepad. did the update break it or did I somehow break it
Still doesn't work for me LOL
not exactly the right place to ask, but here's a solution that works for me and a few other people: #1246088342458863618 message
@zenith flax I wonder, is it possible/would it be good to make only a certain number of bundles load at a time, then unload that batch before starting the next one, in the interest of keeping the peak memory usage during loading down? big packs seem to hit some scarily high numbers and go to my page file and get stuck loading for a ridiculously long time
(and also crash my browser
)
not only did loading take forever, but unloading also took forever after the loading completed 😅
(this is with voxx's pack mentioned here: #1295871652168466432 message)
I guess I should mention the numbers I saw, it hit 15gb during loading and then dropped to 1.5gb after it started unloading
but that 1.5gb number showed up after unloading just like 5 bundles out of who knows how many, so I think that maybe the RAM usage is just from the decompression algorithms in use, which would mean it definitely would be extremely beneficial to not have the engine under so much memory pressure
also, I had disabled the faster bundle loading mod, but I had no cache at the time anyway so it was likely going to hit those numbers no matter what
heard
still wondering about scene selection, how do i get it set up correctly for mp? it works fine in sp, but in lan/mp itll either not land and spew this error or do the same when going back up into orbit (where it'll then hang). am i setting something up incorrectly in my project for the bundles/scenes or is this just on lll rn? is scene selection just not a focus for the time being?
Wait, the random scene selection feature? I don't remember if that was ever set up fully. I remember another moon maker trying it but I don't think they managed to get it working.
About to leave home but i’d need to see info about how your stuff is set up
this gets said so often i just filter it now lol.
heard, just ping me when youre around.
Ideally send me some pics here before then 😛
what do you need in particular?
Probably info about whats in your sceneselection list and assetbundle window view of the related bundles
not 100% sure what specifically in assetbundles browser you need to see but here. ive also tried w putting the two scenes in their own bundles but undid that
Yeah that’s what I was looking for. Will take a look later today for you
Might be an oversight with the 1.4.0 changes
huge thanks. its really cool to see dirge play the way i intended it originally so just lmk if i need to do anything else
Oh the scene stuff? Dang I must've just missed that or completely forgot! Sorry!
I use it. works fine
rebalancedmoons is basically dependant on this feature
ever find a fix?
yes, the LLL update fixed that issue
which ver
latest
latest is giving me the issue unfortunately
Still waiting on Batby to fix being unable to close out lobbies in Multi though, if you have all clients leave first it's fine but that is tedious
@plush wing Since you knew the fix for this perhaps you could release a small patch mod til Batby feels up to fixing it? 🥺
Batby is currently busy with other stuff and they will take a look when they can.
oh, this is an LLL issue... i had it happen in LAN in a solo test (actually, solo test maybe a LIE.. i think i had 2 clients open xD nvm).. x.x thought it was related to meteor strike, not LLL as everything seemed to break
i put all the info of my issue here.. incase it helps.
#help-and-troubleshooting message
Hello, is there any fix or workaround so other players than host can land the ship on planets?
could you kindly help me locate those lines when you have free time? Pulling the lever by everyone is crucial for my group. (alternatively you can upload your modified .dll)
Nice.
That's probably because the default state for the lever is different between host and client in vanilla.
yea, this might be the issue, like whenever ship goes to orbit, lever is in it's starting state, in unmodded game first "lever pull" has to be done by host and later everyone can pull to land
Not really related because the messages are different between your scenario and the reported issue.
hmm, I should add that "must be server host" shows constantly in orbit and during landing, there is no message like "waiting for ship to land" or something like that
I know.
So would it be viable to revert LLL to 1.4.6 for now to fix being unable to leave the lobby or it needs to stay updated since many mods depend on it?
This only happens when you are the host in a multiplayer session and the only way to fix it is having other people leave first which is still pretty bothering...
it's this value in your lc selectable level asset
I think they mean from the user standpoint.
Is LLL the cause of the 'one player is loading custom moon' issue? I know routing to another planet fixes it but after spending 600 credits to go somewhere and getting this message really sucks.
Is there another fix if it is LLL?
Shouldn't be happening on the latest version of LLL
I believe we tried latest and got it. Well keep using latest incase im remembering incorrectly, just hard to test again without my group.
Yeah the update must've been like a week ago by now? I'm fairly sure this was fixed in that update
You mean the routing to a moon in the same bundle as the one you were on?
I think we had a softlock when pulling the lever twice and after downgrading LLL that stopped, but custom moon showed again. Im at work and remembered to ask but didnt expect a reply so quick. Ill test my issue again later to confirm
and 2.15 is the biggest I can go?
no you can do much futher
to infinite, but don't make it a large number or it will lag alot and load very slowly
if you want do it like 6-10
yeah you can change that
If I want it to be 3x as big, would this be fine?
like are my settings all good
its above average, but you should be fine
ok thank you
@zenith flax Does the Extended Footstep Surface work now? And if it does, how exactly do I use it? 
Should still work. You register it and then the name in FootstepSurface.surfaceTag is compared with the floor's tag to then set the index to play the sounds.
(At least I'm seeing in LLL that is being refreshed)
Actually, this can cause issues, lol.
I'm guessing if you have "Untagged" in the tag of the surface, it will maybe work.
Yeah footstep surface stuff is kinda cooked rn
Basegame way is very hardcoded
I have a solution for it when I have the chance though
Starting Uni today so once I settle in I should be able to allocate some nice modding time
Actually really craving some mod development
heyo got reports of a weird bug with my mod with the newest LLL update and tested it myself and it is unfortunately the case.
After collecting items and leaving a moon, no error shows but a log shows up in the bepinex console which looks like:
[Info : Unity Log] Got no ship grabbable items to save.
and then upon reloading the save all the items in the ship are no longer present, so obviously they aren't saving but I dont know why this would be happening now as I haven't updated my mod since the last time (3 weeks ago) unless something changed on the LLL side of things?
(For clarity, it is ALL scrap that don't save not just my modded items)
I am very, very late but I just wanted you to know i sm also really interested in this. I like the modded interiors, but vanilla really needs a face-lift with more variety. Especially factory.
+1 for new vanilla tiles. i've seen a few projects floating around but none of them seemed to get off the ground
still having the loading custom moon bug on the latest version
but its a lot less common
I agree 100%
Will try to find time to look into this, apologies for the inconvenience
Are you still doing semi weird stuff in regards to getting your content into LLL?
@zenith flax did you came up with any idea how to implement custom footsteps? Because i just came up with one solution, but im not really good at technical side of unity so im not sure if this idea is even possible
I have one idea in mind, open to hearing yours tho
sup,
seems like the game tries to load every modded moons at start, drastically increasing the ram usage of the game. is there, by any chance, a way to ask LLL to load the moons in ram only when routing to them ?
probably a weird question from a dev's eyes, but probably worth asking 
So I came with an idea.
You basically create your collection of footsteps as right now (it has to have a field for a name)
After that, you select a mesh that you want to apply custom footsteps to and attach a special scripts that you need to fill with your footstep libary.
During game, when moon is loaded LLL would basically check for any custom footsteps scripts present in the scene. If object is found with such script the LLL would create temporary custom tag with a prefix and name typed by the moon maker eg: LLLFS-Glass.
This tag would include sounds readed from footstep libary used by the script. Then such mesh will be forced to use this tag with sounds. When moon is being unloaded, the temporary tag with sounds will be deleted.
So in more human words and better english!
User created custom footstep libary that includes:
- Content tag
- Array with sounds used
- Surface name string
Then he attaches custom footstep script into specific mesh of his choice that requires custom footstep libary
In the game, LLL will search for meshesh with such script. If it finds such, it created a temporary tag with the name: LLLCustomFS-[name specified by developer].
Such tag includes sounds readed from custom footstep libary
The mesh tag is overrided so it uses temporary custom tag
When moon is being unloaded the tag is being removed
This is my idea that I came up during work today
I'm not sure if it's possible and even if so it might be resource heavy and unoptimized
But it's for you to consider
Not the worst but I think I have a cleaner idea
I’ll need to try it but I want to use a scriptableobject that lets you pair footstepsurface classes with physics materials
And then you can reference those physics materials in colliders
Means people wanting to actually use physics materials on a surface can’t use this but from what I understand that is a very big minority
nothing too out of the ordinary I dont think? The only "weird" stuff I do is adjusting my scrap properties based on config stuff using the on asset bundle loaded event (can screenshot that tomorrow when i'm at my computer) and manually registering one of the items in my .lethalbundle using LethalLib instead cuz adding it to the store using LLL was breaking the store
If the item is handled via lethalllib I can’t promise it will be handled correctly
made an issue on github and ive included everything i think i know abt the issue so far but let me know if you need me to add anything else
https://github.com/IAmBatby/LethalLevelLoader/issues/174
it all worked fine until the recent updates though is the weird thing, now no items save upon quitting out and reloading (including base game scrap), the ship is just empty... 🤔
I'll try disabling the one item I add via LethalLib tomorrow to see if thats somehow causing the issue but I'd be surprised
I have got to say though this hot loading stuff has been a godsend for the content it works on, so much faster and less intensive its wonderful, excellent job
hey not sure if you're aware but it looks like your NetworkBundleManager Initialize method will be run the number of times the lobby has been reloaded. So first lobby load = 1 time, second lobby load = 2 times, etc.
here's 5 lobby reloads: [Warning: Unity Log] [Netcode] You cannot decline the host connection. The connection was automatically approved. [Info : Unity Log] started host! [Info : Unity Log] are we in a server?: True [Info :LethalLevelLoader] LethalLevelLoaderNetworkManager Spawned. [Info :LethalLevelLoader] Initialized LLL Save File, Current Level Was: ExperimentationLevel, Current Vanilla Save Is: LCSaveFile1 [Info :LethalLevelLoader] NetworkBundleManager Initializing. [Info :LethalLevelLoader] Refeshing Loaded Bundles Status! [Info :LethalLevelLoader] Sending LoadedStatus: True To Server! [Info :LethalLevelLoader] LoadedStatus Is Currently: (1 / 1) [Info :LethalLevelLoader] NetworkBundleManager Initializing. [Info :LethalLevelLoader] Refeshing Loaded Bundles Status! [Info :LethalLevelLoader] Sending LoadedStatus: True To Server! [Info :LethalLevelLoader] LoadedStatus Is Currently: (1 / 1) [Info :LethalLevelLoader] NetworkBundleManager Initializing. [Info :LethalLevelLoader] Refeshing Loaded Bundles Status! [Info :LethalLevelLoader] Sending LoadedStatus: True To Server! [Info :LethalLevelLoader] LoadedStatus Is Currently: (1 / 1) [Info :LethalLevelLoader] NetworkBundleManager Initializing. [Info :LethalLevelLoader] Refeshing Loaded Bundles Status! [Info :LethalLevelLoader] Sending LoadedStatus: True To Server! [Info :LethalLevelLoader] LoadedStatus Is Currently: (1 / 1) [Info :LethalLevelLoader] NetworkBundleManager Initializing. [Info :LethalLevelLoader] Refeshing Loaded Bundles Status! [Info :LethalLevelLoader] Sending LoadedStatus: True To Server! [Info :LethalLevelLoader] LoadedStatus Is Currently: (1 / 1) [Info : Unity Log] Enabling connection callbacks in StartOfRound [Info : Unity Log] Began listening to SceneManager_OnLoadComplete1 on this client
not sure if it actually has any adverse affects but figured i'd let you know since I just noticed it lol
Interesting, probably forgetting to unsubscribe from an event before re-subbing
it'll be harmless ye
ty
🫡
mixing stuff that runs once per game and once per lobby + networking stuff is annoying lol
only reason I figured this out is i'm trying to find something else to tie my constellations stuff to since it seems like Plugin.onSetupComplete only runs once and not every lobby load. Not sure if this was changed or just an oversight on my part
yeah lmao felt that
i have two events in there now for that reason
one runs once on runs per lobby
ohhhhhhhh so it was a recent change 
oversight on your part but also i also was on that oversight partially for the same reason

all good lmao, do you know the new event that runs every lobby load on the top of your head?
it should be in plugin directly under that one
er, I guess it's this one Plugin.onLobbyInitialized
yeee
it was staring at me from your NetworkBundleManager.cs page 
bundle stuff makes me wanna die
this is your culprit for the issue I mentioned earlier 💀 https://github.com/IAmBatby/LethalLevelLoader/blob/a5524b5364ff52a8df4f77475b522668d2325896/LethalLevelLoader/Patches/NetworkBundleManager.cs#L51
eh, if it's not then it'd have to be your lobbyinitialized method that invokes the event right?
I can test for ya give me a sec
lol some of my shit broke on second lobby load. Guess I've had this issue for a while 💀
can confirm the event is gucci so it's def the way you're subscribing/unsubscribing to it
LLL already does that, tho that only applies to moons set yp and updated to use it, tho the majority of popular moons have it as of now
the 1.4 update greatly reduced ram usage but no matter what moons and interiors take a decent ammunt of ram
i've heard about the hot loading part of the mod after posting this message
my bad i guess
now i need to know which moons uses this feature, i need to work with as little ram as i can
anything updated as of within the last, 2-3 months id say is 100% safe
and it applies to some older ones but there isnt an easy was to tell
does a HR-compatible moon still takes ram even when theyre unloaded ?
all moons will take some ram no matter what as far as im aware, HR just heavily reduces it(someone correct me if im wrong)
sorry for all of the questions but i need to know what i'm adding in my pack
I don’t remember when some of mine last updated but they all work. The current moon tutorial does it the way hotloading needs so if they’re created since its release (and maybe updated but they could’ve updated unrelated stuff) they’re probably fine.
its just usually a safe bet if it was updated as of late
escpecially if its a popular moon
got a bit of an issue here, I'm on version 1.4.0
for some reason my mod wont patch a startofround method when LethalLevelLoader is also injected into the game
[HarmonyPatch(typeof(StartOfRound), nameof(StartOfRound.openingDoorsSequence))]
[HarmonyPostfix]
private static void IntroScreen()
{
Plugin.mls.LogInfo(">>> in IntroScreen");
}
This is all it does and it works perfectly fine when LLL isn't running but doesn't print to the console when LLL is injected.
I also tried using [HarmonyAfter("imabatby.lethallevelloader")] and HarmonyPriority.VeyLow but neither worked.
Why are you only on version 1.4.0?
it's the latest on nuget, wasnt sure how to install 1.4.7 on my own
currently no, altho ig now that u mention it, I think I could just manually download the DLL and reference it directly
Yeah you could, but i'd worry about testing stuff with an older version of LLL, especially when without a mod manager since manually installing mods has a lot of risk of just not downloading the right stuff
I recommend gale, it's the best mod manager
for the record updating to latest might not fix whatever that issue is
bc thats some really weird shit i dont think i remember getting on 1.4.0
I do.
hmm
even then id be surprised if anything relating to that changed
but i was able to patch into the door opening stuff fine last i checked
I mean with LLL, yes.
same 😭
well I'm stumped, I made the dummy project public just incase there's something really obvious i'm missing https://github.com/zeeblo/dummy-lethalpj-tst
I also updated to the latest version of LLL but as expected, getting the same issue, if it's working for u guys tho then there's gotta b smthing im doing wrong
this is what my plugins folder looks like as well
some kid throwing a tantrum on my github because of the current LLL bug
like
what do you want from me lmao
God why can't i code
btw dopadream i know why my stuff is fucked for you i think
and it is my fault
but fuck
i dont wanna fix it ahhh
i didn't account for configs changing stuff at points
ye but for scene selection stuff specifically
Batby, does custom ship animation thing works for lll?
Hey could you fix the incompatibility with Rebalanced Moons?
It breaks the mods entirely by making it so when you pull the lever, you just don't land at all
i wasn't?
is this u
Jeez, alright sorry. Harsh.
No i was not throwing a tantrum. I was just upset something wasn't working and trying to find a solution. Calm down.
I even tried to end it amiacably.
@junior bone use older LLL version when it was compatibile or something
If it was in the first place
Never used it
It never was.
Then you have to wait
I dont get whats wrong with asking, but okay. Im sorry for showing up i guess.
Or its something to do with the author of that mod
Well i never intended to offend anybody so im sorry if i did. I even tried to end on a good note.
So ill leave now.
Just use older LLL version before hot load stuff
Should be good i guess
Or just wait
but yeah @maiden valley tldr LLL's new assetbundle system first encapsulates all assetbundles in a class called AssetBundleInfo. This stores the name of the bundle, the location of the file, any accossiated scene references found in the bundle and various functions to load it, unload it and safely try and load stuff from it. This exists so we can touch assetbundles under the safe assumption that they might be unloaded (because unloaded assetbundles are null and you can't talk to them at all)
from there when i process the assetbundles initially I make instances of another new class called an AssetBundleGroup. These groups are basically just a sophicated list where i group together AssetBundleInfos based on their shared references to a specific scene. Then i can ask the AssetBundleGroup to load and unload and it tells all it's infos to do that.
The reason why I think your stuff might be breaking is that i didn't account for the fact that these groupings might dynamically change at runtime, so my cached collections do not accurately represent what needs to be loaded
oh
but then what about this? @zenith flax
I will double check that one
okay noted
i need to write a better checklist for testing lmao
i very much tested leaving and joining in a single session and in multiplayer but not leaving, closing and re-opening
i would love to help but ill be honest LLL is kinda beyond my understanding sometimes
Me too! ❤️
If you ever see something that looks weird feel free to ask me about it

I'm wondering when he's gonna merge your pr too bud dw lol
It wasn't about that.
I don't want to rush anything, it's up to them how they want to do things at their own pace.
Plus I have to prepare presentation for dissertation plan anyways.
So it's not like I can focus on this anyways, lol.
Fair
But one of the things I did find odd when messing with LLL was some of the ServerRPCs being checked for IsServer before being called.
While I understand that you want the function to be only executed by the server and this works because the server is also a client (thus a host), labelling them as ServerRPC would mean that you also want them to be called by clients which doesn't seem what you actually want (because of the IsServer checks)
We had an argument (as in talking about it, not bad talk over each other) on a previous PR where this happened and I (incorrectly) changed it because I didn't consider server-side operations first.
labelling them as ServerRPC would mean that you also want them to be called by clients
Howso?
Because that's what a ServerRPC essentialy is.
It's a function executed by the server and can be called by clients.
yes but right now the only client i want calling it is the host
i realise now i might need an additional check in refreshloadstatus to reflect this though
Right but that is also why there are errors when exiting because of the RPC being called when you're disconnecting from other clients.
no that error is becuse im being stupid somewhere, not because of rpcs inherently
i need them to be serverrpcs to correctly call the clientrpc
You only need to be the server to call the clientRpcs, no?
i originally thought that but was told it additionally has to be inside the context of a serverrpc
that could be wrong and/or confusion on someones behalf between ngo versions
I remember seeing a couple of clientRpcs outside of a serverRpc scope so I don't believe that is true (as in it is required to be in the scope of serverRPC to be able to call a clientRPC).
For example Update of RoundManager when managing enemies, from what I remember.
ClientRPCs can be called from anywhere, at least I've been doing it without any problems
ClientRpc's just can't be called inside ClientRpc's, so the safest bet is usually to call em only inside ServerRpc's
This problem plagued @tired solar and me for a while in the EnemyAI since we didn't realise one of the functions we override was being called by a ClientRpc and our ClientRpc inside the override wasn't working for any apparent reason
If you know 100% that there doesn't need to be a serverrpc in a place you're calling it, like a native unity function like start, update or whatever, then it's fine, but I'd still do it just for consistency's sake
I dont know the internal details on why you can't call a clientrpc inside a clientrpc, @feral pecan would know better than me (i think he's the one who explained it to me ages ago)
probably because you can only call clientrpc as the server
and when you call clientrpc, it's called on all clients, such as the non-server clients
Yeah iirc that's what it is, I just didn't know how to explain that lol
if you nest clientRpc only the top level one will be received by all the clients. the others will never be networked
same thing with ServerRpcs but that is not an issue as you're already server so it effectively changes nothing
I've seen people try to call serverrpc's inside serverrpc's surprisingly
I also kinda like the workflow of:
ServerRpc --> ClientRpc --> Local Function
you can do:
Lifecycle -> ClientRpc -> Local Function
where Lifecycle are the various "primitive" Unity functions like Awake Start Update ecc.
but the safest way is to always use a ServerRPC to call a ClientRPC
and in no case to call a ClientRpc from another ClientRpc nor from a function that could be called by another ClientRpc
if you want a techical reason why i can post what Unity compiles RPCs to if you need
private static void UpdateLLLConfig(string cmd, int weight = 0)
{
string mapName = cmd.Split("/")[1];
Plugin.mls.LogInfo($">>> MapName: {mapName}");
ConfigFile LLLConfigFile = new ConfigFile(Path.Combine(Paths.ConfigPath, "LethalLevelLoader.cfg"), false);
ConfigEntry<bool> enableContentConfiguration = LLLConfigFile.Bind($"Custom Dungeon: {mapName}", "Enable Content Configuration", false);
ConfigEntry<string> manualLevelNames = LLLConfigFile.Bind($"Custom Dungeon: {mapName}", "Manual Level Names List", "Experimentation: 0");
enableContentConfiguration.Value = true;
manualLevelNames.Value = $"Experimentation:{weight}";
LLLConfigFile.Save();
}
I'm guessing something like this isn't currently supported then ( Changing the likelyhood of a custom interior spawning during the shipPhase by modifying the config)
o
interior seleciton happens as late as possible dw
scene selection should also be fine to happen as late as possible i'm just a dumbass
ah that's good to know then, thanks
@zenith flax
1.4.9 is borked, ill send error in a sec
let me know if you want the full log, this just happened immediately while launching lol
im gonna die
May you rest in peace
capital D
LMAO
nvm someone just posted about it
yeah it just breaks, just wait for 1.4.10 or whatever the next update is
the issue is just a mispelling
hotfix rolling out now
i didnt even know there was an update 💀
Let's hope it works :]
oh literally 💀 💀 💀
what if there were cold fixes
not sure if this is of any help or anything, tried to mess with LLL in unity explorer and got nowhere cuz i couldnt figure out the function calls for loading bundles but i did figure this out:
- On lobby leave, no bundles are loaded or unloaded.
- On loading into a lobby (currently only tested on one that has a pre-made save), either unload or load bundles depending on the previous state of the bundles.
so it's technically workable if a person hops into the save, leaves teh save, hops back into it, lol.
tested it with @maiden valley's mod rebalancedmoons beta
@zenith flax ^
oh i probably should turn on better logging, pretty sure i was just looking with default logs and i'd see "unloaded bundle" or "loaded bundle" when joining the save and landing worked
can confirm the issue isnt about being in the same save or anything, the bundles act the same as the above report, so basically:
- Create a save, be on a custom moon by default (with dopa's mod it'll just be experimentation so that's fine).
- Wait for LLL to say bundles are loaded (should take a couple secs at most)
- Leave the lobby, create a new save.
- LLL will say
rebalancedmoonscenes.lethalbundle Unloaded (time) - Unable to land
if i knew what you used to unload the bundles, i'd just say run that on Exiting to main menu, and that should just work™️
wat, i wonder why i cant find this function on my project lol
i managed to make it so that when u exit the lobby it loads the bundle, and when u enter it unloads it, exactly how it's meant to be clearly 
yippee i think i did it
ill need to multiplayer test it though probably lol
might've found a multiplayer bug? without any of my patches this starts spamming when the host leaves in the middle of a round (moon loaded), client gets kicked fine but host gets stuck, can easily replicate in LAN, idk about actual multiplayer but i presume same issue
[HarmonyPatch(nameof(StartOfRound.OnLocalDisconnect)), HarmonyPostfix]
internal static void StartOfRoundOnLocalDisconnect_Postfix()
{
// Plugin.ExtendedLogging($"Doing nothing");
// Plugin.ExtendedLogging($"Client {clientId} disconnected.");
Plugin.ExtendedLogging($"whatever currentClientId is: {NetworkManager.Singleton.LocalClientId}");
Plugin.ExtendedLogging($"AssetBundleInfos count: {LethalLevelLoader.AssetBundles.AssetBundleLoader.instance.AssetBundleInfos.Count})");
foreach (var assetBundleInfo in LethalLevelLoader.AssetBundles.AssetBundleLoader.instance.AssetBundleInfos)
{
Plugin.ExtendedLogging($"AssetBundleInfo: {assetBundleInfo}");
Plugin.ExtendedLogging($"AssetBundle: {assetBundleInfo.assetBundle}");
Plugin.ExtendedLogging($"Active Loading Status: {assetBundleInfo.ActiveLoadingStatus}");
assetBundleInfo.TryUnloadBundle();
}
}
``` this is all i do and it seems to work, I haven't seen any differing (buggy) behaviour from having it existing, did not test it with latejoining but it'd probably just work™️ (dont take my word for it)
now that i've satisfied my curiousity, im going to delete this code from my project and let you handle it, if this was helpful then nice, if not then it's fine cuz i was hella bored
sorry for big text wall lol
oh also get 1.4.10 on nuget 
What the new version fix?
i also experienced this
OHHHHHH so thats the issue i was having
when we were wiped i couldnt close the lobby to restart
Yeah 1.4.9 and 1.4.10 were supposed to fix it but it seems like it's still not fixed
I wonder why does it happen in the first place
Like how badly the game is designed itself
It's Batby's fault it happens he already stated as much
Not the game's fault
Im gonna blame zeekers anyway
Do you know what version causes it by any chance? I have the same issue and I'll need to downgrade
I also had to downgrade, I'm currently using 1.4.6
I'm fine with downgrading I just wanted to know what's the most recent version that didn't have this bug. So 1.4.6 it is?
correct
1.4.6 doesn't have the bug but it has the issue with being unable to pull the lever to land sometimes, Personally I use a mod that makes the moon free when you buy it once so rerouting to a paid moon wont be an issue with losing money
did a quick online smoke test of LLL last night and I also encountered this, so not just LAN
also I'm noticing that I can still pull the lever as host before the routing animation has finished, in which case it plays the lever pull animation on the player and then puts the lever on cooldown
do you mind if i work off of this to try to resolve the issue of first sessions doing the scene error?
for a temporary solution
sure, it would probably be the same thing except .TryLoadBundle() on whatever function is called on server joining a lobby
thanks, hopefully batby doesn't crucify me
@umbral oracle did you see any issues when downgrading to 1.4.6
No
What's going on?
just downgrading to my group
so we dont run into that "cant quit game" issue
The pain
it worked 😭
posting this here too in case this issue affects anyone else
for the time being it Works
at least for me
Nice, I'd have done it myself but I didnt wanna impose plus I'm like 5ft under in fever rn, glad it worked out easily though
why do people think im gonna crucify people
when do you apply your configs
eg. fuck with the scene selection stuff
quickmenumanager.start
its called when a player creates a lobby or joins a lobby
ahhh
that makes sense in the case of your stuff at the very least
i think i request the on lobby join refresh before that?
any rhyme or reason behind that entry point?
well quickmenumanager.awake and onenable would be sooner but 😛
would you mind possibly going off an event LLL has instead?
i'd have to see if it actually makes a difference for this problem but
generally gonna be cleaner to be earlier i think
not at all
what is it
oh actually i'm realising i need to add another event that doesn't just happen on the first lobby
for now i think you'd have to patch my patch
ok i must be tweaking theres no way gordion is missing the company content tag
it def. shouldn't be 🤔
i assume pretty late right
hm
Honestly completely forgot about using the company tag to check if it's a company moon
People been using .hasTime or smthn
re the other thing i think for now you'd have to do like
[HarmonyPatch(typeof(StartOfRound), "Awake"), HarmonyPrefix, HarmonyBefore(LethalLevelLoader.Plugin.ModGUID)]
internal static void StartOfRoundAwake_Prefix(StartOfRound __instance)
sure
oh actually wait
you can get closer hmm
maybe try being a asshole and do a prefix on NetworkBundleManager.OnNetworkSpawn
i do really apologise for the ongoing hotreloading issues
very uncomfortable with it being in that state for so long
yeah..
that being said
if you ever get the chance i'd appreciate it if you could glance at embrion and gordion's default tags
just in case
they're the only moons in the game that dont return the correct tags for some reason
for me
is artiface alright
let me double check
I think @steady ingot had a couple words with enemy related tags like masked not being killable iirc
yeee
yeah
needs a github issue
Chop chop stup1d @steady ingot
I think I gave my moon Starship-13 the company and military tag because it’s transporting things for at least one of them, but I could remove the company tag if need be
btw im just poking fun hehe
i just admittedly feel bad doing makeshift patches like that because i know its less productive than fixing the actual issue lol
i rlly appreciate how patient and helpful you have been throughout my entire journey here lol
oh, yeah i guess theres no reliability on checking for stuff like that since people do just do this lol, i dont think you're the only one anyway
btw doing this results in this bullshittery and startofround.awake prefix results in a black screen with even more bullshittery lol
it really doesn't like me doing that
Oh right I forgor
The Company tag might not be as safe a method as you think, I believe Sector-0 and Generic's Corrosion use the Company tag for theming purposes
Despite being actual moons
right but the purpose of my mod is to apply skies based on theme
the company setting is supposed to work on all company themed moons INCLUDING the vanilla one lol
i had to add manual code to check for gordion because it actually lacks the company tag, lol!
hardcoding time
gg chat
Ahhh alright
Wat da Beanie 
might not be a valid method, but i check if dungeongenerator is null to ignore the Company + Galetry, if it is null i dont run my code for actual moons.
i think that would work if actual moons are what is required.. until someone makes a moon that has its own built in interior as part of the moon xD
zeranos moment
whats zeranos? a moon like i what i suggested? (no interior)
yup, it has an infinitely generating interiour on the "outside"
oh, interesting.
so dungeon generator would be null? or not? I am guessing its null.. because it uses something else to generate the tiles.. so would fall under "company" moon? 😛
luckily for me, my reason to check is because im patching fire exits.. so if there is no interior, there is no fire exits xD either way, i guess ill need to test things with that moon :3
It's not null
Dungen generation same as in vanilla moons in Zeranos
But players enter seamlessly because of the elevator
ah then i really need to test on that moon xD
You definetely should
i will after i move and get back to modding xD i hate moving, so slow, and yet takes so long and so much effort to happen x.x
Is there a tutorial on making buyable stuff?
been a while since I did it but its quite simple, I think genuinely you just have to fill in/tick anything store related in the 3 item related scriptable objects you have. e.g. tick buyable, give it a terminal description and what not and it should just work
I can give a more precise answer when i'm at my computer if someone doesnt beat me to it
having said that, unless its been fixed since then, to my knowledge LLL store items are bugged and cause the terminal to break when reloading saves without quitting the game
I thought so, about the terminal description things and stuff, but didn't know if I did it correctly
Still tried to make things buyable it was causing the game to not load correctly
this looks to be the way to do it with LethalLib https://lethal.wiki/dev/apis/lethallib/customscrap
i have problem where no custom moons are showing on the list any ideas?
I tried multiple maps already no matter what moon im downloading it will not work
Here you have screenshot when i was testing orionplanet
how did you installed it?
for example map "egypt" im moving egyptscene.lethalbundle and egypt.lethalbundle to BepInEx: plugins
The same way i put LethalLevelLoader in plugins folder
Download unzip move .dll file or .lethalbundle
Any idea?
LLL has a dependecy on LethalLib
no it doesn't
LLL is correctly loaded (you can see that on the screenshot)
so something is in incorrect place 😅
how?
this is LLL thing?
yes
damn
try to seperate moon files from dll via folder
eg: Plugins have LLL.dll and Folder called Orion which has lethalbundles
that is interesting
what version of orion and LLL are you using?
Give the full logs.
its the newest orion and newest LLL (just downloaded) (Its not orion fault any moon that i tried is not working)
that's how it's in the r2-modman-downloaded orion (under BepInEx/plugins/sfDesat-Orion):
it's weird that it's not working
send your whole log
what if LLL has to be lower in the directory tree?
Gib logs pretty pl0x.
I HATE SKIBIDI TOILEEEEET
unable to hide vanilla moons now (yes content config is enabled)
https://thunderstore.io/c/lethal-company/p/Zaggy1024/LethalLevelLoaderHostExitFix/ - Enjoy everyone ^^ this will fix the bug til Batby pushes an official update
Typical prefix false 

I was wondering how I missed this till I saw the icon lol
I thought it was another random model swap or sfx mod haaha
I couldn't be bothered to make an icon lol
you could have hit me up 😔
I mean feel free to yoink the code, I only figured it out late last night
I figured it would be faster for me to just release a fix if you're busy with school
i'm pretty wrecked to where i currently can't dive deep into it and test heavily but you know what your doing and i trust you
i can find time to ship out a quick update
it do be just 1 line
internal void OnClientsChangedRefresh()
{
if (!IsServer || (NetworkManager != null && NetworkManager.ShutdownInProgress)) return;
RequestLoadStatusRefreshServerRpc();
}
@spiral siren this should be chill ya?
wasn't aware of the shutdowninprogress bool
this has to handle that weird order of execution thing where my stuff has to run after the networkmanager clientid list has been updated to reflect someone leaving or joining hence my weird patches
yeah I think that handles it
yeah I didn't dive too deep into all the execution order stuff, but makes sense that it might be a bit tricky
I would imagine there might be an event or a good place to hook into the netcode library itself for this, but it doesn't really matter whent his check is here
all I did was use UnityExplorer to hook the place where the NRE was happening to print what was actually null, since it was a fairly sizeable line
@spiral siren
thank you
the fix has been deprecated

🫡
I'm so happy to see it get fixed :3 I happened to bring up the issue to Zaggy and Matty in vc last night and they figured out the problem 
sup, is there a way to sort the interiors displayed in the simulate list by percentage ?
I've done some testing and the custom footstep surface appears to work if you use the Untagged tag
But of course that means that you can't have quicksand or water work properly
(and a lot more, i kinda rely on the terrain tag here and there, i'd wait until batby reworks it)
also @zenith flax where do you keep your list of vanilla items/how do i get the items that are vanilla from your PatchedContent lol
Doing this but with ContentType.Vanilla, lol.
There's also OriginalContent.Items
Depends on what you want.
Tanks, I tried looking for something like that but I guess I missed it lol
Oh lol, also missed that too
I just needed all vanilla items
Unrelated to everything, but IEnumerable exists for this use case basically (referring to the code)
How does LethalQuantities or CentralConfig play with LLL? Does one override the other? What if I only edit things like spawn curves and moon info that LLL presumably doesn’t touch?
Sounds like a question for those threads
In LLL's config, I have the Group Split Count set to 3, but in both attached pics the terminal listing isn't behaving the way I expected. Pic1 is sorted by price, Pic2 is sorted by None.
It might be worth noting that I have 5 moons set to be hidden, 4 of which are set to be never be registered on the Terminal as they come bundled with Temper, and I couldn't find a way to download it separately.
If the issue with the Moons grouping isn't the fault of LLL, or if someone's reported this before (or I'm posting this in the wrong place), then I apologise 🙏
While I don’t know that it’s confirmed, my guess is it’s still taking into account the hidden moons and in this list they’re taking up slots where they would go if they were visible. However I haven’t checked the LLL code to know this for sure
That'd make sense if true
that is the case
Damn 😔 I'll live with it
Hi! So i'm trying to decrease the size of the subsystems interior via LLL, but it seems like it's not doing anything to the dungeon size. First image is testing with min at 0.5, max at 0.5, and scaler at 0. Second image is with dynamic dungeon size restriction disabled. They feel pretty much the same. This is on titan
use https://thunderstore.io/c/lethal-company/p/mrov/TerminalFormatter/ if you want to override that behavior 😅
Oh yeah, I tried this when initially encountering this problem 😅 Sadly I'm picky on aesthetics, so the overall formatting changes aren't to my liking (I like vanilla layout with the asterisks and stuff), but this is still a really useful mod, thank you for making it
you can toggle more decorations in the config 🤭
@zenith flax about the Ship Lever problem. i think i found the issue:
in LethalLevelLoader/General/Patches.cs
you have some code overwriting the Lever Tip and status Before you store the old values.
that introduces an infinite loop.
plus you also have a postfix immediately after that makes me belive you just forgot to remove the code from the Prefix. so here is the diff in question:
= [HarmonyPatch(typeof(StartMatchLever), nameof(StartMatchLever.Update)), HarmonyPrefix, HarmonyPriority(priority)]
= internal static void StartMatchLeverUpdate_Prefix(StartMatchLever __instance)
= {
- if (SceneManager.loadedSceneCount > 1) return;
- __instance.triggerScript.disabledHoverTip = NetworkBundleManager.AllowedToLoadLevel ? previousHoverTip : disabledText;
- __instance.triggerScript.interactable = NetworkBundleManager.AllowedToLoadLevel ? previousInteractableState : false;
-
= if (NetworkBundleManager.AllowedToLoadLevel == true)
= {
= previousInteractableState = __instance.triggerScript.interactable;
= previousHoverTip = __instance.triggerScript.disabledHoverTip;
= }
= }
=
=
= internal const string disabledText = "[ At least one player is loading custom moon! ]";
= private static string previousHoverTip;
= private static bool previousInteractableState;
= [HarmonyPatch(typeof(StartMatchLever), nameof(StartMatchLever.Update)), HarmonyPostfix, HarmonyPriority(priority)]
= internal static void StartMatchLeverUpdate_Postfix(StartMatchLever __instance)
= {
= if (SceneManager.loadedSceneCount > 1) return;
= __instance.triggerScript.disabledHoverTip = NetworkBundleManager.AllowedToLoadLevel ? previousHoverTip : disabledText;
= __instance.triggerScript.interactable = NetworkBundleManager.AllowedToLoadLevel ? previousInteractableState : false;
= }
to be fair the if (SceneManager.loadedSceneCount > 1) return; i'm not 100% sure if you should keep or remove it but the other two are most likely your issue 😅
If I set an interior to appear at one weight for a tag, at another weight for a second tag, and a given moon has multiple tags, what happens?
Say I have Mineshaft at 150 for $Desert and 300 for $Canyon and a moon has both tags
It’s the highest value that gets used
Gotcha, thanks
how do you check the LLL tags a moon has?
god
iirc tags get listed if u have logging set to Dev
since LLL still has to load moon bundles during startup, does setting individual moons as not registered stop it from loading them into memory the first time?
maybe I should look at making this into a transpiler for you, that would probably simplify the problem significantly
For changing the interactable text, sure.
The interactable state isn't updated per frame but rather by other managers whenever they finish routing* to a level or landing.
ahh, yeah, that does make it trickier
In this sheet, Amythest is misspelled. Is that intentional? https://docs.google.com/spreadsheets/d/1WO77KGJplIEC64qmBClOgfEEoFxrhMurCEqe9FKod8I/edit?gid=49662210#gid=49662210
question, does only the host need to change the randomization pool to a specific name and number or do all clients need to change it to be the same?
From what I read, only the host cares about the rarities as they then tell others what are the valid dungeons.
cheers 
are custom footsteps not working still? sorry bad memory
i can prolly do some postfix magic so its no biggie
but i plan for my silly moon to have custom step sounds
Yep
I'm still waiting too
Can someone here please explain to me why my interiors are desync from my team? I have genuinely never experienced this before but everything online ties it back to lethal level loader 01954fc2-d6db-b196-201c-2df58041fd1a
I was host btw and all my teammmates saw a different, seemingly identical interiors to eachother
Many fell through the floor, and even in testing one said they saw a completely different interior alltogether
Either a config desync (meaning you have a different config from the other players) or another mod is altering your dungeon selection and causing desyncs
would runtime netcode patcher do it?
i know its depricated but I was hoping that just means its no longer maintained
no
Lll config can’t desync
I should mention that yeah even with the generated configs I shared them with my friends they had a desync
I was more or less wondering though if it would have anything to do with the interior size multiplier?
I had those enabled with the settings 1 10 and 1
in that order for every one
Possibly
@zenith flax
is there any way to get the moon list on the terminal to look like this
im trying all i can to edit the LLL moon list config but it keeps scattering them apart
i want it in this order with these indents
Howdy. Been having an issue with LLL interiors loading in my group's modpack. I got around to testing and found that even with just a handful of mods the modded interiors still don't load. Does anybody have any suggestions? Here's my modlist currently if it matters:
In this case I've just been testing Atlas_Abyss but I've tested other LLL maps and their interiors also did not load.
Yeah, you don't have any interior mods in your modlist
Well, that would make a lot of sense. Silly me. thanks 👌
anyone know how to get it to look like this still
you cant
probably lethal constellation
no im USING lethal constellations
it just lets you make more lists
but you cant organize the list itself
just assign moons to that list
I've recently noticed that no modded items (e.g. dice, groan tube, funkos) have been spawning in our games. Is it because the scrap lists in LLL are strictly enforced? Because enemies outside of the enemy list can spawn, but that does not seem to be the case for scrap.
E: nvm I had turned on "enable content configuration" for all moons to change their price, but that also meant the scrap list was being enforced. This issue helped me realize this
content config in LLL doesn't disallow modded scrap from spawning
I just changed “enable content configuration” to “false” for every moon, and modded items started spawning again. I thought that would also mean the moon prices would go back to their defaults but they didn’t. They stayed what I had set them to in the config file. I guess moon prices are not considered part of “content configuration”— with which I agree 👍
moon prices are part of content configuration? i think that's a different bug
for me, disabling content configuration disables price changes
Requesting the ability to blacklist certain dungeons from generating on certain moons via the moon's config.
This would help in scenarios where a moon has the tag needed for multiple other dungeons to spawn, but that moon should have a guaranteed dungeon (like SCP Dungeon on Secret Labs)
add the blacklisted moons names with a weight of 0
first of all, thank you, second of all, nice name :3
this doesnt work 😭
do you have content configuration turned on
yes!
thats weird
since it isn't applying the correct weight from dynamic tags either i guess thats just a config issue
do you have anything like central config or lethal quantities
no i don't
i think the weight is properly applied but its just displaying the chance instead of it
as when i change the weight the percent and the weight value in this menu do update
i'll see if something similar happens on my end
huh, happens for me too
@zenith flax is Dynamic Level Tags List supposed to override Manual Level Names List?
showcase that they do update properly it just displays the percent value for both columns
well that's good to know
that dynamic tag overrides manual name
i'm not sure how you'd go about blacklisting it then
you'd have to take the dynamic tag entry out and manually add it to the moons you want it on
I'm hoping its a bug that'll get fixed as doing that with 60+ moons and 20+ interiors sounds like hell 😭
Ive never used tags for interiors so I just learned this was an issue lol
ive just been using lethal quantities
some interiors have tags like Vanilla:40,Custom:40 that come with it
i just didn't know they override manual level name until today
yeah i've been going insane trying to figure out why OfficeDungeonFlow was on EVERY moon
including moons that should just have one dungeon such as Black Mesa or Secret Labs
Values only raise
dang
so is there a way to override the dynamic level tags
like do negative values work
Not at this time
ok
negative values are problematic because the - character is used to identify vector2 values
is it possible to use an identifier (like a letter after the : but before the number) to signal subtraction?
We made the weight of black mesa on black mesa really high specifically to hope to counter this
Yeah I was wrong on my previous comment. Gonna try LethalQuantities to change moon prices now.
Is there an issue with LLL handling fire exits or something? I brought this up with wesley and he said it wasn't his fault but I've had a very persistent issue with moons that have more than two fire exits where sometimes I will go in from one exit and then when I go back out I'm somewhere else
this has been going on for a looong time, I'm talking like around three weeks ago this started happening consistently
what moons have you noticed this on?
there are a couple mods that would mess with fire exits
every single wesley moon
i've only played on wesley's moons
for like
a month
lol, i dont think i encountered it when playing his journies but tbh a lot of his moons its hard to tell where a fire exit put you unless its a simple moon like asteroid 13 or atlantica
It was pretty easy to tell for me cuz the fire exit I came from had no honey around it, then the one I came out of had honey on both sides
plus I came in with my cruiser parked there
ah, yeah that would make it pretty easy to tell
so when I came out the other one I lost two minutes trying to get it back. I'm really annoyed lmao so I just wanted to know if it was an LLL issue since I told wes about it and he didn't know what it was
i was thinking of cosmocos and junic when i said this but there are definitely some moons that are easy to tell for lol
nah yeah those moons make sense to be confusing like that but I was on hyve
and it also happened on calist, and a bunch of other times on a lot of other moons
i dont think i've ever seen this issue before so i wanna say not LLL, and afaik wesley moons dont use any fire exit modifications like raph's mod so no idea honestly
yeah I really have no idea
my pack code is this, I only have wesley's moons + cosmetics, QoL and Bug fixes, so i'm kinda confused
01956992-1ccc-0556-ba65-eb22e8b6293d
it does happen a lot on atlantean citadel, too
Is March fine? It’s got three fire exits and while vanilla uses it’s own version of facility interior I think with LLL it’s the same facility as all other moons and LLL just handles the fire exit count
haven't gone to march in a long time
aga
oops
yeah I moreso meant custom moons
but I'm seeing a patern in getting it a ton on atlantian citadel
though im unsure how that would be its fault
or if it's something that can even be the fault of smth
The issue is fire exit 1 gets half linked to fire exit 2.
So you go in via 1, and go back out of the one you just went in, and find you are outside 2.
I've noticed it happening just didn't investigate further yet. But it's recently started occurring.
By the way, it's probably related to the fact that all fire exits on the inside start with id=1, so I'm guessing id = 1 outside is linked to id = 1 on the inside, then the inside one is changed to 2.
That's fuckin weird, is that just how vanilla fire exits work or?
lll changes the ids
there can be desync that lll doesnt prevent but also doesnt cause if the order of them spawning is desynced between clients
Weird... I'm always host and I still get em, does that matter?
all i can say is it's probably not me
Did you encounter the issue using a modpack or smth? cuz I can try looking for matching mods between yours and mine to see what could be causing it
could help narrow it down
I'm willing to investigate it cuz it's a pretty frustrating bug hahah
oh wait do you mean dungen plus?
cuz wesley's relies on that
also Bats if you want me to take the convo off the thread I totally can- don't wanna bother ya
I.am.also always the host, I usually don't go in fire exit 1, I just know my friends use #1 on Black mesa and march and I use #2, and they always end up inside at my fire exit.
I thought it was mostly a me issue as no one seemed to be talking about it (I did mention previously).
I will do some checking shortly, and see if it occurs on both client and host for me.
i've also had this issue
thats how some code i looked at work, i forget if its in LLL or in vanilla.. xD i just know there is a method called "setexitids" which updates the ids from 1 to what they should be, and i assume, links each fire exit correctly.
this one.. its in RoundManager.
only managed to do a minor bit of testing done, i dont see the issue with imperium, LLL, LI or any of their dependencies. (threw my mod in there because i know i fiddle with setexitids)
this is the profile my group used (pretty much the same) for the last few weeks, so it should have the mod in which causes the issue.
01956c6f-0cf8-0f37-f9fd-c16a45ab4945
im happy to look into it deeper when i have more time, but for now i need to go.
totes get it, I was also pretty busy today hahah
I'll take a look and see which mods of ours match :J
thats interesting that it happens on march, huh...
it may not always happen, but i notice it when it does. im thinking as i fiddle with fire exits, ill just add in logs to my test build of LI so when fiddle, i check the fire exit details before and after, but if its modified after i set them, then i guess my logs wont change much (so id need to also check it later on, and see if something else has modified the details)
got a list going of mods that we have in common, should help
I'll look into these (atleast on a surface level, idk how to read code), most of em anyway cuz a bunch are just harmless dependencies and... bepinex LOL
i also had fair giants.........is fair giants causing the quantum fire exits.........
I was scheptical on including that mod, smxrez talked me into them but I doubt it's that
though, the guy who made it has a bad track record of desyncs lmao
unless i'm getting people confused, lol
I think buttery rebalance has the same type of fix now
nvm it was the fair old birds guy
yeah I saw it in buttfix's readme last night
also imo may wanna try forest giant motion sence, glad it was fixed a while bc it was broken for a while
it made giants way more fun for my group bc they has some sort of consistant counterplay
I really do not mind forest keepers as they are ngl, I was just talked into adding it by a friend is all
does sound cool tho
my main issues is on maps that are more open and field like
they are total bs
ye, thats why I just don't put em there
doesnt stop some devs from doing it 🫠
I only really modify moon spawns now if something is really annoying
like any kinda of giant on atlantica
can you create a profile containing those mods and share the profile code? 😛
i would just load my whole profile and check some things out, but thats a much nicer smaller list.
sounds good!
made a mistake actually, I do not have revisit stingers
nor barber fixes
or cullfactory, or chameleon
01956ce5-e7ae-90df-8521-504676ac3ec2
should be this!
this is the actual line-up, after double-triple checking my mods lol
btw if you wanna do a profile code preview matty made this which is pretty neat https://mattymatty97.github.io/ts-profile/?profile=01956ce5-e7ae-90df-8521-504676ac3ec2
get a preview of a profile code!
oooh that's super cool, thanks darms
can i get your full modprofile code as well? i did some testing and getting some weird results compared to what i expected.
oh? yeah sure I can
@soft fiber
ok, now im truly stumped.
i did a check before and after my "setexitids" patch in LI, the client doesnt get the right exit id's (i need to recheck as i didnt get entrance/exit points which i think is the more important info)
but you dont use LI.
so.. LI may actually be at fault.. (because my tests suggest it is -_-).. but.. you dont use LI.. so what...?
so it may also be something interfering with my patch, which also affects your profile, that doesnt include LI.
i should also add, i checked for patches patching the same thing I am, and found very little.. so, it maybe something is modifying the fire exits without patching anything.
nevermind, its just the time delay between host and client sharing data i think.
yeah, seems the issue is intermittent.
i tried just now, all data is correct.. EXCEPT the client doesnt get the exit points (i try to pre-load them before round starts so masked can use them without causing errors), but client still goes in and out of fire exit correctly...
so something else must be causing it to be a different ID, or different exit point at some point.
with this profile code btw
#1193461151636398080 message
all i did was add a beta for LI (no changes compared to latest) which has code for checking fire exit details + imperium, so i could spawn a masked so i can check after round starts easily
so im not even sure its one of the mods that we both use xD
ok, i can confirm, this issue is caused before my patch runs.
will provide details shortly... and ill test your profile as well bio once i have finished putting the data in an easy to see view for my profile XD
ok, this is an example of where the issue occurs.
this is fire exit #1 on the MOON (outside) from my host's logs
EntName -> EntranceTeleportB
EntID -> 1
EntIsEntranceToBuilding (is outside?) -> True
EntPosition -> (-116.41, -24.61, -97.37)
EntEntrancePoint -> (-116.23, -26.08, -96.26)
EntExitPoint -> (-20.03, -231.98, -29.11)```
this is entrance id 2 on the moon side.. entrance ids above 1 seem to have null exit points.
Entrance # 4
EntName -> EntranceTeleportC
EntID -> 2
EntIsEntranceToBuilding (is outside?) -> True
EntPosition -> (14.45, -15.99, -145.40)
EntEntrancePoint -> (14.35, -17.46, -146.52)
EntExitPoint -> null
after my patch runs, the exit point for entrance # 4 becomes.. "-20.03, -231.98, -29.11"
all i do to get the exit points is run vanilla code -> `EntranceTeleport.FindExitPoint();`
these are INTERIOR (inside) entrances.. after my patch..
Entrance # 2
EntName -> EntranceTeleportB(Clone)
EntID -> 1
EntIsEntranceToBuilding (is outside?) -> False
EntPosition -> (-9.56, -217.98, -0.60)
EntEntrancePoint -> (-10.53, -219.48, -0.61)
EntExitPoint -> (-116.23, -26.08, -96.26)
Entrance # 3
EntName -> EntranceTeleportB(Clone)
EntID -> 2
EntIsEntranceToBuilding (is outside?) -> False
EntPosition -> (-19.06, -230.48, -29.10)
EntEntrancePoint -> (-20.03, -231.98, -29.11)
EntExitPoint -> (14.35, -17.46, -146.52)
before my patch, both exit points are null, and the ID is 1, my patch follows vanilla code with no changes, it just sets it slightly earlier....
so it seems the issue is related to vanilla code conflicting with itself in some way.
it sets the IDs one way, and the exit points the other way.
so.. in this case..
on the moon side...
fire exit 1 (moon) -> fire exit 2 (interior)
fire exit 2 (moon) -> fire exit 2 (interior)
and on the interior side...
fire exit 1 (interior) -> fire exit 1 (moon)
fire exit 2 (interior) -> fire exit 2 (moon)
so yeah, i think its just vanilla x.x
might be an issue where a client goes through a fire exit before the host, i just ran the same test solo, no issue.
do you modify how vanilla does it? or just re-set them later?
because before my patch runs, they arent set.
unless you set them as 1 (for interior) and 0/1/2/3 (for moon side)
i don't touch the interior ones because theres no need
i validate the exterior ones
i have no clue what your trying to say in that big text dump higher up
ok, i found your code for the fire exits.. you set the moon side ones (that i thought were set by vanilla code)
what im trying to say with that massive information dump.. is..
the outside fire exits are pre-loaded with an exit point in some cases, and otherwise, null.
and.. at the point of vanilla setting an entrance ID for the interior fire exits... its then setting the fire exit point for one fire exit, but for the other, because it already has a value.. its linking 2 fire exits to one fire exit on the other side.
so.. if you dont set that exit point... you may want to make them all null and re-set them all as somewhere along the lines, the IDs and exit points are getting intertangled leading to incorrect results.. and if you do set those exit points, may want to look at that.
i do not set exit points
then vanilla must have them pre-set?
if a door is missing an entrance point that content is broken
nah
respectfully, that was a statement
i understand sorry, my "nah" was meant to be followed up, but i wanted to screenshot the text above and highlight what im pointing out, its not about entrance points.
as you can see, the vanilla function, is assigning the same exit point, to a different fire exit, to one which already has that same exit point pre-set somewhere before the level is generated
which means either the setup on the content is wrong or the order of entrance objects in the scene/s hierarchy is different between clients
well, in my testing, it was MARCH with the vanilla facility.
ok
ive seen it on march with other interiors too, but yeah, i was just thinking, rather than dwell on what places maybe breaking it, a simple fix would be to make sure all exit points are null.. then set them using the vanilla functon, so at least 1 fire exit, leads to 1 fire exit, not 2 into 1 in some cases.
but maybe my thoughts arent correct, i dont know if there is a reason why that entrance has a pre-set exit point while others are null.
if an entrance has a already filled reference for an exit point thats a content setup problem
which i dont think it is here
dunno
i don't think this is my fault
nah, i dont think its your fault either xD
nor vanilla tbh
i d k, vanilla moon, vanilla interior, ill try to rule out mods and still get it to occur, but it doesnt seem to always happen and reloading the game 50 times to get it to occur is a pain xD
ok well one last piece of information on the issue.
my patch seemingly corrects it (sometimes).
my patch isnt currently setting exit points on clients but is using vanilla code and setting the correct exit point on the host..
but client is suffering with the incorrect exit point, so whatever is setting that exit point is the issue.. LI will auto fix this as part of my patching (when i correct my code) so masked can use teleports, but uh, ill have to look into what mod is causing it still, if any.
I cannot say I have ever encountered this issue and I've used LLL since I started playing so I also very much doubt its an LLL thing
to be fair. from the start i never suggested it was an LLL thing, i am just talking about it here, because here is where it is being talked about.
my initial opinion was, it maybe my fault, but its likely stemming from something before I (or most people) would patch fire exits (as i patch it before it is touched in vanilla, so im effectivly the first person touching it.. and before i touch it, its set wrongly imho.
so, unless some mod is messing with fire exits the moment they exist.. the options are..
1 - the moons (including vanilla moons like MARCH), or interiors (which includes the 3 fire exit vanilla facility used on march as well as modded interiors) have incorrect setup (as batby said maybe the case)
2 - vanilla is doing something weird which affects multiple 2+ fire exit moons.
3 - some mod is patching before i patch in the process, which is causing fire exits to either, get the wrong ID's, or wrong exit points.
either way.. ill keep looking deeper into it until i find the cause as i now know exactly what im looking for as a sign its occuring, if i can rule out all the mods and strip it back to just vanilla and still getting the issue.. then i will.. but when its not happening all the time, and seemingly only seems to affect the client using fire exit #2 (possibly only when they use it before the host)
also, batby, if you rather this is discussed elsewhere, i will stop talking about it here (i dont want to spam your thread :D), do my investigation.. and bring it up in the relevent place once i know whats causing it, i just figured the information being shared will lead to a quicker solution, and figured as its being discussed here, then here is appropriate, didnt mean to make it seem like its your problem to fix, was just making it clear "something" is wrong, and trying to explain what that "wrong" is.
Is there a config which makes you have the same seed every time?
In my logs if always sets the seed to 0, and I’m 99% sure it’s got something to do with LLL
not from this mod
i think imperium has a function that lets you force the same seed but idk what other mods could do that
Is this only the first day? There're a few mods that set the first day seed to 0 I think
Cullfactory is something that lets you set the seed (typically I use that to set the seed)
oh i didn't know cullfactory could do that
No it’s weird
It keep using the same seed over and over
Same hazards in the same spots
thank you
i always fill any configs i dont use with 0
i may be a little slow
In practice I recommend against doing this, you should only really change configs intentionally and if you know what you're doing
yeahh I had to go back and change a ton of stuff
its all good now and works
thats just lan mode i think, i remember reading about that somewhere, only 1 client can host, if you switch, it breaks the game. I could be wrong tho, and i d k where it was written. have you tried without LLL installed?
Without LethalLevelLoader installed, there is no such problem
Downgrading LethalLevelLoader to 1.3.13 also doesn't happen
if i'm not mistaken, are those values useless ?
afaik that is correct, they are unused
since when? O.o
i modified these before and had stupid amounts of scraps in levels when testing.
i think in its current state its just the quantity of scrap in the facility and the scrap weights that matter
im not sure. but that is the total value.
i've personally had where the scrap value far exceeds the maximum value in config so i know it doesn't work, but it would've been an interesting bounding box mechanic
ive been fiddling with the total value + the total amount this week, but i didnt actually check if the total AMOUNT does nothing, ive been modifiying it, and its seemed to have an effect.
if my code wasnt totally broken right this second id test it with an extreme example.
things add to the amount, i would consider that the minimum
ie, if you set 500-1000.. you will get 500-1000.. or more.
that would make sense if some ungodly combination in my profile didn't generate an experimentation with upwards of 2000 credits inside
well thats a lot of mods causing that.
let me see if i have screenshots from my testing before.
yes of course
ok, i dont have screenshots, but from memory, with the mod im working on..
i set those values in LLL for a moon, at runtime, and lets say my mod goes "you will get 571-1200".. i will always see within that range.. but im testing with no other mods installed.. so its not those values are broken or dont work, its just other mods modify them (like mine will also) afterwards.
but yeah, as for the total pieces of scrap, that may work, or may not... i thought it was.. and im setting it too, but i didnt look at it too hard.
actually, forgive me, it maybe my code is still broken, but.. im getting 51 items (my mod said it would be 50), but the scrap amount is wrong for what it should be.. O.o so yeah, maybe its not working, now i need to relook over my code and see if i broke something lol
yeah, i think i had broken something, its still a bit under what it should be, but its roughly right, so the LLL values should work
the 61st item is the apparatus i beleive. (in fact, the low amount of scrap maybe due to the number im setting for how many items there should be...)
well seems im wrong 🙂
ive been setting a scrap value, and calculating a scrap total, so i didnt notice the scrap value was doing nothing, guess my calculation is good enough..... x.x so yup, they do nothing, where is my dunces hat? lmao
i mean, you couldnt know
but i wonder why is option is still present if its unused
was it used at one point ?
those values exist in the vanilla item class
i just added all the easily configurable values vanilla has declared
currently basegame doesnt use them yet tho
Hey all, I got a question: could someone please explain how LLL’s ExtendedMod function works? It is able to differentiate items based just on them being from different mods, for instance if two scrap mods had items with the same item name and asset name, LLL could still tell them apart using ExtendedMod? This is all unfamiliar to me
It can if you provide content tag for your items
Just create LLL content tag
Set it's name
And assign to your item
I see, thank you
is it possible to do interior hot-reloading? from what i understand about the interior selection process (and i might be wrong about this), it doesn't actually select a specific one until after the seed is determined, so basically it would have to load all possible interiors into memory before landing, and then unload the ones that weren't selected during the generation process?
just generally asking since it seems like a much more complicated application than with moons
and after the hot reloading was added to moons, i noticed interiors taking up big chunks of ram instead
I don't think anyone in the community has the knowledge and passion to do it for free nor the money necessary to convince me to mess with it
objectively possible but i do not think it's happening
fair
also separate question, does LLL have a system for preventing items from getting changed by profile changes? e.g. adding a scrap mod suddenly causes all the items on the ship to change?
it does
it doesnt always work
if it's lethallib items its highly possible it breaks
gotcha
was wondering cus SmartItemSaving says that LLL's system is more comprehensive, but everytime i tried doing something like that without it, the items got messed up (granted they were all lethallib items so now it makes sense)
i'm guessing it's way more reliable if the items are registered through LLL
could someone explain to me these settings like i'm five ? especially the last one



