khalil-LiveSpectate icon

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-5.4.2305 icon
BepInEx-BepInExPack

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

Preferred version: 5.4.2305

README

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:

  1. Verifies that you are in a playable scene, alive, local, and have at least one valid non-local living player target.
  2. Creates a local camera clone from the game's current main camera.
  3. 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.
  4. Clones child cameras such as Camera Top and copies direct PostProcessLayer settings when they exist, preserving the vanilla visual style.
  5. Temporarily tags the live camera as MainCamera and redirects CameraUtils.Instance.MainCamera so vanilla utility screen-space calculations use the active live camera.
  6. Disables the original main-camera hierarchy cameras while live spectate is active, storing their previous enabled states for safe restoration.
  7. Redirects the audio listener target to the live camera.
  8. Redirects the LightManager cull target to the spectated player so lights and emissive props around the watched player load like vanilla spectate.
  9. 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

  1. Install BepInEx for R.E.P.O.
  2. Place LiveSpectate.dll under BepInEx/plugins/LiveSpectate/.
  3. 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 VerboseDiagnostics is set to false.
  • 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.

问题反馈