#Loadstone
1 messages · Page 4 of 1
idk the name of the room, time do describe it again 
there's a room that have a big pipe at the middle of it, this room is similar but without the pipe, it's like a intersection
but here, it combined 2 of those intersections, so it was a EXTRA BIG room
something like that
but i think that's a vanilla bug, i remember seeing something like this the first time i played the game without mods
that's very rare
the diagonal room?
ahh, if it's two diagonal rooms that'd make sense
when zeekers added them, he forgot to set up properties that define what they can and can't connect to
so they generate in places that the rest of the maze can't
like
iirc, the maze can't generate directly next to a locker room under normal conditions
but the diagonal maze can
so you'll often see them connected to its doorways
that makes sense now lol
(also she/her btw :3)
sry, won't happen again 
thank :3
ok no issues it seems on the new version
nice
this is mostly unrelated to loadstone but i figured i'd ask since you might have the best grip on dungen
is there a good way to predict the likelihood that a particular room will spawn given a dungenflow asset
to be more specific, i'm interested in calculating the likelihood that an apparatus will spawn in the factory given a particular interior size
it seems like the apparatus is guaranteed to spawn as long as one (or both) of two specific rooms generate in the factory
and i assume having a larger factorySizeMultiplier increases those odds
I'm pretty sure it's possible, although it gets hairy since there's a bunch of animation curves and branching paths at play
You are correct in that, if one of the two "apparatus rooms" spawns in, you are guaranteed to get an apparatus. The apparatus is a "global prop" that's guaranteed to spawn in if it has the opportunity to
I seem to remember that DunGen pre-chooses which tiles to generate, then just places them down, so that might help a lot
i see
I have to say
It really bothers me that
Even though the minimum apparatus spawn count is set to 1
It won't spawn in without one of those rooms
I feel like a minimum of 1 should guarantee that it spawns in
it does make me wonder a bit
if that's one of the reasons the elevator wound up needing to be scrapped
There is a way to force it
DunGen has "tile injection rules" which let you force certain tiles to spawn, and force them to spawn in certain places
They're quite flexible with what they allow you to do
I've messed around with them before to force apparatus rooms to spawn
best bet is to ask lady raphtalia about that stuff
yeah
she's also pretty knowledgeable about DunGen
having this issue too
this happened yesterday so im not sure if a fix was uploaded or not
That issue is a vanilla issue to my knowledge
If it happens again, could you send the logs? I just need to know the moon and seed really tho
Full logs might help too tho
it was on etern but that's all i know unfortunately
also im talking abolut the desynced interior layout
yes
You didn't have Tomb installed did you?
That interior was what caused those issues for my group
nope
and i think that got fixed
Could you send a code for your mod pack?
Do you have Diversity?
Diversity can do it
oh yeah
I've been informed it can be problematic
it works fine if you disable everything interior related
kinda hard to not use a mod that is the only viable option for doing half the things it offers
floof probably has an interior related setting enabled
i think the new update fixed it
havent had any desync issues with centralconfig since the update
I've never felt a use case for it or LQ
But that's me
im playing with a friend right now and after 2 quotas i havent noticed any issues regarding desyncs
even with interior stuff enabled :)
i just find the convenience of having all scraps and interiors in one clean config is nice
Discord keeps removing this caht from my active forums because I'm not speaking here enough xD
oh, nice
Hey
Is loadstone safe to use ?
I've seen multiple reports saying it could cause desyncs on dungeon generation 🤔
Cause I'm using like 17 modded interiors
I added it for v56 never had issues, 27 interiors or so
Alright
Thank you !
Those issues have been resolved
Thanks !
WAIT
I KNOW UUU
Ur the person that’s credited in the videos of ai behinds monsters videos
Bro I love those videos, it’s so cool
Watched every one of them
Yup
Sick
Yeah those videos are cool
I wish i could work on those 
is this mod good for solo even though theres no need to talk while the moon is loading in?
Yes
why, is there any other feature
It's loading faster, and no unnecessary dark screen while loading
i suppose
is it broken in v60?
works on my machine TM
I haven't actually booted up v60 yet to check
works fine yeah
Haven’t had any issues
I was wondering
?
If we could have the new elevator jingle from LC playing while loading the level
and if it would really need the LCSoundTool
oh yeahh
I forgot about that
I should change the default jingle to use that
if I did that I wouldn't need LCSoundTool
since it just plays an ogg file from the plugins folder I think you could theoritically just replace it with the vanilla elevator there LOL
doesn't it need the LCSoundTool?
then, if i replace the LoadstoneLoading.ogg with the elevator jingle without LCSoundTool it will work fine?
i will try
yeah that would work
it just needs to have the exact same file name, including the .ogg extension
pretty sure this should work
do note you still need LCSoundTool for the audio to play in the first place
I can detach myself from LCSoundTool to play the elevator jingle instead later on so that Loadstone doesn't depend on it anymore
Any tips or settings I can use for reducing the freeze that happens happens after returning to orbit from a day? Or any idea what might be causing or contributing to that? That period before the "days remaining" message shows up stops voice chat and basically hard freezes the game for 10-20 seconds and is very annoying.
I also have some buddies who have been experiencing hard crashes during or soon after returning from orbit and I'm not sure where to start looking in terms of the issue.
I know Loadstone deals more with level generation but it feels like the issue is in a similar vein and I wanted to get some insight on what causes that problem
10-20 seconds is highly unusual
I get a small 0.1 or 0.2 second lagspike, but not multiple seconds
What mods are you using?
Far too many hah. Which is why I was hoping to get pointed in the right direction. My modlist is fairly organized by general type, with just planets and interiors at the bottom, but there is a lot.
10 - 20 seconds was definitely a bit dramatic, maybe 8-12 seconds.
I'll check it out and pop it open in the unity debugger if I can recreate the lag
how many GB of RAM your friends have?
btw Diversity and Immersive Visor aren't working properly
you should use only BetterEmotes, doesn't need More Emotes patch
Celestial Tint can be kinda laggy on orbit
HookGun is straight broken, you shouldn't have it also
too many mods 
What's going on with Diversity and Immersive Visor? I know IV is depreciated but I've never had any issues with it functioning. And Diversity has seemingly been working so far since adding it
I was wondering if the lag spike was Celestial Tint related. The ones who are crashing in orbit have 8gb. I assumed it was RAM related but I will say we have had Celestial Tint for months now and the crashes are more recent.
as the base game evolves and some of the mods update to keep up with it, other mods are left behind. this leads to incompatibilities between mods updated and mods unupdated. an example of such (which instigated IV's deprecation) is the samurai sword on Seichi. when it swings and kills someone with IV functioning, it'll repeatedly play one of IV's damaging sounds and prevent the killed player from voting to leave. since the sword results in a Barber snip death, the same might happen should someone get cut in half by one
What does it mean, when the seed red is?
?
The numbers, red font underneath the normal color font
where
It is often red, idk why
ah
I think that's just a visual effect from how zeekers renders it out
@crisp relic Have you considered listing the Nightly build as deprecated since Stable and Nightly are 1:1 atm?
Matty does that with his Experimental mods when his Stable and Experimental builds become 1:1 lol
then undeps when he needs them tested
Nightly has the option to enable object pooling (disabled by default)
said feature isn't on the stable branch since it is pretty buggy
It's not a feature that's been being asked to be tested for a while though and the code is still 1:1 pretty sure the config option just isn't there
the code for object pooling is entirely absent in the stable build, not just the config option. I've set up build systems so I can have nightly-only features only exist in nightly builds
Ahhh got you
I will say the Nightly build also still performs a bit smoother for me lol so I'll stick with it
XD
I have not, no
I'm unsure about doing that though, since it may lead to players who want to test nightly to uninstalling nightly, thinking that it's no longer being developed
I'm also worried that it may lead some individuals to thinking that Loadstone in its entirety is being deprecated, and completely uninstalling the mod
True
interesting
they should be identical unless you turn on object pooling
Could have just been rng if faster load cached anything
Does Loadstone have an asset bundle?
nope
m
I might add an asset bundle at some point, since it could be nice to show loading progress more clearly in-game, particularly for moons or interiors that might take a while to load
Honestly I've never had issues with moons and interiors taking a while to load unless said moon or interior is unoptimized and needs fixed
fair
Take Fray when it was temporarily bad for example
lol
If anything your mod is an essential mod that fixes so much
lol
I have seen some pretty poor performance on moon loads sometimes though
particularly in very large lobbies (like 40+ people), it can take minutes sometimes to load in
oh adi
yes?
fuck ngl i forgot you existed im so sorry
most definitely
i got proof of concept scene hotloading working !
fair lol
I've not done much modding recently
Lol she hasn't been active in a bit, I awoke her hehe
ooo nice :3
i gotta refactor a ton of stuff so putting it off rn but
w/ just wesleys moons installed in orbit goes from 4gb ram usage to like 2gb
w/ 100 moons 11-12gb -> 2gb
it's goated
(basicially unity shockingly does not freak out of you decide to register a scene to it's managers then unload it, aslong as it's back when it goes looking for it)
im guessing cuz it's all string based
ah, nice
in theory we could do it for dungeons aswell but tbh the filesize to time to load the bundle ratio seems like it wouldnt be as worth
speaking of
I might explore some alternatives
object pooling has just proven to be kinda buggy in general, and I have no way of guaranteeing compatibility with interiors that have custom scripts
but
the biggest performance improvement from object pooling comes from not re-calculating mesh data in the facility interior
so I can get most of the performance uplift without the mod incompatibility and bugginess just by caching that data
fair
Ooh I'd be down to try this if you have the update ready
I wonder if Mineshaft could also get the same treatment
I also found an interesting github repo yesterday that seemingly successfully fucks with unity compiled asset files directly
which has some super interesting implications
but it's in c++ so hard for me to read
Mineshaft is kind of laggy when it generates at larger sizes
I think I remember hearing someone mention that it uses ProMeshBuilder, but I could be mistaken, I haven't checked myself
any interior that uses ProMeshBuilder would get a performance boost from that feature
fair
Oooooh
mineshaft doesn't afaik
ah
Zeekerss dropped probuilder during mansion
I did notice that
I wonder what Mineshaft is using?
also, doesn't he use probuilder for the outside concrete structures for fire exits?
though, I dunno how much performance that eats up
it's the most unoptimized of the vanilla interiors, and it's only noticeable when it generates large
I think it's because it has multiple sections, those being the cave section and the "facility" section
and those generate in distinct blobs
so it takes longer to calculate that
it's prolly something I can improve
Still interested in you pushing this feature :3 do you know how ready it is to be added to Nightly?
I haven't started writing it xD
oh also
I don't remember who it was
but thank you to the one person that donated to my ko-fi a few days ago :3
I'm a c++ head, throw it my way
I keep seeing this, what do it do to CullFactory? maybe I can help figure out how to get things working with that if it's valuable enough to memory/perf
perhaps
I think I'll try the performance tests on Mansion and see the difference there, since Mansion doesn't use ProBuilder meshes
it'll give me a good idea of what kind of performance uplift could be expected in a relatively simple usecase
is it mostly an improvement for interior spawn times? and does it require the same interior to generate again for it to actually be effective?
currently, it stores all spawned rooms internally, and when a room is spawned, it'll use one that was stored previously instead of spawning a new one, if an old room is available
so yes, it does require the same interior to generate a second time before it does anything
the only thing it affects performance wise is interior spawn times, though I could replace other object instantiation calls with the same object pooling instantiation method, and it should also work
right now, the biggest issues are that I need to reset all scripts in reused rooms, and I need to modify dungen to only deactivate objects, rather than deleting them entirely (which it does for unused doorways and such)
I'd 100% need to add an interior blacklist, since custom scripts attached to rooms would be likely to malfunction, unless there's some generic way to reset a script that I haven't found documented
hm, I wonder if there's some IL hack you can use for that to call the constructor
the constructor should set all the fields afaik
not sure if you can do that without using newobj
I am curious what goes wrong with CullFactory though, is it because the CullingMethod gets brought back from your object storage?
or is it that it doesn't know how to fix the visibility after CullFactory hid things and a moon unloaded?
I guess maybe you only know that it has issues lol I'll have to take a look at some point
@crisp relic if you ever get back into messing with optimisation stuff i found a tool that possibly could let us mess with the games asset files directly which can have some interesting implications 👁️
👀
I have substantial frame drops whenever I'm eaten by a forest giant. I will say that I lowered the dungeon target frame time to 1 millisecond to ensure the game doesn't stutter whenever things load in.
It also affects the malfunction mod (I think). I always see frame rate drops when the effects are active. I do use the "spread over multiplie frames" option, but I'm just trying to figure out why it's like this. I love the mod, as it helps improve my frame rate, but there are moments where I have no headroom; I'm running the game at 120 fps. I've guaranteed the game will always run at 60 fps (at least on my computer), but maintaining 120 fps has been tough.
Loadstone won't be affecting runtime performance
the optimizations it uses are only active for the few frames before the ship doors open
Any mods you know of that your mod has compatibility issues with?
nope
HeavyItemSCP's currently doesn't get along with Loadstone
Causes a ton of SpawnedNetworkException errors but that's the fault of that mod
have you ever taken a look at the long pauses after the end of a round?
That's due to the game saving
It only happens for the host too
Cus only the host has their save file written to
It's been a thing since V56 cus the game saves a lot more to the save file than it used to
That wouldn't be something for this mod to optimize
Might be more down the road for someone like @alpine silo or @halcyon sable to look into optimizing
I could look into it at some point, I just haven't been too focused on modding recently
I have discovered Terraria and gone down a rabbit hole :3
Its probably more for LP to-do that
its actually your mods causing a lot of save lag spike
Oh is it? Do you know which mods might cause it?
Cus I really wanna fix it
iirc buttery fixes
Oh wow
Do you know why?
@marble scaffold Can you please look into fixing that?
🙏
i dont know what's causing the issues
iirc all i save to the file is the items in the dropship
Ah maybe you could add an option to disable that if it's causing the problems?
Config options are always goodge
maybe default it to false as well
i would be surprised if it's causing problems because it should have significantly less impact than vanilla's routine of saving scrap
and add the warning that it causes a freeze when the game saves
should be a drop in the bucket in comparison
True
it just writes a list of integer values to the file
Maybe you can test and profile it
Who knows, but I guess if it's that then a config option wouldn't hurt. The weird thing is it started happening when V56 came out but was never an issue on V50 so maybe it's due to internal code changes?
Cus I'll add in my pack I've personally never needed that fix, I don't buy items before doing lobby reloads I usually make sure items are always bought and collected on the ship first
if it can be established that it's definitely causing performance issues, i can make it configurable, but i dont want to add configuration options that are unnecessary because huge configs are unwieldy and bad user experience
so unless it is definitely established that it's causing a problem it is just going to remain enabled by default
huge configs are unwieldy and bad user experience
my opinion, anyway
I agree, but if DiFFoZ said it's butteryfixes that causes the freeze when the game saves and you said that's the only option that touches save files
I can only imagine it may be that
But ig we'll know more if @halcyon sable has more info
I also don't like huge config files cus they cause ridiculous ram usage in vanilla
LethalPerformance fixes that
the only savegame patch in butteryfixes is a try+catch block that writes a single int (if you ordered the cruiser) or a list of ints (if you ordered items)
Yeah so if it's not that I just wonder what else in the mod might do it
vanilla also has a try+catch block and writes way more to the file
like i said, it should be a drop in the bucket, as far as i can tell
Yeah, and like I said I know the freeze never happened on V50 and started with V56
so I wonder if it's due to changes with how the game saves possibly
could be vain shrouds
vain shrouds save a bunch more information to the file
2 new integers and a list of integers for each planet (vanilla or custom)
v56 also added warranty as a saved boolean
This happens even without YesFox though but maybe
weed data is still saved
So it could just be your mod is adding some slight overhead maybe?
it's just default values and an empty list if shrouds havent grown
maybe. i can't pretend to be an expert
That's usually how I'm used to DiFFoZ describing stuff like this
but i am at least a little doubtful that there would be significant improvement just from disabling my patch
lol
because vanilla does the same thing and it does it to a way larger extent
I mean since it was your mod specifically listed though it's something
lol
Just dunno what
Yeah
and depending on your disk, writing to file can be slow
zeekerss doesn't utilize es3 cache
For me the freeze is pretty short but yeah it's been annoying
so every single write command writes directly to disk and it happens multiple times in quick succession
I wonder if this could be patched to actually buffer the write file
i was thinking of experimenting with that actually
im pretty sure you can just change the es3settings to use cache and then add a postfix to write to file
and it could have a pretty significant performance improvement
who knows
Is the Inverse Teleporter only usable once the dungeon has been fully generated? There was a weird case where I was dealing with an invisible spider, though I assume this was either because I set the Dungeon Target Frametime to 1ms or there's another mod that's causing it. If you could explain the rammifications of setting said frametime to 1 ms (besides longer load times), that'd be appreciated.
setting the frametime to 1ms will just increase load times. It could also cause issues if other mods inject functionality at off times
From my experience brutal company causes the invisible monsters
as for the inverse teleporter, I'm not fully sure whether or not that will work before the dungeon is fully generated
I would expect it to not be functional until the dungeon finishes loading, but I haven't explicitly checked it's logic
I only encountered the issue once, yet I don't have that mod. I wonder if Hullbreaker_Company_Amibiguous_Fork uses Brutal_Company as a base
FYI - this mod was isolated to be causing hanging on load after the recent update.
could you send an error log?
Yeah I got you - apologies for the lack of data - it won't be until me and the gang finish the current session.
that's fine
I have a feeling it's a mod conflict rather than an isolated issue from Loadstone
Saw this warning
[Warning: Loadstone(Harmony)] The assembly "LethalPerformance" has patched the method "Void Start()" with a transpiler using "System.Collections.Generic.IEnumerable1[HarmonyLib.CodeInstruction] ReplaceFindObjectOfTypeTranspiler(System.Collections.Generic.IEnumerable1[HarmonyLib.CodeInstruction])", which we also modify. Unexpected behaviour may occur
Any idea what this means? I have the LethalPerformance mod and I'm concerned that it's interfering in some way I don't know of.
LethalPerformance and Loadstone should be fully compatible
it's simply a warning for untested mods that there might be issues
got it
Is it known that the Loadstone loading music is only heard by the host?
like, even when the config for them + the clients have it enabled?
At least in LoadstoneNightly
Was puzzled why nobody could hear my custom music for it, then i asked if they could hear the music before and they said "Wait there was music before??" So yeah its just been a host only thing the whole time lol
i only added the custom one very recently
well
each person needs to enable the music if they want to hear it
we share the same config
and its enabled by default in the code i share with them
when i've asked them to check they've confirmed its ticked and volume is normal
And then when they host they suddenly can hear it
ahhh I see what's going wrong
mk it should be an easy fix
Give this a try
that should fix the issue
if that works, I'll update the thunderstore with that version
alright
We are using LoadstoneNightly tho
Main and Nightly are currently identical except for one config toggle that is highly experimental
I added the Main Loadstone, replaced with your stuff you sent me here, disabled nightly, and tried, and there is no music now even in solo
I did see that normal has its own config, so i made sure in that config its enabled and volume is set correctly, as well as disabling my own music replacement mod in case it was conflicting, still nothing
I had a friend with me also do the same stuff and replicate the same issue. Originally we was gonna test if the music worked in multiplayer but, yeah it doesnt even work in solo now lol
My profile, modlist and code if you need it, but there was no errors in the log
0192f2a4-ab8c-89c9-f9f5-9cd92f2995b4
^
And for me, normal loadstone doesnt play anything
Only nightly
thats why i wanted to check whats it doing on my end
but hey mods being weird i have that too but with other mods lol
Try this one
@midnight cairn if you have the time 
When i am home from work we can then test multiplayer if it works in singleplayer
k sure can do
appears to be playing music correctly in solo, will check in multiplayer later
@lavish ginkgo @midnight cairn any updates?
The music works now in singleplayer along with my asset replacement mod
Just waiting for when temmie is on to test with me before we do a session today
ight
Just tested with temmie and no
Works for host but not client, identical config+profile n all and using the DLL you sent
Temmie noticed this setting is off in LCSoundTool tho, we will try turning it on and see if that makes it work
Still nothing 💔
networking shouldn't be necessary to make it work
yeah, it had no affect
Any idea when it might be fixed?
Sure, me and temmie will try rn
This one makes it so the host cant even hear the music, let alone the client
any logs?
and just to confirm, you did set the config? Keep in mind that nightly and regular have different configs
I had a thought, see if this works
yep
we actually deleted the nightly config and have nightly removed just in case
We can test in a bit
oki
Host can hear now, but not clients still
we will try deleting our config and letting it reset as a last resort
Still doesnt work (after regenerating config we did enable the music again ofc and reloaded)
It works!!
tho apparently for the client the audio is slightly outside to the right of the ship, tho that may be due to having ProblematicPilotry (Random ship landing location)
The main thing is that it works now

nice :3
the position should be based on the position of the speaker audio
it duplicates the audio source used for the intro sequence and uses the same properties as it
I'll update Nightly and Main now
v0.1.16 Released!
- Fixed [loading music only being heard by the host](#1242303311793885317 message)
- Thanks to Zeta for reporting this issue
- Fixed an error in the Dungen Optimizations which would cause errors with certain interiors
- Thanks to Tolian for reporting this issue
v0.1.17 Released to Nightly!
- Added a new event system to the dungen optimizations
- This will allow mods which modify dungen's generation algorithm to notify Loadstone of the tileset changes made
- This feature will improve compatibility with #1195583267546595389, and may be used by other mods later on as well
(@livid kelp)

what's the diffrent between Loadstone and LoadstoneNightly
Nightlies are cutting edge builds that might be unstable.
Nightly releases are built as needed for testing, normal/stable releases are built intentionally at a spot where there shouldn't be any issues from in-progress changes
Usually they're 1:1, right now Nightly adds compatibility with SDM and you should use it over Stable if you have SDM
SDM?
okay
Scarlet Devil Mansion
Ah, the Dungen.
Yeah
It fixes a ton of warnings that were being thrown before when you got that interior
Is it only for SDM or any interior that uses that extension?
Any interior that chooses to notify it as Adi mentioned
SDM right now is just the main one, but I expect with more interiors such as Slaughterhouse and Black Mesa soon updating to properly utilize DungeonGenerationPlus it will help a lot more
v0.1.18 Released to Nightly
- Reverts v0.1.15
- Instead, mods should use
Loadstone.IsNightly()to check whether the nightly or main version is in use
- Instead, mods should use
What is the difference between the main and nightly version.Which one am i need to use?
Use main
Nightly is for experimental testing and may break suddenly
If you are willing to provide bug reports and help with debugging, that's when I'd recommend nightly
@crisp relic you will now get live data on whether my performance improvements work with Loadstone
nice
@crisp relic did you change the GUID for loadstone nightly?
yes, I reverted a recent update that changed it to be different from main
Both now use the same GUID
Nightly has a function that indicates whether or not it's the nightly version, though that function doesn't exist in main yet
sorry if you were relying on that earlier
having the two GUIDs be different was causing more issues than it resolved so I reverted it
nah your change is big ups, just caught me off guard
gotcha
also I thought the version I was targeting was v16 but you added the function at v17, that also pranked me
but also my fault for not checking lol
lol
I'll probably update main to match nightly soon
I haven't had any reports beyond the one issue from 15
I think I'll give it two more days. One week after the last nightly update happened
what's the difference between Loadstone and LoadstoneNightly?
Nightly is a beta
ok
v0.1.19 Released to Unstable Beta
This update brings a slight improvement by removing the need for LCSoundTool to use the loading sounds, and gives Nightly a bit of a rebranding, making it clearer what it is, and making it easier to distinguish at a glance from the main release of Loadstone.
- Renamed Nightly to Unstable Beta
- This should help clear up a common point of confusion
- The
IsNightly()function added previously will not be renamed - This renaming will result in a new config being created. I recommend copying old config values over and deleting the old config after
- LoadstoneNightly on Thunderstore is now deprecated
- Updated Unstable Beta's Icon and Description
- Removed LCSoundTool dependency for Loading Sounds
- Waiting sounds will now use the vanilla ElevatorJingle sound instead
- Mods which previously modified Loadstone's loading sound will still work
- Mods which modify the elevator jingle sound may cause issues
- Added a config option to loop the loading audio. Defaults to true
- Reorganized project structure
Here's the new Loadstone Unstable Beta icon
It's just a hue shift of the original. Not much, but it's something
So guessing Nightly is gonna be deprecated?
I was actually about to ask why this existed when Nightly existed hehe
yeah, it'll have to be
renaming it makes it considered a new package, so the old one will have to be deprecated
Does this mean SoundAPI will be able to handle it too now? ;o
in theory, yes
it's no longer using any sound API, so any sound API mod should work just fine
Yeah it's definitely a good idea to remove LCSoundTool as a dep, it was good for it's time but it does cause performance issues lol
yeah
I've been meaning to do that for quite a while
I finally have some more motivation to work on Loadstone after the Bingo game earlier :3
also, I'm gonna update main to 0.1.18 I think
that version seems to be stable from everything I've seen, and this verison has potential for new bugs
(also thanks for mentioning that, 1:30 AM brain forgot that I need to do that lol)
XD yw
Main Loadstone Updates
v0.1.18
- Revert v0.1.15
- Instead, mods should use
Loadstone.IsNightly()to check whether the nightly or main version is in use
- Instead, mods should use
v0.1.17
- Added a new event system to the dungen optimizations
- This will allow mods which modify dungen's generation algorithm to notify Loadstone of the tileset changes made
- This feature will improve compatibility with ScarletDevilMansion, and may be used by other mods later on as well
Did you see in Beta that it is not compatible or should I not worry?
I didn't try elevator music mods beyond a simple replacement mod, and confirmed that they don't work
It does seem as though the elevator jingle may not work properly if an elevator music mod is present, which I plan to look into
Well, this mod seems to work, I wanted to make sure that it doesn't cause problems.
ah, nice
yeah no it shouldn't cause problems
the most that'll happen is an error or two in the logs and no music
Ok I gave Nightly its last update
A new description and icon to make its deprecated status clear
The tile pair of "MuseumRoom2" and "MuseumRoom2" was not found in the tag cache! This pair is now being cached, which will cause a small performance penalty
@crisp relic If this spits out a bunch of errors will it be the reason for a soft lock on landing?
no, that shouldn't cause a soft lock
it'll slow down landing, but that's simply because the optimization causing the issue is being skipped
if you want to try without it, I think that log is from the DungenOptimization module
I learned how to read the SQlite logs but thats all I could find. Its so rare when these soft locks happen. and no errors pop
yo
so this moon is having incompatibility issues with loadstone
could maybe there be a way to add a blacklist function for cases like this?
Yes, I can add a blacklist for that
I'd also like to figure out why the issue is happening though
I'm thinking I'll add two blacklists
one Global Blacklist that disables Loadstone entirely, and a second blacklist for AsyncDungeon, since not all mods are designed with the expectation that the dungeon will take multiple frames
v0.1.20 and v0.1.21 Released to Unstable Beta
Two updates in one this time because the second feature didn't take as long as I expected it to
v0.1.21
- Added a blacklist to the AsyncDungeon module
- If a particular interior is having issues, you can add its DungeonFlow to this list!
v0.1.20
- Removed LoadstoneLoading.ogg
- This was a leftover from the LCSoundTool integration
- The mod should now have a much lower file size!
- Added additional checks to ensure compatibility with more mods
- The dungeon will now be marked as complete after post processing, rather than before
Wait, does the custom loading music thing still work?
Ah i see i see
i had the idea of changing the popup design from the yellow notice (which i guess is the default) with a custom design, and i wanted to suggest it to see if it was worth trying out
i'm not saying it needs to look like this but i think a custom one might be cool to see
hmm
my main concern with implementing a custom popup design is that I'll have to package an asset bundle, which I'm not familiar with doing
that or I'd have to look into how the materials work and try to recolor things, but if I remember correctly, the notification is made of multiple different pieces
ah, okay
It's very chill tbh
and yeah for UI stuff for the love of god do not do it via code
I have done it both ways
gotcha lol
found this mod. Apparently, ChatGPT o1 says this about it when checking out the code. I’m posting here since this discussion is about optimizing loading times, so I figured y’all would know whether it’s legitimate and useful.
This mod prevents BepInEx (and thus the game) from constantly saving config files every time a bound config value changes, thereby reducing overhead (and potentially disk I/O or lag spikes). Then, once the entire mod loading process is done, it re-enables saving and saves everything at once. At the same time, it scrubs personal info from logs so you don’t leak your username or temp path in logs.
It's a useful mod, but not quite related to what Loadstone does
Loadstone optimizes loading times when landing in a moon, not launching the game
I’m assuming you’ve checked the code? I don’t know what it all meant, so I’m hoping it’s legitimate and not false advertising.
I haven't, but it's by a reputable member of the community. If it's not actually doing what it says, there are much more concerning mods of theirs than Terbidium
Fair enough
It decreases the time it takes to open the game
I think people slowed down on using it because of some other issue that I don't remember
Lethal Performance is the replacement for Terbium
🤮
are we substituting reading comprehension with ai summeries now
I don’t write code, so I had to rely on ChatGPT
Respectfully, you didn’t
If you don’t understand what it’s doing, you don’t have to
Please don’t run chatgpt on peoples code
It’s a gross thing to do
why not just learn coding instead??
I’m sorry, but asking that question is like asking me to learn French because I used Google translate. I’ve thought about coding, but Im nowhere near literate enough to understand what it all does. Yes, what Im doing is a taking shortcut, but ChatGPT is doing nothing more than translating the code so I can better understand it.
Thank you for clarifying your statement. I’ll make it clear that I wanted to know what Terbium did because I needed to know whether to add it to my modpack. I’m very picky about which mods are added.
I’m making it clear that ChatGPT did not help you
As in the information it provided was wrong? If so, then I’ll stop relying on it for that purpose.
In the future if you don’t understand what a mod does, just don’t use it
or just ask the creator
or the thunderstore page usually explains it
and if not that, the README in the repo
I don't mind people running ChatGPT on my code personally, unless they're using it to modify it, but you should never trust ChatGPT to tell you the truth ever
if you can't verify what it says, you can't trust it
it seems like it's probably mostly right for this case, but if it doesn't understand something, it will hallucinate rather than tell you it doesn't know
yeah
AI loves hallucinating
and, I mean, even if it read through all of the code, it could still be tricked by variable names and comments. An actual audit of the code would also look at exactly what the code actually does, but I have my doubts that it looks into the actual functionality of the code

unrelated question, with Loadstone can I expect that when a behavior within a tile has its Start() method called, the Dungeon.AllTiles collection will be fully populated?
no
that will only be true if the Dungeon Realization module or Async Dungeon Module are disabled
I think
I'd have to double check where AllTiles gets finished
ok yeah, just double checked, AllTiles may not be filled if Loadstone has Dungeon Realization and Async Dungeon enabled
ah I see
each tile is added one by one as it's spawned, and Dungeon Realization allows them to spawn on different frames
the tricky thing is that I can't detect what DungeonGenerator a Tile is within without doing work that is probably not terribly efficient, or patching DunGen
or RuntimeDungeon really
since RuntimeDungeon is a sibling of the root of the dungeon
I see
would it be possible to delay the process until the dungeon is marked as complete?
that's what I was hoping to do by finding the DungeonGenerator
only way I can think to find that is by doing FindObjectsByType<RuntimeDungeon> and then checking for one that references the Dungeon in the parent of my script
ok yeah I see the issue...
I suppose, you could always forcibly turn off Loadstone's Dungeon Realization config option
nah I wouldn't wanna do that
that particular optimization doesn't make a huge difference on its own, it's just a small gain
hmm really?
instantiating objects seemed to be fairly heavy from my experience
not like generating a dungeon obviously, but still quite noticeable
it's noticeable, and definitely measureable, but it's also only a few frames of difference
makes sense
I was theorizing a solution for blockers in Hadal, but I think maybe branch caps is probably the solution instead
that way they can check bounds properly
I do think FindObjectsByType would be better, assuming you just run it once on level gen
instantiating some interiors can have a much larger performance impact than others
Which oneis better
Normal loadstone or unstable beta
Because I have wild stuttering
Neither mod will fix stuttering during gameplay, only while landing on a moon
I'd recommend Normal Loadstone unless you are will to deal with and report possible bugs as features get changed and added
Any recommendation then?
it would depend heavily on what mods you have
I'd recommend LethalPerformance first if you haven't tried it
ReverbTriggerFix also pairs well with that
the two together can help with stutters during landing from what I've seen on profiles
oh someone made a mod for that?
I noticed that issue in larger lobbies but I wasn't able to figure out a good way to fix it
well the main benefit comes from the caching in LethalPerformance, but ReverbTriggerFix also helps reduce the effect further
at least in theory, I haven't tested this yet
I saw some very bad reverb trigger stuff in the last big session I played with a debug build, which should be directly affected by LethalPerformance patches
yeah
the worst I've seen from them has been in massive lobbies
I was helping coordinate a 32 player lobby and the vanilla reverb trigger code caused a lot of performance issues
32 players also has other issues though lol
the game was definitely not meant for that many people
yeah I am hoping to find more ways to make it handle that better, but LethalPerformance definitely makes a huge difference when you're near the ship
at least on poorly behaving moons
if you ever make a big lobby like that again feel free to ping me, I'm very interested to profile one with like 12+ players
I'm not sure how likely it is to happen again, but I'll be sure to message you if it does
especially if I get to restart to do a deep profile sometimes lol
yee
I noticed a couple things that are worth patching but I'm sure there's plenty more hiding somewhere
The two biggest issues we had were joining and ridiculous loading times
quite often, two players would join at almost the exact same time, which would completely break one or both players, causing them to be permanently stuck without control of their character underneath the ship, with the UI entirely uninitialized
There were also some weird issues where the lighting would completely break for some players
oh, and the enemy netcode
enemies would appear to just lerp from across the map and kill you sometimes
The weird thing with the load times though was that, for 99% of the load times, the client would just be waiting for everyone else to finish, but would also be running at about 2 fps. The debugger never really showed a clear culprit for the lag
the debugger as in the profiler? the unity one?
that really does sound like the reverb trigger crap, since there's one big one at the top of the level that the ship seems to sit in until it starts moving, and the more players the more FindObjectsOfType gets called per frame
yeah, the unity profiler
huh, that's curious, I definitely would've expected it to show the reverb triggers if they were your issue there, even in a shallow profile
Are you touching the function DoorwayPairFinder.GetPotentialDoorwayPairsForNonFirstTile by any chance?
I don't believe so, though I've looked into patching it
It's cause I'm going to override that function so I can easily add some backported dungen features
If you do patch it let me know
ok, I will
if memory serves correct, I ended up not patching that function and its related functions directly, because I found the bottleneck further down the line, which ended up becoming tag caching
Has desynced interiors been fixed yet? I haven't used this mod in a few months
I dont think this mod has ever caused desyncs in interiors for me, and been using a while
some people still seem to be getting them, but I can't pinpoint the issue very well
it has to be some kind of mod compatibility issue, since the majority of people don't have desync issues
I used to get it like a quarter of the time, people would have entirely different layouts
Even back when we didn't use many mods
how long ago did you use it?
even the current version causes desync for us
we stopped using it recently because it got too problematic to deal with
I think like 3 months ago or so.
im sure it is an incompatibility because our issues started long after the latest update
But it occurred too even when we first got it around when it first got popularity
but just like, every session after a few days (3-4) at least one player would start seeing diff dungeons than everyone else until we relaunched
I've found that a lot of compatibility issues are with async dungeon, you can try turning that off in the config
if it still happens
iirc turning that off did not help, i did suggest it as the first workaround and i think they tried
huh
maybe async navmesh as well?
if it's neither of those, then something I'm doing must have some element of randomness, and I'm not sure what that would be
yeah
it is hard to say
very unfortunate
im pretty sure they disabled all async stuff but i dont remember all the details
i am still convinced it is more a conflict than loadstone's fault
for what it is worth
but its hard to go anywhere after that
that's fair
your issue sounds very similar to a report on github
would you be able to send the modpack so I can try and narrow in on the possible culprits?
I really need to get around to implementing more debugging tools, stuff to check if desync could be happening, and if so at what point
im going to be so sad when its inevitably one of my mods 🥲 but tbh it is a real possibility to me
i dont mess with dungen directly but a couple patch the post-level-generated client rpc
and the issue never seems to replicate on day 1
just out of curiosity
does altering the tile prefabs cause loadstone's rng to be seeded differently?
it is imo the "most likely to be destructive" thing i could be doing
but it happens in startofround.awake for all players and iirc the only thing i change is billboarding on some particle systems in the cave tiles
not that I'm aware of
the only thing that modifying tile prefabs would really do is mess up tag caching, but Loadstone has a failsafe and starts building the cache as it generates in that case
tbf, i never had desyncs with my "vanilla" modpack except when i had ObjectPooling. I also play sometimes in public lobbies and even the unstable works fine... The problem may lie in how Loadstone deals with modded interiors?
my group has no modded interiors
desyncs have been reported on facility
on that note we dont even have lethallevelloader
in our case we were always getting desynced factories although it's possible it could've been occurring on manor too
usually what I've seen with desyncs though is like 200+ mods, which makes it really hard to find any singular culprit
not sure
well
my profile is only 65
and i was thinking i could do a diff with the other profile's dependency string
my profile is 150...
I've done my own rounds of diffing already, I can send you all of the string lists I have from that
specifically, I compared two known cases with Desync, as well as Zeta and Lunxara's packs, which haven't had issues with desync
with it fully reduced, I only had four mods left
ButteryStancakes-AccurateStaminaDisplay
ButteryStancakes-RevisitStingers
giosuel-ToiletPaperNormalizer
mrov-LethalRichPresenceExperimental
though it's possible it was different mods causing desyncs, or that Zeta's pack did have desyncs and nobody has noticed, so I also have just Lunxara comapred to the most similar issue to what you were having:
compared to both of these lists
the only overlap is accuratestaminadisplay and revisitstingers
both are mine and i'd be surprised if either could be the culprit
revisitstingers patches the function when you use entranceteleport and basically nothing else
and accuratestaminadisplay is only HUD stuff
concerning that second one, IIRC it started before i added barbermaterialtweaks, and we've had simpleweatherdisplay for forever with no problems
i'd also be somewhat surprised if it's a problem due to either
yeah
it's just a confusing issue
if you give me a second i will post the diff between my profile and broken-usb's latest profile code in the github issue
I can send USB's dependency strings, with the versions stripped
ok big diff incoming
- AdiBTW-Loadstone
+ AdiBTW-LoadstoneUnstableBeta
- AinaVT-LethalConfig
BepInEx-BepInExPack
ButteryStancakes-AccurateStaminaDisplay
- ButteryStancakes-BarberFixes
ButteryStancakes-ButteryFixes
ButteryStancakes-Chameleon
- ButteryStancakes-ClassicSuitRestoration
ButteryStancakes-EnemySoundFixes
ButteryStancakes-HalloweenAction
ButteryStancakes-JetpackFixes
- ButteryStancakes-KeepUnlocks
ButteryStancakes-MeleeFixes
- ButteryStancakes-RadioBabyFace
- ButteryStancakes-RestoreMapper
ButteryStancakes-RevisitStingers
- ButteryStancakes-SafeSoloScrap
- ButteryStancakes-SnowyHolidayDropship
- ButteryStancakes-UpturnedVariety
- ButteryStancakes-VentSpawnFix
ButteryStancakes-WeedKillerFixes
+ CharlesE2-HostFixes
Dev1A3-LethalFixes
- Dev1A3-YesFox
+ Dev1A3-LobbyImprovements
+ DiFFoZ-BepInEx_Faster_Load_AssetBundles_Patcher
DiFFoZ-HarmonyXTranspilerFix
DiFFoZ-LethalPerformance
DiggC-CruiserImproved
- EliteMasterEric-CleanerLogs
Evaisa-HookGenPatcher
Fandovec03-SpiderPositionFix
+ HDeDeDe-LogMuteLethal
FlipMods-HotbarPlus
FutureSavior-Hold_Scan_Button
Hardy-LCMaxSoundsFix
+ JacobG5-LostEnemyFix
JacobG5-ReverbTriggerFix
LegoMaster3650-FairGiants
+ LethalCompanyModding-LCUltrawide_Community
+ LethalCompanyModding-RuntimeIcons
LethalCompanyModding-VertexLibrary
+ MaxWasUnavailable-LethalModDataLib
- NutNutty-SellTracker
- Pooble-LCBetterSaves
+ PureFPSZac-NestFix
+ Rminin-FinallyCorrectKeys
- Rune580-LethalCompany_InputUtils
+ ShaosilGaming-GeneralImprovements
- Simplexity-Fix_XP_Divide_By_Zero_Error
+ Spyci-CozyImprovements
SylviBlossom-SimpleWeatherDisplay
+ SylviBlossom-SmartItemSaving
SylviBlossom-TerminalConflictFix
- Terraformer9x-TonightWeDine
TestAccount666-AntiSlimeCamp
TestAccount666-GoodItemScan
+ TestAccount666-ImprovedClock
+ TestAccount666-ScanShipEverywhere
+ TestAccount666-ScannableTools
- TestAccount666-TestAccountCore
- TestAccount666-TestAccountFixes
Zaggy1024-PathfindingLagFix
dopadream-BarberMaterialTweaks
- falcodxb-LessLogs
- flerouwu-LC_FastStartup
fumiko-CullFactory
+ giosuel-ToiletPaperNormalizer
mattymatty-AdditionalNetworking
mattymatty-AsyncLoggers
+ mattymatty-BagConfig
mattymatty-LobbyControl
mattymatty-Matty_Fixes_Experimental
mrov-ApparatusFix
+ mrov-LethalRichPresenceExperimental
+ mrov-LightsOut
+ mrov-MrovLib
- notnotnotswipez-MoreCompany
- quackandcheese-ToggleMute
- taffyko-BetterSprayPaint
- taffyko-NameplateTweaks
taffyko-NiceChat
+woah25-FairBirds
+woah25-FairGiantsHostOnly
red means i had it and broken-usb didnt, green means broken-usb had it and i didnt
everything else is stuff we both had (so probably one of those)
and you both had similar desyncs?
i believe so
as long as i understand the github issue correctly
We did an Assurance run and a Titan run without problems. But on the second Titan run, the inside of the facility looked totally different for me compared to the others. I fell to my death because I went in through the fire exit, which put me in a bottomless pit. After that, every run had the same issue until I restarted the game.
i've always hosted so the dungeon has always been "right for me"
alright
I'll add every mod in that list that both of you have
hopefully I'll eventually find a way to debug it properly
but after several games in a row, one or two of the other players will start to have interior desyncs
which leads to falling to death from fire exits
doorways being in the wrong spots
etc.
yeah
that's the weirdest part to me is that it just keeps happening
like, a one-off desync makes some sense
but the fact that it's consistent...
the thing i've been wondering is... would it be more accurate to say the dungeon is desyncing for me?
like... if the host desyncs, they're still going to authoritatively place the fire exits and doorways and stuff
that's a good question
an easy way to find out would be to restart and generate the same seed
im wondering if there's something that happens in the order of operations that causes myself and multiple other players to desync, and the people seeing desync are actually generating the correct dungeon
see whose it matches
because IIRC, we encountered the issue with some players even when they specifically removed loadstone
and that's why we eventually all disabled it just to be safe
I see
i think we also had some issues any time we used latejoin (which we avoid, for the most part, but it does add credence to the possibility that "the incorrect" dungeon is actually a result of long-term play as the host)
I have some idea on how to debug the issue
specifically, I want to see if I can somehow hash the dungeon layout, then find every seed in one of the desynced logs, check them individiually with game restarts, then go to each one after another and see if I can detect a desync that way
if I can consistently recreate it with the same seed order, that would help a lot
i see
right now it's just so hard to debug because it seems exceedingly rare
does loadstone log the seed anywhere separate from the main log?
no, just the bepinex log
i see
i have my logs mainly culled
anything short of warnings doesn't print at all because i usually dont need to have visibility on anything else
next time we play i can install loadstone and enable logs and keep up a list of seeds
I have logs from some other players that I can reference
i remember forever ago that there was some undefined behavior that caused incorrect values to be cached
and that's why the desync would persist between days after the first time it happened
for what it's worth, that seems to be the case now, still
it could be tag caching causing the issue
if a client gets desync it has been happening on all future days until everyone relaunches their game (we weren't sure if rehosting the session was enough, so we didnt try)
I don't know what it is but something seems to consistently break how tag caching works, like the tile prefabs I'm checking have their IDs changed every time the ship lands for some reason
just out of curiosity
what do you mean by "ID" in this situation
or well
i guess i'll just cut to the chase with my question
would issues replicate if instantiated tiles were modified in FinishGeneratingNewLevelClientRpc()?
chameleon modifies the tiles significantly in that function (to retexture caverns and stuff) but doesn't touch the actual prefabs
so, currently, Loadstone is using the entire tile prefab as a key in the dictionary
I also tried using the value provided by GetInstanceID(), but it had the same behaviour
perhaps I should go back to that for efficiency, I'm not sure exactly how C# hashes the tile prefab
.. hm
im wondering if im causing the issue here, then
it's just weird
something, somehow, for some reason, changes the instance ID
[HarmonyPatch(typeof(RoundManager), "Awake")]
[HarmonyPostfix]
static void RoundManagerPostAwake(RoundManager __instance)
{
TileOverrides.OverrideTiles(__instance.dungeonFlowTypes);
}
i was wrong and this occurs in RoundManager.Awake
but it still should be occurring immediately when the ship is loaded, for all clients
actually, here's something I could check
I can check the sign of the ID
according to Unity, the ID should be positive if it's loaded from an asset bundle, and negative if it was created
that would at least let me check how Unity thinks it's being manipulated
yeah
the caching happens long after that
i see
caching happens once the generator begins generating
once it's cached once, it won't recache the data, and will instead cache individual pairs as it finds missing pairs
if the pair already exists, it never rechecks that pair
would desync occur because the same tile has a different instance ID compared to other clients?
though, even if it did, I don't think that would harm performance much, considering how often pairs get checked normally
or do you hypothesize it's only happening because the instance ID changes in the middle of generation?
hmm wait
one sec
because if this can cause trouble
maybe it is just unsafe for me to be changing tile prefabs at all
idk why that would be changing instance IDs but it's possible that could just be a side effect of directly modifying prefabs
hmm
well I found a possible bug within Loadstone
but turning off async dungeon should have fixed it
i see
maybe we should all try using loadstone again with async dungeon off
iirc only the people experiencing problems turned it off, but maybe it would work if we all had it off
basically, one of Loadstone's modules changes the Proxy Dungeon's FromProxy function to be a coroutine, since instantiating tiles is very slow on some interiors, like Facility
In order to wait for the coroutine, I found the closest yield return null and added a check there to wait for the coroutine to finish
except that yield return null happens after parts of the proxy dungeon are processed and sorted
that goes a bit over my head since im not one of the dungen wizards :p
but i suppose you don't make that change if asyncdungeon is off
right?
yes
well, specifically, the patch that turns FromProxy to a coroutine is dependent on AsyncDungeon being enabled, and doesn't get patched if it isn't
mk, I've rewritten the patch such that it should always be the first thing run right at the start of the loop
it also doesn't depend on random yield return nulls anymore, instead directly adding itself to the jump table, so even if the dungen version moves things around, it should still work
I don't have time to test right now unfortunately, I'll test in a few hours
ok, initial testing is done, it now works, now I'm just gona check against a couple modded interiors that could conflict, then I'll push it to unstable beta
we are about to play
i will let you know if anything changes with asyncdungeon off for everyone using the mod
ok, thanks
alright I'm gonna push the update
I tested and it seems to be playing nice with both SDM and Zeranos
v0.1.22 Released to Unstable Beta
- Overhauled a portion of the Dungeon Realization module
- The game will now begin waiting for the dungeon to spawn sooner
- This should hopefully help reduce potential desyncs
- The code is now more resilient, and less likely to break should DunGen be updated
had no issues this session
using stable, no asyncdungeon
company visit, 3 days, company visit, 1 day
Nice
usually our sessions go on a bit longer
but we had the issues replicating on like
day 3 or 4 before
so we either got lucky or asyncdungeon does help
Ok
@crisp relic Used the new version of Unstable Beta and ran into no problems today, I'm guessing this change is something you wanna merge into stable so you should be more than good to push it ^^
I'm gonna give it a bit but thanks for the confirmation
You're Welcome ^^
Zaggy plans on updating PathfindingLagFix so it stops the stuttering caused by there being a bunch of monsters
@crisp relic whats new in the beta of loadstone
I fixed a bug that could have been causing desync in some situations
what bug
Loadstone injects some code into the dungeon generator so that rooms can spawn on different frames
because of that, I also had to make the rest of the code wait for the rooms to finish spawning in, but the place I chose to do it at may have been later than necessary. Now, I inject at the earliest moment where the actual tiles are referenced by the generator
oh
this is the code snippet in question
I was previously overwriting the null in that yield return null statement to wait for the dungeon to finish. Now I add in my own line of code at the very top of that function
I may apply a similar treatment to some other functions to make sure they work properly in future updates, since yield return null lines like that may be removed in future versions. I haven't done it previously since it more than doubles the number of lines of code per injection
Why is it unstable then
Loadstone Unstable Beta is just for testing. I may update it at any time, and the updates may break compatibility with other mods. It's not unstable because it's necessarily unstable right now, but because it could break unexpectedly due to an update
@crisp relic Found an issue with the Loadstone Beta that breaks the lighting in Wesley's Art Gallery Interior
interesting
that's bizarre
does mainline Loadstone do that?
and does disabling async dungeon fix it
I'm gonna test but according to Wesley the reason would be related to this
Your mod is probably messing with that for whatever reason
interesting
Loadstone shouldn't affect how the tiles spawn in at all, nor should it affect anything inside the tiles
the only change would be the timing of when the rooms spawn in
Stable release repros the same bug
I see
I added Wesley's Interiors to my testing profile, though I won't be able to test today, it's a bit late for me
I'll add this interior to the blacklist and see if it helps
alright, thanks for helping debug this
Yeah blacklisting it works
ok, so it's 100% something about async dungeon
Yeah it seems so
would you mind running one more test @livid kelp?
Could you disable the Dungen Optimizations module?
I think it could be related to one of the optimizations
Sure I can test that
Nada
It's green with that off
alright, thanks for checking
Yw
@slow drum Just wanna ping you too since I would guess the lighting system in Art Gallery is using JLL. I would guess you might have some insight on helping Adi out with resolving the conflict happening with Async Dungeon here 
It is not
Ah okay so it's purely a Loadstone issue then lol
I thought you were utilizing a JLL script and Loadstone was breaking that script when Async Dungeon was allowed for the interior
I thought this was a feature 😭
I just thought it was green
Nope lol
Wesley told me it was a bug from another mod and I spent so much time trying to locate it
how do i blacklist
in the config file, there's a new blacklist under the async dungeon section
you need to put the exact name of the dungeon flow in there
its not in mine ill just regen theconfig file or whatever
thts prolly why i was confused
are you using Loadstone Unstable Beta?
blacklisting isn't available in standard Loadstone yet
Nightly has its own config file
v0.1.22 Released to Loadstone Main
- Removed LCSoundTool dependency for Loading Sounds
- Waiting sounds will now use the vanilla ElevatorJingle sound instead
- Mods which previously modified Loadstone's loading sound will still work
- Mods which modify the elevator jingle sound may cause issues
- Added a config option to loop the loading audio. Defaults to true
- Added a blacklist to the AsyncDungeon module
- If a particular interior is having issues, you can add its DungeonFlow to this list!
- Overhauled a portion of the Dungeon Realization module
- The game will now begin waiting for the dungeon to spawn sooner
- This should hopefully help reduce potential desyncs
- The code is now more resilient, and less likely to break should DunGen be updated
Incompat with soundapi? It was erroring for me until I disabled soundapi and lethal resonance
it should be compatible as far as I'm aware
what behaviour are you getting?
I was unable to hear any sounds or jump and landing in any moon didnt work
It already did for me when I keep fetching the mods, But yeah it took awhile
yeah, thunderstore is slow to process updates sometimes
what makes you think this is a loadstone bug btw?
does disabling loadstone resolve the issue?
It was working for me until I updated it to the latest one
if you enable soundapi and lethal resonance, then disable loadstone, do sounds work?
it works just fine on my end atleast
I'd be confused if Loadstone was somehow breaking it
the only thing somewhat relevant is the loading music, but none of what I set up for that should be able to break enough to completely break soundapi
interesting
if it's an issue with the soundapi beta, perhaps it should be reported there? I'm not doing anything too strange or unusual with the audio I don't think
Actually I tested with v2 again on a fresh save and it worked fine.. So maybe something happened with my old save when I updated loadstone
that's strange
we got more interior desyncs today
4 of us on titan
3 of us were fine, 4th player got desynced and fell to death after using fire exit
the first time it was because that 4th player was the only one not using loadstone
they installed loadstone and we rehosted and tried again
the same player still desynced and fell out of the map the second time
on the very first day we hosted
the player that desynced had async dungeon, async navmesh, and dungeon realization over multiple frames all turned off
i (the host) had them all turned on
i dont know the configs of the other two players
dang
I really thought that was fixed on the latest version
just to check, was the person who descyned on 0.1.22?
the first time they didn't have the mod
the second time they downloaded it from thunderstore immediately before joining, so it would have been latest, yeah
this was from their previous config before they reinstalled, i suppose
maybe it's the dungeon optimizations?
do you have them on? And did they have them on?
we both had them on yeah
hm
could you send me your config and their config perhaps? I'd like to compare and see if there's anything else
well, after it happened the second time, we checked configs and they enabled these three settings
and it looked like they had the same values for everything else
here is my config file
@polar zinc if you could post yours
mk the only differences I see are that Purple has some leftover configs values from an old Loadstone version, and they lowered their target frametime from 20ms to 1ms
other than that they look the same
hmmm
I guess I'll have to keep looking around at what could be causing these desyncs
we all started using the mod around the same time
but i think at some point i probably cleared out my configs and reconfigured everything
so maybe that's why mine doesn't have leftovers
old versions had code to transfer to the new format, but I got rid of it, so modern Loadstone doesn't
ive only had issues with leftovers from runtime icons
but maybe thats why its happening to me
sorry i never really commuted anything before btw, i never saw it as a big issue cause i can just simply not use loadstone myself
btw @crisp relic little tiny thing i put in latest lll that probablyyy shouldn't be in LLL but whatever
i set the retry attempts on generators to 50
i think it mostly only matters in the context of your mod(?) possibly? but some custom interiors seem to uncommonly fail at the default of 20 so i figured it wouldn't hurt anyone and maybe help
lmk if im tripping though
I mean
I don't think that should make a difference
Loadstone shouldn't be affecting the behaviour of level loading, so whether it was one attempt or 50, it should be the same as vanilla
Afaik dungeons failing to generate on the retry cap only works at runtime with loadstone
Non async runs infinity
it’s meant to be like that only in editor based on the code but
I mean
it was desyncing even when everyone had Loadstone
This is unrelated to desync
ah
isn't there a way to export the code after bepinex applies all the patches to get a better understanding of what's going on with the code? Maybe that would help me figure out my desync issues
I might patch it to be like that if it ever becomes an issue
thanks for the heads-up though
is loadstone client sided or does everyone have to have it?
i have a friend with a weaker pc and i have disabled loadstone because i keep reading about desyncs 
he keeps crashing when loading onto a moon without it
it's client side
are there any major incompatibility issues
there aren't any known incompatibilities
You ever figure out the oddity with Wesley's Art Gallery interior?
whats wrong with it
should i disable it for that interior
oh, yes, it does mess with the lighting there
it's not gamebreaking or anyhting though
Just blacklist it
Sorry for the ping from a year ago, but what mod did you have that enabled the dev flag? Your post about that is my only clue as to why this is happening and randomly crashing my lobbies.
Check the mod in your modpack that adds vanilla dev tools
https://thunderstore.io/c/lethal-company/p/CTMods/ChatCommands/ Only thing close to that I have is this, do you think the debug toggle would be the culprit? ty btw
Enable Debug Mode -> Enables Unity Debug mode and with it the Debug modmenu ingame. default: true
Ye that's the one I mean. tysm I'll be turning that off lol
what interiors are reccomended to blacklist
Just the Art Gallery one by Wesley
perfect
I had desync problems with your mod. Always facility interior and adamance, Embrion moons. I uninstalled your mod and it was working normally again. So i decide to play your mod without dungen optimizations and we didn't have any problems playing today. Before v70 i didn't have any problem even with dungen optimizations turn on
i dont remember having that problem the last few times, however since im here now, im wondering if there are any config settings i could change to make generation more... reliable? i have a few friends who crash quite often during generation, Loadstones definetly helps with that cause in vanilla its even worse but i wonder what i could try to change to maybe make it safer?
try adjusting the Dungeon Target Frametime setting
lower values will make level generation take longer, but should reduce lag which might cause the game to stop responding on some systems
hmmm it seems that the crash is more than a performance issue like I initially thought
I'm not exactly sure what would cause it, but I'll try to find something that crashes consistently for testing purposes
Are you using Central Config? From my testing, it seems currently to be causing issues due to the way it handles interior generation failures, particularly with late joiners I'd imagine. I'll reach out to the developer about the issue with more details
If that's not the case, I have a new version that might fix the issue, which I'm currently uploading to Thunderstore, though it might take an hour or more for the update to show up
I've uploaded the new version to Thunderstore. Here's a direct download in case Thunderstore takes a while to process the update
https://thunderstore.io/package/download/AdiBTW/LoadstoneUnstableBeta/0.1.23/
I can't test it now because my friends are not playing today.
That's fine
It's a great mod. But maybe something has changed in v70. Before i had no problems
v0.1.23 Released to Loadstone Unstable Beta
- Rewrote the DunGenOptimizations module to be more consistent and hopefully reduce desync
- The dictionary is now tag based rather than tile based to try and prevent issues with MonoBehaviour hashing
I will say I've been using the Stable version and haven't ran into desyncs with my group so it was probably some other mod in Leubes pack
That being said I'll add the new update for today
Nope. I just uninstall and fix the issue. My modpack doesn't even have new moons or things like that
and with dungenoptimizations off fix the issue as well
And it looks like you dont play on vanilla moons.
??? We played Vanilla+ one day with Loadstone and it was fine
Adamance worked fine on V70 Vanilla+ 🤷♀️
The only time I've ever had Facility desync in the past was when using Tolian's Tomb Interior
That being said I've seen reports that if you play with a group of people who aren't all using Loadstone it can cause desyncs so that might've been your problem
Everyone was playing with loadstone. I just share the code and play
That doesn't make sense then since my group has never run into desyncs
If everyone is using it, then it would probably fall on some custom moon or interior touching the facility
I wasn't using any custom moon/interior when we have this problem
🤔
I have not had any desyncs for a while with loadstone
I just turn off dungen optimizations and i had no more problem as well
Before v70 we never had desync problems
do you have central config?
nope
how many mods do you have
send me your profile code
0197c6d8-e4b4-e983-d244-cb3c7c14cd7a
Could be EnhancedTweaks tbh, last I tried that the fire exit patch errors out
No idea what FontPatcher does
Byeah my main guess is Enhanced Tweaks, I would test disabling the seed setting and Fire Exit fix setting
I only think it's mainly useful for the Faster Quota Racking up feature, lack of maintenence broke some of it's features
Its already turn off fire exit settings
Weird, I do wonder if it could still be conflicting though
and before i didn't use this mod im using now to see if we have different seeds
Loadstone will always log the seed
BetterExp or DissonanceVoiceSettings was causing a weird bug with players. Maybe this was the problem.
BetterEXP and DissonanceVoiceSettings are fine for me
i've still been having desync issues with loadstone
but they have disappeared as long as all of us use the mod and disable both async navmesh and dungeon
so that is what we have been playing with
but we still get issues where if anybody joins without loadstone, they will be desynced from the rest of us which do have it
and there is still a "random" chance it will desync if we leave the async settings off
we havent tried this change though since it's only on unstable
i just disable dungen optimization and it work here
it was layout desync
always facility
desync does generally seem to happen for us most frequently on the factory
especially on titan which has the slowest load times and the biggest factories
we've seen it in manors though
im not sure if we've ever gotten it on mineshaft but i think that's just because mineshafts havent generated when we've had issues
When i was playing Adamance with my friends. We play a lot in mineshaft interior, we were lucky with mansion in adamance and after that facility with desync.
My friend says that the apparatus room was without apparatus.
that tracks with dungeon optimization causing it
I think factory is the only vanilla interior that actually uses the systems affected by dungeon optimizations, which it uses to make sure loot rooms don't spawn directly from maze rooms
Manor doesn't make use of it at all, and I don't think Mineshaft does either
though, disabling async dungeon should leave dungeon optimization active, so it's weird that you say that fixed the desync issues
disabling async dungeon also implicitly disables DungeonRealization.SpreadOverMultipleFrames, since it has no purpose without async dungeon. Perhaps it's actually that portion that's broken, and not the entirety of AsyncDungeon?
I wouldn't be surprised if that's the real culprit, since AsyncDungeon on its own just changes three dungeon generator settings, and modifies the frame skip logic for more consistent load times. Spread Over Multiple Frames, on the other hand, changes the underlying object spawning logic, since normally that step happens all at once with dungen
also just to be completely clear
i am still not against the possibility of "i have a mod that conflicts with loadstone and causes issues"
it's just, for our profile, we consistently have 0 desync issues whenever i disable the async settings as long as all of us use it
it still seems to desync from vanilla generation because players who dont use the mod get different dungeons from the rest of us who do
it's a strange result, it apparently causing a "synchronized desync" where everybody is wrong but wrong together so it doesnt matter
lol
I'll double check vanilla vs just loadstone and see what happens, since that should have identical results, or at least it did last time I checked
yeah all three interiors are consistent between Loadstone Beta and Vanilla
why are the minecart tracks missing in the second screenshot
is that just an artifact of the resolution
oh i see
default layer is off in the second one
anyways im not sure if it's a problem with the non-beta or a mod conflict then
it has to be a mod conflict
my config with basically every feature enabled hasn't caused desync for us in like 8 months
the seed setting in enhancedtweaks will have nothing to do with it
all it does is show the current level's seed in a corner of the screen
as for the fire exit fix, not sure since i don't use it
that's my thought as well
unfortunately, it's hard to say what exactly. With objects spawning across multiple frames, even a misbehaving monobehaviour could cause things to break
yeah
unfortunately
im not surprised but replicating it is annoying enough i dont feel like trying to work out the conflict
just kind of sucks
yeah
I've tried to find the conflict so many times before with no progress
I had desync testing the beta. Just two players titan moon facility interior
could you try disabling DungeonRealization - Spread over multiple frames, and leaving everything else default?
I believe that setting has a high probability to silently conflict with mods in this way
I'll try but disabling dungen optimization also solves the problem.
Should I currently use stable or unstable? Or wait for merge?
they seem pretty similar in terms of performance so it probably doesnt matter
@balmy prawn @crisp relic
Quick question does the desync happen when you have player late join? Couple weeks back we had multiple facility desyncs happen as you're explaining and our theory was a late join issue. It would only start to happen after players late joined into the lobby so it was damn near impossible to replicate. Luckily it didn't happen last night to use, but we experienced it quite a few times before. I cant tell ya what moon it happened on, but I think it was vanilla ones.
i have encountered interior desync without using latejoin
Even with the changes?
wait
what did 1.0.23
Change anyhow
ALSO DOES ANYBODY HAVE ANY IDEAS ON CONFIG FOR LODESTONE Or just leave it as the default
For the most part, leave the config at default unless you have a specific reason to change it (desync, incompatible interior, you want to prefer framerate over loads, etc)
Use stable unless you have a specific issue that unstable might fix, or you want to help find bugs with the latest updates
#1242303311793885317 message
It's a relatively small technical change that should help the cache be a bit more consistent
or, for a more complete explanation:
Every tile has a set of tags that, when combined with a set of tag connection rules, decides which tiles it can and can't connect to. The vanilla game uses this to try and prohibit loot rooms from connecting directly to maze/brick rooms.
In vanilla as a new tile is being added to the layout, it tries every position and checks if it's a valid position, which includes checking the tags and tag rules. While this seems intuitive, there can be hundreds of thousands of tag comparisons even just loading into Experimentation, and millions on a larger map like Titan.
The old Loadstone behaviour tried to optimize this tag comparison step by creating a cache. For any given pair of tiles with a specific set of tag connection rules, the same tiles can always connect or not connect, so when loading into a new interior for the first time, it takes the tile connection rules, as well as every spawnable tile, and calculates if a connection should be allowed for every single pair. Then, whenever the level generates, it checks both tiles against the cache to see if a connection should be allowed, rather than having to check each tag against every other tag through the tag connection rules.
The new Loadstone behaviour just tweaks that cache's behaviour a little bit so that it's caching for the set of tags on each tile, rather than the tile itself. This should hopefully make the cache a little bit smaller, and prevent any possible situation where a tile might be considered different due to a change in the way it loaded in or something similar, since that causes the cache to miss, in which Loadstone has to do the full calculation for every single miss, on top of adding that calculation into the cache.
This change could also affect the desync issues people have been having, since the cache will no longer be subject to Unity changing an object ID for one reason or another, which could possibly lead to invalid cache data being used (though that should be an astronomically unlikely event to have happen, like you'd need tens or hundreds of thousands of tiles for a decent chance of that happening)
I totally gotta ask
Is Async Dungeon Generation supposed to be off?:
Also should I use the Beta version then?
Async Dungeon Generation should be on unless you have issues with that specific feature
Use the beta if you want to try the latest features, just know that it could be buggier than the stable release
Alr I keep seeing like
People saying about desync


