You are viewing a potentially older version of this package. View all versions.
Aueser-Player_Status_Bars-0.2.1 icon

Player Status Bars

Client-side world-space health and infection status bars for other players.

Date uploaded a month ago
Version 0.2.1
Download link Aueser-Player_Status_Bars-0.2.1.zip
Downloads 1167
Dependency string Aueser-Player_Status_Bars-0.2.1

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

Player Status Bars

Player Status Bars is a BepInEx mod for Lethal Company. It displays compact world-space status bars above other players, showing health and Cadaver Growth infection state with a low-overhead runtime model.

The mod can run from a single client using locally readable game state. When the host and clients install the same version, it also uses compact status synchronization to improve infection display consistency for observers.

Features

  • Displays health and infection bars above other players.
  • Excludes the local player.
  • Uses a world-space UI that follows players and faces the active camera.
  • Supports gameplay, spectator, and freecam visibility references.
  • Hides bars by distance and, by default, while the ship is still in orbit.
  • Tracks connected player slots across late joins, deaths, revives, and round transitions.
  • Reads Cadaver Growth infection values directly from CadaverGrowthAI.playerInfections.
  • Synchronizes client-local Cadaver Growth infection state through compact same-version status messages when multiple players have the mod installed.
  • Shows infection progress from 1% to 99% with one-percent display stepping.
  • Displays numeric health, smooth one-point health movement, and red low-health state.
  • Predicts vanilla low-health recovery toward 20 HP when remote health values are stale.
  • Includes a compatibility option for 20 HP critical-state synchronization.
  • Uses direct game types, sliced player refresh, cached infection lookup, pooled bars, dirty UI updates, and cached labels to keep runtime overhead low.

Requirements

  • BepInExPack
  • Cadaver Growth is optional. Health display remains available when Cadaver Growth is not installed.

Installation

Install through a Thunderstore-compatible mod manager, or place the package contents into the game profile so that the DLL is located at:

BepInEx/plugins/PlayerStatusBars/PlayerStatusBars.dll

Configuration

Settings are available through the generated BepInEx configuration file:

BepInEx/config/playerstatusbars.cfg

Configurable options include:

  • Enable or disable the mod.
  • Maximum display distance.
  • Hide status bars while the ship is in orbit.
  • Head offset, UI scale, and per-bar Y offsets.
  • Health and infection text visibility.
  • Health, infection, and background color presets.
  • Infection bar display mode.
  • Critical health sync mode:
    • VanillaPrediction keeps the default vanilla-focused fallback for stale 20 HP critical-state synchronization.
    • TrustRawHealthAt20 trusts the reported 20 HP value for modded active-bleed or custom-injury behavior.
  • Debug logging for status bar creation, filtering, visibility, and camera diagnostics.

Client-side Behavior

When only one player installs the mod, display accuracy is limited to the game state that client can read. When the host and clients install the same version, the mod can exchange compact status messages to improve infection display consistency for observers.

Health display combines synced raw health, synced critical or bleeding state, damage timestamp changes, and conservative vanilla recovery prediction. Infection display depends on Cadaver Growth's playerInfections data and same-version synchronization when available.

License

Player Status Bars is released under the GNU General Public License v3.0. See LICENSE for the full license text.

Third-party Notices

Player Status Bars does not bundle, redistribute, or require MoreCompany or LTC Lobby Control.

  • MoreCompany is an independent MIT-licensed project. Its player-slot expansion behavior was reviewed for compatibility hardening; this project does not include MoreCompany code.
  • LTC Lobby Control is an independent MIT-licensed project. Its late-join behavior was reviewed for compatibility hardening; this project does not include LTC Lobby Control code.

CHANGELOG

Changelog

0.2.1

  • Added compact same-version status synchronization so client-local Cadaver Growth infection state can be reported to the host and reflected for other observers.
  • Improved host-side infection display when the observed player's infection meter is only accurate on that player's own client.
  • Improved infection state handling by distinguishing unknown, confirmed clear, and active infection values, reducing stale infection bars after cure, death, revive, and round changes.
  • Improved late-join and round-transition cleanup by clearing status snapshots and infection caches when bars are disabled, hidden in orbit, or waiting for game state.
  • Kept the synchronization path low-overhead with fixed-size payloads, slot-indexed caches, change-based client reports, and the existing throttled host snapshot cadence.

0.2.0

  • Changed the project license from MIT to the GNU General Public License v3.0.
  • Added low-overhead player refresh with sliced slot scanning, slot-indexed tracking, and pooled status bar views for larger lobbies.
  • Added shared Cadaver Growth infection caching with bounded spawned-enemy lookup and absent-instance backoff.
  • Added one-point health display stepping so health changes move smoothly toward the current target.
  • Added one-percent infection display stepping from 1% to 99%, with immediate downward updates for cure and infection reduction.
  • Improved vanilla low-health display by predicting recovery toward 20 HP when remote clients expose stale low-health values.
  • Improved stale 20 HP critical-state handling by inferring vanilla downed health when synced critical or bleeding state indicates a low-health transition.
  • Added Critical Health Sync Mode with VanillaPrediction and TrustRawHealthAt20 options for active-bleed and custom-injury mod compatibility.
  • Improved health and infection reset behavior across death, revive, round transitions, and late-join slot reuse.
  • Improved connected-player detection for late-join and extended-lobby scenarios where isPlayerControlled is not a sufficient visibility signal.
  • Improved low-health visual feedback by switching the health bar to the red low-health state as soon as the target health is below 20 HP.

0.1.3

  • Reduced per-player frame overhead by folding billboard rotation into the main status bar view update instead of adding a second LateUpdate component per bar.
  • Reduced UI callback overhead by applying status bar strip updates from the parent view only when data or settings are dirty.
  • Removed non-debug distance square-root work from the visibility hot path; real distance is now formatted only after debug logging passes its throttle gate.
  • Reworked Cadaver Growth integration to use direct game types and cached spawned enemy lookup instead of runtime reflection, GetType, field lookup, or object-wide searches.
  • Removed optional LethalConfig reflection integration to keep runtime behavior reflection-free and lower overhead.
  • Added structural performance tests that guard against reintroducing runtime reflection, per-strip callbacks, per-bar billboard callbacks, and hot-path distance square roots.

0.1.2

  • Improved late-join handling for reused player slots so newly joined players no longer inherit stale critical or low-health bar states.
  • Improved compatibility with late-join and extended-lobby player slots where the player slot index can differ from the reported player client id.
  • Improved spectator and freecam distance handling so player status bars remain visible when the active view is near the target.
  • Improved ship-state detection so status bars are not hidden when a client joins after the round has already started.
  • Kept status bar management on a persistent runtime host so bar creation and refresh continue across scene transitions and plugin-host lifecycle changes.
  • Prevented recovered critical-health players from remaining displayed as 20 HP when remote clients only receive the recovery flag update.
  • Hid player status bars during the ship takeoff transition to avoid showing temporary player state while the round is closing.
  • Removed an optional LethalConfig refresh button that caused a startup warning on LethalConfig versions without the matching button constructor.
  • Reduced optional Cadaver Growth lookup overhead by caching integration metadata and instance discovery across player bars.
  • Added optional debug logging for status bar creation, filtering, visibility, and camera diagnostics.

0.1.1

  • Hardened late-join initialization for MoreCompany and LTC Lobby Control style player-slot changes.
  • Changed LethalConfig support to optional reflection-based runtime integration and removed the compile-time LethalConfig reference.
  • Documented third-party license notices for optional LethalConfig support and compatibility-reviewed late-join mods.

0.1.0

  • Added world-space status bars for other players.
  • Added health and infection display.
  • Added infection reading through Cadaver Growth's infectionMeter value when available.
  • Added BepInEx configuration and optional LethalConfig integration.
  • Added distance-based visibility and orbit-phase hiding.
  • Added independent Y offsets for health and infection bars.
  • Added infection bar display modes.
  • Added critical health display for synced critical injury and bleeding states.
  • Added conservative client-side low-health fallback handling for cases where recovery data is not fully synchronized.
  • Added stabilization handling for late-joining players to reduce stale critical-state display.
  • Added Chinese or English critical-state text selection based on installed localization plugins.