LAN and singleplayer
Hosting voice chat from your own game when you open a world to LAN — no server plugin required
The SocketSVC client can host voice chat by itself. When you open a singleplayer world to LAN, your game starts a small built-in voice server for that session, and everyone who joins with the SocketSVC client can talk. Nobody has to run a Paper plugin or a server mod.
Plain singleplayer has no voice
Nothing starts while you are playing alone. The built-in voice server only starts at the moment the world is actually published to LAN — there is nobody to talk to before that.
What happens when you open to LAN
You publish the world
Open the pause menu and use Open to LAN as usual. Essential Mod's world hosting runs the same integrated server and is expected to work the same way, though that path has not been separately verified in the code.
The voice server starts
The client starts a WebSocket voice listener bound to all network interfaces on an operating-system-assigned (ephemeral) port. It is deliberately not the same port as the game's own LAN port, it is different every session, and it is not part of Minecraft's LAN discovery broadcast — nothing needs to know it in advance.
Everyone in the world gets a handshake
Each player is sent a ws://<address>:<port> URL plus a one-time token on the socketsvc:handshake channel — the same handshake format the Paper plugin uses, so the client side needs no special handling. Players who were already in the world when you opened it to LAN are handshaken too, not just people who join afterwards.
The address each player receives is the local address their own Minecraft connection arrived on, so tunnels and virtual network adapters (for example Essential Mod's) work without any extra configuration. Your own connection is an in-memory pipe with no real socket address, so the host always gets 127.0.0.1.
Clients connect and voice works
Each token is a random one-time value that expires after 30 seconds and is consumed when the client opens the voice WebSocket. A connection with a missing, reused or expired token is rejected.
What guests need
| Required? | |
|---|---|
| The SocketSVC client mod | Yes — for their Minecraft version, matching the loader they play on |
| The same loader as the host | No. Host and guests can mix Fabric/Quilt, NeoForge and Forge freely |
| Fabric API | Only for guests on Fabric/Quilt, as always |
| Any server plugin or server mod | No — that is the whole point of LAN hosting |
See Installation for picking the right JAR. Players without SocketSVC can still join and play the world normally; they simply are not part of voice chat.
Proximity voice
LAN voice is proximity voice, the same as on a real server: players are heard by distance, fade out towards the edge of the range, and are only heard by people in the same dimension. The relay is the very same one the Paper plugin and the server mods run.
The host's settings decide for everyone in the world, just as a dedicated server's config does — guests' own settings are not consulted. Change them under Advanced → LAN hosting; a change is applied to a running LAN session immediately, no reopening needed.
| Setting | Default | Effect |
|---|---|---|
| Proximity voice | On | Off brings back the original "party line": everyone hears everyone at full volume, wherever they are |
| Hearing range | 48 blocks | Where a voice falls silent |
| Fade start distance | 0 blocks | Where it starts fading; 0 fades across the whole range |
Whisper and shout work on LAN too, for anyone who has bound their keys: a whisper carries a sixth of the hearing range and a shout twice it, so they scale with whatever range you pick.
Changed in this version
LAN voice used to be a party line where everyone heard everyone at full volume. It is proximity voice now. If you preferred the old way, switch off Proximity voice under Advanced → LAN hosting.
How LAN voice differs from a real server
| Paper plugin / server mod | Built-in LAN server | |
|---|---|---|
| Distance-based volume | Yes, with configurable range and fade | Yes — set by the host, see Proximity voice |
| Different worlds/dimensions separated | Yes | Yes (not in party-line mode) |
| Whisper and shout | If the server enables them | Yes, always |
| Spectators heard only by spectators | By default, configurable | Yes |
visible-players-only, per-world ranges, regions | Yes | No |
| Voice groups | If the server enables them | No |
Permission nodes (socketsvc.speak, …) | Yes, see Permissions | No — every connected player may speak, listen and use the soundboard |
| Soundboard | Yes, if enabled | Yes, always enabled |
| Connected-player list and per-player volume | Yes | Yes |
| Spatial audio API and speakers | Yes | No — the integrated server has no plugin support |
Admin commands (/ssvc-server …) and a config file | Yes | No |
| Encryption | wss:// via a reverse proxy | Plain ws:// only |
Trust your network
LAN voice is unencrypted ws:// and the listener is bound to every interface. Treat it like the LAN world itself: fine on a home or LAN-party network, not something to expose to the open internet.
When people leave, and when you close the world
- A guest quits: their voice connection is closed and any unused token of theirs is revoked, once the server's player list confirms they are really gone.
- You close the world or stop the server: the voice server shuts down, all pending tokens are discarded and every voice connection closes. Guests lose the Minecraft connection at the same moment anyway.
- You open to LAN again: a fresh voice server starts, on a new port, with new tokens. Any previous one is stopped first.
Turning it off
Switch off Host voice chat on LAN under Advanced → LAN hosting. It is read at the moment you open a world to LAN, so it applies from the next time you do.
The same settings are stored in the client config file, config/socketsvc.json in your game directory:
| Field | Default | Effect |
|---|---|---|
lanVoiceHosting | true | When false, opening a world to LAN does not start the built-in voice server |
lanProximityVoice | true | When false, everyone hears everyone at full volume (the original party line) |
lanHearingRange | 48 | Blocks at which a voice falls silent, 8–256 |
lanFadeStartDistance | 0 | Blocks at which it starts fading; must be below the hearing range |
Edit the file with the game closed: the client rewrites socketsvc.json whenever a settings screen is closed, which would overwrite your change. See Config file for the rest of that file.
Checking that it worked
The client log (logs/latest.log) records the whole sequence, which is the quickest way to confirm what happened:
World opened to LAN; SocketSVC LAN voice hosting starting
LAN voice: proximity, heard up to 48 blocks, fading from 0
LAN voice server listening on port 54321
Sending LAN voice handshake to Steve -> ws://192.168.1.20:54321If hosting is switched off you get ... LAN voice hosting disabled (lanVoiceHosting=false) instead. Turn on Advanced → Diagnostics → Verbose logging for the full connection trace, and see Troubleshooting for /ssvc status and the usual audio problems.