ProximityVoice
In-game proximity voice chat for Valheim. Talk to the players around you and hear them in 3D positional audio — the closer they are, the louder and more directional their voice. No external program or server required; everything runs through Valheim's own networking.
Features
- Positional 3D voice — voices come from the speaker's location. Full volume up close (within 10 m by default), then fading smoothly to silence at the hearing range (50 m by default). Both distances are configurable.
- Push-to-talk or toggle — hold a key to talk (default mode), or switch to press-to-toggle. Talk key default U (mouse buttons supported), rebindable in-game.
- Adjustable mic gain — quiet microphone? Open the gain overlay (default F4) and scroll the mouse wheel (or Up/Down) to boost how loud you're sent to others, watching your live level as you tune.
- Mic calibration overlay — open it (default F6) to see your live input level in dB and set the noise-gate threshold so background noise isn't transmitted.
- Clear, close-sounding voice — bypasses Valheim's reverb zones, so nearby players sound right next to you instead of "in a cave".
- On-screen mic meter — a small speaker icon whose sound waves light up with your captured audio level, so you always know your mic is being picked up.
- Opus codec (Concentus) — clear voice at a low ~24 kbps.
- Server-side distance culling — the host only forwards your voice to players actually in range, saving bandwidth.
- No external dependencies — uses Valheim's native routed RPC. The host relays voice, so it works on a normal player-hosted world as well as a dedicated server.
Requirements
- All players need this mod installed (the host relays voice, and each client captures/plays it).
- BepInEx (the dependency is pulled automatically by the mod manager).
- Windows recommended. Mic capture uses NAudio (Windows audio) and automatically falls back to Unity's microphone on other systems; the fallback is untested.
Usage
- Join or host a world (a normal co-op session is fine — no dedicated server needed).
- Get within hearing range of another player (50 m by default; full volume within 10 m).
- Hold U to talk (default push-to-talk). Nearby players hear you and the on-screen meter reacts. Release to stop.
- First time: press F4 and scroll to set your mic gain if you're too quiet, and F6 to set the noise gate. Optionally switch to toggle mode (
MicMode) so a single press turns the mic on/off.
You do not hear your own voice. To judge audio quality solo, enable SelfTest under [Debug] in the config (turn it back off for normal play).
Configuration
Settings live in BepInEx/config/Nubedeu.proximityvoice.cfg. Most can also be tuned in-game:
- General
MicMode — PushToTalk (hold, default) or Toggle (press on/off).
PushToTalkKey (default U) and PushToTalkReleaseTail (extra transmit time after release so sentence ends aren't clipped).
MicGainKey (default F4) — opens the mic gain overlay.
CalibrateKey (default F6) — opens the noise-gate calibration overlay.
RebindKey (default F7) — rebind the talk key in-game.
FullVolumeRange (default 10) — metres of no falloff around a speaker.
HearingRange (default 50) — max audible distance; also the server-side culling radius.
- Audio —
MicGain (your outgoing mic amplification), Volume (incoming playback), MicDevice (empty = system default), NoiseGateDb (threshold below which audio isn't sent).
- HUD —
MicIndicatorMarginX (distance from the left screen edge), MicIndicatorOffsetY (vertical offset from screen centre), MicIndicatorScale (size of the mic meter). The indicator sits at the centre of the left screen edge.
- Debug —
SelfTest (loopback to hear your own voice; off by default).
Multiplayer note: distance culling runs on the host, so the host's HearingRange decides the maximum range everyone is heard at. The volume falloff (FullVolumeRange/HearingRange) is applied per-listener on each client.
Notes
This is an early release. Feedback on audio quality and reliability is welcome.