Ecosystem
GeyserVoice (Java/Geyser Bridge)
Repository: AvionBlock/GeyserVoice
GeyserVoice (Java/Geyser Bridge)
Repository: AvionBlock/GeyserVoice
GeyserVoice links Java server infrastructure (Paper/Folia + proxy) to VoiceCraft.Server.
Supported plugin platforms
From source code:
- Paper/Folia (
io.greitan.avion.paper.GeyserVoice) - Velocity (
io.greitan.avion.velocity.GeyserVoice) - Bungeecord (
io.greitan.avion.bungeecord.GeyserVoice)
Installation
- Download plugin
.jar. - Put it into
plugins/:- standalone Paper,
- or proxy + backend Paper servers.
- Start server once to generate
plugins/GeyserVoice/config.yml. - Edit
config.yml. - Run
/voice reload.
config.yml reference
config block:
debug— plugin debug mode.lang— plugin message language.host—VoiceCraft.Serverhost.port—VoiceCraft.Serverport.server-key— server auth key used by plugin.auto-reconnect— reconnect when transport is lost.server-behind-proxy— required for Paper behind Velocity/Bungee.
voice block:
proximity-distance— proximity logic distance.proximity-toggle— enable/disable proximity mode.voice-effects— enable/disable voice effects.not-in-voice-symbol/in-voice-symbol— status symbols.send-binded-message— show message on bind.send-disconnect-message— show message on disconnect.send-voip-disconnect-message— show message when VoIP transport closes.send-connection-lost-message— show message when connection is lost.position-task-interval— position update interval in ticks.
players block is internal cache/autobind data.
/voice commands
From BaseVoiceCommand:
connect <host> <port> <key>reconnect [true|false]disconnectsettingsbind <key>bindfake <key> <name>updatefake <key>clearautobindreload
Permissions
From plugin.yml and bungee.yml:
voice.cmd(default: true)voice.connect(op)voice.reconnect(op)voice.disconnect(op)voice.settings(op)voice.bind(true)voice.bindfake(op)voice.reload(op)
Proxy mode (important)
If backend Paper is behind Velocity/Bungee and plugin is present on proxy:
- Set
server-behind-proxy: trueon backend Paper. - Do not set backend
host/port/keyas source of truth. - Keep valid
host/port/server-keyon proxy.
In Paper code, reconnect is intentionally skipped when server-behind-proxy: true.
Integration internals
- Plugin messaging channel:
geyservoice:main. - In proxy mode, dimensions/world IDs are namespaced with backend server name.
- HTTP transport calls to
VoiceCraft.Serveruse a 5-second timeout.
Current code limitations
updatefakeis currently a placeholder.settingscommand exists but currently has minimal practical logic.
Production checklist
- Restrict
/voice connect|reloadto staff roles. - Use
server-behind-proxyonly on real proxy-backed backends. - Ensure stable proxy routing to
VoiceCraft.Server. - Configure process supervision (systemd/panel/screen).