TeammateHealthHUD
Client-side teammate health, name, and death-state HUD for R.E.P.O.TeammateHealthHUD
A lightweight, client-side teammate health HUD for R.E.P.O.
Features
- One compact HUD card per teammate
- Player names from R.E.P.O.'s visible Photon nickname
- Current and maximum HP with smoothly animated bars
- Health colors for healthy, medium, and low HP
- A red, angled
DEADstamp that clears correctly after a revive - Optional portrait markers with an initial fallback (disabled by default)
- R.E.P.O.-styled neon health readouts and segmented health bars
- Automatically hidden in the main menu; shown only after a run starts
- Automatic handling of joins, disconnects, revives, and scene changes
- F8 show/hide shortcut by default
- Resolution-independent layout for 1080p, 1440p, 4K, and other aspect ratios
- BepInEx configuration with live Configuration Manager support
Client-side only
Only the player who wants the HUD needs to install this mod. The host and other players can remain completely vanilla.
TeammateHealthHUD does not add RPCs, packets, synchronized values, authority changes, or gameplay-changing patches. On the verified R.E.P.O. build, every client already receives teammate HP, maximum HP, death, and revive updates through the game's own Photon RPCs. This mod only reads the resulting local PlayerAvatar state and renders a local overlay. Its only Harmony hook is a postfix on GameDirector.Update that advances the HUD and never alters the game's method, arguments, or state.
Installation
Thunderstore Mod Manager / r2modman
- Install TeammateHealthHUD for R.E.P.O.
- Launch the game through the mod manager.
The required BepInEx pack is installed automatically.
Manual
- Install
BepInEx-BepInExPack-5.4.2305or newer compatible BepInEx 5 package. - Copy
TeammateHealthHUD.dllintoBepInEx/plugins/TeammateHealthHUD/. - Launch R.E.P.O.
Configuration
The config file is created at BepInEx/config/com.juanma.teammatehealthhud.cfg after the first launch.
Important options include:
Enabled,ShowSelf,ShowHealthNumbers,ShowHealthBar,ShowAvatar, andShowDeadPlayersDeadTextforDEAD,MUERTO, or another labelToggleKey(F8 by default)Anchor,OffsetX,OffsetY,Scale, andSpacing- HTML hex colors for healthy, medium, low, dead, and name colors
PanelOpacity,SmoothHealthAnimation, andHealthLerpSpeedDebugLogging, which records detailed scene, Canvas, roster, player-card, and two-second heartbeat diagnostics
All entries use normal BepInEx config types, so a compatible BepInEx Configuration Manager can edit them without being a required dependency.
Configuration is hot-reloaded. Pressing Save changes in an external BepInEx/Thunderstore config editor applies the new values in-game within approximately half a second; R.E.P.O. does not need to be restarted.
Verified game data
This release was built and inspected against Steam build 23363152 (R.E.P.O. release line 0.4.4.3, Unity 2022.3.67f2). It uses:
SemiFunc.PlayerGetList()/GameDirector.PlayerListfor the current player rosterPlayerAvatar.playerHealthwithPlayerHealth.healthandPlayerHealth.maxHealthPlayerAvatar.deadSetfor the real death state, with HP at zero as an additional safeguardPlayerAvatar.isLocalto hide the local player by defaultSemiFunc.PlayerGetName()for the displayed in-game namePhotonView.ViewIDas the stable per-avatar HUD key
The game itself sends UpdateHealthRPC, PlayerDeathRPC, and ReviveRPC to vanilla clients. TeammateHealthHUD never calls those methods.
Known limitations
- The inspected gameplay avatars do not expose a reusable per-player portrait texture or already-loaded Steam avatar. The HUD therefore uses a clean initial marker. It deliberately does not make Steam web requests or create extra portrait cameras.
- Multiplayer behavior must be verified in a real two-client session after game updates. Enable
DebugLoggingif an update changes an internal binding. - Mods that replace the game's player avatar or health classes may require a compatibility update.
Support
When reporting a problem, include the BepInEx log and a two-second debug snapshot with DebugLogging = true.
