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

Player Status Bars

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

Date uploaded 2 months ago
Version 0.1.2
Download link Aueser-Player_Status_Bars-0.1.2.zip
Downloads 1003
Dependency string Aueser-Player_Status_Bars-0.1.2

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 client-side BepInEx mod for Lethal Company. It displays compact world-space status bars above other players, showing health and Cadaver infection information without requiring server-side installation.

Features

  • Displays health and infection bars above other players.
  • Excludes the local player.
  • Uses a world-space UI that follows players and faces the local camera.
  • Reads infection values from CadaverGrowthAI.playerInfections[playerId].infectionMeter when Cadaver Growth is present.
  • Works without Cadaver Growth installed; health display remains available and infection values are safely unavailable.
  • Supports BepInEx configuration and optional LethalConfig runtime adjustment.
  • Includes distance-based visibility, orbit-phase hiding, infection bar display modes, and configurable layout offsets.
  • Shows a critical health state for players reported as critically injured, bleeding heavily, or persistently below the low-health threshold.
  • Includes late-join stabilization to reduce stale critical or low-health display when used with late-join mods.
  • Uses the active gameplay, spectator, or freecam view as the distance reference when deciding whether bars are visible.
  • Uses additional round-state signals to keep bars visible for clients joining after a round has already started.
  • Runs status bar management from a persistent runtime host so bar refresh continues across scene transitions.
  • Hides bars during the ship takeoff transition to avoid displaying transient player states.
  • Provides optional debug logging for diagnosing player filtering, visibility, and camera state.
  • Uses Chinese critical text when a Chinese localization or translation plugin is detected; otherwise it uses English text.

Requirements

  • BepInExPack
  • LethalConfig is optional.
  • Cadaver Growth is optional.

Configuration

Settings are available through the generated BepInEx configuration file. If LethalConfig is installed, Player Status Bars also exposes matching in-game controls through an optional reflection-based integration.

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.
  • Debug logging for status bar creation, filtering, visibility, and camera diagnostics.

Client-side behavior

This mod does not add custom networking and does not require host or server installation. It can only display data that the local client can read from the game state.

For this reason, hidden owner-only recovery values are not synchronized by this mod. Critical and low-health display is based on remote player state, synced injury flags, and conservative client-side fallback rules, with additional stabilization for late-join and ship-transition states.

Installation

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

BepInEx/plugins/PlayerStatusBars/PlayerStatusBars.dll

License

Player Status Bars is released under the MIT License. See LICENSE for the full license text.

Third-party notices

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

  • LethalConfig is an independent GPL-3.0 project. When installed by the user, Player Status Bars can integrate with it at runtime through reflection; this project does not compile against or include LethalConfig code.
  • 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.