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.
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.
By JavaXia
| Date uploaded | 3 days ago |
| Version | 0.5.1 |
| Download link | JavaXia-LethalVoiceRouter-0.5.1.zip |
| Downloads | 18 |
| Dependency string | JavaXia-LethalVoiceRouter-0.5.1 |
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
Lethal Voice Router
Thunderstore team: JavaXia
Source version 0.5.1 · Documentation reviewed 2026-10-25 (Asia/Seoul)
English
Route Lethal Company game audio and incoming player voice to separate Windows output devices. Use F8 to select both outputs and the microphone used for your outgoing voice. Clear Voice is optional and disabled by default.
Windows 10/11 x64 · Lethal Company Mono build · BepInEx 5
Install
For a published Thunderstore release, install Lethal Voice Router with a mod manager. For a local build, import the entire LethalVoiceRouter-0.5.1-modmanager.zip as a local mod in Gale, r2modman, or Thunderstore Mod Manager. Make sure BepInExPack is installed in the selected profile. LethalConfig is optional. This mod runs on each player's PC; the host does not need it for voice relay.
Quick start
- Launch the game with the mod enabled and press F8.
- In Output, choose separate playback devices for game audio and incoming voice.
- In Microphone Input, choose the microphone for your outgoing voice, or leave Use Game Settings selected to follow the game's microphone choice.
- To use Clear Voice, enable it in the Clear Voice tab and restart the game. Its default is off.
Separate output requires two playback devices available in Windows. Clear Voice can also be used without separating outputs. Players without this mod can still hear voice sent by someone using Clear Voice; the extended receive filter and receive FEC controls require the recipient to install this mod and enable Clear Voice.
The voice output may not preserve every spatial effect exactly as the game's built-in output. Linux, Proton, and Steam Deck behavior has not been verified.
F8 changes are saved automatically. The output buffer defaults to 40ms and can be set from 20 to 200ms in 10ms steps. If voice breaks up, raise it one step at a time. This value is an output buffer request, not a measurement of total voice latency. Configuration is saved to BepInEx/config/io.lethalloopback.cfg.
The 2026-10-25 validation covers the current source: Release build, 47 basic tests, 16 package checks, 29 Unity checks, and three loopback LAN configurations with all 1,498 received synthetic voice frames decoded. Four output endpoints passed silent playback at 44.1 and 48kHz plus reconnection checks. Two input devices passed preview capture with nonzero meter responses. Thirty additional game-process checks cover active output sessions, per-role policy restoration, normal shutdown, and recovery after a forced process termination. Actual speech, listening quality, and multiplayer between PCs remain unverified. A local ZIP does not imply that a public release has been published.
Startup now reapplies saved per-app output policies even when their values already match. Five fresh-process checks passed without another device selection: original output twice, a saved explicit device twice, and Windows default once. The active session matched after mod initialization. This does not cover engine audio frames before the mod initializes. The final 29 Unity checks include a successful retry after one initial synthetic Esc-input failure; its cause remains undetermined.
한국어
게임 소리와 다른 플레이어의 음성을 서로 다른 Windows 출력 장치로 보냅니다. F8에서 출력과 송신 마이크를 선택할 수 있으며, 클리어 보이스는 선택 기능입니다.
Windows 10/11 x64 · Lethal Company Mono 빌드 · BepInEx 5
모드 매니저로 설치
Thunderstore에 게시된 배포본은 Install with Mod Manager를 누르거나 모드 매니저의 Lethal Company 프로필에서 설치합니다. BepInExPack은 manifest의 필수 의존성이고 LethalConfig는 선택 사항입니다.
로컬 빌드는 Gale·r2modman·Thunderstore Mod Manager의 로컬 모드 가져오기에서 LethalVoiceRouter-0.5.1-modmanager.zip 전체를 선택합니다. 가져온 뒤 선택한 프로필에 BepInExPack이 설치되어 있는지 확인하세요. 이 ZIP은 프로필 공유 파일이 아닙니다.
수동 설치한 LethalLoopback 또는 LethalVoiceRouter가 있다면 이전 플러그인 폴더에서 DLL 두 개를 제거한 뒤 가져옵니다. 기존 설정 파일 BepInEx/config/io.lethalloopback.cfg는 유지하세요. 업데이트할 때도 새 매니저용 ZIP으로 같은 모드 항목을 교체합니다.
처음 사용할 때
- 모드를 적용한 프로필로 게임을 실행하고 F8을 누릅니다.
- 출력 탭에서 게임 소리와 음성에 서로 다른 재생 장치를 선택합니다. 게임 소리의 기본값은 기존 게임 출력이고 음성의 기본값은 Windows 기본 출력 장치입니다.
- 마이크 입력 탭에서 본인 음성 송신에 사용할 마이크를 고릅니다. 기본값인 게임 설정 사용은 게임의 현재 마이크 선택을 따릅니다. 음성 연결 전에도 설정창을 열어 레벨을 미리 볼 수 있습니다.
- 클리어 보이스를 사용하려면 클리어 보이스 탭에서 켜고 게임을 다시 시작합니다. 비트레이트와 FEC는 활성화된 상태에서 바꾸면 바로 적용됩니다.
출력 분리에는 서로 다른 Windows 재생 장치가 필요합니다. 출력 분리 없이 클리어 보이스만 켜서 사용할 수도 있습니다.
다른 플레이어와 함께 사용하기
설정은 각 플레이어의 PC에서 적용됩니다. 클리어 보이스를 켠 송신자의 음성은 모드가 없는 상대방도 받을 수 있습니다. 수신자가 일반 대화 필터를 확장하거나 수신 FEC를 바꾸려면 수신자도 이 모드를 설치하고 클리어 보이스를 켜야 합니다. 다른 사람의 송신 품질을 바꾸려면 그 사람도 클리어 보이스를 켜야 합니다.
눌러서 말하기, 음성 감지와 게임 내 음소거는 기존 게임 설정을 사용합니다. 송신 마이크는 마이크 입력 탭에서 선택할 수 있고, 게임 설정 사용으로 되돌릴 수 있습니다. 호스트가 음성 중계를 위해 이 모드를 설치할 필요는 없습니다.
라이선스
원본 모드 소스 코드는 MIT License로 제공되며, 배포 ZIP 루트의 LICENSE 파일에서 전문을 확인할 수 있습니다. 이 라이선스는 Lethal Company나 제3자 자료에 대한 권리를 부여하지 않습니다.
문제 해결
- F8이 열리지 않으면 두 DLL이 모두 프로필의
BepInEx/plugins/LethalVoiceRouter폴더에 있는지 확인합니다. - 장치가 보이지 않으면 Windows에서 재생 장치가 활성 상태인지 확인하고 F8에서 장치 새로고침을 누릅니다.
- 음성이 끊기면 출력 버퍼를 10ms씩 높여 확인합니다. 기본값은 40ms입니다.
- 마이크 레벨이 움직이지 않으면 마이크 입력 탭의 선택 장치, Windows의 마이크 접근 권한과 음소거 상태를 확인합니다.
- 오류가 계속되면 프로필의
BepInEx/LogOutput.log에서Lethal Voice Router관련 메시지를 확인합니다.
설정은 프로필의 BepInEx/config/io.lethalloopback.cfg에 저장됩니다. 프로필을 다른 PC로 옮기면 F8에서 출력 장치를 다시 선택하세요.
F8 변경값은 자동 저장되며 LethalConfig에서는 적용을 누릅니다. 출력 버퍼는 20~200ms 범위의 10ms 단위 요청값이고 전체 음성 지연을 뜻하지 않습니다. 최대 음성 대기열은 기본 100ms이며 LethalConfig나 설정 파일에서 20~500ms로 바꿉니다. 장치 오류 시 게임 출력으로 복구하는 설정은 기본 켜짐입니다. 녹음 트랙 분리를 유지하려고 끄면 오류가 생긴 음성 블록을 음소거합니다.
2026-10-25의 현재 소스로 Release 빌드, 기본 47개·패키지 16개·Unity 합성 29개와 루프백 LAN 3개 구성을 통과했습니다. 수신한 합성 음성 1,498개를 모두 디코딩했고 출력 엔드포인트 4개에서 각각 44.1kHz·48kHz 무음 재생과 재연결을 확인했습니다. 입력 2개에서도 미리보기 캡처와 0보다 큰 레벨 반응을 확인했습니다. 게임 앱별 출력 30개 조건에서는 출력 4개의 활성 세션 이동·역할별 정책 복원·정상 종료·실제 강제 종료 뒤 재실행 복구를 확인했습니다. 입력 신호가 실제 말소리인지는 판별하지 않았으며 타 PC 인터넷 협동 플레이는 확인하지 않았습니다. 로컬 ZIP 생성은 Thunderstore 공개 배포 여부를 뜻하지 않습니다.
시작 시 저장된 정책값이 같다는 이유로 실제 적용을 생략하던 문제를 수정했습니다. 기존 출력 2회·저장된 지정 장치 2회·Windows 기본 출력 1회에서 추가 장치 선택 없이 모드 초기화 후 활성 세션이 저장 설정과 일치했습니다. 모드 이전의 첫 엔진 프레임은 이 보장에 포함하지 않습니다. Unity 최종 29개에는 실패 복구의 최초 Esc 합성 검사 실패 1회 후 동일 DLL 재실행 통과가 포함되며, 최초 실패의 원인은 확정하지 않았습니다.
거리·방향·차폐·무전기 등의 공간 처리가 게임 출력과 완전히 같지는 않을 수 있습니다. Linux·Proton·Steam Deck의 출력 동작과 실제 장치의 청취 품질은 확인하지 않았습니다.
CHANGELOG
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.