Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
SocketSVC
Proximity voice chat for Minecraft, built on WebSockets instead of UDP — with a spatial speaker system for addons.
SocketSVC is a client mod for Fabric, Quilt, NeoForge and Forge paired with a Paper plugin or a Fabric/Quilt/NeoForge/Forge server mod that lets players talk to each other in real time based on how close they are in-game. 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. It also exposes a spatial-audio API that other plugins can use to add music, PA-style announcements, and named in-world speakers.
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
- Proximity & positional audio — hear other players fall off with distance and pan left/right based on your facing direction.
- 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.
- 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, 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.
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 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.
Requirements
| Component | Requirement |
|---|---|
| Client | Fabric/Quilt (with Fabric API), NeoForge or Forge mod — Minecraft 1.21.11 and 26.1–26.3; pick the file matching your exact game version and loader |
| Server | Paper/Purpur/Folia plugin, or a Fabric/Quilt/NeoForge/Forge dedicated-server mod for the same Minecraft version |
| 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 the repo's docs/proxy.md |
| Java | Java 21 for Minecraft 1.21.11, Java 25 for 26.x |
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 file's version number ends in @client, @server or @proxy, so it is clear which side it belongs to.
Installation
- Paper/Purpur/Folia: drop the
-paper@serverJAR intoplugins/and restart; it generatesplugins/SocketSVC/config.yml. Fabric/Quilt/NeoForge/Forge dedicated servers: drop the matching@serverJAR intomods/(Fabric also needs Fabric API); it generatesconfig/socketsvc-server.ymlwith the same settings. Defaults listen on port 24455, LAN-visible. - Install the
@clientfile for your exact Minecraft version and loader. - Join the server — the client automatically requests a one-time connection token and connects to voice; no manual setup is required for the basic flow, though a first-run dialog lets you choose push-to-talk vs. automatic detection and your input/output devices.
- For a public server behind TLS, set
public-urlin the config to yourwss://hostname (e.g. behind a Cloudflare Tunnel or another reverse proxy) instead of exposing the raw port directly.
Server configuration highlights
hearing-range/fade-start-distance— how far voice carries and where it starts fading out.spectator-interaction— whether spectators can be heard by non-spectators.bind-address/port/public-url— network binding and the URL clients connect to./ssvc-server reloadapplies routing and network changes live, restarting only the voice listener without kicking players off the Minecraft server itself./ssvc-server statusreports the current public URL, connected voice clients, and routing settings.
Permission socketsvc.admin (default: op) gates the admin command, and socketsvc.speak / socketsvc.listen / socketsvc.soundboard (default: everyone) can be revoked per player — through your permissions plugin on Paper, fabric-permissions-api (e.g. LuckPerms) on Fabric/Quilt, or the PermissionAPI on NeoForge/Forge; addon plugins built on the speaker API can define their own permissions for their own commands.
Servers already using SocketSVC
| Server | URL | Discord |
|---|---|---|
| 泥土商店 (dirtshop) | dirtshop.xyz | Click Me |


