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.
LiveSpectate
Local-only live spectate camera for R.E.P.O. Press K while alive to watch teammates without entering vanilla death spectate.
By khalil
| Last updated | a day ago |
| Total downloads | 233 |
| Total rating | 0 |
| Categories | Mods Misc Client-side AI Generated Quality Of Life |
| Dependency string | khalil-LiveSpectate-1.0.0 |
| Dependants | 0 other packages depend on this package |
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
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 Maintarget so R.E.P.O.'s existing display pipeline keeps updating normally. - Clones child cameras such as
Camera Topand copies directPostProcessLayersettings when they exist, preserving the vanilla visual style. - Temporarily tags the live camera as
MainCameraand redirectsCameraUtils.Instance.MainCameraso 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
LightManagercull 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
Thunderstore / r2modman
Install the package through Thunderstore Mod Manager or r2modman for R.E.P.O.
Manual
- Install BepInEx for R.E.P.O.
- Place
LiveSpectate.dllunderBepInEx/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 player exists.
- If logs are too noisy, make sure
VerboseDiagnosticsis set tofalse. - If vanilla death spectate behaves incorrectly, remove the mod and report the exact BepInEx log; LiveSpectate is designed not to touch vanilla death-spectate state.