VoiceCraft
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

  1. Download plugin .jar.
  2. Put it into plugins/:
    • standalone Paper,
    • or proxy + backend Paper servers.
  3. Start server once to generate plugins/GeyserVoice/config.yml.
  4. Edit config.yml.
  5. Run /voice reload.

config.yml reference

config block:

  • debug — plugin debug mode.
  • lang — plugin message language.
  • hostVoiceCraft.Server host.
  • portVoiceCraft.Server port.
  • 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]
  • disconnect
  • settings
  • bind <key>
  • bindfake <key> <name>
  • updatefake <key>
  • clearautobind
  • reload

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:

  1. Set server-behind-proxy: true on backend Paper.
  2. Do not set backend host/port/key as source of truth.
  3. Keep valid host/port/server-key on 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.Server use a 5-second timeout.

Current code limitations

  • updatefake is currently a placeholder.
  • settings command exists but currently has minimal practical logic.

Production checklist

  1. Restrict /voice connect|reload to staff roles.
  2. Use server-behind-proxy only on real proxy-backed backends.
  3. Ensure stable proxy routing to VoiceCraft.Server.
  4. Configure process supervision (systemd/panel/screen).
Copyright © 2026