Direct answer

Geyser translates Bedrock connections to Java connections at the proxy. If Bedrock users need to join without owning Java accounts, configure Floodgate on the proxy too; optional backend Floodgate installations support its API and additional skin handling.

Recommended procedure

  1. Install Geyser-Velocity from the official GeyserMC downloads into the proxy plugins directory, then restart to generate its config.
  2. Assign Geyser a reachable UDP Bedrock port (often 19132) that is not already used by a voice/chat/query UDP service.
  3. If using Floodgate, install Floodgate on Velocity and set Geyser auth-type to floodgate. Keep Floodgate key.pem private.

What to change

# Geyser proxy config excerpt
bedrock:
  address: 0.0.0.0
  port: 19132
  clone-remote-port: false
  1. Make sure every backend is configured to accept forwarding securely from Velocity. Open only the required UDP Bedrock listener publicly.
  2. Use the geyser connectiontest command with the proxy public IP and Bedrock port, then test from a Bedrock client outside the host network.

How to verify the result

Confirm Bedrock login, movement across backends, player UUIDs and skin behavior, and verify UDP ingress through the proxy while direct backend exposure remains blocked.

Version and compatibility notes

Geyser’s current official setup requires compatible Java client protocol support on downstream servers. Do not install separate Geyser copies on each backend behind Velocity. Only share Floodgate key.pem with backends that need its API, never publicly.

Official references

Was this article helpful?
Help us improve this article

Tell us what is missing, unclear, outdated, or incorrect. You can also suggest something we should add.

What could we improve?
Do not include passwords, server IPs, or other private information.0 / 1000