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.
LethalGuardPlus
Host-side anticheat for Lethal Company. Blocks the voice chat (Dissonance) crash attack that floods the host with fake players. Only the host needs it.
By Ctrlc
| Date uploaded | a week ago |
| Version | 1.0.1 |
| Download link | Ctrlc-LethalGuardPlus-1.0.1.zip |
| Downloads | 37 |
| Dependency string | Ctrlc-LethalGuardPlus-1.0.1 |
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
LethalGuard+
Anticheat for Lethal Company hosts. Bad packets are dropped at the host, so every player in your lobby is protected, even if they don't have the mod.
Modules
| Module | Protects against |
|---|---|
| Voice | Voice chat (Dissonance) crash attack |
More modules are coming in future versions.
Voice module
The attack
A player joins your lobby and, through the game's voice chat system (Dissonance), creates dozens of fake voice players with huge names and absurd audio settings, then floods packets. Every fake player makes your game allocate a giant audio buffer. Within seconds your RAM is gone: the game crashes with OutOfMemory, and sometimes Windows Explorer goes down with it.
The root cause is in Dissonance: the host trusts whatever player ID, name and codec settings a client puts in its packets, and allocates memory from a size the client chooses.
What it does
As host (the important part): every voice packet from a client is checked before the game processes it or relays it to the other players. Packets that break the rules are dropped:
- player names longer than a normal name
- invalid codec settings (giant
FrameSize, unknown codec, invalid sample rate) - a client claiming to be another player (fake player ID / name)
- voice or text sent on behalf of another player
- relay packets carrying anything other than voice or text
- packets lying about their own length
- more packets per second than a normal player sends
As client (in someone else's lobby): your own game is protected. Codec settings of joining voice players are sanitized and voice frames from suspicious players are dropped. You can't protect the host or other players from here; the attack packets go to the host, not through you.
Normal players are not affected: legit voice chat stays under every limit.
Installation
Install with r2modman / Thunderstore Mod Manager. Only the host needs it to protect the lobby. Installing it as a client protects your own game.
Config
BepInEx/config/lethalguardplus.cfg
| Section | Setting | Default | Meaning |
|---|---|---|---|
| General | KickOffender |
false |
Host only. Kick a player who sends an attack packet. Rate limit violations only drop packets, they never kick. |
| Voice | BlockPackets |
true |
Drop rule-breaking voice packets. false only logs them (the attack will work). |
| Voice | MaxNameLength |
64 |
Max voice player name length. |
| Voice | MaxFrameSize |
5760 |
Max codec frame size (Opus maximum). |
| Voice | MaxPacketsPerSecond |
200 |
Host: max voice packets per second per connection. |
| Voice | MaxVoiceFramesPerSecond |
150 |
Client: max voice frames per second per player. |
Log
Every blocked packet is written to BepInEx/LethalGuardPlus.log with the player's Steam ID and name. Repeats are summarized every 5 seconds so the log doesn't explode during an attack.
[18:29:55.829] [HOST] CLIENTSTATE-NAME | clientId=1 steamId=7656119... name="..." | name is 990 characters (limit 64)
[18:29:55.831] [HOST] SPOOFED-VOICE | clientId=1 steamId=7656119... name="..." | VoiceData on behalf of another player
Türkçe
Lethal Company host'ları için anticheat. Kötü paketler host'ta düşürüldüğü için sadece host'un yüklemesi yeterli, lobideki herkes korunur.
Ses modülü: Sesli sohbet (Dissonance) üzerinden yapılan, host'un belleğini doldurup oyunu çökerten saldırıyı engeller. Client olarak yüklersen kendi oyunun korunur.
Engellenen her paket BepInEx/LethalGuardPlus.log dosyasına saldırganın Steam ID'siyle yazılır. Yeni modüller sonraki sürümlerde gelecek.
CHANGELOG
Changelog
2.0.3
- Known attackers and players kicked from this lobby are now refused before they connect, so their packets never reach the game.
- Closed a gap in the 2.0.2 crash fix: packets from a kicked attacker could still be treated as coming from the host.
- Refused attackers no longer leave a blank name in the player list.
- The
KnownAttackerListsetting is gone: this protection is now always on./unban <SteamID>still lets an account in on your game.
2.0.2
- Fixed a new lobby crash: a broken network packet could crash the host's game right after the attacker joined, before any ban check. It is now blocked and the sender is kicked. This fix is always on.
2.0.1
- Small hotfix.
2.0.0
LethalGuard+ now protects the whole lobby, not only voice chat. Only the host needs it.
Updating from 1.0.x
- Players can now be kicked automatically, but only for requests a normal game can never send.
KickLevel=Offturns this off. Blocking stays on either way. - Settings are reset to the new defaults, except
HideModdedTag=false, which is kept. - Using LethalGuard+ Beta? It turns itself off now. Your bans stay, but settings from the Beta are not copied over.
New protection (host)
- Lobby crashes: message floods, oversized packets and more voice chat attacks.
- Ship: fake early takeoff, a locked lever, "leave early" votes from living players, spamming doors, lights, magnet, teleporter or horn.
- Credits: free items, furniture, vehicles and moons, wiped credits.
- Chat: talking as someone else, fake server messages, huge text, spam.
- Terminal and furniture: locking the terminal from afar, moving or storing furniture in a broken way.
- Spawns and kills: reusing gift boxes and masks, deleting monsters, fake kills.
- Items: deleting items for everyone. Optional
ItemTeleportGuard(off by default) can break item mods. - Joining: two players taking the last slot, known lobby attackers.
For hosts
- Commands:
/kick,/ban,/unban,/bans,/recent./banalso works on players who already left,/unban lastundoes the latest ban. - A first offence is only a lobby ban.
AutoBanDurationdecides what happens if the same account is caught again in another lobby within 30 days. KickLevelandNoticeLevelchoose who is kicked and what you see in chat. Notices are only shown to you.- One chat line in your first lobby after starting the game shows that you're protected. Only you can see it, and
NoticeLevel=Offhides it. - The config now has three parts: General, Modules (turn single protections off) and Advanced (including
TrustedPlayers). - Bug reports: send
BepInEx/LethalGuardPlus.log.
Fixes
- Innocent players could be muted after a game freeze or when the host PC had been on for more than about 25 days.
1.0.2
- Your lobby is no longer listed under the modded filter: players can find it without ticking the modded checkbox. Can be turned off with
HideModdedTag.
1.0.1
- Release build without obfuscation. No functional changes.
1.0.0
- First release.
- Voice module, host: validates every Dissonance packet before it is processed or relayed (name length, codec settings, spoofed player IDs, relay contents, packet length, rate limit).
- Voice module, client: sanitizes codec settings of joining voice players and drops voice frames from suspicious players.
- Optional auto-kick (
KickOffender, off by default).