LethalVoiceRouter
Route game audio and incoming player voice to separate Windows outputs. Select outputs and your transmit microphone in the F8 menu. Optional Clear Voice controls. Windows only.Changelog
The reference version is 0.5.2. Older entries describe behavior at their release dates. See the README and documentation index for current usage and validation.
0.5.2
- Translate maintained documentation, configuration descriptions, diagnostics, scripts and test output into English. Rename the text installation guide to
INSTALL.txtand update package paths and links. - Keep English as the default UI and preserve automatic Korean translation with a usable LCKR/LCKRL font. Store optional translations separately from English UI text.
- Preserve actual device names, endpoint IDs, microphone selections and existing configuration. Use device aliases only when the selected font lacks the required glyphs.
- Regenerate the English banner and settings previews, and validate both distribution archives for English text, links and matching DLLs.
- Update project, plugin and mod manager versions to 0.5.2 and align installation instructions and archive filenames.
0.5.1
- Reuse voice queues across silence, speech and mute transitions within one output session. Synchronize queue resets with in-progress writes and rendering to prevent stale voice playback.
- Reapply saved Windows application output policies at startup. Apply original-output and explicit-device policies even when saved and initial values match; preserve the initial backup and retry failures.
- Use atomic state changes to discard silent input queues without waiting for the output render lock. Normal mute transitions remain synchronized with output submission.
- Calculate player-to-playback-source associations once per frame instead of searching all players for each source.
- Pan mono callback voice toward its speaker. Preserve stereo callbacks because Unity may already have applied spatial processing.
- On 2026-10-25, the startup-fix source passed 47 basic tests, 16 package checks, 29 Unity synthetic checks and three loopback LAN configurations with all 1,498 synthetic voice frames decoded.
- Verified 44.1/48kHz silent playback and reconnection on four output endpoints, plus preview samples and nonzero levels on two inputs. Actual listening quality and internet multiplayer require separate checks.
- Passed 30 output policy, shutdown and recovery conditions across ten game processes. Restarts with original output, saved explicit devices and Windows default aligned active sessions after initialization without another selection.
- Updated the README, installation guide, configuration example and distribution materials to match features and validation scope.
0.5.0
- Added an MIT license for the original mod source and included it in distribution ZIPs.
- Added transmit microphone selection and an input-level meter to the F8 Microphone Input tab. Preview uses temporary capture before voice connection; the default follows the game's microphone setting.
- Disable separate voice device selection when separation is off and play voice through the selected game output.
- Show the current Windows default device in output lists and clarify status/refresh controls. Removed unused device ID copying.
- Refined F8 accents, panel borders, toggle states and Clear Voice details. Updated both documented settings captures to the same current Unity UI, resolution and language.
- Preserve game mute and hearing restrictions in separated voice. Improved Clear Voice lifetime management and F8 Esc input isolation.
- Use concise English BepInEx status messages and reduce repeated logging.
- Updated the README, installation instructions, mod manager materials and settings images for the current workflow.
0.4.0
- Fixed Esc closing F8 settings while also opening the game's pause menu. Restore original input action states when closing settings.
- Fixed Windows PowerShell 5.1 encoding of Korean filenames and manager manifest descriptions.
- Generate a separate
-modmanager.zipfor Gale, r2modman and Thunderstore Mod Manager local imports, including name, version, BepInExPack dependency and icon without existing profile settings. - Removed a fixed Gale profile path from the build; accept the build API DLL through
-LethalConfigPath. - Automatically validate archive paths, contents, metadata, icon, DLL versions and matching DLLs across both distributions.
- Shortened the README around features and installation and separated development instructions. Updated the manager description, icon and banner to reflect actual mod behavior.
- Added optional mono Clear Voice, disabled by default. Activation changes require restarting the game.
- Bypass noise suppression, RNNoise, AGC and AEC/AECM on transmit samples; run voice detection on a separate copy.
- Allow Opus targets from 6 to 300kbps, defaulting to the game's mono maximum of 300kbps, and display observed encoder values.
- Added send/receive FEC, enabled by default and adjustable live with bitrate while active. PLC remains enabled when FEC is off.
- Extend the unoccluded normal receive filter from 10 to 20kHz while preserving radio, occlusion, underwater, distance and direction settings.
- Preserve mono, 48kHz, 20ms frames and the existing protocol; enforce 900-byte payload and 1,024-byte relay packet limits.
- Added Output and Clear Voice tabs in F8 and updated LethalConfig, configuration examples and instructions. Restore original voice if patching fails.
- Passed 34 basic tests, 22 synthetic checks in an isolated Unity copy and three two-process LAN configurations. All 1,514 received synthetic frames decoded; actual microphone and listening checks remain separate.
- Documented standalone Clear Voice, setting application timing, host/client differences and troubleshooting, distinguishing current checks from earlier device records.
0.3.0
- Added side-by-side game and voice output lists in F8 with independent saved selections.
- Route game audio through Windows per-application policies, preserving music, effects and the game's mixing, volume and spatial processing without changing system defaults.
- Default game output to the original application output. Restore previous policies on original-output selection or normal shutdown, and attempt crash recovery at the next launch.
- Restore previous settings on device errors or partial role failures. Discover devices and change application outputs in the background.
- Added game output selection in LethalConfig and separate game/voice device ID copying in F8.
- Preserve existing voice configuration keys and defaults. Output buffer and voice volume affect separated voice only.
- Passed 29 basic tests including output selection/restoration, rollback and recovery record preservation. Actual game output switching and listening still required an environment with active devices.
0.2.2
- Removed Windows default communications output from device selection. Default to Windows default output and preserve old communications selections by resolving their endpoint IDs.
- Fall back to Windows default output if the old communications endpoint is unavailable; retain disconnected explicit IDs for reconnection.
- Added 10ms slider ticks and reference labels at 20, 50, 100, 150 and 200 in F8.
- Added a matching 20-200ms slider with 10ms steps in LethalConfig.
- Normalize saved output buffers to the nearest 10ms and apply changes without restarting.
- Added a banner, environment badges, settings previews, FAQ and collapsible development guidance to the README; organized text installation instructions with numbered sections.
- Added
Output.DeviceNameto the example and corrected descriptions of output buffers, maximum queues, reconnection and spatial-effect validation to match code. - Added a document index and validation reference; include documents and presentation images in distribution ZIPs.
- Reworked the ZIP README and contents for installers, fixed ZIP-relative links and expanded update, removal, reset and troubleshooting guidance.
0.2.1
- Added short Korean installation instructions to the distribution ZIP.
- Renamed the mod to Lethal Voice Router, including the F8 title and LethalConfig display name.
- Aligned DLL, project, installation-folder and ZIP names with LethalVoiceRouter.
- Preserved the plugin GUID and
io.lethalloopback.cfgfilename so existing configuration continues to work.
0.2.0
- Replaced F8 with Unity UI/TextMeshPro matching the game.
- Use the game's 3270 font, checkbox and border sprites, white sliders and orange selection accents.
- Reference
font3270_Regular_SDFfrom installed LCKR/LCKRL without copying or distributing font files. - Use the game's default font and English UI without LCKR/LCKRL.
- Arrange devices and controls in two areas and adapt the window to the screen aspect ratio.
- Use a separate input system so F8 interactions do not click game menus behind it.
0.1.1
- Moved settings and input handling to an independent runtime object outside the BepInEx loader, starting after scene load.
- Read F8 immediately after Input System updates and prevent repeat toggling while the key is held.
- Added device-name dropdowns, volume, buffer, shortcut and an open-settings button to LethalConfig 1.4.6.
- Apply LethalConfig changes without restarting the game.
- Distinguish devices with duplicate names and preserve disconnected endpoint IDs.
0.1.0
- Route other players' voices to a separate Windows output device.
- Configure output devices, volume, buffer length and failure behavior in F8.
- Track default output and communications devices and reconnect after errors.
- Discard stale buffers on departure, playback-source reuse or output-device changes.
- Use installed playback devices without external executables or virtual audio drivers.
