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.
repo webcam
Displays your local webcam or virtual avatar over your character's head for local recording and streaming.
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_topandPlayer 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
PhotonViewcomponents 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
Alivelifecycle 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
RepoSteamNetworkingtraffic 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 / 360pfrom 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
.editorconfigto keep text files in UTF-8. - Added
execution/check_text_encoding.pyto catch mojibake before packaging. - Removed
RuntimeStringVaultstring 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.pyto validate package structure, manifest consistency, and forbidden legacy tokens before release. - Removed the obsolete
Rune580-REPO_SteamNetworking_Libdependency fromBuild/manifest.json.