Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
SteadyCrew
Up to 6-8 players, plus a guard that keeps the round going when a client stalls: ship that will not leave, nobody revived, dead lever.
By SweetHiggs
| Last updated | 2 hours ago |
| Total downloads | 49 |
| Total rating | 0 |
| Categories | Mods Modpacks BepInEx Tweaks & Quality Of Life AI Generated |
| Dependency string | SweetHiggs-SteadyCrew-1.0.1 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
SteadyCrew
Lobbies of up to 6 players (8 at most) for Lethal Company v81, built around not breaking mid-round.
It does two separate jobs:
Crew – more than four players. Every player in the lobby needs the mod.
FlowGuard – keeps a round moving when one client stalls or a counter drifts. This half also works on its own: in a normal 4-player lobby, or next to MoreCompany if you would rather keep that for the lobby size.
Why another lobby-size mod
The usual complaints in big lobbies are "the ship won't leave", "everyone stayed dead" and "people drop when they join". In the game's code these are not about the lobby size itself:
- The host waits for every player at five points of a round (level generated, moon loaded, moon unloaded, revived, revived after a failed quota). None of them has a timeout. One stalled client and the round stops for everybody.
- Those waits compare against a player counter the game does not always decrement when somebody leaves. Once it is one too high, every wait hangs until the lobby is recreated.
- The revive loop returns early if one player's voice object did not come up, leaving everyone after them dead and the "living players" count wrong for the next round.
- The lever only works while the "loaded players" list is as long as the player count, on the player who pulls it and again on the host.
- The Steam transport ignores the result of every send. When Steam's 512 KB send buffer fills up (a slow client, a burst at join time), reliable messages are dropped without a trace.
FlowGuard checks the waits against who is really connected, bounds them in time, repairs the counters, makes the revive survive an exception, and queues messages Steam refused instead of losing them. It only steps in when the game has stalled or thrown; otherwise it does nothing.
Install
Import the zip in Thunderstore Mod Manager / r2modman (Settings → Import local mod), or drop
SteadyCrew.dll into BepInEx/plugins.
- Remove MoreCompany if you want SteadyCrew to handle the lobby size. With MoreCompany present SteadyCrew switches its Crew half off by itself and only runs FlowGuard and the network tuning.
- Everyone joining a SteadyCrew lobby needs SteadyCrew. A player without it is refused at the door with a message saying so, instead of joining and desyncing.
- You can still join vanilla lobbies with the mod installed.
Settings
BepInEx/config/sweethiggs.steadycrew.cfg
| Setting | Default | |
|---|---|---|
Crew / MaxPlayers |
6 | Host only. 2–8. |
FlowGuard / LoadTimeout |
300 | Seconds the host waits for a client to load the moon and generate the level. The host never lands without a client that is still loading; one that is still not ready after this long is disconnected. 0 = wait forever. |
FlowGuard / UnloadTimeout |
60 | Seconds the host waits for a client to unload the moon after take-off; a slow client catches up. 0 = wait forever. |
FlowGuard / ReviveTimeout |
30 | Seconds the host waits for a client's end-of-round revive. |
FlowGuard / LaunchGrace |
12 | Seconds in orbit before a never-loaded client stops blocking the lever. |
FlowGuard / LivingAudit |
true | Recount living players from the real player states. |
FlowGuard / AnnounceInChat |
true | Say in chat when the host stops waiting for somebody. |
Network / SteamSendBufferKB |
4096 | Steam default is 512. |
Network / SteamSendRateKB |
1024 | Steam default is 256. |
Network / SteamTimeoutSeconds |
25 | Steam default is 10. |
Network / ResendDroppedReliable |
true | Hold and resend what Steam refused. |
Network / JoinSanitizer |
true | Host: repair broken spawned objects before a client is let in. |
While the host is waiting for somebody for more than 25 seconds, it says so in chat
([SteadyCrew] waiting for <name> (moon loading, 40s)), so nobody has to guess why the ship is
not landing.
A client that is still loading the moon when the level gets generated (for example with a host on 1.0.0) holds that step until its moon is in and then lands late, instead of hanging on "Waiting for crew".
What it changes on screen
- Pause menu: the crew list holds every player, packed to fit.
- End-of-round report: still four rows; with more players it turns the page (
1/2,2/2). - Spectator boxes: closer together once there are more than six.
When something goes wrong
Search BepInEx/LogOutput.log for SteadyCrew. Every time the guard steps in it says who it was
waiting for and what it did, for example:
[Warning:SteadyCrew] Waited 60s for Dubina (moon unloading) - going on, they will catch up.
[Warning:SteadyCrew] Join guard: object '...' cannot be sent to a joining client (...). Left out of the join so that it does not break it.
[Warning:SteadyCrew] Player counters drifted (connectedPlayers 7, ...) while 6 player(s) are really in the game - corrected.
The host's log is the one that matters for "ship won't leave" and "nobody revived".
Known limits
- Players 5–8 have no mixer group of their own (the game ships four). Their voice goes through the master group; the per-player volume slider can turn them down but not boost them, and voice pitch effects (TZP) do not apply to them.
- No cosmetics.
- Tested on game version 81.