SocketSVC
Proximity voice chat for Minecraft, built on WebSockets instead of UDP
SocketSVC is a proximity voice chat project for Minecraft. It consists of a client mod (Fabric/Quilt, NeoForge, Forge) and a server side (a Paper plugin, or a Fabric/Quilt, NeoForge or Forge server mod), plus an optional Velocity/BungeeCord relay proxy plugin, and carries Opus audio over WebSocket / WSS. Players talk to each other in real time based on how close they are in-game. A spatial-audio API also lets other plugins add music, PA-style announcements and named in-world speakers.
Every byte of voice — audio, the live player roster, speaker snapshots, connection status — travels over one persistent WebSocket connection, the same kind of connection your browser already uses for HTTPS.
Download
Pick a build for your Minecraft version, loader and side — client, server or proxy
Install the client
Where the JAR goes, first-run setup and languages
Controls
Talking, muting, deafening and /ssvc commands
Settings
Devices, volume, audio processing, instruments, icons and custom icon packs
Soundboard
Play local sound clips to nearby players
LAN and singleplayer
Host voice from your own game when you open a world to LAN
Compatibility
Flashback, Essential Mod, Mod Menu and known conflicts
Troubleshooting
Auto-reconnect, status diagnostics and common problems
Run a server
Paper plugin or server mod
Why WebSocket instead of UDP
Most Minecraft voice mods speak raw UDP, which means punching a second port through your firewall/router and hoping every proxy, tunnel or hosting panel in the chain happens to forward it correctly. SocketSVC never opens a UDP port at all:
- Just an HTTP(S) upgrade. The voice connection starts as a normal WebSocket handshake, so anything that already proxies HTTP/HTTPS for your server — a reverse proxy, Cloudflare Tunnel, ngrok, a Docker/Pterodactyl panel — carries voice too, with zero extra configuration.
- Real
wss://encryption. Pointpublic-urlat your ownwss://hostname and your existing TLS termination (the same proxy already fronting your server) encrypts voice, exactly like it encrypts HTTPS traffic. - One socket, not several. Audio frames, the player roster, named-speaker snapshots and deafen/status updates are all multiplexed over that single connection — nothing else to open, forward or firewall.
- Ordered delivery still gets a jitter buffer. Frames carry stream/sequence numbers, so out-of-order or briefly missing packets get concealed (up to 60 ms via native PLC) instead of glitching, even though the transport itself is ordered rather than raw UDP.
- Self-healing connections. A 10-second ping/pong keeps the socket honest even during silence, and the client automatically requests a fresh token and reconnects on drop — no
/ssvc reconnectneeded for an ordinary network hiccup. - Protocol capabilities negotiate on connect. Spatial audio, named speakers and deafen-sync are each requested and echoed as upgrade headers, so a newer client talking to an older server (or vice versa) just falls back cleanly instead of breaking.
Voice chat features
- Proximity and positional audio — other players fall off with distance and pan left/right based on your facing direction; headphone users also get front/back cues (see Settings).
- Push-to-talk or automatic voice detection, RNNoise-assisted, with a manual sensitivity threshold and a short deactivation delay so words don't get clipped.
- Noise suppression (RNNoise) bundled directly in the client — no separate native install. Supported platforms can additionally download a stronger Advanced Noise Cancellation model.
- Automatic microphone gain and peak limiting, so quiet and loud speakers stay balanced without manual tuning.
- Adaptive echo cancellation with automatic delay alignment, plus a manual override — reduces the classic "hearing yourself" problem on open mic/speakers.
- Per-player volume (0–200%), master volume, mute and deafen, all persisted in your client settings.
- Live player roster synced from the server, with speaking indicators and nameplate icons.
- Compact settings dialog — General / Advanced / Player volume tabs (and more), device selectors that don't require reconnecting, and a first-run setup flow.
- Automatic reconnect if the connection drops, without needing to leave and rejoin.
- Soundboard — play WAV/MP3/OGG/Opus/FLAC/AIFF clips from a local folder to nearby players, or download audio from a URL.
- Instrument input — play a guitar or keyboard into voice chat on its own stream, from a line-in device, a MIDI instrument or the built-in drum machine, without it interfering with talking. A 16-track looper records what you play and layers over it, and MIDI can be played through your own recordings or a SoundFont rather than the built-in oscillators.
- Custom icon packs — replace the voice status icons with your own images (including animated GIFs, which play on nameplates too) and share them as a zip.
- LAN voice — opening a singleplayer world to LAN starts a built-in voice server so players who join can talk right away.
Push-to-talk, voice activity detection, Opus, RNNoise, gain/limiting, echo processing, distance and stereo positioning, per-player volume, mute/deafen, status icons and fresh-token auto-reconnect are implemented. Audio quality still has to be validated on real devices; synthetic test results are not a guarantee of real-world call quality.
Spatial speakers (addon API)
Beyond player-to-player chat, SocketSVC ships a spatial-audio API that lets other server plugins place independent, positioned audio sources in the world:
- Server-defined speakers with a fixed ID and display name, so a speaker keeps its identity — and players' saved volume for it — across restarts.
- Two audio sources per speaker: forward a player's live microphone to a fixed location, or play back a server-side WAV file.
- Distance falloff and stereo positioning, same model as player voice, with configurable range and fade-start distance per speaker.
- Per-speaker client volume slider, separate from the regular player-volume list, saved locally per server and speaker ID.
- Recipient control — restrict who can hear a given speaker.
- Ships with an optional example plugin (
SocketSVCSpeakerExample) demonstrating block-anchored speakers you can bind to a WAV file or a player's mic with simple commands.
This makes it possible to build things like lobby music, jukeboxes, PA announcements or ambient soundscapes — as separate, self-contained addon plugins — without touching SocketSVC's core. See the Spatial audio API.
Support matrix
Current as of 2026-09-17; versions may change.
| Component | Current setup |
|---|---|
| Client mod | Minecraft 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3; one separate JAR per version × loader |
| Server | Paper/Purpur/Folia plugin, or a Fabric/Quilt, NeoForge or Forge dedicated-server mod for the same Minecraft version |
| Loader | Fabric (the same JAR is marked as supporting Quilt) on all versions; NeoForge on all versions (26.1 and 26.1.1 use beta loaders and are published as beta); Forge on all versions |
| Java | Java 21 for 1.21.11; Java 25 for 26.x |
| Network | The server plugin/mod opens its own WebSocket listener; expose it directly (LAN) or behind a reverse proxy for wss:// on a public server |
| Velocity / BungeeCord networks | One optional relay plugin jar (same file for either proxy) gives a whole proxied network a single public voice port instead of one per backend — see Proxy relay |
| Client languages | English, Simplified/Traditional/Classical Chinese, Japanese, Korean, Russian, German, French and Spanish, following the Minecraft language setting |
Both a client and a server side need to be installed for voice chat to work — any client loader works with the Paper plugin or any server mod. Every Modrinth file's version number ends in @client, @server or @proxy, so it is clear which side it belongs to. Client support for 26.x does not mean the server side has been validated against the same Paper version.
Servers already using SocketSVC
| Server | IP | Minecraft version | Website |
|---|---|---|---|
| 泥土商店 (dirtshop) | dirtshop.xyz | 1.21.11+ | dirtshop.xyz |