You are viewing a potentially older version of this package. View all versions.
Skycheg-repo_webcam-1.2.3 icon

repo webcam

Displays your local webcam or virtual avatar over your character's head for local recording and streaming.

Date uploaded 4 months ago
Version 1.2.3
Download link Skycheg-repo_webcam-1.2.3.zip
Downloads 3374
Dependency string Skycheg-repo_webcam-1.2.3

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
nickklmao-REPOConfig-1.2.3 icon
nickklmao-REPOConfig

Edit mod configs in-game!

Preferred version: 1.2.3

README

Local Webcam Mod for R.E.P.O.

This mod captures your local webcam or virtual avatar feed and displays it above your character for local recording and streaming.

Features

  • Local-only webcam display for your own client
  • Support for physical webcams and virtual cameras
  • Optional screen overlay mode instead of the world-space bubble
  • F8 hotkey to toggle the local camera quickly

Configuration

Open the RepoWebcamMod section in BepInEx ConfigurationManager.

Camera Settings

  • Enabled: Enables or disables the webcam module.
  • Mirror: Mirrors the local video horizontally.
  • Device: Selects the camera device from the detected list.
  • ShowLocalPreview: Shows the local feed as a 2D screen overlay.
  • LocalPreviewPosition: Sets the on-screen anchor position for the overlay.
  • PreviewSize: Sets the overlay size in pixels.
  • Zoom: Adjusts the zoom level of the captured frame.
  • OffsetX / OffsetY: Adjust the crop offset of the captured frame.

Remote Webcam Settings

  • Height (Y): Vertical offset above remote players.
  • Depth (Z): Forward or backward offset relative to the remote player.
  • Size (Scale): Size of the remote webcam surface.

Requirements

  • BepInExPack
  • REPOConfig

Author: Skycheg

This mod was made for the Skycheg channel: https://twitch.tv/skycheg

If you use this mod in public games, streams, videos, or other public content, please mention the author.

CHANGELOG

Changelog

2026-03-22

  • Reduced release-time logging overhead by buffering file writes instead of flushing every message synchronously from gameplay threads.
  • Throttled repetitive runtime diagnostics so preview, transport, and anchor logs no longer spam the log file during active sessions.
  • Moved outgoing webcam crop, mirror, and downscale work to a GPU blit path before JPEG encoding, reducing CPU load when capture devices force higher source resolutions such as 1280x720.
  • Changed remote anchor refresh to follow the tracked player lifecycle first, avoiding repeated alive/dead full-scene scans for every peer during steady-state gameplay.
  • Updated package version to 1.2.2.
  • Added this English changelog to the release archive so packaged builds include change history next to the DLL and manifest.
  • Updated the Thunderstore dependency to BepInEx-BepInExPack-5.4.2305.

2026-03-14

  • Split remote anchor resolution into separate alive/death paths so code_head_top and Player Death Head(Clone) are no longer mixed during lifecycle transitions.
  • Extended anchor failure diagnostics to log alive and death anchor candidates independently for the matched remote player hierarchy.
  • Reused the last trusted remote death anchor when Steam/Photon ID matching temporarily drops after death, preventing webcam loss above a valid Player Death Head(Clone).
  • Fixed an issue where webcams disappeared after entering a level due to failed Photon Owner ID matching; anchor resolution now scans all PhotonView components in the hierarchy.
  • Fixed an issue where webcams did not attach to dead players properly: implemented a direct child-search fallback for Player Death Head(Clone) when standard component resolution fails.
  • Disabled the parking coordinate threshold filter specifically for death heads, preventing them from being rejected when flung far away by physics.
  • Added a 5-second grace period for the Alive lifecycle state to prevent webcam flickering or disappearing during the transition between alive and dead states.
  • Implemented diagnostic logging (LogAnchorResolutionFailureDiagnostics) to track anchor resolution failures in real-time.

2026-03-07

  • Moved the custom Steam relay transport to a dedicated virtual port so it no longer collides with RepoSteamNetworking traffic when that library is installed locally.
  • Reworked the webcam send profile selection to use Steam lobby recipient count and a stricter bitrate budget, preventing 24 FPS / 360p from staying active in larger lobbies.
  • Switched video delivery from direct full-mesh fan-out to host-relay routing over Steam so larger lobbies no longer multiply every client frame across all peers.
  • Limited host-relay routing to larger lobbies only; 2-3 player sessions now keep direct peer fan-out because it is cheaper and lower-latency at that size.
  • Added a remote-anchor fallback grace mode so active webcam streams stay visible for a few seconds even if avatar anchor resolution temporarily fails during scene churn.
  • Expanded remote anchor discovery so webcam quads can reattach to corpse/ragdoll-style player hierarchies instead of staying frozen at the last live position.
  • Replaced corrupted and Cyrillic runtime strings in release-bound code with readable ASCII English text.
  • Rewrote package and repository README files to remove mojibake from shipped documentation.
  • Added .editorconfig to keep text files in UTF-8.
  • Added execution/check_text_encoding.py to catch mojibake before packaging.
  • Removed RuntimeStringVault string obfuscation and restored plain Twitch branding strings and channel URL.
  • Removed assembly-level obfuscation attributes and aligned assembly/plugin versioning with the Thunderstore manifest.
  • Removed all Twitch and author branding from runtime code and package metadata for Thunderstore compliance.
  • Added execution/release_sanity_check.py to validate package structure, manifest consistency, and forbidden legacy tokens before release.
  • Removed the obsolete Rune580-REPO_SteamNetworking_Lib dependency from Build/manifest.json.