LiveSpectate
Local-only live spectate camera for R.E.P.O. Press K while alive to watch teammates without entering vanilla death spectate.
About this mod Author’s original text
LiveSpectate
LiveSpectate is a client-side BepInEx mod for R.E.P.O. that lets you watch other living players while you are still alive.
Press K during a playable round to toggle a local-only third-person spectator camera. Press K again to return to your normal camera.
Features
- Toggle live spectate while your local player is alive.
- Watch enabled, living, non-local teammates.
- Switch spectate targets with the game's normal spectate next/previous inputs.
- Keeps vanilla death spectate, revive flow, player alive/dead state, and game state intact.
- Uses a local-only camera clone; it does not create a networked player object and does not change other players' games.
- Matches vanilla camera style by cloning the original main camera hierarchy, child cameras, render texture output, and direct post-processing layer where present.
- Restores original cameras, tags, audio listener target, light culling target, and camera utility state when live spectate stops.
Controls
| Action | Input |
| --- | --- |
| Start live spectate | K |
| Stop live spectate | K |
| Rotate camera | Mouse |
| Zoom distance | Mouse wheel |
| Switch target | Game's spectate next / previous inputs |
How it works
LiveSpectate intentionally avoids using R.E.P.O.'s vanilla death-spectate entry points. It does not call vanilla SetSpectate() or StopSpectate(), and it does not move or reparent the original CameraAim or CameraPosition objects.
When you start live spectate, the mod:
- Verifies that you are in a playable scene, alive, local, and have at least one valid non-local living player target.
- Creates a local camera clone from the game's current main camera.
- Copies the main camera's render settings and shares the original Render Texture Main target so R.E.P.O.'s existing display pipeline keeps updating normally.
- Clones child cameras such as Camera Top and copies direct PostProcessLayer settings when they exist, preserving the vanilla visual style.
- Temporarily tags the live camera as MainCamera and redirects CameraUtils.Instance.MainCamera so vanilla utility screen-space calculations use the active live camera.
- Disables the original main-camera hierarchy cameras while live spectate is active, storing their previous enabled states for safe restoration.
- Redirects the audio listener target to the live camera.
- Redirects the LightManager cull target to the spectated player so lights and emissive props around the watched player load like vanilla spectate.
- Hides normal HUD elements and shows the spectate name UI while active.
When live spectate stops, the mod restores only the resources it still owns. If the game or another mod changed a camera tag, camera enabled state, CameraUtils, light target, or audio target during live spectate, LiveSpectate skips overwriting that newer owner state.
Important compatibility notes
- This is a local visual mod. Other players do not see your live spectate camera.
- The mod is designed to stop before vanilla local death handling continues, so vanilla death spectate can take over normally.
- The mod intentionally shares the game's existing render texture target. Do not replace or remove that behavior unless you also replace R.E.P.O.'s display pipeline.
- Default logging is action-based. Extra camera diagnostics are available through the config option below.
Configuration
After first launch, BepInEx creates a config file for the plugin.
| Option | Default | Description |
| --- | --- | --- |
| Diagnostics.VerboseDiagnostics | false | Enables detailed camera, post-processing, and input diagnostic logs. Keep this off for normal play. |
Installation
r2modman
Install the package through Mod Manager or r2modman for R.E.P.O.
Manual
- Install BepInEx for R.E.P.O.
- Place LiveSpectate.dll under BepInEx/plugins/LiveSpectate.
- Launch the game.
Troubleshooting
- If pressing K does nothing, make sure you are alive, in a playable round, and at least one other living non-local playe
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: