BetterPeakVoiceFix EnFork
A team voice status management tool that offers an overview view (J) and synchronization function, allowing for manual disconnection (alt+K) and reconnection./n一个队伍语音状态管理工具,提供概览视图(J)和同步功能,可手动断开(alt+K)重连。
By AiAeT
| Date uploaded | 8 months ago |
| Version | 0.3.4 |
| Download link | AiAeT-BetterPeakVoiceFix_EnFork-0.3.4.zip |
| Downloads | 199 |
| Dependency string | AiAeT-BetterPeakVoiceFix_EnFork-0.3.4 |
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
Better Voice Fix User Manual
Version: v0.3.0 | Game: PEAK | 中文版说明书
1. Introduction
Better Voice Fix is designed to resolve common voice chat issues in PEAK, such as connection failures, ID Drift (players showing as [Unknown]), and lack of status feedback. Version 0.3.0 introduces a new "Visualized Connection" protocol, making the voice connection process transparent and significantly enhancing reconnection stability.

2. Core Features & Mechanisms
A. Smart Name Fix (ID Drift Solution)
When the game's underlying data desynchronizes (causing Alt+J to show Unknown or Name: ""), the mod automatically triggers a 3-stage search mechanism:
| Priority | Method | Description | |||
|---|---|---|---|---|---|
| 1 (Fastest) | Local Cache | Retrieves the last known correct name from memory. | |||
| 2 (Standard) | Steam Lookup | New in v0.3.0. Queries the Steam servers directly using the player's Steam ID. | |||
| 3 (Fallback) | Scene Scavenger | Scans all objects in the game scene (including hidden UI elements) to "scavenge" the name. |
Result:
Unknownnames are eliminated from the player list. Even if the game logic fails, the names remain correct.
B. Connection Status Visualization
v0.3.0 visualizes the real-time connection steps instead of just showing "Disconnected" or "Connected".
Plaintext
[ Join Room ]
│
▼
[ Connecting... ] ──────────────────────────────┐
│ │
├─ (Time < 25s) ──▶ [ Status: Verifying / Joining ] (Yellow)
│ │
├─ (Success) ─────▶ [ Status: Connected ] (Green)
│ │ │
│ └─ (Lag/Drop) ────┘
│
└─ (Time > 25s) ──▶ [ Status: Disconnected ] (Red)
3. Shortcuts & Operations
⌨️ Key Bindings
| Key | Function | Description | |||
|---|---|---|---|---|---|
| J | Toggle Detail Panel | Opens the detailed voice status panel at the top right. Press again to switch modes or close. | |||
| Alt + K | Force Reset (SOS) | Panic Button. Use this if you can't hear others or they can't hear you. | |||
| Alt + J | Debug Console | For developers only. Displays raw logs and underlying data events. |
🛠️ Alt + K Logic Flow
When Alt + K is pressed, the mod intelligently decides the action based on your current state:
Plaintext
[ User Presses Alt + K ]
│
▼
< Check Current Status >
│
├─ Is Connected? ──┐
│ │
│ ▼
│ [ Action: Disconnect ]
│ │
│ ├─ Send SOS: "Manual Disconnect"
│ └─ UI: Show Yellow "Manual Operation..."
│
└─ Is Disconnected / Connecting? ──┐
│
▼
[ Action: Force Reconnect ]
│
┌─────────────────────────────────┴─────────────────────────────────┐
▼ ▼ ▼
[ Strategy 1: Majority IP ] [ Strategy 2: Host IP ] [ Strategy 3: Blind Connect ]
(Connect to the channel (If no majority found, (If all else fails, use
where most players are) follow the host) default auto-connect)
4. UI Panel Guide (Press J)
Top: Local Status
- Local IP: The voice server IP you are currently connected to.
- Host IP: The voice server IP the room host is connected to.
[Sync]: You and the host are on the same channel.[Abnormal]: Red. You are on a different channel from the host (voice isolation).
Middle: Player List
Format: [Status] [HostTag] PlayerName | Ping: xxms » Details
Status Color Legend:
| Tag | Color | Meaning | |||
|---|---|---|---|---|---|
| [Connected] | 🟢Green | Voice is working normally. | |||
| [Connecting] | 🟡Yellow | New in v0.3.0. Player is verifying, joining, or within the 25s grace period. | |||
| [Disconnected] | 🔴Red | Player failed to connect after 25s or explicitly disconnected. | |||
| [Left] | ⚫Grey | Player has left the game or died (and voice is gone). |
Details (») Explanation:
- v0.3.0 Users: You will see specific steps like
» Verifying...,» Joining.... - Old Version / Non-Mod Users: You will only see static info like
» Connected: IPor» Connecting.
Bottom: SOS Snapshot (Black Box)
When a player drops connection or presses Alt+K, a red warning appears:
Detected XXX Disconnected
Target: (127.0.0.1) | Last: 123.456.78.9
- Target: The server they are trying to reach.
- Last: The server they were on before dropping (Fixed in v0.3.0).
- Usage: Helps determine if they are connecting to the wrong server or lost internet entirely.
5. FAQ
Q1: Why does it show [Connecting] for a long time?
A: The mod gives every joining player a 25-second grace period. If they don't connect within 25s, the status turns to a red [Disconnected]. This prevents false red alarms when players are just loading in.
Q2: I can't hear a teammate, and they are marked [Disconnected].
A: Ask them to check their internet or press Alt + K. If they don't have the mod, they must restart the game.
Q3: Why does Alt + K say "Manual Disconnect" first?
A: To prevent accidental resets. If you are currently connected, the first press disconnects you safely. Press Alt + K again to trigger the forced reconnection logic.
Q4: Can players with older versions see my status?
A:
- You see them: Yes (Basic Disconnected/Connected status).
- They see you: Yes, but they won't see the detailed "Verifying..." steps, only a jump from Disconnected to Connected. It is recommended that everyone updates to v0.3.0.
Q5: What does "Host IP Changed" log mean?
A: If the host disconnects and reconnects to a different voice server, the mod detects and broadcasts this. All clients should press Alt + K to follow the host's new IP.
To be honest,I'm a novice. I used AI to assist me in organizing the code and the documentation. After nearly one month of testing in a multi-person room (8~12 player), the current version is now basically stable.
CHANGELOG
V0.3.5
- Some text has been optimized. The previous expressions like "my IP" might have misled people into thinking that their IP would be exposed.
- Due to the change in option names, it is recommended that players of the old version clear the previous configuration files (···\PEAK\BepInEx\Config\chuxiaaaa.Aiae.BetterVoiceFix.cfg).
- The README.md description document has been updated.
v0.3.0 – v0.3.4 Update Logs
1. Core Logic: Intelligent Misalignment & Ghost Detection
- Ghost Detection: The system can now identify "Ghost IDs"—players who appear in the voice room but are absent from the game room (typically a stale connection left over after a player disconnects and rejoins).
- Smart Attribution Inference: When a player "disconnects" from the voice list while a "Ghost ID" exists in the room, the system no longer simply marks them with a red [Disconnected] status. Instead, it assigns a pale green [Misaligned] status. This accurately reflects the reality: "The ID is mismatched, but the player can still communicate normally."
- Enhanced Name Restoration: Optimized caching logic now prioritizes PUN (Photon Unity Networking) real-time nicknames. This prevents IDs from defaulting to "Player X" during misalignment episodes.
2. UI Reconstruction
-
Merged Status Bar: The bottom statistics bar has been removed and integrated into the top header.
-
Format:
Active (Yellow) + Misaligned (Pale Green) / Total (Green) (n players misaligned) -
Example: 10/10 (2 players ID misaligned)
-
Visual Grading:
-
[Misaligned] status uses a low-saturation pale green (
#b2d3b2) to distinguish it from healthy connections without causing "false alarms." -
[Connecting] status now includes a 25-second grace period. It displays as Yellow initially and only turns Red if the timeout is exceeded.
-
Connection Step Visualization: The UI now displays real-time progress, such as "Verifying..." and "Joining...", rather than just a binary "Connected/Disconnected" state.
3. Configuration & Interaction
-
Config Type Changes (v0.3.4): The UI Position setting has been changed from a Boolean (True/False) to a more intuitive dropdown string menu (Left/Right).
-
Default Parameter Adjustments: * Default Font Size adjusted to 21.
-
Max Name Length adjusted to 26.
-
Virtual Player Testing: This option has been moved back to the "Advanced & Debugging" category. The default test name has been changed to an ultra-long string to stress-test UI overflow handling.
4. Protocols & Debugging
- Version Broadcasting: The communication protocol has been upgraded to include the Mod version number within status synchronization packets.
- Enhanced Dump (Alt+J): The debug console now displays player IP addresses, Mod versions, and explicitly tags [Ghost] statuses. Additionally, a bug where players could not see themselves in the Dump log has been fixed.