VoiceFix
Automatically fixes all voice chat bugs — no more needing to re-host or rejoin lobby to hear other playersChangelog
[v1.1.0] - Mic Recovery Integration
Mic recovery features inspired by LC Mic Recovery by Aueser. Original concepts have been enhanced with adaptive intervals, device history tracking, and coordinated mic+playback recovery.
Added
- Microphone capture pipeline monitoring: Automatically detects when your mic stops working — empty mic name, device unplugged mid-game, Dissonance capture stalled, or Unity reporting not recording.
- Automatic
ResetMicrophoneCapture(): Resets the Dissonance microphone capture pipeline when failures are detected, without requiring a lobby restart. - Game-side
ResetDissonanceCommsComponent: Safely invokes the game's own reset coroutine with exception-guarded wrapper to prevent cascading Unity errors. - Manual recovery keybind (F8): Press F8 at any time to force a full voice recovery (both mic capture and playback bindings). Configurable key.
- Non-invasive HUD notification: Brief on-screen message when manual recovery is triggered, so you know it worked. Can be disabled in config.
- Preferred device keyword selection: Configure keywords (e.g. "Blue Yeti,HyperX") to prioritize specific mic devices during recovery.
- Smart device recovery with history: Remembers your last working microphone and prioritizes it during recovery, even without keyword configuration. Fallback order: last working device → keyword match → current device → first available.
- Adaptive recovery intervals: Check interval automatically shortens to 1s when problems are detected, then returns to normal (default 3s) after 3 consecutive healthy checks. Catches failures faster without wasting CPU during normal play.
- Cross-system coordination: When playback bindings break, mic health is also rechecked. When manual recovery triggers, both mic and playback are refreshed together. Prevents cascading failures.
- Scene and teardown guards: Mic recovery is suspended during menu/lobby scenes and when the game state is unsafe for reset operations.
- Post-recovery grace period: Configurable delay (default 4s) after recovery before checking capture state again, giving Dissonance time to reinitialize.
Changed
- Version bumped to 1.1.0.
[v1.0.2] - Voice State Desync Fixes
Added
- Walkie-talkie desync fix: Clears stuck
speakingToWalkieTalkiewhen walkie is dropped or player dies. - Enemy voice muffle fix: Clears stuck
voiceMuffledByEnemywhen enemy (e.g. Snare Flea) dies or is destroyed before releasing the player. - Revive voice reset: Full reset of voice pitch, audio filters (low-pass, high-pass, OccludeAudio), spatial blend, and all voice flags on revive.
- Spectating voice fix: Refreshes voice bindings when switching spectate target if the target has broken voice state.
- Underwater muffle fix: Properly clears underwater voice muffle when player stops sinking.
- Monitor: stuck walkie-talkie detection: Detects players flagged as speaking into walkie-talkie when they don't hold one.
- Monitor: stuck enemy muffle detection: Detects players with
voiceMuffledByEnemywhen no enemy is interacting and they're not underwater. - Monitor: stuck voice pitch detection: Detects voice pitch stuck far from 1.0 when target pitch is 1.0.
[v1.0.1] - Change description
- Change description.
[v1.0.0] - Initial Release
- Initial release.
- Added automatic Dissonance voice tracking and repair logic.
- Added voice binding retry with progressive delays (1s, 2s, 4s).
- Added OnDisable state caching to prevent voice state loss during scene loads.
- Added faster join voice init (progressive retry instead of 12s single wait).
- Added continuous voice health monitor with configurable intervals.
- Added configurable check intervals for performance tuning.
- Added Thunderstore packaging support.
