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.
SimpleLobby
Host-side lobby tools split out of SimpleSell: whitelist, bans, lobby guard, RPC firewall, late join, /lobby, and a scrap guard against client mods that post interior scrap counts. Written by Claude & Chonk.
By Chonkzilla
| Last updated | 10 hours ago |
| Total downloads | 36 |
| Total rating | 0 |
| Categories | AI Generated Tweaks & Quality Of Life BepInEx Server-side Mods Tools |
| Dependency string | Chonkzilla-SimpleLobby-0.1.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
SimpleLobby
Written by Claude & Chonk
Your Lethal Company v81 lobby: whitelist, bans, the lobby guard, a host-side firewall against forged game
requests, late join, the crew list fix, /lobby, and a scrap guard against client mods that report the
interior's scrap to the lobby.
Host only. Only the host needs it. Everyone else can join with no mods at all, and vanilla players never notice it. A whitelisted friend who also has it gets a couple of extras (below).
New in 0.1.0: split out of SimpleSell. All of this used to be part of SimpleSell (up to 0.1.39). It is the same code with the same settings; SimpleSell 0.1.40 is selling, buying and organizing only. Your settings come across by themselves (see Coming from SimpleSell).
Commands
| Command | What it does |
|---|---|
/players |
Lists players, flagging anyone running networked mods |
/kick <name> |
Kicks a player |
/guard warn|kick |
Whether flagged players get a warning or an automatic kick |
/guard scrap on|off|log|warn|kick |
The scrap guard (below) |
/ban <name or steam id> |
Bans permanently by Steam ID, so a name change doesn't get around it. A name works even after they leave (from the join log), and a numeric profile link works too |
/unban <name or steam id> |
Lifts a ban |
/bans |
Lists bans |
/whitelist add|remove <name> |
Lets a trusted friend run some commands too (see below) |
/lobby status |
Tag, visibility, and what Steam reports about whether someone can join |
/lobby public|friends|private |
Changes who can find the lobby |
/lobby name <name> |
Renames the lobby |
/lobby hide|show |
Hides or shows the modded tag in the lobby browser |
/lobby late on|off |
Lets someone join after the game has started, while you're in orbit |
/lobby invite |
Opens Steam's invite window for the lobby (works after the game has started) |
Whitelisted friends
Whitelisted players can run stock, time, overtime (/ot), gear, organize, merge,
buy and credits from normal chat,
with no mods on their side. You can change that list with WhitelistedCommands in the config. Those are SimpleSell's commands:
the whitelist lives in SimpleLobby and SimpleSell asks it, so one /whitelist covers both (and SimpleHQ's bank).
/buy works for them before the game has started too, and spends the ship's credits.
If they also have SimpleLobby installed, whitelisted players can:
- pull the lever to start the game before you've started it this session. Normally only the host can do that. The host still checks they're at the lever, in the ship, in orbit.
- move equipment before the game has started: anything that isn't scrap, plus your gear list (e.g. the shotgun). Scrap stays locked until the first landing, as in vanilla.
The host gets the same pre-start equipment allowance. Without SimpleLobby, the friend's own game keeps
the lever and pre-start pick-ups locked; their commands still work. /whitelist add|remove applies
at once to someone who's connected.
During a SimpleHQ tournament every player may pick things up before the lever (SimpleHQ allows it so teams can stage their kit), and SimpleLobby doesn't refuse those pick-ups. The lever rule is unchanged.
If their / commands don't work, another chat mod on their machine is probably grabbing
them. They can type ! instead: !stock, !merge.
Late join
Off by default, and off again every time you start the game. Type /lobby late on and friends can
join your running game whenever the ship is in orbit. The lobby closes when you pull the lever and
opens again when you're back in orbit. Bans, kicks and version checks still apply. Never while
SimpleHQ tournament mode is on.
The game drops its Steam lobby the first time you land. If that has happened, SimpleLobby opens a
new Steam lobby for the game you're already hosting: same name, same privacy and same version.
Friends can find it in the lobby list (public lobbies), use Join Game on your Steam profile,
or be invited with /lobby invite, which opens Steam's invite window. The game's own invite button
is greyed out once the game has started. To turn this off, set [Lobby] ReopenSteamLobby = false.
The joiner arrives in the ship, alive, with the current credits, quota, deadline and moon. If they have SimpleLobby installed, they can pick things up and pull the lever right away. Without it, the game won't let them pick up items until the first landing. Joining while landed isn't possible: the joiner's game would have no moon interior. Someone who tries then is told to wait until the ship is back in orbit.
A late joiner can show up as "unknown" to other players, and see them as "unknown" too, unless they're Steam friends. You as the host always see real names. Players who have SimpleOptimize see real names as well.
Safer joins (0.1.37). Two people joining at the same moment can no longer both get the last slot
and crash the lobby for everyone. Someone who still gets through with no slot left is turned away with
"Lobby is full!", and only them. A joiner whose connection gets stuck (the game can't send them the world,
or they take more than 45 s) is disconnected so they can try again, instead of being retried forever.
Config [Lobby] ReserveJoinSlots, RefuseJoinWithoutSlot, DropStuckJoiners, StuckJoinSeconds,
RepairJoinSync (all on). These protect every join, not only late joins.
The pause menu crew list only shows players who are really in the game. Without SimpleLobby it keeps the names of strangers who tried to join a public lobby and were turned away.
Firewall
Cheat menus don't need networked mods: they send the game's own requests directly. The host now checks who sent each one. Landing needs a lever pull from that player at the lever. Store items, unlockables, the cruiser and routes must be paid for at the terminal. Furniture moves and chat must come from the player they claim to be. Debug commands from other players are refused.
A request no unmodded game can send (a faked player, a debug command, a landing when nobody pulled the lever)
gets the sender banned automatically by their real Steam ID, the same as /ban. Whitelisted players
are never auto-banned. Price mismatches and spam are only refused and logged.
Items too: other players can only drop, place or deposit an item they're actually holding, pick up
items within reach, and put them down near themselves, so client sell and teleport mods can't move
anything. An item only goes on the sell desk if the desk accepted it. Anything stuck there anyway goes
back on the ship by itself ([Firewall] DeskJanitor).
Belt bags follow the game's own rule (non-scrap items only, 15 at most, into the bag in your hand); scrap
sent into a bag anyway counts as forged, and anything a bag shouldn't hold is dropped back out for
everyone ([Firewall] BeltBagVanillaRule). The first forbidden bag attempt only gets a private
warning; repeated attempts ban ([Firewall] BeltBagStrikes, default 3).
Lobby Guard can message a single player privately, which also works for players without mods.
The host's chat box takes up to [Lobby] HostChatLimit characters (default 120), so longer
/lobby name names fit. The game's lobby list shows only the first 40.
Look for [RpcFirewall] in the BepInEx log. Settings are under [Firewall] (BanForgedRpc, BanLeverlessStart, LogAllowed, ...).
Scrap guard
Mods like GeneralImprovements (ScrapLeft monitor), ShipLootPlus, DetailedScan or ScanFix tell their player
how much scrap is left inside. The host can't stop those: every player's game already has every scrap
item (the vanilla terminal scan counts them too), and those mods only read that and show it on their own
screen. Hiding the scrap values isn't an option either: the one message that sends them also decides each
item's look and the end-of-day total, so vanilla players would see the wrong grade and wrong models.
What the host can stop is a readout that goes through the host, and that's what the scrap guard does:
- System chat lines from other players are limited to the three a vanilla game sends ("X joined the
ship.", "X was left behind.", "[playerNumN] started the ship."). Anything else, like abu's AutoScan posting
Inside: 23 ≈1450to everyone, never reaches anyone. ([ScrapGuard] VanillaSystemLinesOnly) - Chat that's only a scrap readout (
12 1450, what AutoTerminalScanClassic posts in its Everyone mode) isn't relayed. ([ScrapGuard] BlockScrapReadoutChat) - Mods that ask the host first, like LCBridgeOverlay, get no answer and stay off; the guard names them.
Each catch is reported to you privately (Action = Warn, default), only logged (Log), or kicked (Kick).
Whitelisted players are never kicked by the scrap guard; their scrap readouts are still held back. A typed
"12 1450" is never a kick on its own. Toggle in game with /guard scrap on|off|log|warn|kick. The host's own
lines (every suite plugin's, including SimpleSell's /briefing live) are never checked.
| Mod (downloads, Oct 2026) | How it gets its numbers | Stopped? |
|---|---|---|
| GeneralImprovements (3.2M) | ScrapLeft ship monitor (off by default); counts items on that player's machine, approximate value by default | No: own screen only |
| GoodItemScan (692k) | Totals the items its own scan reaches | No: own screen only |
| DetailedScan (675k), ScanFix (488k), Better Terminal Scanner (19k) | Terminal command on that player's machine | No: own screen only |
| ShipLootPlus (567k) | Moon loot value on its own display | No: own screen only |
| QualityCompany (70k) | Scan module on that player's machine; its networked parts need the host to run it | Scan: no. Network parts: already dead without the host |
| BetterTotalScrap (78k) | End-of-day screen | No (and it's after the day) |
| abu AutoScan (5.6k) | Posts the count to everyone as a system line; off on clients by default (HostOnly) | Yes, the line is blocked and reported |
| AutoTerminalScanClassic (3.4k) | Posts "count value" in chat in Everyone mode (default: only to self) | Yes in Everyone mode, blocked and reported |
| ScrapCounter (0.9k) | HUD on that player's screen | No: own screen only |
| LCBridgeOverlay (1.2k) | Asks the host for permission first | Already off without the host; the guard names it |
Coming from SimpleSell
The first time SimpleLobby runs it copies, from local.simplesell.cfg, every [Lobby] and [Firewall]
setting and [General] CommandPrefix into local.simplelobby.cfg: whitelist, bans, guard mode,
WhitelistedCommands, the alt prefix, the host chat limit, every firewall switch. Same section and key
names. SimpleSell.playerlog.txt (the join log /ban uses for people who already left) is copied to
SimpleLobby.playerlog.txt. SimpleSell's own file is only read; its old lines stay there, so going back
to SimpleSell 0.1.39 still has them. [Migration] ImportedFromSimpleSell = true marks it done.
DeskGuardRange exists in both: SimpleLobby's item firewall uses its copy; SimpleSell's desk-beam check
(used when the item firewall is off) uses [Selling] DeskGuardRange. AutoReturnBeamedItems and /return
stayed in SimpleSell.
SimpleSell 0.1.39 or older still contains all of this. If one of those is installed, SimpleLobby does nothing at all (no patches) and says so once in chat, so nothing runs twice. Use SimpleSell 0.1.40+.
Without SimpleSell, SimpleLobby works on its own. The pre-start equipment allowance then covers non-scrap
items only (SimpleSell's gear list adds scrap like the shotgun), and desk refusals go back to the ship through
the desk janitor instead of /return.
Defaults worth knowing
- The lobby guard flags anyone running networked mods. It only warns unless you switch
it to kick with
/guard. In a lobby where people run other mods, expect it to flag them. - The modded tag is hidden by default (
HideLobbyModTag = true), so your lobby looks vanilla in the browser. Use/lobby showto turn that off. - Late join is off at every launch.
/lobby late onwhen someone needs it. - The scrap guard is on, in warn mode.
Everything is configurable in local.simplelobby.cfg.
Install
Drop SimpleLobby.dll into BepInEx/plugins, or install with a mod manager. Requires
BepInEx 5.4.2100. Works with or without SimpleSell (0.1.40 or newer).