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.
LCBridgeOverlay
In-game HUD overlay for Lethal Company: quota, moon, live monsters (state icons) & traps, brutal-company events, plus a built-in WebSocket bridge for a browser/OBS overlay. Tuned for a modpack; some panels need specific mods.
| Date uploaded | 2 weeks ago |
| Version | 1.4.1 |
| Download link | Solon-LCBridgeOverlay-1.4.1.zip |
| Downloads | 137 |
| Dependency string | Solon-LCBridgeOverlay-1.4.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.2305README
LCBridgeOverlay
In-game HUD overlay for Lethal Company (v81 / BepInEx 5). An in-helmet HUD panel — quota, moon, weather, interior, loot, day/deaths, live monsters and traps on the sides, brutal-company events, and a run-victory banner — rendered natively inside the game and tilted to match the helmet HUD.
⚠️ For now this overlay is tuned for a specific modpack. Some panels read data that other mods provide, so in vanilla (or a very different setup) parts may show empty or not behave exactly as intended — nothing should crash, it just won't be as useful. Everything mod-specific is optional and read safely: missing mods are simply skipped.
🔭 Where it's going. The plan is to keep updating it — more convenient features, more settings, and fewer assumptions — so anyone can tailor it to their own setup, modded or vanilla.
It also runs a small built-in WebSocket bridge (ws://localhost:8181) that re-broadcasts the same game state, so a browser/OBS overlay can read it for streaming.
English
Requirements
- BepInEx 5.4.21+
- (Optional) Zehs-StreamOverlays — only if you use a browser/OBS HTML overlay that reads quota/day from it and the rest from this mod's built-in bridge.
If you used the older separate LCBridge mod, remove it — its data collector is built into this mod now, and running both fights over port 8181.
Optional (soft) integrations
All optional — if a mod is missing, the related info is simply skipped, no errors:
- BrutalCompanyMinusExtraReborn (BCME) — event plate in the event's colours; events also show on clients, not just the host.
- BrutalCompanyMinus RUS + XUnity.AutoTranslator — Russian event names.
- WeatherTweaks — combined weather (
Stormy + Rainy + …). - LethalLevelLoader — custom interior names.
- MoreCompany — crew size.
- MonstersGordion — monsters shown on the Company moon.
- ToilHead — Coil-Head / Manticoil with a turret get their own icons and fire tracers.
- Camera Overhaul (or any camera-motion mod) — the panel sways in sympathy with the camera.
Features
- Right-side HUD panel, tilted and (optionally) given a perspective/keystone effect to sit like the helmet HUD. Two styles:
Legacy(red pixel-grunge) andGame(chat-like, blue corner brackets). - Timer with milliseconds; auto-starts on a raid, pauses on loading/menus/orbit, resets on a new save. Manual keys too.
- Location: moon, coloured weather, interior type, item counts inside/outside, beehives, Old Bird warning.
- Quota: Q1–Q3 tabs, fill bar, loot / quota, on-planet scrap value. Day & deaths, crew.
- Monster icons on the sides — left = outside, right = inside; variants stack into a deck; count badge in the corner.
- Live state icons — many monsters change icon by state, by priority (angry/attack > aggression > transformed > special > passive): Hoarding Bug (angry), Jester (popped), Child Eater (adult), Nutcracker (attacking), Snare Flea (ceiling), Coil-Head (sway stops while looked at), ToilHead (turret + tracers).
- Slayer / kamikaze variants get a blood-splatter overlay on the icon (not a flat red tint).
- Proximity fade — the closer a monster or trap is, the more opaque its icon; distant ones fade toward transparent.
- Scan gating (optional): with
RequireScanToShow, monsters appear only after you scan them (uses the in-game bestiary). Ghost Girl shows only to the player she's haunting. - Traps (turrets/mines/spikes) on the bottom edge, faded by proximity; turrets fire tracers during a "turret" event. Grabbable turret/mine variants are counted too.
- Victory banner after the 3rd quota, with full run analytics. Ticker with a running summary.
- Camera sway — the panel subtly tilts/drifts with the camera (
CameraSway/CameraSwayStrength). - CRT scanlines and worn frame edges; idle fade when the camera is still.
- Spectator-friendly (stays visible while dead), pause-aware (dims under the Esc menu), and hides during takeoff.
Controls
I— show/hide (only on the ship, unlessAlwaysVisible). Rebindable (symbol keys like\work).O— pause/resume the timer (reset key configurable).
Config (BepInEx/config/gdlp.lcbridgeoverlay.cfg)
Widgets & behaviour apply live; style/language/scanlines need a restart.
| Section | Key | Default | Notes |
|---|---|---|---|
| General | Enabled | true | master switch |
| General | Style | Game | Legacy or Game |
| General | AlwaysVisible | false | visible off-ship too |
| General | ToggleKey | I | show/hide key (symbol or InputSystem name) |
| General | Language | auto | auto (ru if a RU translation is installed, else en), en, ru |
| General | Scale / RightOffsetPx | 1.0 / 20 | size / right margin |
| General | PerspectiveStrength | 0 | keystone effect; try 0.16 |
| General | FadeWhenIdle / IdleFadeSeconds / IdleMinOpacity | true / 4 / 0.32 | idle dimming |
| General | CameraSway / CameraSwayStrength | true / 1.0 | panel sways with the camera; 0 = off |
| Widgets | Show* (Panel, Timer, Location, Quota, DayDeaths, Monsters, Traps, BrutalEvent, VictoryBanner, Ticker) | true | per-widget toggles |
| Behavior | AutoTimer | true | auto start/pause timer |
| Behavior | ShowAllEvents | false | all events vs first only |
| Behavior | ScaleMonstersByCount | false | experimental: no counts, bigger/shakier by count |
| Behavior | RequireScanToShow | false | monsters appear only after you scan them |
| Behavior | ProximityFade | true | closer = more opaque |
| Behavior | Scanlines | true | CRT lines |
| WebSocket | Port | 8181 | built-in bridge port a browser/OBS overlay reads |
Install
Put LCBridgeOverlay.dll in BepInEx/plugins/ (r2modman profile), or install from Thunderstore. If you previously used the separate LCBridge mod, delete it — it's built in now.
Known limitations
- The perspective effect is experimental; if the panel looks distorted set
PerspectiveStrength = 0(the flat tilt remains). - Monster/trap icons are baked into the DLL; adding new ones needs a rebuild.
Credits
- Solon — author.
- Monster/trap art — Lethal Company renders, keyed for transparency.
- Built on BepInEx / HarmonyX / Unity uGUI / TextMeshPro.
License
See LICENSE.
Русский
Что это
Внутриигровой HUD-оверлей для Lethal Company (прямо в игре, Unity uGUI): квота, луна, погода, интерьер, лут, день/смерти, живые монстры и ловушки по бортам, ивенты brutal-company и баннер победы. Плюс встроенный WebSocket-мост (ws://localhost:8181), который раздаёт то же состояние — чтобы браузерный/OBS-оверлей мог читать его для стрима.
⚠️ Пока оверлей заточен под конкретный модпак. Часть панелей берёт данные, которые дают другие моды, поэтому в ванили (или сильно другой сборке) что-то может быть пустым или вести себя не совсем как задумано — ничего не падает, просто пользы меньше. Всё, что зависит от модов, опционально и читается безопасно: отсутствующий мод просто пропускается.
🔭 Куда движемся. План — развивать дальше: больше удобных функций, больше настроек и меньше жёстких допущений, чтобы каждый мог подстроить оверлей под себя — хоть с модами, хоть в ванили.
Если стоял старый отдельный мод LCBridge — удали его: его сборщик данных теперь встроен сюда, а вдвоём они конфликтуют за порт 8181.
Требования
- BepInEx 5.4.21+
- (Опц.) Zehs-StreamOverlays — только если пользуешься браузерным/OBS-оверлеем.
Необязательные интеграции (мягкие)
Всё опционально — нет мода, соответствующая инфа просто пропускается, без ошибок:
- BrutalCompanyMinusExtraReborn (BCME) — плашка ивента в его цветах; ивенты видны и у клиентов, не только у хоста.
- BrutalCompanyMinus RUS + XUnity.AutoTranslator — русские названия ивентов.
- WeatherTweaks — комбинированная погода.
- LethalLevelLoader — имена кастомных интерьеров.
- MoreCompany — размер экипажа.
- MonstersGordion — монстры на луне компании.
- ToilHead — Coil-Head / Manticoil с турелью получают свои иконки и стреляют трассерами.
- Camera Overhaul (или любой мод на движение камеры) — панель качается вслед за камерой.
Возможности
- Панель у правого края, с наклоном и (опц.) перспективой. Два стиля:
Legacy(красный пиксельный) иGame(как чат, синие уголковые скобки). - Таймер с миллисекундами; авто-старт на смене, пауза на загрузках/в меню/на орбите, сброс на новом сейве. Есть и ручные клавиши.
- Локация: луна, цветная погода, тип интерьера, предметы внутри/снаружи, ульи, предупреждение Old Bird.
- Квота: табы Q1–Q3, полоса выполнения, лут/квота, сумма лута на планете. День и смерти, экипаж.
- Иконки монстров по бортам — слева улица, справа комплекс; варианты складываются в колоду; счётчик в углу.
- Иконки состояний по приоритету (зол/атака > агрессия > трансформация > особое > пассив): жук (зол), джестер (вылез), ребёнок-людоед (взрослый), наткрекер (атакует), потолочная личинка (на потолке), койл (перестаёт качаться под взглядом), ToilHead (турель + трассеры).
- Slayer/камикадзе — вместо перекраски в красный на иконку накладываются кровавые пятна по силуэту.
- Прозрачность по близости — чем ближе монстр или ловушка, тем плотнее иконка; дальние бледнеют.
- Сканирование (опц.): с
RequireScanToShowмонстр появляется только после скана (по игровому бестиарию). Девочка-призрак видна только своей жертве. - Ловушки (турели/мины/шипы) на нижней кромке, бледнеют по расстоянию; при «турельном» ивенте стреляют трассерами. Переносные варианты турелей/мин тоже учитываются.
- Баннер победы после 3-й квоты с аналитикой забега. Бегущая строка со сводкой.
- Покачивание за камерой (
CameraSway/CameraSwayStrength). - CRT-полосы и потёртости рамок; затухание при неподвижной камере.
- Спектатор (виден, пока мёртв), учёт паузы (уходит в фон под меню), прячется на взлёте.
Управление
I— показать/скрыть (только на корабле, если не включёнAlwaysVisible). Переназначается (символы вроде\работают).O— пауза/запуск таймера (клавиша сброса настраивается).
Конфиг (BepInEx/config/gdlp.lcbridgeoverlay.cfg)
Переключатели виджетов и поведения применяются на лету; стиль/язык/полосы — с перезапуском.
| Секция | Ключ | По умолч. | Примечание |
|---|---|---|---|
| General | Enabled | true | общий выключатель |
| General | Style | Game | Legacy или Game |
| General | AlwaysVisible | false | видно и вне корабля |
| General | ToggleKey | I | клавиша показа (символ или имя InputSystem) |
| General | Language | auto | auto (ru, если стоит русификатор, иначе en), en, ru |
| General | Scale / RightOffsetPx | 1.0 / 20 | масштаб / отступ справа |
| General | PerspectiveStrength | 0 | эффект перспективы; попробуй 0.16 |
| General | FadeWhenIdle / IdleFadeSeconds / IdleMinOpacity | true / 4 / 0.32 | приглушение в бездействии |
| General | CameraSway / CameraSwayStrength | true / 1.0 | панель качается за камерой; 0 — выкл |
| Widgets | Show* (Panel, Timer, Location, Quota, DayDeaths, Monsters, Traps, BrutalEvent, VictoryBanner, Ticker) | true | тумблеры виджетов |
| Behavior | AutoTimer | true | авто старт/пауза таймера |
| Behavior | ShowAllEvents | false | все ивенты или только первый |
| Behavior | ScaleMonstersByCount | false | эксперимент: без цифр, размер/тряска по кол-ву |
| Behavior | RequireScanToShow | false | монстр виден только после сканирования |
| Behavior | ProximityFade | true | ближе — плотнее иконка |
| Behavior | Scanlines | true | CRT-полосы |
| WebSocket | Port | 8181 | порт встроенного моста для браузерного/OBS-оверлея |
Установка
Положи LCBridgeOverlay.dll в BepInEx/plugins/ (профиль r2modman) или ставь с Thunderstore. Если раньше стоял отдельный LCBridge — удали его, он теперь встроен.
Авторы
- Solon — автор.
- Арт монстров/ловушек — рендеры Lethal Company, вычищены под прозрачность.
- Сделано на BepInEx / HarmonyX / Unity uGUI / TextMeshPro.
Лицензия
См. LICENSE.
CHANGELOG
Changelog — LCBridgeOverlay
1.5.1
- Damage flash now works.
HitEnemyis virtual and 21 enemies override it, so patching the base method alone missed almost every monster. All overrides are patched, and the flash is triggered directly instead of travelling through the one-second bridge tick. - End-of-day countdown fixed and restyled. It used to read
0permanently (a normalised threshold was subtracted from day units), so it also sat on screen all day. It is now a centre-screen number over the last ten seconds, counted locally so no digit is skipped, and each second grows and fades as it flies toward you. - Weather is now part of the loot multiplier. The weather contribution was never counted: it is an instance property on the current weather, not a static field. It is read through the weather mod's current-weather API and honours that mod's own "use scrap multipliers" setting. The multiplier row is always shown while enabled, so x1 is visible too.
- Same monster inside and outside now fades independently — both rails previously shared one distance.
- Quota marks are a single centred line of five that recolours on each pass instead of growing new rows, and the analytics banner closes when the lever is pulled so the panel returns to its normal size.
- Door radar triggers reliably: the "at a door" range was 6 m and almost never matched; it is now 14 m measured from the door itself.
- Re-entering a save resets the overlay; the apparatus icon sits on the interior line; apparatus art re-keyed; new eye indicator.
1.5.0
- Quota marks & endless runs. Every completed set of 3 quotas adds a small mark under the quota block (15 per row, colour changes after the first row, counts up to 100), and the tab labels roll onward:
Q1 Q2 Q3→Q4 Q5 Q6→ … Run analytics now appear at the end of every set of three and are cumulative for the whole run. - Team-wide death counter (
TeamDeaths, on by default) — counts every player's death, even ones you didn't witness. OptionalDeathsOnlyOnLeaveupdates the counter only when the ship leaves a moon. - Monsters behind the door (
DoorRadar) — standing at a main entrance or fire exit reveals what's on the other side, via a virtual radar at the paired door (radius configurable, default 22 m). - Auto-hide on game popups (
HideOnPopups) — tips, quota-delivery and end-of-day screens hide the overlay, which then returns to its previous state. - Auto-hide on store ads (
HideOnStoreAd) — during a discount ad the overlay hides and can't be toggled back until it ends. - Sold-loot total in the analytics — how much was actually sold to the company across the run.
- Previous-run analytics after
eject— the summary stays up on the new ship and resets only when someone pulls the lever (kept in memory for the session only). - Nearest variant only (
NearestVariantOnly) — when a monster exists in several versions (e.g. plain and turret-equipped), only the one closest to you is shown. - Combined loot multiplier (
ShowLootMultiplier) — weather and event scrap-value multipliers summed into a single number. - End-of-day countdown (
ShowEndOfDayCountdown) — appears in the last 10 seconds. - Damage flash (
DamageFlash) — a monster's icon briefly flashes red when it takes damage (separate from the slayer blood-splatter). - Apparatus icon next to the interior while the apparatus is still inside; it disappears once it's carried out.
- New eye icon for the connection indicator.
- Fixes: the outside-scrap count no longer misses loot that Brutal Company events spawn shortly after landing (the snapshot used to lock on the first non-zero value); BCME events now also read BCME's synced panel variable, so clients see them even when the announce RPC is missed.
- Verified: the timer runs on the Company moon (Gordion) and stops in orbit.
1.4.1
- Proximity fade (
ProximityFade, default on) — the closer a monster or trap is to you, the more opaque its icon; distant ones fade toward transparent. - Trap rail now matches the monster rails — icons sit on the bottom border line (following the event plate, lowered so they don't overlap the event text) and fade by proximity.
- Grabbable traps counted — BCME's
GrabbableTurret/GrabbableLandmine(which destroy & replace the normal ones) now show up as turrets/mines instead of vanishing. - Scan gating uses the in-game bestiary (
Terminal.scannedEnemyIDs) — once you've scanned a creature it shows, reliably. - Overlay hides during takeoff (while the game shows the center-screen info and the leave-lever is disabled), and stays visible on landing.
- Green halo around icons removed — the keyed-out transparent border is colour-bled so bilinear downscaling can't smear green; Gunkfish/Stingray icon maps correctly.
- README/manifest/LICENSE de-branded; docs updated.
1.4.0
- New monster icon pack — all monster/trap icons replaced with higher-quality green-screen renders, keyed and trimmed cleanly (incl. genuinely dark monsters like the Bracken).
- Monster state icons. Many monsters now switch icon by their live state, chosen by priority (angry/attacking > aggression > transformed > special > passive):
- Hoarding Bug — passive / angry
- Jester — folded / popped (angry)
- Child Eater (Cave Dweller) — child / adult
- Nutcracker — passive / attacking
- Snare Flea — floor / ceiling (ceiling takes priority)
- Coil-Head — sway stops while any player looks at it (frozen)
- ToilHead — plain head / turret, and it fires tracers when its turret shoots
- Slayer / kamikaze variants now get a blood-splatter overlay baked onto the icon silhouette, instead of a flat red recolour.
RequireScanToShow(config, default off) — monsters only appear in the overlay after you've scanned them.- Ghost Girl only shows in the HUD of the player she's haunting.
- Camera Overhaul synergy — the panel subtly tilts/drifts with the camera (reads the camera's real roll, so it works with any camera-motion mod, and gives a gentle sway in vanilla). Config:
CameraSway,CameraSwayStrength. - Multiplayer fixes: BCME events now show on clients too (captured from BCME's synced tip), not just the host; and the overlay stays visible while you're spectating (dead).
- Detection runs on a ~0.5 s timer (not per-frame) and is all soft/reflection — missing mods never break the overlay.
- Fixes:
- Overlay now fills in instantly on landing (event + interior + monsters in one packet) — forced refresh on ship-landed and on level-generated, instead of trailing in over a second.
- Auto-timer no longer keeps ticking on orbit / during loads — it runs only while actually landed on a moon.
- Toggle-key rebinding works — symbol keys like
\are accepted (were silently falling back toI), and the key applies live from config without a restart.
1.3.0
- LCBridge is now built in. The overlay collects the game state itself and hosts the WebSocket bridge (
ws://localhost:8181) that the OBS/HTML overlay reads — so the separate LCBridge mod is no longer needed (remove it to avoid a port conflict). One mod, no inter-mod dependency. - Data path is now in-process (no self-connecting WebSocket client); the eye indicator tracks the bridge "heartbeat".
- Manual RU translation of BCME event names (~270 events) — replaces the auto-translator, which couldn't handle BCME's internal event IDs.
- Full language consistency: everything now follows the language setting (EN or RU) — death causes are no longer hard-coded, and the victory stamp/title localise properly. No more mixed EN/RU.
ScaleMonstersByCountnow scales trap icons by count too, not just monsters.- New icon: Lasso Man (no longer hidden); redone HD icons for Feiopar, Giant Sapsucker, Gunkfish, Red Locust.
- Fixes: the victory banner now tilts/warps with the rest of the panel; the
Q1/Q2/Q3tabs stay inside their frames when the panel grows (victory screen); the overlay now dims into the background while the pause (Esc) menu is open, so it no longer competes with the menu (LC's menu is camera-space, so a Screen-Space-Overlay panel can't render strictly behind it). - Config
[WebSocket]simplified to a singlePort(the built-in bridge port).
1.2.0
- Helmet-HUD tilt (always on) + optional perspective / keystone effect (
PerspectiveStrength). - Eye indicator moved to the header, centered next to the timer; closes like an eyelid when leaving the ship.
- CRT scanlines + worn (grunge) frame edges.
- Idle fade with configurable delay and opacity (
FadeWhenIdle,IdleFadeSeconds,IdleMinOpacity). - Pause-aware: panel stays on the game plane under the Esc menu (no longer hidden).
- Timer shows milliseconds (fixed-width, no more flicker on ms updates).
- Monster rails: icons under the same angle/perspective, top-aligned (outside = inside), count badge in the corner; stable order (no per-second re-pop); experimental
ScaleMonstersByCount. - MonstersGordion support (via LCBridge) — monsters on the Company moon.
- BCME RUS / XUnity.AutoTranslator integration — translated event names.
- Removed redundant
UseLegacyStyle(useStyle) and theTiltAngleconfig (tilt is now a fixed base). - New icons: Masked, ToilHead (coil+turret); Barber name alias fix (ClaySurgeon).
1.1.0
- Monster/trap icons on the side rails (baked into the DLL), turret-fire tracers.
- Victory banner with run analytics; ticker.
- Blue-bracket "Game" style vs red "Legacy" style.
- Custom eye sprite as the connection indicator.
- RTLC / Russian language support.
1.0.0
- First in-game overlay: panel at the right edge, reads LCBridge WebSocket, widgets with per-widget toggles, timer, location/quota/day/deaths, BCME event plate.