Cross System Bridge
Let Simple Voice Chat and SocketSVC players on one Paper server hear each other in proximity voice
Without the bridge, a server with both voice mods is two rooms: Simple Voice Chat players hear each other, SocketSVC players hear each other, and neither hears the other. The bridge is a separate Paper plugin that joins the two for proximity voice — a player on either mod hears a player on the other at the right place, with the right distance falloff, under the same rules that already apply to everybody else.
Experimental: this can cause problems on your server
The bridge is new and has not yet been run on a live server. It joins two voice systems that were never designed to work together, so expect rough edges: missing or doubled audio, players heard in the wrong place, or trouble in Simple Voice Chat itself while it is installed. Try it on a test server before your main one.
If something goes wrong, report it on the SocketSVC Discord, not to Simple Voice Chat or any other project. Remove the bridge jar first and check whether the problem goes away; if it does, it is ours to fix, and nobody else's support can help with it.
What it carries, and what it does not
| Bridged | |
|---|---|
| Proximity voice, both directions | Yes |
| Simple Voice Chat whispering | Yes, at a shorter range (see whisper-scale) |
| Voice groups, on either side | No — a player in a group is not bridged, unless it is an open group |
| Soundboard and instrument audio | No |
| Plasmo Voice | Not yet; it is the next phase |
| Fabric, NeoForge and Forge servers | No — the bridge is a Paper plugin, and Simple Voice Chat's server API is Paper-shaped |
| Across backends behind a proxy | No — like proximity voice itself, the bridge works within one server |
A player who runs both mods is never bridged, in either direction. They would otherwise be heard twice by everybody around them. The bridge names them once in the server log so you know why.
Installing
You need Paper (or Purpur or Folia) with SocketSVC and Simple Voice Chat already installed.
-
Put
socketsvc-bridge-paper-<version>.jarinplugins/, next to the SocketSVC jar. Use the same version as SocketSVC. -
To bridge both ways, turn on the microphone tap in SocketSVC's config:
plugins/SocketSVC/config.yml microphone-tap: enabled: true -
Restart the server.
The log says which way the bridge is running:
[SocketSVCBridge] Bridging both ways: Simple Voice Chat <-> SocketSVCWhy the tap switch
Simple Voice Chat → SocketSVC needs nothing but the bridge. SocketSVC → Simple Voice Chat hands SocketSVC players' voices to another plugin, which is exactly what the microphone tap switch exists to keep off until you decide otherwise. With the switch off the bridge still starts, runs one way only, and says so in the log.
If Simple Voice Chat is not installed, the bridge logs a warning and disables itself; it changes nothing about SocketSVC.
Who is heard
Everything that decides who hears whom on SocketSVC's side applies to a bridged player too — the bridge must not become the way around it.
| Rule | Applies to the bridge as |
|---|---|
socketsvc.bridge | Whose voice may cross, for players on either mod. A Simple Voice Chat player holds no SocketSVC session for socketsvc.speak to be checked against, so this node governs them instead |
| Mutes | A player muted in SocketSVC is not bridged — including a Simple Voice Chat player you muted with /ssvc-server mute |
hearing-range and fade-start-distance | How far a Simple Voice Chat talker carries for SocketSVC listeners |
spectator-interaction | Spectators reach non-spectators across the bridge only when this is on |
visible-players-only | Only listeners who can see the talker hear them |
| Voice groups | A SocketSVC player in an isolated group hears nobody across the bridge; one in a normal or isolated group is not heard across it |
These are read from SocketSVC's own config, so /ssvc-server reload changes the bridge too.
Simple Voice Chat players hear bridged SocketSVC players at Simple Voice Chat's own voice distance, positioned on the talker's player like any Simple Voice Chat voice, and under a separate SocketSVC volume slider in Simple Voice Chat's settings.
SocketSVC players find each bridged Simple Voice Chat player as a named speaker at the top of the volume page. The volume they set is kept per player, like any speaker's.
Configuration
max-channels: 16
idle-close-seconds: 10
whisper-scale: 0.5| Key | Default | Meaning |
|---|---|---|
max-channels | 16 | Simple Voice Chat players heard by SocketSVC at the same time, 1–32. Each is one spatial channel, and SocketSVC allows 32 across every plugin — leave room for the others |
idle-close-seconds | 10 | A Simple Voice Chat talker's channel closes after this long without speaking, 1–600 |
whisper-scale | 0.5 | A Simple Voice Chat whisper carries this fraction of hearing-range, above 0 and at most 1 |
An out-of-range value is replaced by its default with a warning in the log. The bridge reads this file at startup; restart it to apply a change.
Limits worth knowing
- One range per talker. Per-world and per-region range overrides and SocketSVC's whisper and shout do not change how far a bridged voice carries.
- The first moment is lost. When a Simple Voice Chat player starts talking after being quiet for
idle-close-seconds, the first tick — one or two 20 ms frames — is dropped while their channel opens. - More talkers than
max-channelsare not heard by SocketSVC players until one of the others falls quiet. The bridge warns in the log, at most once a minute. - Each player should use one voice mod here. A player with both client mods connects with both on a bridge server, is never bridged (see above), and has both mods reacting to the same keys; see Running alongside another voice chat mod. The bridge is server-side: each player installs one voice mod.