#Lobby Control & Matty's Fixes
1 messages · Page 10 of 1
Broken clock too
i'm just not convinced blackilisting stuff is the solution
and the first land we did a client had some of the terrain not show up
Yeah I just dunno a better solution
lol
that's why you contact the other party ( wesley ) and cross check why it's happening 😅
Yeah there's something it does that tells the scene to trigger that's getting bypassed from LandFromOrbit it's just hard to say what exactly. Cosmocos is a very unique and ambitious moon lol
is the cutscene supposed to play and then the ship lands? or is the cutscene covering the ship landing animation where it's clipping through the scene?
by looking at the clip ( where she got pushed to the upper floor by the clipping ) i'd say that the cutscene changes the level geometry preventing the clipping. so probably the cutscene is supposed to play before the landing sequence
It does, normally you don't have any terrain clip into the ship when you land and there's a cutscene that plays that reveals the moon
It's an easy repro, you just need Cosmocos and LandFromOrbit, maybe you can get a gather of what's going on by landing with it disabled then enabled
and something like LGU or SimpleCommands to give yourself enough money to land on it
lol
how is the visor handled we tried resizing them on the clients as host and wound up having a persistent effect on them after reloading the whole game
they reload the game and the visor still big
that ai code broke steam tos on accident
lost the code sadly but why is it so hard to correct a players point of view or visor host only
resizing players screws up visor
@unreal oriole When you updated Matty Fixes you didn't implement the new rotation changes did you? Cus some of my settings got reset
uh? it's supposedly the same file as Experimental
i confirmed with manual download. files are identical
Ah so I need to fix the rotation then, guessing some mod adds more than one Bronze Bar
my rotations have been reset a couple times
not entirely sure what the deal is
it's been uncommon and very sporadic
but i've had to change my config two or three times total despite never adding any new items
a bit weird
one of my mods conflicts with mattyfixes item fixes cause i still see floating scrap in strange places on startup
is there anything in here known to cause issues in mattyfixes/lobby control?
0194be23-1605-ed07-a190-80d9d208063d
its probably that i have multiple mods trying to fix this but im not sure witch ones do
whats weird is only some players see stuff stuck in the ground others see things in totaly different spots
i'm unable to do testing this week, can somebody confirm this report?
https://github.com/mattymatty97/LTC_LobbyControl/issues/20
so it's all working as intended 🤔
With just using LobbyControl, yes.
Plus we are assuming that the save being deleted is disappearing from the menu.
Unless quit game means exiting the game fully?
I doubt you would have something at that point.
i mean even if the issue was when doing alt+f4 the mod is not touching the old save
forgot to write it explicitly, but thanks for testing it 😅
it could be a quirk of saves using the same name
Plus there's no real reason to delete something while moving lobbies.
there is a way to rename the lobby and make new save and start a new save from the terminal i expect a little strangeness when using all of those plus multiple saves
could the mod have an issue with this https://thunderstore.io/c/lethal-company/p/Pooble/LCBetterSaves/
I tried that aswell, no change.
So it's some step they missed when reporting.
i have used lobby control and better saves for months now, it works ok for me
same
will lobby control change the name of the save even if you already named the save with lcbettersaves
Plus no logs makes it difficult to know if it's actually LobbyControl's fault.
like if i have multiple saves named weed.morecompany from lcbettersaves and do a lobby rename will it mess with anything?
or a lobby load
or save
idk how it reacts many saves with the same name
I come bearing AdditionalNetworking errors
As client
[01:22:04.7663735] [Fatal :AdditionalNetworking] Exception syncing inventory of Alecksword(63):
As host (this session had a LOT of problems going on and was an absolute nightmare by the end)
[05:42:50.3128321] [Fatal :AdditionalNetworking] Exception syncing inventory of Alecksword(22):
@vagrant root would have the host log for this one
@unreal oriole is the out of bounds items patch in TooManyItems perhaps out of date vs the Matty's Fixes version, to where it could be teleporting bagged items into the ship when it takes off?
been watching someone using the HQ fixes pack and bagged items keep appearing at the item spawn point on the ship
yeah it is, for the beltbag.
i warned them before and they said there was no reason to use TooManyItems past v60 so it was not a pressing issue...
ssdly i'll have to do a full rewrite of TMI because it is still using the MattyFixes V1 logic
ah, I see I see
is that actually true tho? aren't the item count patches still necessary?
maybe this was someone who doesn't regularly do runs on v60+?
zeekers boosted the item count to something like 500 i belive in vanilla
the one for syncing all the values is still needed but that csn be mitigated by placing the shotguns closer to the origin so they get saved first
ah right yeah
LCBetterSaves still uses the "LcSaveFileX" format for the save files
the name that LCBetterSaves shows is ssved as a field inside the save file
LobbyControl command accepts only file names and a lobby rename will not rename a file
something in #thunderstore-moderation reminded me of a decently important difference between LobbyControl and ShipLobby/LateCompany:
with their design using a postfix both mods will bypass the check for game version and more importantly the "ban list"
LobbyControl instead uses a transplier to edit out the gameHasStarted check maintaining all the other filters!
bypassing means if you have either ShipLobby or LateCompany and are on your second+ orbit:
- vanilla players will be able to try join your MoreCompany lobby and/or vice-versa ( obvs will fail with the unknown error )
- kicked players will be able to rejoin your lobby as much as they want ( once kicked they're supposed to be prevented from joining )
welp it's fixed now 😄
nice, thanks!
@next ledge if you still got that SQLite send it in here
oh, sure
lemme
Should contain that time my game froze + every time i got hit by the classic Skitts Issue™️ after
Huh 🤔
what on earth is this
@unreal oriole Btw, just wanted to let you know that issue we brought up like a month ago where Skitts' inventory would randomly desync and her items would all drop we finally resolved by adding in High Quota Fixes, I suspect it's because she was one of the very few people in our group that play with a High Ping and the Interact and QELock fixes in High Quota Fixes fixed that, it also fixes some bugs with the cruiser that other mods don't cover such as the lag when having a magneted cruiser on the ship when going back into orbit. All around it was a great addition tbh
new AdditionalNetworking Experimental is out for testing.
addition is sync for the noise status of a AnimatedItem ( eg: ToyRobot, Dentures, ecc.. )
it's a follow up for this bug report: https://discord.com/channels/750645598293590077/1338699247993749627
I never even knew these didn't sync tbh
normally they do
when they spawn, their RNG is seeded by the map seed
but if the number of times EquipItem() gets called desyncs between clients, it will start giving different results for those clients
Ah interesting
@unreal oriole Which of your mods is supposed to synchronize Shotguns again? Cus we had a shotgun that had ammo in it for me but for a client it was empty
So I think it isn't working properly
😦
additional networking is supposed to
Ah then I'll see if the Experimental build fixes it, cus I added that in
It might be related to the same issue as the toy robot and teeth for whatever reaso
@chrome ingot do you know how many times you picked up that Shotgun?
Also @chrome ingot maybe try sending your log if you have it, so we can see if there were any syncing errors
No clue
Shoot me an @ in like 15 minutes or so and I’ll prob be good to send ‘er over
It’s late and I gotta take my meds n grab a lil bedtime snack first lol
did you check the settings? maybe you toggled shotguns off somehow
They're on
and no exceptions in the logs?
i'm noticing that i'm not updating the shells visually in the shotgun atm just the internal count
I mean even when I hit E for me it was full, for Alecks it showed it was empty and he was able to put shells in it
then after he put 1 shell in it and handed it back to me it indeed only had 1 shell
I can grab the clip
Was so weird
You could see how absurdly confused I was when he stuck a shell into it
XD
It was full for me
the HUD is from a mod
Yeah that is uh
This
you were the one with the desynced hud. as i cannot add support for all the possible mods
I mean even when I pressed E
it didn't click
if only the hud was desynced it should have made the sound of there being no ammo
depends on what the mod changes
Source is readily available
https://thunderstore.io/c/lethal-company/p/Rminin/FinallyCorrectKeys/ This also changes hud stuff so it could be this as well
This also had logs in the SQLite
The code for this looks extremely simple
But maybe you might catch something
I'm sure if Atomic is doing something wrong he'll gladly fix it
Also @unreal oriole If it is one of these 2 mods they luckily both have threads in the Discord 
i'm not sure
and w/o verbose logs i can't even see if the messages were transmitted or not
it did correctly resync as soon as @chrome ingot performed an action on the shotgun. so at least the configs were on for both of you
Yeah
can the late-join part of this mod cause desyncs ?
i'm pretty sure that when i enabled this option and someone joined when the game already started but we were in orbit, it causes desync every time
the game is not designed to support people joining after the lever has been pulled
you will pretty much always run into desync of some sort if you utilize it
understood, just making sure that i was not the only one experiencing this
using lobbycontrol + additional networking is going to be your best bet for avoiding desync but the only perfect solution is to quit the game, rehost, and let players join
i agree with Buttery the game was not intended to allow late join and most mods also are not designed to support it.
while i might be biased as the dev. LobbyControl accounts for most if not all the issues from latejoin with vanilla game
AdditionalNetworking will help fix some of the desync from normal gameplay. but moon/interior and in general modded stuff support is not guaranteed and should be reported to the other mod instead
even with lobbycontrol we get invisible players and ghost items any time we use latejoin
worst problem we've had is ship radar + teleporter desync, which we've never had happen without late join
i suppose it's possible it is a mod conflict but in my experience latejoin is just never perfect
and the bugs caused by latejoin are usually so bad it needs rehosting to fix anyway
tbh the things you're reporiting are solvable... just not in a host-only way sadly
that's fair, yeah, but i still think it is inaccurate to say this
LobbyControl accounts for most if not all the issues from latejoin with vanilla game
unless all of what i just reported can be 100% attributed to mod conflicts
radar bug for example is caused by radar-boosters
i should reword it. you're right
i recall seeing you mention that and we stopped buying radar boosters for that reason, but unless I'm mistaken on the timeline, we've had it happen once even with no radar boosters on the ship
that might be a case of faulty memory though
the invisible player thing has to do with steam friends, or something? i think i saw you mention that once before
sometimes we just get an issue where clients (never the host) will hear other player's voices outside the ship and won't be able to see them, and it's only been fixed by having one (or potentially both) of those players rejoin
the invisible player issue itself is because vanilla never resets the state of disconnected players. so if a player disconnects while dead it's body will be dead when another person joins in it's place.
there is a host-only fix but zeekers locked it behind steam friendship for some reason 🙃
ghost items aren't so bad because usually it is fixed just by having somebody pick up and drop the item again
to clarify, i mean players will see items on the floor that are actually in a player's inventory
like one time my friend was trying to grab shotgun shells off the ship and she couldnt
and that's because the shell was in my inventory, and she saw it disappear when i reloaded my shotgun
this will happen even w/o late join if two persons try to join at the same time.
LobbyControl has the JoinQueue system but the config values should be tweaked based on the latency of the lobby
ah okay i think i remember this now
and, to be honest, it's but an attempt as the order of Rpc when a player joins is so confusing
btw. i'm not taking this as an attack i'm just answering what i can to see if you have issues i do not know/i should try to work on
oh yeah i understand
i dont intend it as an attack either
your mod is definitely the best solution available and we have had so much better results ever since using both LC and AN
i just think that the best is still not good enough to seriously recommend using latejoin unless you are okay with troubleshooting the issues it is likely to cause
i'd much rather just rehost (even if it is annoying) so the game is less likely to present issues once we're mid-match
anyways, im curious what you mean by this
as i had success using NamedMessages in AN i might try to use them in LobbyControl too to stay vanilla compat while solving the bugs for clients with LC installed 🤔
my friend group is pretty spread out geographically, and one of them has trouble connecting without increasing the window size (i bumped timeout from 3000 to 10000 and it made her a lot less likely to DC on join, but she is the one that most frequently experiences sync issues)
as i understand it, you'd need to shrink the window to prevent the bug from 2 people joining together, right? so it's basically a tradeoff of which issue you'd rather deal with
to prevent 2 people to join together you'd increase the connection_delay_ms which is the time LC will wait before trying to connect another person after the previous one "completed". ( i say completed in quotes because i can only assume the completion after the server receives two specific Rpcs while in reality the client still has a couple of offline things to do )
while connection_timeout_ms controls the "window" you're talking about and is how much time a client has to connect before it is considered failed
i see
i suppose increasing the connection delay too much would cause the opposite issue to happen
where players will get rejected even after the previous client has finished joining
so it shouldn't be increased too much
not really it will simply slow down a lot the connections
during the delay litterally nobody will be connecting and new requests will just be put in queue
while the timeout starts from when the client is polled from the queue and starts the connection process
slow is ok, especially if it saves time on players quitting and rejoining anyway
this would be cool
depending on how much could be accomplished without removing vanilla compat
all of my friends use lobbycontrol on our profile, so i'd definitely say there is demand for clientside syncing if it's not too much a hassle to implement
the JoinQueue system works like this:
- Unity join request -> queue
- poll request -> timeout or connection complete -> delay -> poll request
but i do like being able to use it with vanilla clients still
i see yeah
and the problem would occur if the connection is complete, but the client can't finish connecting before the delay is up? because then the host would be allowing a second player to connect at the same time
yep
so the delay depends more on how slow a client machine is than the latency of the connection
ok that helps a lot to know
sadly all LC can do is guesstimate so it's up to the end-users to tweak the values until they work 😅
So the join queue delay setting should be set pretty high if you have a client that is not only high latency but also has a slow PC? Do you think setting it to 20000 would cover the worst case scenarios? Or would there be side effects from that? (Other than the client just waiting longer to join)
setting it to 20,000ms would mean that after a player joins your lobby, it would delay any other connections for at least 20 seconds
so it would take at minimum 1 minute for 3 players to join
Oh okay, and I guess that "stacks" as in if 3 people join roughly at the same time, the 3rd person could be waiting 60 seconds lol
Right
by the looks of things, it looks like animateditems aren't supposed to make noise when they are scrolled over in the hotbar
toy robot, teeth, etc.
unless im misunderstanding how it all works
EquipItem is called when pulled from hotbar.
yeah but it has a "wasInPocket" value that it checks
which indicates if it was not the selected slot before
as you can see it beeing set in PocketItem that is called when you switch off the item
yeah
it calls the random chance to stop the animation only if you pick it up
but it seems like when you scroll over it, it always starts playing the sound
which is the part im confused about the intention of
the issue is that there is no RPC for scrolling two slots
you only scroll one slot at a time
so when you scroll two you call Equip and Pocket in quick succession
is that what leads to desync between clients?
the scrolling causes desync on what slot a client is currently on yeah
AN might cause desyncs for the sounds as it jumps the selected slot if it finds it's not correct.
but i'd argue that the cause is still a prior desync
client has desynced slot -> AN forces the correct slot -> an animated item might have been skipped in the process causing audio desync
Am I dumb? how do you scroll 2 slots if you can only scroll one at a time? Also the scrolling is quite slow (unless a mod speeds it up)
i've noticed a bug occurring semi-recently where my friends will sometimes have different usernames
it seems dependent on the order and timing of when they join, maybe? it's not 100% consistent
i renamed all of them on steam so that i have a consistent string of text to enter on the terminal
(using switch )
but sometimes they use their normal steam username
is that the sort of thing that could be easily fixed by one of these mods
seemed like it was the best place for something like that
idk if this is an incompatibility or a bug with the mod but I've noticed while using bagconfig this pops up on leaving a moon and certain items get deleted from the bag. Also, despite being deleted I think they still count as taking up a slot in the bag permanently.
figured this out (I think) and it's quotaoverhaul causing it
i could but not many people would be willing to wait on the connecting... screen for 10+ minutes
Depends on the technical debt of allowing joining midgame.
Not to mention the hot loading feature of LLL.
the connecting message cannot be modified Host-side
and i do not plan to allow moon-joins

LateCompany tried, failed, and showed how hard it actually is
You would have to hold the connection attempt which I don't know if the steam API allows.
it is possible to hold people on the joining/connecting screen as long as the host wants. but most people will assume something went wrong after ~30 seconds of waiting. let alone wait 10+ minutes for a round to end
it actually does. and LobbyControl uses that to try and not allow two people connect at the same time
problem is that happens before any message could be sent between client and host. so there is nothing that could be done even client-side
no way to know if your connection is just hanging in the void or the host is intentionally letting you wait. nor for host to send you info unless it rejects your connection
From what I read, you can.
You just couldn't know why til the next step.
O.o i never considered that you can rename steam friends.
currently AN will force the name from the joining client ( you can disable it in config )
that might also be the cause of the Radar desync as the order of the radar is based on the names( nvm it has an overridded comparator and uses the NetworkObjectId instead )
Yeah I’ve experienced this too, but I can’t remember if I’ve experienced it with AN installed, or only vanilla
I have almost every person on my friends list set to have a nickname 
yeah i gave some of my freinds some weird nicknames on steam found that some mods get weird over that
like if i host an anticheat lobby the [{player}] part of the join message will show your friends nickname to everyone when they join
@brisk harbor in relation to https://discord.com/channels/750645598293590077/1259929447910342707
do you think it would be worth to add code in AdditionalNetworking to sync isCrouching across clients? ( or in this case to the host )
i feel like it would be yeah
forest giants are like, the worst outdoor enemy to avoid made worse by the fact that the mechanics don't even completely work as intended
and not being able to crouch to hide from old birds makes a drastic difference in how approachable Embrion and Artifice are
@unreal oriole This line spammed for Glitch a few times the other day on lobby join
Maybe you might know why
it means that some of you have a smaller inventory size than the others... maybe some mods not loading. or vice-versa some one cheating with extra inventory
no and no actually but this probably all relates to why clients sometimes have the stuff in their reserved slots forcefully drop and become desynced
I think I know what it is now
It's something with AdditionalNetworking not liking this setting I bet in ReservedItemSlotCore
I wonder if when that's hidden it's considering the size to be different
Either that or it's behaving weirdly with ReservedJsonSlots possibly since some of my slots are handled through that
But I think we finally have isolated this issue
that setting is for HUD only. what's wrong here is the size of the Inventory array. and that is set at the start of the lobby by ReservedItemSlots
So it's either cus of ReservedJsonSlots or cus flip needs to fix something
@knotty badger any ideas on how you can fix this?
I have a feeling it's more likely a ReservedItemSlotCore bug cus I ran into this issue once when playing in a lobby with Glitch and he doesn't use the JsonSlots
Where my reserved slot items forcefully dropped
couldn't be picked back up
At least that error helped finally isolate this
Hopefully Flip can fix this
Matty how many bugs have we found with Reserved Item Slots at this point? It's always you that helps me find them

pushed to Experimental AN for now
Hold on. I will try to give you a more proper answer when I finish driving to work. But the short answer is yes, my mod likely has something to do with this, but if I'm understanding the issue correctly, then the solution is a little complicated. I will give you another response in like 30 minutes or so
@vagrant root
So here is the long answer.
First off, adding a mod that edits and manages the player’s inventory size is one of my biggest regrets, because of the number of issues it can cause with either the base game and with other mods lol, and then I decided to do this with a second mod, hotbarplus lol
Anyways, it sounds like this happened to Glitch when he joined? My response is, how dare you access your reserved item slots while a player is joining the lobby 😂 jkjk
I’m kinda just assuming what I think is going on, so as I write this next part, I apologize if none of this is relevant.
I’m going to skip over a lot in this part, but in a perfect world, players would join the host with the same exact reserved item slot mods, and those item slots will be already added to their player in the beginning. This is how my mod originally worked, but has since changed to prevent issues when players join another play who has different reserved item slot mods, thus preventing desyncs. Now, if a player joins a random player (who may or may not have differing reserved item slots), they will request a sync from the host first, and then they will receive back a list of reserved item slots that they should use. This way, clients will usually be synced with each other no matter what, preventing a lot of future desync issues.
So what I’m assuming, is that the issue that Glitch had occurred when he was joining, and there’s a small window where his reserved item slots haven’t been synced with the host yet, so he likely received information about a player swapping to a slot that his client didn’t know about yet, such as slot 5, even though he only has 4 slots. My mod (nor HotbarPlus) will usually not cause this, as it will refrain from referring or acknowledging these slots until they have synced with the host, so it was likely Matty’s mod that was trying to sync a player’s currently selected item slot before the player fully synced their reserved item slots with the host. Btw, I’m not saying this is the fault of Matty’s mod. Kinda a combination, but really just how my mod is set to sync.
I likely won’t change how I’m syncing the item slots, but I could probably optimize the timing. Apparently I’m not adding the reserved item slots to the player immediately after they sync with the host, but rather, waiting until they have fully spawned, which basically waits until the spawn animation finishes (about 3 seconds long) I feel like there was a reason for this, but I can't remember exactly. I can maybe see if I can change this so it adds the slots sooner. I’ll have to look at this when I get home, though.
Sorry for the long post!
Got you got you, I just hope that you and Matty can figure out a solution to prevent clients from having their reserved slots forcefully drop sometimes and become desynced. Hotbarplus is fine and completely unaffected by this btw
Idr if I had the bug last night but I'm sending my sqlite anyway
Hoping the timing thing being optimized might work, the main issue is just when clients forcefully have their items drop and they can't be picked back up. It seems to happen more often to people on higher pings so maybe that might also help in some way
I doubt it will fix the item dropping issue, but when does it happen? Is it random? When the items drop, is it just one item, or every item that they're holding?
Every item they're holding
I also added the reserved slots immediately after syncing. I'll include it in my next update. I just hope there wasn't a reason that I delayed it and I break something because I'm doing this lol
the reserved items they had become stuck inside of their body for other players, but for them they see them on the ground unable to be picked back up
Lol I guess you can always test if anything explodes in Lan probably
So any time they're holding a reserved item, it forces it to drop? You said it doesn't happen to everyone, right?
It doesn't happen to everyone, and it happens sometimes from someone picking up something as simple as a scrap, dunno if it's an interaction between HotbarPlus or RIS cus even when I tried Verbose logging it didn't give any info
Typically it happens when I'm trying to put something on a shelf or smth
if it helps at all
as one of the people who gets the bug
I'll have to clip it next time it happens just in case
for the record when that happens again you can try using the lobby dropall as that should reset all the held objects for everybody
I doubt it would do anything in this case since they're no longer being held by the player
if the player can't pick them up means the host still belives they are in the player inventory
and that command forces everybody to fully drop the items and forcefully overrides the variables to look like the inventories are empty and all existing objects are not held
Ah okay
Yeah, I'm hoping that helps recover lost gear next it happens
Ideally Reserved Item Slots really needs fixed though
yeah, that'd be best
@unreal oriole Dropall doesn't work
yup :/
sqlite as always
I clipped the initial skitts issue as well in case it helps further than descriptions have
Watch Skitts Issue and millions of other Lethal Company videos captured using Medal.
The items remained stubbornly on the ground the way they were in the clip when she ran dropall
@knotty badger Btw maybe this might help too, verbose logs show nothing at all
It's weird because you are the first that I have heard about this. No one has mentioned this on the GitHub yet, at least not that I'm aware of. Is this only in combination with mattie's mod? It's Friday now, so I do have some time to look at it today, but I will have more time to look at it tomorrow as well. And if you have any tips on how I can best replicate this, that would be appreciated!
I doubt it'd be feasible to repro as a host given it's a high ping bug
It typically happens seemingly at random when trying to put smth on a storage item/shelf etc.
You'd need to idk throttle the everloving crap out of your router/find someone halfway across the world from you/both
Well it happens specifically to clients
well
yeah
Host isn't gonna have a high ping because it's like
You're connecting to localhost how tf do you get latency there
- you control everything so
Okay, this is in reference to @next ledge' specific clip. In this scenario, I was able to easily replicate this. All you gotta do it place something in a container, and pick it up before the host knows you even dropped it.
The best part is, is that this recording is completely vanilla. I ran a second host and simulated 200 ping. (maybe it was 300)
What's funny, is that if you try doing this by dropping an item on the ground, the game actually prevents you from picking up items until the drop action has registered with the host. Also, if you drop an item, it will prevent you from grabbing items from a container until the host has registered the drop action.
When placing items in a storage container, the game will let you grab items from the storage container as well as pick up items off the ground immediately. This tells me that the issue seems to be the game allowing you to pick up items immediately after storing something into a container, and if you grab that same item before the host registered that you put it in there, the bug will occur.
Like I said, this was in reference to Skitts' video. @vagrant root You stated that this happened to you occasionally. Was it this kinda scenario every time when players try placing items in a storage container, or did it happen at other times? Because I haven't been able to replicate this issue in any other way so far.
I believe it was always cases like this yeah, Matty's mods have fixes for this in place but for some reason the Reserved Slot compat doesn't seem to work properly so when it happens to a client the stuff in the reserved slots become permanently desynced and broken til a lobby reload
So for me for example the flashlight and walkie would get stuck inside of Skitts' body, trying to do lobby dropall would make the items drop in front of her but they still wouldn't reappear for me or anyone else and they couldn't be picked up
This is why the other items don't break and only the ones in the reserved slots do, cus there's fixes in place
@unreal oriole Maybe the fix for this just needs to be implemented into Reserved Item Slots if you remember the stuff you did
Was @next ledge not playing with Matty's fixes? Or were you guys not playing with each other?
I could do some more testing with Matty's mod. What mod do I need?
We were playing with each other. It should be Lobby Control and Additional Networking that fix those desyncs which is why the Shovel wasn't broken for example
01952c33-89ec-50b8-a321-fd91e56e6c8b If it helps this is the pack we were playing with
But you can see in the video if you slow it down that she places the item in the container, and them immediately picks it up which caused the issue. Wasn't that the same issue I was showing in my video.
Idk, it's hard to tell I guess
Actually she just placed the 2 reserved items
Well she placed 2 items then swapped to the reserved hotbar it looks like then the reserved items and shovel dropped
Shovel didn't break but reserved items did
If I had to guess
She was swapping to the reserved hotbar to drop and pick the walkie back up
I kinda wish you didn't have to do that with walkies after having another one in your hotbar, they like to bug out if you don't and other people can't hear you and you can't hear them til you drop them and pick them back up
Cus I would guess the issue here is that the Reserved hotbar just breaks for clients if they swap to it too quickly after dropping an item
Cus it can't sync as you said
It's hard to see, but when I was replicating this, if you picked up an item that you just dropped, and the host hasn't registered that you dropped it yet, then when the host does register it, that's when you drop everything, and afterwards, you finish picking up the item.
So for her, it looks like she drops the flashlight, somehow picks it up immediately, then everything dropped, and after they dropped, the picked up flashlight went into her inventory, and similar to my tests, the flashlight would have went into her inventory after her items dropped, which is why it went back into the flashlight slot.
I can't be certain that she did swap to her reserved slots, though.
I probably didn't describe that very well lol
brb. gonna test a few things
Yeah it looks like she went to swap to the reserved hotbar to me after dropping them, but it's hard to tell
So when you drop an item, it sets the throwingObject flag to true, and while this flag is true, the game won't let you grab item off the ground, or from containers.
When you place an item in a container, it does not set the throwingObject flag to true. BUT, after the host tells you that they acknowledged you placing the item in the container, your client will still reset this flag back to false, even though the game didn't set this flag to true in the first place. It kinda feels like the game meant to set this flag to true when you place items in a storage container, but forgot. I really don't know for sure. 
Anyways, I threw a quick one liner patch just to test this, by setting the throwingObject flag to true when you place an item in a container, and it worked beautifully. Once I placed an item in a storage container, the game wouldn't even let me pick it up until the host acknowledged it, basically preventing you from encountering that error.
The only annoying thing that I can see with this, is that you won't be able to spam place items into a container if you have high latency. It will basically be as slow as dropping items, but this part might not even be that big of a deal. It feels fine, even with 200 latency.
I know this doesn't address the exact issue with the reserved items not being able to be picked up while other items can be picked up, but I don't think this even matters since I believe this is the root cause of the items dropping in the first place. Maybe that's just my opinion, but I'm fairly confident that's what caused the items to drop.
Also, this fix doesn't really fit in my mod, though. This is just a general fix and has nothing to do with reserved item slots. It would kinda make sense to include it in hotbarplus since that mod is more about general QoL mod than the reserved mods, so it might not hurt to add that in.
Idk, you have any thoughts? @vagrant root
Anyways, I'mma head to bed now
I feel like it would make sense to include it in HotbarPlus as a toggleable patch yeah
@unreal oriole What do you think about this?
It's basically just setting this flag at the beginning of this function.
Here's the example patch. (Not technically a one-liner, but I'm still counting it as one lol)
[HarmonyPatch(typeof(PlayerControllerB), "DiscardHeldObject")]
[HarmonyPrefix]
private static void FixPlaceItemContainerFlags(PlayerControllerB __instance, ref bool ___throwingObject, bool placeObject = false, NetworkObject parentObjectTo = null)
{
if (placeObject && parentObjectTo != null) // or just 'if (placeObject)' will work
___throwingObject = true;
}
This is the original code:
if (placeObject)
{
// dropping items on the ground goes to this block
if (parentObjectTo == null)
{
throwingObject = true;
placePosition = ((!isInElevator) ? StartOfRound.Instance.propsContainer.InverseTransformPoint(placePosition) : StartOfRound.Instance.elevatorTransform.InverseTransformPoint(placePosition));
int floorYRot = (int)base.transform.localEulerAngles.y;
SetObjectAsNoLongerHeld(isInElevator, isInHangarShipRoom, placePosition, currentlyHeldObjectServer, floorYRot);
currentlyHeldObjectServer.DiscardItemOnClient();
ThrowObjectServerRpc(currentlyHeldObjectServer.gameObject.GetComponent<NetworkObject>(), isInElevator, isInHangarShipRoom, placePosition, floorYRot);
}
// placing items in a container goes to this block (doesn't set throwingObject to true)
else
{
PlaceGrabbableObject(parentObjectTo.transform, placePosition, matchRotationOfParent, currentlyHeldObjectServer);
currentlyHeldObjectServer.DiscardItemOnClient();
PlaceObjectServerRpc(currentlyHeldObjectServer.gameObject.GetComponent<NetworkObject>(), parentObjectTo, placePosition, matchRotationOfParent);
}
return;
}
Still a pretty small patch to fix such an annoying issue lol, I imagine the reason it goes unnoticed most of the time is cus ping plays such a significant role in it
Honestly, I'm still confused about Skitts' clip. It's either just very wild timing that she somehow accidentally pressed e after dropping it, or something weird caused her to pick it up at that exact moment. There's like one frame where you can see it say [Nothing to store], and I don't actually see a message to press to to pick it up.
@vagrant root It probably wouldn't hurt to add this to HotbarPlus as a config for now, but turn it off by default so it doesn't affect anyone right now, but you could just have everyone in your party enable it for testing if you want.
I'mma head to bed, but maybe do that tomorrow morning.
Yeah, get some rest and hopefully this can be merged into Hotbarplus, Maybe @unreal oriole can look at it and see if he sees any room for improvement too cus an official fix would be fantastic and it's definitely in the scope to be part of one of the fix mods probably - having it be part of HotbarPlus also doesn't hurt lol
Yeah I was just trying to put the flashlight on the shelf
I must've accidentally picked it up again when trying
Typically what I'm trying to put onto a shelf ends up back in my inventory so that makes a lot of sense
Some of my keys chatter a bit on my keyboard so i wouldn't be surprised if that included e, but idr if that's one of the keys that does that
Yeah I just typed "e" into notepad a bit and yeah that key doesn't chatter at all
Really weird
We still gonna get that Hotbarplus update bud?
Yeah, I had to leave for a bit. Got back kinda late, but I'll be uploading it in a sec. Just make sure you enable the config for the fix, or at least tell the non-host clients to enable it. I forgot what it's called, but it's in the "other" section.
Will do
if lobby control only needs the host to have it installed, what would happen if someone else has it? would it break anything?
...nothing would happen?
yeah, it breaks with morecompany if someone else has lobbycontrol
spent an hour troubleshooting it
i am nearly certain lobby control + more company is fine
even if the host does not have lobby control
lobby control on its own does not cause problems if the host does not have it
i know that for certain
the 5th to join keeps getting this bug, very weird
Something did not load properly when joining lobby
If you have their log when it happens, please send it
got overwritten, friend saved this instead
[07:32:25.3196546] [Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
GameNetworkManager.StartClient (Steamworks.SteamId id) (at <bdf6a080e98a49fd84b92b24894f768c>:IL_0021)
GameNetworkManager.JoinLobby (Steamworks.Data.Lobby lobby, Steamworks.SteamId id) (at <bdf6a080e98a49fd84b92b24894f768c>:IL_0167)
System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) (at <787acc3c9a4c471ba7d971300105af24>:IL_0000)
UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () (at <e27997765c1848b09d8073e5d642717a>:IL_0002)
UnityEngine.UnitySynchronizationContext.Exec () (at <e27997765c1848b09d8073e5d642717a>:IL_005D)
UnityEngine.UnitySynchronizationContext.ExecuteTasks () (at <e27997765c1848b09d8073e5d642717a>:IL_0014)
That doesn't help very much
My guess is probably some mod that changes the HUD
What mods do you have
019532df-0528-0912-6c91-17300b715ec3
@knotty badger Seems like the fix doesn't work lol
Yeah, I was able to repro the issue with what you found and it still ate my stuff
What what happened this time? What it related to putting items away again, or not?
Could you confirm if the mod was preventing you (or @next ledge in this case) from picking items up immediately after placing an item in a container? Or could you not tell?
I did the same thing with trying to put down and pick up an item off a container at the same time and it screwed up my reserved slot items as usual
We had the option on
Probs some form of mod conflict
Were you intending to pick it back up after placing it down, or is that kinda what happened? I'll be trying to replicate this with the ControlCompany and AdditionalNetworking mods in a bit, and try with various latencies to try and replicate this issue.
@next ledge Just double checking, but do you personally have this setting enabled in the HotbarPlus config? Or does only Lunx?
It doesn't matter if Lunx enables it, but you should have it enabled. If it's already enabled, then it must be something else.
I'm currently testing with this issue with ControlCompany and AdditionalNetworking, but when I place any items into a container, it's definitely not letting me pick up any items (from either ground or containers) until the item is placed into the container on the host's client, which takes about 200ms with my testing latency. I'll keep trying some more, though.
Btw, not important, but are you using hotbarplus quick dropping? In your video from the other day, you placed the walkie, and then swapped to the flashlight. My client keeps swapping to the shovel, so I was just wondering if you swapped manually to the flashlight in the video, or if that was the hotbarplus swapping to it automatically after placing the walkie.
just curious
yeah
since this was brought up in my thread
are you and lunx using this
Nope
because it sets all interact triggers to have 0 cooldown, which would include the shelves of the storage cupboard (which normally has a 0.25s cooldown)
i see, ok
i don't think it'd be a problem here anyway, since the problem seems to be interacting with the item, not the cupboard itself
but was worth a shot
@vagrant root @next ledge Idk what mod you guys got that's doing this, but you're somehow bypassing the throwingObject flag. Whatever is going on is letting you drop items and immediately pick them up. Like dropping items on the ground. This is the one that sets this flag in the vanilla game, and prevents you from picking up items until the host acknowledges that you dropped an item, and something is bypassing this. So I guess it's not specific to placing items in a container, but this is also why my fix doesn't do anything, because it's also getting bypassed.
I'll keep looking through some of your mods to help figure out what might be causing this, though.
Might be High Quota Fixes or GI
throwingObject is one of the things that causes the interact bug
as well as isGrabbingObjectAnimation
i know that i have a patch that resets throwingObject if it gets stuck set to true for more than 2s
testaccountfixes and high quota fixes might do something similar, since they both also have fixes for the interact bug
are you able to try it with the interact fix disabled in HQ fixes
a patch in butteryfixes btw
i will double check and make sure that it's not triggering when it shouldn't be, since i need to push another hotfix anyway
but if you need to narrow it down to other possibilities you could try disabling butteryfixes as well to see
i did have to disable my interact bug fix when touchscreen is installed since it does special behavior with isGrabbingObjectAnimation
I plan to
if you need me to do the same for reserveditemslots and throwingObject let me know, but that should only be an issue if you anticipate the flag being true for more than 2 seconds straight on one client
@vagrant root actually looking at this, it looks like i have a typo in my code that might be overriding throwingObject more aggressively than intended
so it's very well possible tihs is my fault, and if it is, it should disappear after i post the next hotfix
The cupboard fix I was gonna say should actually be integrated into one of the fix mods anyways
Not just Hotbarplus
well
It does look like it's your mod. I went back to my small mod pack to test in a smaller environment, and it seems to let me pick up items immediately after I drop something before host registered that it was dropped. I've added and removed your mod a few times just to be triple sure, and it seems like it's your mod.
Interestingly enough, if you drop and item onto the ground (not container) and pick it up immediately, it actually doesn't seem to break anything, or cause you to drop your items, UNLESS you have GeneralImprovements. It seems like they have some code that will force this if it detects de-sync, maybe? So those two mod combinations kinda make it worse in this unique scenario.
i just mean i think im probably the culprit of the flag being reset to false early
if i've been keeping up right, hotbarplus is still the only mod that sets the flag to true when storing items?
since zeekerss forgot in vanilla
okay that is good to know, 99% sure it will be fixed in next patch (i was resetting the wrong timer, so it would start being set to false after 2s of overall throwingObjects time, not just consecutive)
I have no idea if other mods are doing this. (setting the flag to true when storing items) It's strange that it's not in the original game, because after you store something into a container, the game will reset this flag, which makes no sense if it never intended on setting it
yeah
i suppose i could implement a patch for this on my end as well
since it seems like a general vanilla issue
Yeah, that's a good idea. It fits right in with your fixes haha
so the problem is that there's no throwingObject = true before PlaceObjectServerRpc?
Yes, I believe so. You can refer to this message if you need here. #1211989201793449994 message
But yes, the first block was for cases where items were dropped on the ground, and the throwingObject flag was set to true. The second block was for cases where they were stored in a container, but the throwingObject flag was not set here, but I'm pretty sure it should be.
This was my patch.
I'm just checking placeObject, and not parentObjectTo != null since that doesn't really matter. Just makes it a little shorter
[HarmonyPatch(typeof(PlayerControllerB), "DiscardHeldObject")]
[HarmonyPrefix]
private static void FixPlaceItemContainerFlags(PlayerControllerB __instance, ref bool ___throwingObject, bool placeObject = false)
{
if (placeObject)
___throwingObject = true;
}
@vagrant root next LobbyControl update should finally fix the lever 😅
lever?
Mhm, the issue where the lever would sometimes soft lock when a player late joined
oh thats lc? i thought it was just lll
LLL 1.4.6 had an issue but you shouldn't be using 1.4.6 anymore
you should be using 1.4.11
We have the same problem
LC + updated lll
So hopefully next update would work
let me clear this up. because there are many different issues with the ship lever from many different mods 😅
LobbyControl has the JoinQueue system that also prevents you from pulling the lever if somebody is still joining.
"prevents" is incorrect it will let you pull the lever then print a warning and reset the lever back.
this is currently semi-broken because even if the lever get's reset the players cannot use it anymore
this i discovered is actually a zeekers bug 😅
LLL has also an issue with the lever where . no matter what only host can use it. and that is separate from this 🙃
LobbyControl_Experimental v2.5.0
- Rewrite Transpliers to be more readable thanks to Zaggy
- Removed old code that is not needed anymore:
- removed RadarName ( superseded by Zaggy's TwoRadarMaps )
- removed ItemSync ( superseded by AdditionalNetworking )
- replaced TransparentPlayerFix with client-side version
- added ConnectionCheckpoint API
- modified JoinQueue system to use the ConnectionCheckpoint API
- added ConnectionEvents API
this is a highly experimental version as i've done a substantial rewrite for both the transpliers and the JoinQueue system. hopefully this will solve most of the issues from letejoining
Maybe the Invisible Player thing will finally be solved with the client sided change
for developers there is a new API namespace that allows other mods to react to latejoins and to detect/delay detection of when a client completed the connection
once this version is confirmed not-borked i'll start asking around for inputs/propose soft-dependencies on my API to other devs
What are the known issues of late joining? I haven't really been keeping up with this
Well I'll add it for today, if it explodes I'll let you know
Buttery had a pretty extensive list posted earlier in this thread.
for now this version focusses on Invisible players, Radar screen order and wall players
Would this new option make adjusting join queue not as necessary?
oh woups i forgot that config there 😅 it's litterally doing nothing atm
Got ya lol
i planned on adding extra RPCs to correctly detect things but lukly found a better vanilla one that should do the trick
wheeeee
what is the issue?
sqlite because fog of death with experimental
Dunno if conflict or what, sending for luni to look at it
Clients are getting fog of death with Experimental, interestingly the errors clients are getting on join are from Dice and PlayerHudTweaks
yeah
ShipWindows beta has errored out way earlier
Ignorable error cus I have both versions
Just reverted to stable LobbyControl and a client could join
you sure?
there are no errors 😭
Something with LobbyControl Experimental is causing the join issues, it looks like some incompat with Dice or PlayerHudTweaks cus PlayerHudTweaks was spamming errors
It doesn't happen with Stable
from lobbycontrol
Yeah I would assume it's hooking into whatever PlayerHudTweaks is
and it causes the error spam
@lofty bough any idea what might be happening here?
nah that is erroring out during the client shutdown
Ah odd
Unity.Netcode.NetworkManager:ShutdownInternal()
I wonder why it's not logging anything

@vagrant root your pack cannot be run in LAN 👀
Did Crit break StreamOverlays again?
Can you test if disabling StreamOverlays solves it?
idk it does not let clients join for Mismatched Network configuration
🤔
01954944-9c65-96e0-f4a3-a417075725a8 Test with this version of the pack and lmk if it still repros
I wonder if it's Diversity
it takes a while to boot the instances
Yeah well whatever mod is breaking lan I wanna pull, and this would be a recent thing
https://thunderstore.io/c/lethal-company/p/CTNOriginals/OuterDoorButtons/ I hope this wouldn't do it, it's not been updated in a long time
It should say which mod is causing the problem though through logs 99.9% of the time
this is that 0.01% sadly
Oof
network mismatch is unity native and has no info at all
Fun
Well I've seen cases of people having game version mismatches with Diversity
so I would try disabling that first
I'll do testing off of stream later to go through some other recently added mods to see if they break smth
ok this code worked and client joined fine
nvm this had experimental disabled 🤦
OH
Yeah I should have mentioned you would need to swap them back out I apologize ☠️
It's not dice right? Cus Dice was the first thing throwing an error
nah dice is mad that the client is in the "fog"
Very fair lol
The only reason I said try Diversity first is cus I've seen reports about version mismatches with it in rare occasions that tell people they're on V5 and stuff
But I haven't personally had it
Lan breaking is super odd cus I tested it rather recently and it worked with my pack, so it broke sometime after the addition of Diversity
Dunno if either version of ShipWindows might do it
I'll send a list of mods that might touch Networking
https://thunderstore.io/c/lethal-company/p/SoftDiamond/ShipInventoryUpdated/
https://thunderstore.io/c/lethal-company/p/TestAccount666/ShipWindowsBeta/
https://thunderstore.io/c/lethal-company/p/TestAccount666/ShipWindows/
I feel like these would be most likely somehow
https://thunderstore.io/c/lethal-company/p/Zehs/SellMyScrap/
https://thunderstore.io/c/lethal-company/p/Zehs/StreamOverlays/
[v40/v69+] Adds a few terminal commands to sell your scrap from the ship. Highly Configurable. Compatible with the ShipInventory mod. SellFromTerminal +
But there's also these that updated recently
though Crit is great about testing his stuff
I'd love to properly go through and test right now and disable things 1 by 1 til I find it ;c
But I'm live lol
I'm noticing though right now that everyone that joins is spawning by the ShipInventory
LOL
with LobbyControl Stable
so that might be a link
soo issue which seems to have been happening before too but never caused issues somehow
was that i was using the clockCycles instead of millseconds for the timeout 🤣
and damn thoose are fast
what did you remove in the second code btw? whatever you removed was the issue for LAN
@vagrant root
OH
Something mod
aand nvm the mismatch happend again
something is really unreliable in your pack @vagrant root
Hmmmm
Again my best guess is Diversity
But I can't find out for sure til I end stream and have time to come help you test stuff
epic fail matty
yee sry for ghost ping
does this failed transpiler happen when one of the ship windows copies is disabled too? I wonder if us changing some of the transpilers caused that to break
due to some instruction being removed that it relied on
LobbyControl_Experimental v2.5.1
- correctly use milliseconds instead of Ticks
is there a fix for item sinking downwards into the floor inside the ship if you reload a lobby while in orbit?
havent tested the mod yet im wondering if this mod fixes this issue
matty's fixes does
thank god i hate losing items under the ship
be aware that the fix for that will conflict with other mods that do the same ( mainly GI or SmartItemSaving ) so if you have them disable the relative settings
if you have multiple enabled the problem gets worse 😅
regarding Sync Radar Names, does that setting need to be enabled on all clients or is it ok if the host has it enabled + all clients have lobby control installed
everybody needs to have it enabled. i intentionally made so clients can decide to not listen to said requests from the host.
but if they do so, desyncs will happen
Matty I found a few errors relating to Nested NetworkObjects and informed the appropriate devs I wonder if that might have something to do with the Lan stuff
it's a beta and things might break like they just did with 1.5.0 😅
any help testing is appreciated.
@unreal oriole Ran a test
Looks like ButteryBalance breaks for the second game client that launches for lan, I hosted a lobby on the second instance and it gave me the fog of death
@brisk harbor Might be useful info for you
i will have a look
Yeah it just dies if you run 2 game clients it appears, the first instance booted was fine but the 2nd got fog of death even when just hosting a lobby on it which was interesting
doesnt really make sense to me but i will try to figure it out
Yeah same to me
Actually relooking through the log I see this as the very first error 🤔
ok that makes more sense to me now
rebalanced moons is possibly patching before i am and crashing startofround.awake
which prevents my networker from instantiating itself
so it runs into a null reference when trying to access it
Yeah it seems like RebelancedMoons and lan don't play together well
my guess, anyway
Or at least launching multiple clients doesn't
Idk why Matty said he never got any errors while testing my pack though lol
2nd client still fog of deathed, said client 2 missed 2 checkpoints
@unreal oriole I don't know how much I trust the new Join Queue system.
I reset the values to the new one and the 2nd lan client would consistently get timed out causing the fog of death
It appears if they take too long to join it's failing to boot the player to the lobby
and instead they get sent into the black fog
idrk bc i test stuff in lan with 2 clients all the time
idk whats causing this
Maybe Faster Load?
its erroring out trying to spawn the network handler for the mod
which isnt something ive ever been able to reproduce
Yeah that happened when trying to host a lobby on the 2nd lan client
Lol
Dunno why
@unreal oriole It was Diversity breaking lan connections
Also I had to increase your join queue timer cus it doesn't seem to properly be counting 20 seconds as 20 seconds and fails before the 2nd client can make it in shadow realming them. Clients take a bit to join cus there is a small stall when it gets to Wesley's Data for Wesley's Moons
I changed it to 50 so I could properly get lan to work
With Diversity enabled I couldn't get lan to load a 2nd client in
Just constant an error occured
I also noticed the speaker lines never played which indicated it was Diversity
But yeah the issue of it not booting players and sending them into the wall definitely needs fixed
this specific instance of the fog of death is a mysteryDice issue.
mystery dice crashes if the client disconnects before getting a playerobject and that can happen in multiple cases even w/o LobbyControl
well your profile takes ages to join. so you'll have to increase the timeout accordignly. i have a decent pc and had to use 20s in Lan to not timeout. for your streams probably a 40 or even 60 might be needed
I changed it to 50, the reason it takes a while is cus it has to load Wesley's Data
It stalls a bit when it gets to the message about Wesley's Data
Doubt that's Wesley's fault ofc his content addition is just huge and it probably has to load a few things
I did at least confirm Diversity is what breaks lan though
I do hope you can fix it so if people timeout they get booted back to the lobby like with Lobby Control stable instead of getting the fog screen btw
The fog screen issue is what concerns me
as i said that's on mysterydice not on lobby control
Ah
stable lc almost never goes in timeout became i was using the wrong math 😅
[20:20:50.9895247] [Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
MysteryDice.Effects.NeckBreak.FixNeck () (at <dfd41e8c3f75449a97140a112a7bc8b7>:IL_000C)
MysteryDice.Patches.StartOfRoundPatch.ResetSettingsShared () (at <dfd41e8c3f75449a97140a112a7bc8b7>:IL_00A5)
MysteryDice.Networker.OnNetworkDespawn () (at <dfd41e8c3f75449a97140a112a7bc8b7>:IL_0001)
Unity.Netcode.NetworkBehaviour.InternalOnNetworkDespawn () (at <895801699cfc4b4ab52267f31e2a4998>:IL_000D)
UnityEngine.Debug:LogException(Exception)
Unity.Netcode.NetworkBehaviour:InternalOnNetworkDespawn()
Unity.Netcode.NetworkObject:InvokeBehaviourNetworkDespawn()
Unity.Netcode.NetworkSpawnManager:OnDespawnObject(NetworkObject, Boolean)
Unity.Netcode.NetworkSpawnManager:DespawnAndDestroyNetworkObjects()
Unity.Netcode.NetworkManager:ShutdownInternal()
Unity.Netcode.NetworkManager:NetworkUpdate(NetworkUpdateStage)
Unity.Netcode.NetworkUpdateLoop:RunNetworkUpdateStage(NetworkUpdateStage)
Unity.Netcode.<>c:<CreateLoopSystem>b__0_0()
this is what triggers the fog. as the game was trying to return to main menu but crashed
on the timeout: you do not have to reboot the game/lobby to change the timeout. LethalConfig works immediately ( well for the next connecting client )
Ye that much I remember
@unreal oriole New version of Experimental is the wrong version number
lol
2.5.2 won't work
It will need to be 5.2.0
Figured I would say something cus I saw the new one get pushed lol
😭 i hate myself for doing that in the past
I honestly don't remember why you did the versioning for it the way you did tbh
Honestly if you wanted to fix the version numbering you could deprecate experimental and do a LobbyControl Unstable build or smth probably
It gets the same premise across essentially lol
i dont want to create yet another listing for LobbyControl
Yeah that's entirely fair and understandable lol
just keep the wonky numbers for experimental than just have a more normal one for stable?
Unsure if you're aware of this, but in the readme for LobbyControl and LobbyControl Experimental, they both have the typo "sub-Commnads:"
🙃
5.2.0 experimental isnt generating a config for me, i see 5.3.0 is out tho, im just waiting for it to reach mod managers 🙂
2.5.2 was missing the dll 😅
oh 
surely a janitor can fix the versioning if that would be ideal
doubt. at best they can delete all versions
yeah I was thinking just deleting the misversioned packages
~50 versions 
oh
nvm lmao
can't wait till I make a goof like that with PathfindingLagFix beta
it's not even a goof .
past me thought it would be smart to shift the version forward by one to use the minor as patch for experimental.
and now i've had to deal with that stupid decision for the past year 😅
oh shift it forward by one when? just one time?
hopefully I don't regret my decision to make the beta use minor version as revision and then reset to zero when bringing it to stable
at least that scheme allows me to change schemes at any point I think
the first experimental version was 2.3.0 so i uploaded it as 3.0.0 then made 3.0.1 ecc
@unreal oriole Guessing the new change should prevent timeouts at the default values before 20 seconds have actually passed?
I'll try setting it to 30s
v2.5.3 is just a more clean write of v2.5.1 😅 theorically no noticeable difference between the two versions
but yeah you'll need 30 or more seconds for your modpack
maybe go to 40
@neat raft i've been told you do not like adding soft-compatibility so i'll try and do it from LobbyControl side.
but i still need you to point what methods i should tap into for it 😅
i'm adding a system in LC to detect when a client has finished connecting so i'd like you to tell me what methods i could use to detect that.
bonus points if you have multiple that need to be hit so i can place more checkpoints and have a better detection
this is about LLL
would be preferable if they are ServerRpcs but if not i can just add my named messages to them
Could you elaborate on what exactly you’re looking for here?
Yeah I do unfortunately prefer to avoid soft dependencies when possible, kinda selfishly the biggest reason is that it causes me massive problems in editor
easiest example is the MoreCompany checkpoint that i put on when client sends it's cosmetics to the server
or vanilla one i put when client completes the VoiceChat initialization
basically i need to detect when client is ready to play
so any kind of initialization that would prevent client from, for example, loading the moon if server tries to land
but related to connection so not really when somebody changes moon via terminal
Does hotreloading matter or will my lever safeguard handle that
🤔 this system is for the lobby joining so i'm not sure
In my experience it only sometimes detects it, I went to land the ship once and someone loaded in after it was landed
Sometimes it will say a player is loading the moon so it will prevent it being pulled though
You won’t know the answer to my question so please do not speak for Matty
I play with Lobby Control all the time though
I knew what you were asking about here which is why I said something lol
@unreal oriole ill get back to you when i can
sure the system is in Experimental atm
but it seems to be working very well for vanilla detection
on my way to uni rn (waking up at 4:30 so long days for me aha)
biggest reason is that it causes me massive problems in editor
understandable btw. not sure why it would, but it's a valid reason
with "hotreloading" do you mean late join?
if you instead mean LobbyControl lobby load system then no. i do not plan on supporting it for modded lobbies
does it need to "succeed" on all checkpoints
cuz if yes then i wouldnt suggest checking cosmetics on morecompany since it'll be vanilla compatible for 4 (or less) players at some point which'll mean not everyone will necessarily have cosmetics
yeah all checkpoints have to succeed to mark a client as fully connected. if a client fails to mark all checkpoints before the timeout runs out then it is kicked and a new connection is resumed from the queue.
to be fair there is no reason for me to detect MoreCompany cosmetics. i added it in my unreleased version because i wanted to test the logic of my system. it's not even on experimental yet
do you think there is something else worth putting a checkpoint on in MoreCompany then?
ideally this checkpoint system is an API for other mods to soft-implement, but, for a first release, i'm fine adding the logic for some major mods on LobbyControl side
sorry for sending yet another sqlite, fell through the floor just now
I send a lot of these here 💀
@unreal oriole Seeing this happen before Infinity or NaN errors happen
Something with AN is borked
oh wait you also have this glitch ?
Also noticing the Infinity or NaN errors all relate to Scan Nodes
my lobby clients also have this issue
So I think your scan node stuff is breaking
Apparently was happening a lot to others yesterday also
Just that I got done falling through the floor a sec ago myself
i'll send the logs of one of my friends who clipped through the floor on gordion
they sent the logs shortly after they clipped
not really
i highly doubt that falling though the floor is an issue from one of my mods 🤔
we've talked about this before. it's an issue with ReservedItemSlots during join
@knotty badger Looks like you might need to do another update
My issue here btw
Is that it's also happened mid-game
When you joined us Sunday at some point after you left
a couple players randomly started getting Infinity or NaN spam
no idea why
But they started randomly falling through the ship and stuff
It probably all relates to something with ReservedItemSlots but it was really weird
and I saw that same error from AN too
def not my mods fault. also all exceptions on the receiving end of AN messages are safe. in the sense that they will not break anything when they are thrown because they run isolated form the rest
Yeah it makes sense
I just dunno why all the errors are referencing scan nodes
Like this one
it's always some random item
CruiserImproved again.
From the first error
Why the fuck does CruiserImproved keep touching this shit?
When we don't have a cruiser
@slow dagger Can you look into seeing why it's doing this? Since you were pushing that pr
Cus I genuinely think I might just need to pull CruiserImproved
i'll still wrap all my functions in a try catch for the next Experimental update. just to be sure
Yeah I think your mod is fine, it's just weird that I see it error first before the Infinity or NaN spam but it's prolly unrelated like you said
Just I noticed in the past few SQLite's I've checked it feels like there's a link there
But if ReservedItemSlots is setting it off then it might originate from it
in skitts sqlite it def printed the error first during join
Yeah
because reserved slots waits a lot before changing the inventory size there is a big window for AN to receive a message about a slot the client doesn't know about yet
I just dunno why ReservedItemSlots is setting off a whole chain reaction that is definitely what is so concerning
i'll be fr i'm not sure why thats happening
cruiserimproved postfixes PlaceGrabbableObject so it can attach a rigidbody which would allow the scannode to be scannable while its parented to a cruiser
all it does is check if a scannode has a rigidbody already, and if it doesn't it adds one with IsKinematic set to true
are you able to recreate it consistently? and if so, does it occur with cruiserimproved disabled?
I've noticed it generally happens if someone is holding a scrap when someone is joining
they then can't see said scrap, the person places it they fall to the void and get error spam
my best guess is that it doesn't retroactively apply the rigidbody to latejoins
which could cause some fuckery
Probably
i could maybe see about having it remove rigidbodies on scraps with latejoins, but i'm not sure how involved that would get, and i am unable to test the builds myself
Yeah, @unreal oriole I actually wonder if you could look at the code and see if you have suggestions on how to fix it
Since you know more than anyone else here about late join
Not to call you out of course it's just you have the most experience cus you've developed Lobby Control 😅
i'll throw something at the wall here, not sure if this is correct in any way
i could mark LobbyControl as a softdependency, if it's present, could work in a prefix for its latejoin function that finds every scrap in the lobby with a rigidbody, and removes the component
i could probably do it without lobbycontrol softdep even, and use lethal's basegame player join function as the basis to prefix (assuming latejoins use that as well)
that being said
i'd like to confirm it is cruiserimproved before i put in the work
to make sure it isn't a conflict you have
I'm unsure what could cause a conflict like that
if you can find a reliable way to replicate it, and can confirm disabling cruiserimproved doesn't cause it, i'll do my best to fix it
yeah LobbyControl does not have a dedicated latejoin method
in that case it would be easier to just use vanilla method
just prevents vanilla from closing the steam lobby. the rest is handled by vanilla code
gotcha, thanks for clarifying
Actually hold on
I just reread the report
You mentioned you didn't have a cruiser when it happened @vagrant root
Did you have a cruiser at any point during that session?
nope
I'll have to take a closer look tmrw
The issue seems to originate from playercontroller.cs
But the code in question shouldn't run unless there are items being parented to a cruiser
So if the cruiser didn't exist yet either I'm misreading the code or it's touching when it shouldnt
Yeah
that doesnt make any sense
the code runs unconditionally
it gives all GrabbableObjects which have ScanNodeProperties a kinematic rigidbody to their scan node collider
because otherwise, when the object is dropped in the back of (or on top of) the cruiser, it becomes unscannable
in this case im like 99% sure unity is at fault
Infinity or NaN floating point numbers appear when calculating the transform matrix for a Collider. is an error being thrown by an internal unity method
all that digg is doing is AddComponent<Rigidbody>()
i mentioned it last time you brought up this issue but it might be caused by scan nodes having a scale of 0,0,0
but in that case im not sure that it would even be possible to scan
so im not 100% sure that is the case
Thanks for the explanation btw
I figured I wasn't interpreting the code correctly, I was very tired
ehh vanilla scan only cares about the origin of the scannode 😅
I think that was fixed in the last RIS update. Players now get their reserved item slots immediately after the sync instead of after the spawn animation.
@vagrant root have you been running RIS 2.0.44?
I'll take a look at my code again in case I had an oversight. When did this happen, btw?
I finally found what's been causing the Infinity or NaN stuff
It was MoreCupboards
@granite dove You may wanna look into this, it affects clients badly
And it always affects some random furniture
Ooooh, good to know haha
weird that it affects furniture, most of the interactions MoreCupboards does are with grabbable items... I'll look into the logs and see if I can replicate later
With Lobby Control installed, I get this Low SomethingQueue Timeout 40s message everytime I load up the game. It says it's in LLL and I need to change it but there isn't anywhere in LLL where I can change that. All it is, is moon configs
This is the experimental version btw
i thought i worded it well but apparently not?https://cdn.discordapp.com/attachments/1200901735129022575/1345354530023538708/image.png?ex=67c9848b&is=67c8330b&hm=79bf5a54c319ef5765522426b1e240aa158fd6923785c860e4d5381d1ab742dd&
the setting is in LobbyControl not LLL
only the connection timeout. you should make it about equal to the time it takes for you to load a lobby
ahh okok thank you. I say ms and that says seconds so I was confused but I got it now, thank you again
1s = 1000ms
yeah that doesn't read too well, it's not clear to me that it's saying a LethalLevelLoader join sync requirement failed
could probably use two paragraphs really, if possible
one to say that the requirement failed within the timeout, another to say to increase the timeout
it's not a failing connection. it's a notification that is shown at startup like the LAN warning ( it's litterally a cloned object from that )
sorry to derail, was the setting to enforce all clients use lobbycontrol removed?
i noticed it in i think 5.2 and then it disappeared
it was never supposed to be there to begin with 😅 it was some unused code
i see, i see
that's one of the perks of Experimental releases 😅 now i can fix the wording way before it hits stable 🙃
if that's the case and there's no other way to make the LethalLevelLoader timeout not need to be longer, why not just increase the default timeout instead?
seems awkward for it to require manual modification if this is a known issue
what does the LethalLevelLoader checkpoint wait for?
there is no LLL checkpoint yet
it's just that the more moons you have the longer it takes for you to load in
oh hmm I see
and 99% of people will just timeout and probably come here to just be told to increase the timeout in config.
this is intended to send a preventive warning to let people know they have to edit that setting if they play with LLL moons
I have a feeling that it's not only LethalLevelLoader that would increase that loading time tbh, I've seen lots of other content take a good bit of time at startup
wondering if maybe it should be based on mod count too, or exclusively
startup or lobby join?
but phrasing could definitely be clearer regardless
lobby loading
I see a lot of spam from not only LLL
with big packs
yeah. but LLL is a safe bet for requiring extended timeout
def needs better wording
is it a one-time notification?
at boot if LLL and timeout < 40000
perhaps a better thing to do would be to use some multiple of the time it took the host to go from clicking the start game button to passing all checkpoints locally
by one-time I meant like not saying it every time you launch
sadly host skips all the checkpoints 😅 the host joining sequence is different from clients
then at least time from start game to player connection could work probably
atm no. it will show up every boot as long as the conditions are met
* 1.25 or something
formula could be like hostLoadingTime * loadingTimeoutMultiplier + timeout or something
reason I suggest this being that I don't use that many content mods, so I wouldn't really want to increase my timeout, but I would get this pop-up every launch regardless
i could also just remove the popup and deal with people asking why they are getting timedOut
how would i know if the user set a custom timeout or if it still default and i need to compute it...
why should you need that? just expose both values as options
could there just be a config to opt out?
I suppose that's an option too yeah
01956965-15d2-0301-4eea-ce38c8865005
Didn't know who to report this to so I'm doing both. A guy I was playing with had the personal phones upgrade from lethalphones and he left and rejoined (I had lobby control experimental) and his hand was stuck out like he had his phone out 24/7. I provided the log and the modpack code.
Hello Mr. Matty, if I use your lobby mod will I ever need LateCompany?
LobbyControl will stop itself if it detects any other LateJoin mod.
LobbyControl has late-join capabilities and you cannot install multiple late-join mods
Cool beans, one less mod I need to care about. Thank you and have a delightful day 
wish you a good quota 😄
great fix!
Was using lobby control experimental. Honestly it could have been something else but I had problems with people joining late. Anyone that joined late had weird bone physics on their limbs and another person joined and couldn't see or hear another person that was on the ship. There was also some kind of invisible person near one part of the ship that seemed to push is when we run into it but that could have been a different mod. I explained all the problems I had in the help and troubleshooting but the animation bone phsyic thing has happened before.
I had a lot of cases of late joiners seeing items and stuff floating with the new build for some reason that no one else could see, so some desync shenanigans were going on
u fixed that?
That message is ancient and they're banned from here
did you block me 
🤔 no
I never had you blocked lol
girl (if im correct if not sorry) I could not react on your messages and could not add you to friends, now I can
Might have just been Discord having a moment 😆
Also you not being able to send me a friend request was probably cus of my privacy settings 😅 I set up some restrictions a while ago so I wouldn't freak out too much about that ^^
That was changed cus I had an influx of bots and stuff trying to add me at one point
idk maybe but I never experienced that earlier
this is really weird. you sure that stable was not having this issues?
I didn't have stable, I've used experimental only
modded animations can break and whoever makes them should address the late-join issues.
the audio issues are supposed to be fixed by the joinQueue so they might be caused by another mod instead 🤔
if you can consitently reproduce the issue i will investigate it
That's the thing, one of the animations weren't modded. Idk how to explain it but the person's legs where janky looking. And it wasn't necessarily the audio. The person that joined late couldn't see anything related to the other person, couldn't see them, couldn't hear them, on their lobby thing it said the other person wasn't even there.
So ig yeah it was a bit audio but since it happened I'd figure I'd report it. It was all super weird
Oh, I didn't know that mb
you're fine. the "phone" animation should be that mod job to reset it on death/diconnection
Your right on that, I have reported it on their end already. Not saying it was the lobby mod but so many weird stuff was happening. I'm going to try without it and then tn try it with it and see what I can find.
the collision thing i highly doubt is caused by LobbyControl
and the "missing" player is something i haven't been able to reproduce yet. tho i did already know it was happening in rare cases
Oh okok. Well I'll see what happens soon and tn. Thank you for responding and helping so far 🙏
well it's been a bit. has anybody had troubles with the LobbyControl Experimental?
Been working fine for us as you know lol
Just to add to this, do you plan on properly making it so this thing's config option completely disables anything and everything related to it? It still affects items in the cupboard at the moment, even when off
I like everything else in Matty's Fixes, but not this. This doesn't fix anything, and just makes the problem worse. Yes, I've tried it in a fresh modpack to see if it still manifests there, and it still does
with that you are referring to the auto-parenting to the cupboard right?
Whatever it is, it still makes items in the cupboard float, and sometimes flips them onto an axis they wasn't saved on upon reload.
It has to do with the object clipping settings in general, though I'm not sure which one
do you have GI? or other mods trying to fix items falling below the ground?
i do not update rotations if they have been set by GI/SMI and ( for example ) GI fixItemFalling through is incompatible with Matty's Fixes OutOfBounds so you have to disable either one of them
Yes, I've tried it in a fresh modpack to see if it still manifests there, and it still does
But to answer your question: GI, yes, but their settings relating to clipping items are off. SmartItemSaving on the other hand, no, however considering Matty's Fixes settings relating to clipping items are off as well, there shouldn't be any confliction. That means there's still something on within Matty's Fixes relating to its item clipping fixes
I can't exactly just get rid of SmartItemSaving either due to the major issue it fixes with custom item IDs, and it overall doing a better job at fixing items falling through the cupboard over GI and MF
OutOfBounds is resposible for item clipping into the ground . the ItemClipping settings are eredited from ItemClippingFix mod from Viviko and is only about the offsets item have when dropped
I will reinstall MF rn to see if the issue still persists to this day
custom id fix has been embedded in LLL recently and SMI only remaining feature is to keep item rotation on re-host
This would be an issue for my client-side modpack then, as LLL isn't client-side
Floating
01958cd3-8d18-e1db-a879-5b6da029b49a
All log levels in MF are on
All settings relating to item clipping are off
Unless there was one I missed
That was disabled
🤔
Is it enabled on your end?
if you have that disabled MattyFixes is not touching items during spawn anymore
same thing goes for
It's off, so I'm not sure why it's still doing what it is doing
i'm not sure. all my patches are intentionally toggleable. and if you have removed the itemClipping one then some items will float because they do so in vanilla too
this is a showel right?
Removed SmartItemSaving because I realized I don't need them in my neither server-side nor client-side modpacks
Reenable GI's item rotate & location fix
Set every value that relates to item clipping to 0 just in case
Still manifests
???
This goes for any item
Lockpickers, belt bags, etc
I'll try disabling GI's settings then
Bruh
this is with default mattyFixes
so all enabled
itemclipping will update the offsets so items properly rest on surfaces
w/o they will either float or sink as per vanilla settings
can you send a profile code for me to test btw?
i'm planing to remove this anyways as it's not needed anymore and seems to be causing issues with other modded furniture
well i'll give more help tomorrow i'm off to bed now 😴
Alright
01958ce1-cc5c-238d-8475-1f6de4daa400
not needed anymore?
is there something else that allows items to follow the cupboard being moved after loading a save?
why
The worse thing is that I believe Matty's Fixes is forcefully shutting down GI and BIS' item falling fixes, even when MF's item falling fix is off, so I still can't use MF properly
😭
There is nothing I can do
Falls down, and is still slightly floating
Okay, I found a bandaid fix in the meantime
Keep everything in ItemClipping on
Items will no longer fall, float, nor ignore the cupboard's vanilla placement grid, but they will still move an inch up upon reload, but it's not that big of a deal (In the meantime)
Nvm :/
i def do not touch other mods 😅 but as a note OutOfBounds will apply the offset on save and not on load. so if you open a save that was made with it on the items will keep the offsets
yeah i cannot reproduce any issue with this code 🤔
Howdy Matty, I have two questions for you today.
What would cause an item to show no debug logs (x,y,z adjustments) while the rest do?
Is the item verbosity setting really about the cupboard or was this a copypasta error?
Print A LOT more logs about Cupboard detection```
yeah that's a copy-paste error in the description. i forgot to update it.
that setting will print extra logs about OutOfBounds & about the fallOnGround state of newly spawned objects
What's the changelog for 2.5.5?
nothing major from 2.5.4 changed a popup to a ingame tip.
the important part is that we moved from stable 2.4.10 to 2.5.5 so check changelog for 2.5.0 -> 2.5.4
Is this purely a host required mod?
the base functionalities yeah
if you want to solve the two latejoin issues that might happen ( some players joining invisible or some radar names beeing in the wrong order ) then clients need the host too
Hmm I'm getting an error every time a client tries to connect to my lobby with profile code 0195a175-85e8-06ff-3394-33ea80b7b547
[Warning:LobbyControl] Connection request Enqueued! count:1
[Warning:LobbyControl] Connection request Resumed! remaining: 0
[Warning:LobbyControl] missing checkpoints for 1: [{SyncAlreadyHeldObjects from LobbyControl},{SyncAllPlayerLevels from LobbyControl},{SendNewPlayerValues from LobbyControl}]
[Error :LobbyControl] Connection to 1 expired, Disconnecting!
Full logs are attached, host first then client
gonna test downgrading one version to see if this still happens, but I believe we only upgraded one version and it stopped working
we haven't been using experimental though, so I suppose there are a fair number of changes between versions that are separated in the changelog 
Yep same issue here
same here, happened immediately after last update
all looking fine for me in LAN with that code. but remember that the JoinQueue connection_timeoute_ms has changed defaults to 20s ( 20000ms ) while in previous versions it was 3s ( 3000ms ).
also in previous stable version it was not beein used as there were errors in the code
said config value is the maximum time a client has to join before beeing kicked
what would cause those checkpoints to take so long to be reached? the profile is very close to vanilla and the save wasn't a super cluttered one afaik, so I'm unsure what the issue would be
is this possibly a steam only issue?
(also we had no issues after downgrading to the previous stable version immediately after those logs were saved)
as i was saying the previous stable never had a timeout in the first place so clients can take as long as they want to join.
tho previous stable was still using the same checkpoints to decide when the next client could start
well it had a timeout just it never worked 🙃
hmm, it seems very odd for it to take more than 20s in this scenario though
3s is not a lot if you account for ping and a slow pc
your profile has it at 3s tho
I'll try cranking it up then I suppose
if you want to VC i can do a quick test with you on that
3s still seems surprisingly long, but I suppose that includes some artificial delays in the loading process?
I can't at the moment, I'm about to be in bed :(
after I get up though I'm down
it starts counting when the server accepts the connection from the client so
what would be the expected time be between that and transmitting held items over the network?
I think we've looked at that before but I forget
regardless though, it might be worth checking if the config value is set to the previous default and changing it to the new default, seems like it might cause issues for others as well
if our test later reveals that that fixes it, anyway
i'd need to do an online test to give you exhaustive values. if you have asyncloggers timestamps and debug logs from LobbyControl you can easily calculate how long it takes to reach each checkpoint
my question was more in regards to coroutine delays, since I'm assuming that's the issue here
network delays definitely shouldn't be an issue
ping to the client joining would be quite low
but of course if you don't know off the top of your head we can just look into that later
problem is they are not really deterministic
oh huh
2 of them have some WaitUntil while another depends on Unity async loading stuff
ah, if it's waiting for asset loading perhaps that could explain it
that's why i had to make the checkpoint system work no matter the order they are reached
the longest one normally waits for:
yield return new WaitUntil(() => this.localClientHasControl && GameNetworkManager.Instance.localPlayerController != null);
and
yield return new WaitUntil(() => HUDManager.Instance.hasSetSavedValues || Time.realtimeSinceStartup - startTime > 5f);
gotcha, I would have to have a look at where those fields are set, but it makes sense that could vary
I'll DM when I'm up so we can have a look at it
im too lazy to go to dms but i can confirm zaggy is up and you can look at it now
dont verify
you dont need to
just wait for him in vc, he'll be there too
We had to uninstall sadly as it was causing connection issues. But we had the same occurrence as zagster did. Previous version was fine. So if I'm understanding this, the reason this is happening is because a slow internet connection?
it's the value of "connection_timeout_ms" that has changed value from 3000 to 20000. but if you had the mod installed previously it does not update
3s is too short for people to join a lobby
in the previous version that value was unused so it never affected anything
you probably should force set min value
Ahhh
this is why i ask people to test my experimentals 😭. i'll have an update by this evening
Do the right thing, ping the server with the @ everyone when experimental is out 
