MPVC — Proximity Voice Chat for BeamMP
Players hear each other based on real-time vehicle distance — the closer you are, the louder the audio.
[MPVC.exe]──WebSocket──[BeamNG UI]──WebRTC audio──[Other players' BeamNG UI]
│ │
VOICE_Signal VOICE_Signal
│ │
[Lua ext.] [Lua ext.]
└─────[BeamMP Server]──────────┘
(signaling relay)
Component
Role
MPVC.exe (MicBridge)
Captures microphone on demand, serves raw PCM over ws://localhost:7777 — mic only active while Talk is pressed
BeamNG UI mod
Manages WebRTC peer connections, fades volume by distance
BeamNG Lua extension
Calculates vehicle distances every 0.5s, routes signaling events to UI
BeamMP server plugin
Relays WebRTC offer/answer/ICE between players, pushes config on join
MPVC/
├── Resources/
│ ├── Client/
│ │ └── MPVC.zip ← BeamNG client mod (auto-distributed by BeamMP)
│ └── Server/
│ └── MPVC/
│ ├── main.lua ← BeamMP server plugin
│ └── config.json
├── MicBridge/
│ ├── mic_bridge.py
│ ├── requirements.txt
│ ├── build.bat
│ └── icon.png
└── Relay/
├── voice_relay.py ← WebRTC signaling relay (self-host)
├── relay_servers.json
└── bridge.html ← Browser voice bridge page (served alongside the relay)
MicBridge & voice relay
rtacyyv
Component
License
Server plugin & client mod
AGPL-3.0
MicBridge & voice relay
MIT