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.
EnhancedSpectator
Enhanced spectator freecam, floating spectator visuals, name tags, and routed dead-spectator voice for Lethal Company.
| Date uploaded | a month ago |
| Version | 0.2.0 |
| Download link | Aueser-EnhancedSpectator-0.2.0.zip |
| Downloads | 1352 |
| Dependency string | Aueser-EnhancedSpectator-0.2.0 |
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.2100README
Enhanced Spectator
Enhanced Spectator is a BepInEx mod for Lethal Company that improves dead-player spectating while preserving the game's vanilla death, target-selection, and lobby flow.
This is a public test release. Multiplayer features require compatible players to install the same mod version.
Version: 0.2.0
Features
- Enhanced freecam for dead spectators.
- Configurable movement, recenter, reset, fast, and slow controls.
- Stable spectator camera anchoring that reduces view movement inherited from watched-player walk/run animation.
- Automatic target recovery when the watched player disconnects and another living player is available.
- Spectator presence between compatible modded peers.
- Runtime detached-head spectator visuals and name tags, with placeholder fallback when the runtime source is unavailable.
- Dead spectator visibility for living and dead compatible peers.
- Speaking head scale and pulse driven by synced voice activity.
- Configurable routed dead-spectator voice between compatible peers.
- Positional spectator voice and distance attenuation when pose sync is available.
- Local-only spectator stability improvements when joining an unmodded host.
- Stable floating-head visibility when a spectator toggles between enhanced freecam and vanilla spectator view.
- Cached runtime paths for routine input, camera, visual, name-tag, network sampling, and voice-routing work.
- Runtime-only visuals. No game assets are exported, saved, or packaged.
Version 0.2.0 Highlights
- Reduced spectator camera jitter caused by watched-player walk/run animation.
- Automatically switches away from disconnected watched players when another living target is available.
- Improves remote floating-head visibility across host and client spectator perspectives.
- Lowers avoidable steady-state lookup, allocation, and debug-log overhead during normal play.
Default Controls
| Action | Default |
|---|---|
| Toggle enhanced freecam | F6 |
| Recenter near current target | R |
| Return to vanilla spectator view | F7 |
| Move | W / A / S / D |
| Move up / down | Space / LeftControl |
| Look | Mouse |
| Fast movement | Hold LeftShift |
| Slow movement | Hold LeftAlt |
Forward and backward movement follows the spectator camera direction. Looking up while moving forward moves upward; looking down while moving forward moves downward.
Installation
Install through Thunderstore or r2modman.
For manual installation, place EnhancedSpectator.dll in a BepInEx plugin folder for Lethal Company.
Multiplayer Requirements
- Local freecam works client-side.
- Floating-head visuals, name tags, voice-activity scaling, and routed spectator voice require compatible Enhanced Spectator peers.
- Client-to-client visibility requires a compatible modded host with host relay enabled.
- Unmodded hosts and unmodded peers safely fall back to local-only behavior.
- In unmodded-host sessions, installed clients keep the enhanced local freecam fallback without multiplayer spectator visuals or routed voice.
Configuration
The BepInEx config file is generated after the game starts once with the plugin installed:
BepInEx/config/Auuueser.EnhancedSpectator.cfg
Common options include:
Spectator.Freecam.EnableFreecamNetworking.EnableHostRelayFloatingHead.EnableFloatingHeadVisualsFloatingHead.UseRuntimeDetachedHeadVisualsNameTag.ShowNameTagsVoiceRouting.EnableSpectatorVoiceToTargetVoiceRouting.SpectatorVoiceAudienceModeVoiceRouting.SpectatorVoiceEnableDistanceAttenuation
Keep debug options disabled for normal play unless you are collecting logs for troubleshooting.
License
Enhanced Spectator is licensed under the GNU General Public License v3.0.
Known Limits
- This release is a test version.
- Runtime detached-head visuals depend on already loaded in-game runtime objects and fall back to placeholder visuals when unavailable.
- The mod does not export, include, or redistribute Lethal Company model assets.
- The mod does not create new Dissonance channels or ship custom audio assets.
- Other camera, voice, or spectator mods may conflict if they write the same runtime systems later in the frame.
Repository
Source and public documentation:
CHANGELOG
Changelog
0.2.0
Spectator Camera
- Reduced spectator-view movement inherited from watched-player walk and run animation by preferring stable player-root camera anchors when available.
- Preserved existing animated-body fallbacks for compatibility when a stable root anchor cannot be resolved.
Disconnect Recovery
- Added automatic spectator target recovery when the currently watched player disconnects and another living player is available.
- Improved non-host client recovery for disconnected targets so client spectators no longer remain attached to off-map disconnected-player models.
- Kept mod-owned target recovery compatible with vanilla spectator switching and enhanced-freecam input suppression.
Remote Spectator Visibility
- Improved remote floating-head visibility for dead compatible clients across host and client perspectives.
- Stabilized floating-head and name-tag updates during target changes, disconnect windows, and enhanced-freecam to vanilla-view transitions.
Performance
- Reduced steady-state lookup and allocation pressure in spectator input, camera snapshots, floating-head name text, runtime dispatch, network sampling, and voice-routing player lookup paths.
- Kept verbose diagnostics behind debug configuration gates so normal play avoids avoidable log formatting and message churn.
0.1.3
Spectator Visibility
- Kept remote floating-head visuals visible when a dead spectator toggles from enhanced freecam to vanilla spectator view.
- Restored enhanced freecam pose sync cleanly after toggling back from vanilla spectator view.
- Continued publishing vanilla spectator camera pose while enhanced freecam is disabled and the player is still spectating.
Stability
- Added regression coverage for the enhanced-freecam to vanilla-spectator to enhanced-freecam cycle.
0.1.2
Spectator Stability
- Improved local-only spectator behavior when joining an unmodded host.
- Repaired cases where revived connected players could remain unavailable as spectator targets on another installed client.
- Improved fallback name repair for generic
Player #nlabels when compatible peer identity data is unavailable. - Kept enhanced freecam active after valid vanilla spectator target selection in local-only sessions.
Compatibility
- Local freecam remains available for installed clients when the host is unmodded.
- Multiplayer presence, floating-head visuals, name tags, and routed spectator voice continue to require compatible Enhanced Spectator peers and a modded relay host.
0.1.1
Visuals
- Runtime detached-head spectator visuals are now enabled by default.
- Placeholder sphere visuals remain available as the fallback when the runtime head source is unavailable.
0.1.0
Initial public test release.
Spectator Freecam
- Enhanced freecam for dead spectators.
- Configurable movement, recenter, reset, fast-move, and slow-move controls.
- Camera movement around the current vanilla spectator target with radius limiting.
Multiplayer Presence
- Capability handshake between compatible Enhanced Spectator clients.
- Spectator target sync, spectator pose sync, and host relay.
- Remote and dead spectator visibility for compatible players.
Visuals
- Floating spectator visual markers.
- Runtime name tags above spectator visuals.
- Runtime detached-head visual option with placeholder fallback.
- Voice-activity driven head scale and pulse.
Voice
- Configurable routed dead-spectator voice for compatible players.
- Positional spectator voice based on synced spectator pose.
- Distance attenuation for routed spectator voice.