Bedrock Simple Voice
Kapitel auswählen

Dokumentation

Bedrock Simple Voice einrichten.

Im Standardbetrieb stellt Byterider die öffentliche Voice-Seite bereit: keine App, kein zusätzlicher BSV-Port und kein eigenes Zertifikat. Wer eine eigene Domain verwenden möchte, kann stattdessen den im Plugin eingebauten Webserver veröffentlichen.

Aktuelle Beta: Modrinth ist der offizielle Download-Ort. Die Projektseite wird erst nach der Prüfung durch Modrinth öffentlich. Zunächst erscheint nur die gemeinsame Bukkit-JAR für Paper, Purpur, Spigot und Folia; Fabric und Velocity folgen später.

Vorbereitung

Was du vor der Installation benötigst

Java 21

Der Gameserver muss mit Java 21 laufen. Prüfe die Java-Version im Serverpanel oder mit java -version.

Gameserver

Die aktuelle Beta ist für Paper, Purpur, Spigot und Folia verfügbar. Fabric und Velocity folgen in einer späteren Version.

Pflicht-Abhängigkeiten

Installiere Geyser und die zu deiner Plattform passende Serverversion von Simple Voice Chat. Floodgate wird für eine zuverlässige Bedrock-Erkennung empfohlen.

Internetverbindung

Im normalen Relay-Modus benötigt der Gameserver nur ausgehende HTTPS- und WebSocket-Verbindungen. Du brauchst keinen zusätzlichen eingehenden Port.

Dateien verstehen

Welche JAR gehört auf welchen Server?

Bukkit-JAR

BedrockSimpleVoice-Bukkit-<Version>.jar ist für Paper, Purpur, Spigot und Folia und gehört in plugins.

Fabric-JAR

Folgt nach der ersten Bukkit-Beta und ist aktuell noch nicht als öffentlicher Download verfügbar.

Velocity-JAR

Folgt später als optionales Begleitplugin für Netzwerke mit mehreren Backend-Servern.

Relay-JAR

Nur für Betreiber eines eigenen Relay-Dienstes. Normale Gameserver verwenden das öffentliche Byterider-Relay und benötigen diese Datei nicht.

Schritt für Schritt

Installation auf Paper, Purpur, Spigot oder Folia

  1. Stoppe den Gameserver vollständig, bevor du Plugin-Dateien austauschst.
  2. Lade nach der Freigabe durch Modrinth die aktuelle BedrockSimpleVoice-Bukkit-JAR von der offiziellen Modrinth-Projektseite herunter.
  3. Lade außerdem die Bukkit-Versionen von Simple Voice Chat und Geyser. Installiere optional Floodgate.
  4. Lege alle JAR-Dateien in den Ordner plugins. Entpacke die JAR-Dateien nicht.
  5. Starte den Server und warte, bis er vollständig hochgefahren ist. Bedrock Simple Voice erstellt dabei plugins/BedrockSimpleVoice/config.yml und messages.yml.
  6. Öffne config.yml. Für den normalen Betrieb musst du nur Servername, Sprache und bei Bedarf den Nachrichten-Prefix ändern.
  7. Starte den Server neu oder führe nach Änderungen /bsv reload aus.
  8. Führe in Minecraft /voice diagnose aus. Relay, Pairing und Simple Voice Chat sollten als verfügbar angezeigt werden.
  9. Führe /voice aus und scanne den QR-Code mit deinem Handy. Alternativ öffnest du voice.byterider.xyz und gibst den einmaligen Zahlencode ein.
  10. Erlaube im Browser den Mikrofonzugriff oder wähle „Nur zum Zuhören“. Eine gespeicherte Gerätesitzung verbindet sich beim nächsten Besuch automatisch wieder.

Java-Spieler mit installiertem Simple-Voice-Chat-Mod verwenden weiterhin das normale Ingame-Menü. Bedrock-Spieler und Java-Spieler ohne Client-Mod können den Browser verwenden.

Downloads

Offizielle Beta auf Modrinth

Modrinth ist der offizielle Download-Ort für Bedrock Simple Voice. Solange die Projektprüfung läuft, kann die Seite für Besucher noch nicht erreichbar sein. Nach der Freigabe wird dort zunächst die Bukkit-JAR für Paper, Purpur, Spigot und Folia angeboten. Fabric und das optionale Velocity-Begleitplugin folgen später.

Beta-Hinweis: Paper, Purpur, Spigot und Folia verwenden dieselbe Bukkit-JAR. Für Fabric und Velocity steht derzeit noch kein öffentlicher Download bereit.

Velocity-Netzwerk

Installation auf einem Proxy mit mehreren Servern

Vorschau: Das Velocity-Begleitplugin folgt in einer späteren Beta. Dieser Abschnitt dokumentiert die geplante Einrichtung bereits vorab.

Die Velocity-JAR verbindet mehrere Backend-Server zu einem gemeinsamen Bedrock-Simple-Voice-Netzwerk. Sie sorgt dafür, dass eine bereits angemeldete Browser-Sitzung beim Serverwechsel sicher an das nächste Backend übergeben wird. Sprachpakete laufen dabei nicht durch Velocity: Jedes Backend bleibt selbst mit dem Relay und Simple Voice Chat verbunden.

Velocity Proxy
├── lobby      → Paper + Bedrock Simple Voice + Simple Voice Chat
├── survival   → Purpur + Bedrock Simple Voice + Simple Voice Chat
└── event      → Folia + Bedrock Simple Voice + Simple Voice Chat

Die automatische Übergabe wird derzeit für Bukkit-Backends unterstützt: Paper, Purpur, Spigot und Folia. Fabric kann Bedrock Simple Voice einzeln verwenden, ist in dieser Version aber kein automatisches Velocity-Handoff-Ziel. Für BungeeCord oder Waterfall gibt es derzeit kein Begleitplugin.

Proxy vorbereiten

1. Velocity-JAR installieren und Secret erzeugen

  1. Stoppe Velocity und alle Backend-Server vollständig.
  2. Lege BedrockSimpleVoice-Velocity-<Version>.jar ausschließlich in den Ordner plugins deines Velocity-Proxys.
  3. Starte Velocity einmal. Das Plugin erstellt plugins/bedrocksimplevoice/config.yml mit einem zufälligen, mindestens 256 Bit starken Secret.
  4. Stoppe Velocity wieder und öffne die erzeugte Konfiguration. Veröffentliche das Secret niemals und sende es nicht im Minecraft-Chat oder in Support-Screenshots.
  5. Ändere bei Bedarf network.id zu einem kurzen Namen für dein Netzwerk. Erlaubt sind Buchstaben, Zahlen, Punkt, Unterstrich und Bindestrich.
network:
  id: "mein-netzwerk"
  secret: "automatisch-erzeugtes-geheimes-secret"
  handoff-timeout-seconds: 10
  backend-freshness-seconds: 45

relay:
  public-url: "https://voice.byterider.xyz"

handoff-timeout-seconds darf zwischen 3 und 30 Sekunden liegen. backend-freshness-seconds bestimmt, wie lange ein Backend ohne neue Bereitschaftsmeldung als erreichbar gilt. Die Standardwerte 10 und 45 sind für normale Netzwerke geeignet.

Backends vorbereiten

2. Plugin auf jedem Gameserver installieren

  1. Installiere auf jedem Backend die gleiche Version der BedrockSimpleVoice-Bukkit-JAR.
  2. Installiere auf jedem Backend außerdem die passende Serverversion von Simple Voice Chat. Die Velocity-JAR ersetzt Simple Voice Chat nicht.
  3. Starte jedes Backend einmal, damit plugins/BedrockSimpleVoice/config.yml erzeugt wird.
  4. Aktiviere dort den Bereich network. Kopiere die Proxy-Werte network.id und network.secret als network-id und shared-secret.
  5. Vergib auf jedem Backend eine eindeutige backend-id. Am übersichtlichsten ist derselbe Name wie in der Serverliste von Velocity, beispielsweise lobby oder survival.
  6. Lasse die normale server.relay-Konfiguration auf jedem Backend unverändert. Jedes Backend verbindet sich selbstständig ausgehend mit dem Byterider-Relay.

Beispiel für das Lobby-Backend:

network:
  enabled: true
  proxy: "velocity"
  network-id: "mein-netzwerk"
  backend-id: "lobby"
  shared-secret: "dasselbe-secret-wie-auf-velocity"
  handoff-timeout-seconds: 10

Beispiel für das Survival-Backend:

network:
  enabled: true
  proxy: "velocity"
  network-id: "mein-netzwerk"
  backend-id: "survival"
  shared-secret: "dasselbe-secret-wie-auf-velocity"
  handoff-timeout-seconds: 10

Die network-id und das shared-secret müssen auf Proxy und allen Backends übereinstimmen. Die backend-id muss dagegen pro Backend eindeutig sein. Verwende niemals das Secret eines anderen Netzwerks.

Spieleridentität

3. Velocity, Geyser und Floodgate richtig verbinden

Velocity und alle Backends müssen für denselben Spieler dieselbe UUID verwenden. Richte deshalb die normale sichere Spielerweiterleitung von Velocity ein und konfiguriere Geyser beziehungsweise Floodgate nach deren Proxy-Dokumentation. Bedrock Simple Voice ersetzt diese Identitätsweiterleitung nicht.

Gleiche UUID

Velocity und Backend müssen denselben Minecraft-Spieler erkennen. Unterschiedliche UUIDs verhindern die sichere Übergabe der Browsersitzung.

Keine neuen Voice-Ports

Für den Managed-Relay-Modus öffnest du keinen zusätzlichen BSV-Port. Die normalen UDP-Anforderungen von Simple Voice Chat bleiben davon getrennt bestehen.

Secret geheim halten

Das Netzwerk-Secret signiert Übergaben mit HMAC. Es gehört nur in die Konfiguration von Velocity und den zugehörigen Backends.

Gleiche Plugin-Version

Verwende auf Proxy und Backends möglichst dieselbe Bedrock-Simple-Voice-Version, damit neue Handoff-Funktionen überall verfügbar sind.

Start und Prüfung

4. Netzwerk starten und Übergabe testen

  1. Starte zuerst alle Backend-Server und danach Velocity.
  2. Prüfe auf jedem Backend mit /voice diagnose, ob Simple Voice Chat, Relay, Pairing und Netzwerkkonfiguration verfügbar sind.
  3. Führe in der Velocity-Konsole /bsvnetwork aus. Für die Ausführung als Spieler ist die Berechtigung bedrocksimplevoice.network.admin erforderlich.
  4. Der Befehl sollte alle Backend-IDs als aktuell und bereit anzeigen. Secrets und Übergabe-Tokens werden dabei niemals ausgegeben.
  5. Verbinde einen Testspieler über /voice im Lobby-Server mit dem Browser und wechsle danach auf das Survival-Backend.
  6. Die Browser-Verbindung öffnet das Ziel parallel. Das alte Backend bleibt verbunden, bis das Ziel die Anmeldung bestätigt; ein neuer Pairing-Code sollte nicht nötig sein.

Proxy-Fehler beheben

Wenn der automatische Serverwechsel nicht funktioniert

Backend fehlt in /bsvnetwork

Prüfe network.enabled, Netzwerk-ID, Secret und eindeutige Backend-ID. Mindestens ein Spieler muss Plugin-Nachrichten zwischen Proxy und Backend transportieren können.

Signatur oder Handoff ungültig

Meist unterscheiden sich die Secrets oder Netzwerk-IDs. Kopiere sie erneut direkt aus der Velocity-Konfiguration und starte Proxy sowie Backends neu.

Ziel ist nicht bereit

Prüfe, ob das Ziel-Backend läuft, mit dem Relay verbunden ist und innerhalb der letzten 45 Sekunden eine Bereitschaftsmeldung gesendet hat.

Erster Wechsel auf leeren Server

Minecraft-Plugin-Nachrichten benötigen einen verbundenen Spieler als Träger. Bei einem vollständig leeren, noch nie gemeldeten Backend kann beim ersten Wechsel einmalig /voice nötig sein.

Spieler wird neu erkannt

Kontrolliere die sichere Velocity-Spielerweiterleitung und die Geyser-/Floodgate-Einrichtung. Die Spieler-UUID muss auf Proxy und Backend identisch sein.

Secret wurde veröffentlicht

Stoppe das Netzwerk, erzeuge ein neues zufälliges Secret, ersetze es auf Velocity und jedem Backend und starte anschließend alles neu.

Betriebsarten

Zentral verbinden oder die Webseite selbst hosten

Bedrock Simple Voice

Empfohlen für normale Gameserver. Es werden keine eigene Domain, kein Zertifikat und kein zusätzlicher eingehender Port benötigt.

server:
  connection-mode: "relay"
  relay:
    url: "wss://voice.byterider.xyz/relay/server"
    public-url: "https://voice.byterider.xyz"

Eingebauter Webserver

Die klassische Variante für Betreiber mit eigener Domain und HTTPS-Reverse-Proxy. Webseite und WebSocket laufen direkt im Plugin.

server:
  connection-mode: "direct"
  bind-address: "127.0.0.1"
  port: 8080
  public-url: "https://voice.example.com"
  context-path: "/"

Für normale Gameserver ist das öffentliche Byterider-Relay die empfohlene Einstellung. Der eingebaute Webserver ist die unterstützte Alternative für Betreiber, die Webseite und Domain selbst kontrollieren möchten.

Updates der zentralen Webseite erzwingen kein sofortiges Plugin-Update. Das Relay hält die Voice-Verbindung über eine stabile Protokollversion kompatibel; neue serverseitige Funktionen werden nur angezeigt, wenn das installierte Plugin sie unterstützt.

Webclient

Aktuelle Voice-Funktionen

Spielerlautstärken

Online-Spieler suchen, einzeln lauter oder leiser stellen, stummschalten und alle Werte zurücksetzen.

Audioausgabe

Gesamtlautstärke, alles stummschalten und Lautsprechertest direkt im Browser.

Sprecher und Gruppen

Nur tatsächlich hörbare Sprecher werden eingeblendet. In Gruppen erscheinen Gruppenname, Mitglieder und aktive Sprecher.

Mikrofonassistent

Raumgeräusche, normale Stimme und leises Sprechen werden gemessen. Ein Handy-Profil schützt leise Wortanfänge.

Mobilgeräte

PWA, Wake Lock, Media Session und automatische Wiederherstellung verbessern die Rückkehr aus dem Hintergrund.

Statusseite

Dienstzustand und anonyme Managed-Relay-Zahlen stehen unter /status/, nicht in der aktiven Voice-Ansicht.

Freiwillige Meldungen

Self-Hosted-Zahlen sind Opt-in

Eigene Relays und Direct-Mode-Installationen sind für das Byterider-Relay nicht automatisch sichtbar. Betreiber können anonyme Ökosystem-Zahlen freiwillig aktivieren; die Funktion ist standardmäßig ausgeschaltet.

status-reporting:
  enabled: false
  endpoint: "https://voice.byterider.xyz/api/ecosystem/heartbeat"
  interval-seconds: 60

Gemeldet werden nur eine lokale Zufalls-ID, Produktversion, Plattformkategorie, Relay-Modus, aktive Server sowie aggregierte Bedrock- und Java-Voice-Nutzer, Zeitstempel und Nonce. Nicht übertragen werden Servername, Domain oder IP als Nutzdaten, Servericon, Spielername oder UUID, Chat, Audio, Gruppen, Pairing-Codes oder Session-Tokens.

Zum Deaktivieren enabled: false setzen und neu starten. Zum Zurücksetzen der lokalen Reporting-ID und des Tokens den Server stoppen und status-reporting.json im Plugin-Datenordner löschen.

Klassisches Self-Hosting

Den eingebauten Webserver veröffentlichen

Setze server.connection-mode auf direct. Wenn Nginx auf demselben System läuft, sollte das Plugin nur an 127.0.0.1 gebunden werden. Nginx übernimmt anschließend HTTPS und WebSocket-Upgrades.

server {
    listen 443 ssl;
    server_name voice.example.com;

    ssl_certificate /etc/letsencrypt/live/voice.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/voice.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 3600s;
        proxy_buffering off;
    }
}

Diese Variante benötigt eine eigene Domain, ein gültiges SSL-Zertifikat und einen Web-Port, den der Reverse Proxy erreichen kann. Auf klassischen Gameserver-Panels ist deshalb meist Bedrock Simple Voice einfacher.

Spieler

Wichtige Befehle

BefehlFunktion
/voiceVoice-Menü öffnen
/voice pairNeuen Verbindungscode erzeugen
/voice sessionsGespeicherte Geräte anzeigen
/voice revoke <id>Ein Gerät abmelden
/voice revoke-allAlle gespeicherten Geräte abmelden
/voice groupsVoice-Gruppe verwalten
/voice diagnoseVerbindungsdiagnose anzeigen

Webchat

Serverchat als eigene Ansicht

Wenn Webchat auf dem Server aktiviert ist, erscheint nach dem Verbinden ein eigener Reiter Chat. Dort stehen öffentliche Nachrichten von Java- und Bedrock-Spielern links und die eigenen Browsernachrichten rechts – jeweils mit Spielername und Uhrzeit.

Neue Nachrichten werden am Reiter gezählt. Beim Wechsel zwischen Voice, Spielern, Gruppe, Chat und Einstellungen bleiben Mikrofon, Audio und Voice-Verbindung unverändert aktiv. Der Browser zeigt höchstens die letzten 200 Nachrichten der aktuellen Seitensitzung; Bedrock Simple Voice speichert keinen Chatverlauf.

Anpassung

Servername, Prefix und Nachrichten

Servername und Chat-Prefix stehen in der normalen Konfiguration. Minecraft-, Geyser- und Browsertexte können in messages.yml angepasst werden. Platzhalter wie {0} müssen erhalten bleiben. Änderungen werden mit /bsv reload übernommen.

server:
  name: "Mein Minecraft Server"
  prefix: "&7[&bVoice&7] &r"
  language: "de_DE"

Die mit dem Plugin ausgelieferte config.yml ist auf Englisch, damit sie international verständlich bleibt. Für deutschsprachige Server steht dieselbe Vorlage vollständig auf Deutsch bereit.

Vor dem Ersetzen einer vorhandenen Konfiguration immer eine Sicherung erstellen. Bereits eingetragene Servernamen, URLs, Passwörter und Velocity-Geheimnisse müssen in die neue Datei übernommen werden.

Eine gültige Datei server-icon.png im Serververzeichnis wird nach der Verbindung auf der Voice-Seite angezeigt.

Der QR-Code im Bedrock-Formular wird mit der Kamera eines zweiten Geräts gescannt. Minecraft Bedrock kann aus diesem Formular heraus keine externe Browserseite öffnen.

Aktualisierungen

So funktioniert der Update-Checker

Der Update-Checker gehört zu Bedrock Simple Voice und prüft ausschließlich offizielle Veröffentlichungen von Pietriss. Solange das Modrinth-Projekt geprüft wird, liest er den öffentlichen Versions-Endpunkt von Byterider und verwendet bereits die endgültige Modrinth-Download-Adresse. Der ursprüngliche SimpleVoice-Geyser-Release-Feed wird nicht verwendet.

Sobald das Modrinth-Projekt öffentlich ist, kann der Checker direkt auf kompatible Modrinth-Versionen für Plattform und Minecraft-Version wechseln. Installierte Serverkonfigurationen müssen dafür nicht geändert werden.

updatechecker:
  enable: false

Die Prüfung ist standardmäßig deaktiviert. Mit enable: true wird sie beim Serverstart aktiviert. Sie lädt keine JAR automatisch herunter und installiert niemals selbstständig ein Update.

Fehler finden

Wenn die Verbindung nicht sofort funktioniert

/voice fehlt

Prüfe, ob die richtige Bukkit- oder Fabric-JAR verwendet wurde und ob Bedrock Simple Voice beim Start ohne Fehler geladen wurde.

Simple Voice Chat fehlt

Installiere die Serverversion von Simple Voice Chat. Das Plugin stellt die Voice-Chat-Engine bereit und ist zwingend erforderlich.

Relay ist getrennt

Der Gameserver muss ausgehende Verbindungen zu voice.byterider.xyz über HTTPS und sichere WebSockets erlauben.

Code ist ungültig

Erzeuge mit /voice einen neuen Code. Codes sind einmalig, an den Server gebunden und nur 120 Sekunden gültig.

Mikrofon fehlt

Erlaube den Mikrofonzugriff in den Browser- oder Website-Einstellungen. Öffentliche Mikrofonseiten benötigen HTTPS.

Weitere Diagnose

Nutze /voice diagnose. Aktiviere debug: true nur kurzzeitig und schalte es danach wieder aus.

Sicherheit

Was bei der Verbindung wichtig ist

Keine Audioaufzeichnung

Sprachpakete werden nur weitergeleitet und nicht als Aufnahme gespeichert.

Kurzlebige PINs

Verbindungscodes sind einmalig, einem Gameserver zugeordnet und nur kurze Zeit gültig.

Gespeicherte Geräte

Browser-Sitzungen lassen sich jederzeit über Minecraft anzeigen und widerrufen.

HTTPS erforderlich

Browser erlauben Mikrofonzugriff außerhalb von localhost nur über eine sichere HTTPS-Seite.