Install Geyser and Floodgate on Paper so Bedrock players can join your Java server. Config, ports, usernames, proxies and troubleshooting.
What Geyser and Floodgate do
Together they let you run one server with all its Java plugins and have both Java and Bedrock friends on it. On MCServerShare, a server set up this way is listed as Java + Bedrock.
- Geyser is a translator. Bedrock players (phones, tablets, Windows 10/11 Bedrock, Xbox, PlayStation and Switch) connect to Geyser, which translates between Bedrock and Java so they can play on your Java server.
- Floodgate lets Bedrock players join with just their own account, without needing a Java Edition account. Without it, every Bedrock player would also have to own Java Edition.
Before you start
- A working Java server on Paper, Purpur or Spigot. If you do not have one, start with our Paper guide.
- A server that Geyser supports. Geyser can require your Java server to accept the newest Java client, so if you run an older Minecraft version, install ViaVersion too.
- A Bedrock device to test with.
Step 1: Install Geyser
In the bedrock section of config.yml, the defaults are normally right for a standard setup:
bedrock:
address: 0.0.0.0
port: 19132
clone-remote-port: false- port is the port Bedrock players connect on. It uses UDP, not TCP.
- address 0.0.0.0 means listen on all network interfaces.
- clone-remote-port: leave false unless your hosting provider only gives you one port and requires Bedrock to use the same number as Java.
- Download Geyser for Spigot/Paper from geysermc.org.
- Stop your server and put the jar in the plugins folder.
- Start the server. Geyser creates plugins/Geyser-Spigot/config.yml.
- Stop the server and open that config.
Step 2: Install Floodgate
- Download Floodgate for Spigot/Paper from geysermc.org.
- Stop the server and put the jar in the plugins folder, next to Geyser.
- Start the server so Floodgate creates its folder and key.
- In plugins/Geyser-Spigot/config.yml, set auth-type to floodgate. In the remote section this is the line that tells Geyser to use Floodgate for sign-in.
- Restart the server.
remote:
address: auto
port: 25565
auth-type: floodgateFloodgate generates a key file called key.pem. Treat it like a password. Floodgate's own documentation warns that this key lets Bedrock accounts bypass Java authentication, so never post it, share it or commit it to a public repository.
Step 3: Open the ports
Java and Bedrock use different protocols and different ports, so you need both open for a cross-play server:
- Java: TCP 25565 (or whatever server-port is).
- Bedrock through Geyser: UDP 19132 (or the port set in Geyser's config).
Step 4: Test the connection
- On the Bedrock device, go to Play > Servers > Add Server, enter your server address and the Bedrock port (19132) and join.
- If you cannot connect, run the connection test from the server console to check whether the port is reachable from outside.
Server console
geyser connectiontest your.server.address 19132Xbox, PlayStation and Switch have no Add Server button. Console players can join a friend who is already on the server, or you can use a third-party tool at your own risk. Be careful with websites that ask for your account details.
Bedrock usernames and permissions
- Floodgate gives Bedrock players a prefix in front of their gamertag (a dot by default) so a Bedrock player cannot impersonate a Java player with the same name. Remember the prefix when you set up permissions and ranks.
- Bedrock players have no Java UUID, so Floodgate provides its own whitelist command for them. Use that rather than the normal whitelist for Bedrock accounts.
- Plugins that rely on Java-only features may not show their interfaces to Bedrock players. Floodgate offers a way for plugins to show Bedrock-native forms; check the plugins' pages.
If you use a proxy
With a proxy such as Velocity or BungeeCord you can run Geyser on the proxy instead of on each server. Then Floodgate needs to share its key with the proxy and the backend servers:
- Install Floodgate on the proxy and on each backend server.
- Enable IP forwarding on the proxy (player information forwarding on Velocity, ip_forward on BungeeCord).
- Set send-floodgate-data to true in the proxy's Floodgate config.
- Copy key.pem from the proxy's Floodgate folder to every backend server's Floodgate folder and, if Geyser runs standalone, to Geyser's folder as well.
When Geyser and Floodgate both run on the same single server, they find each other's key automatically. You only copy the key when they run in different places.
What does not work the same
- Java-only mods and client-side tweaks do not apply to Bedrock players.
- Some inventory screens, custom items and resource packs look or work differently on Bedrock.
- Combat, redstone quirks and some game mechanics differ between editions.
- Test your important features, such as shops and menus, with a real Bedrock device before announcing cross-play.
Troubleshooting
- "Unable to connect to world": the UDP port is not open, the wrong port was entered, or Geyser failed to start. Check the console.
- "Outdated" messages: the Bedrock client updated and Geyser has not caught up yet, or the server needs ViaVersion. Update Geyser and ViaVersion.
- Bedrock players are kicked with an authentication error: Floodgate's key does not match. Make sure the same key.pem is used everywhere and nothing was regenerated.
- The server shows offline on MCServerShare: list the Java address and port for the Java side, and add the Bedrock address and port in the Bedrock fields.
Frequently asked questions
What is Geyser?
Geyser translates between Bedrock and Java so Bedrock players on phones, consoles and Windows can join a Java server.
What is Floodgate?
Floodgate lets Bedrock players join with only their own account, so they do not need to own Java Edition.
What port does Geyser use?
UDP 19132 by default, set in Geyser's config.yml. Java players still use TCP 25565, so open both.
Can console players join a Geyser server?
Consoles cannot add a custom server address directly. They can join a friend who is already on the server.
Why do Bedrock players have a dot in front of their name?
Floodgate adds a prefix to Bedrock usernames so they cannot impersonate Java players with the same name. The default prefix is a dot.