Set Up Java and Bedrock Crossplay with Geyser and Floodgate

Want Bedrock players on phones or consoles to join your Java server? This guide shows a direct Paper-based Geyser and Floodgate setup without introducing a separate proxy layer.

Networking
setupmc.com Team

Need a cleaner baseline?

Generate a Compose setup before you keep patching by hand

If you are still refining the server baseline, use the configurator to create a cleaner Docker Compose setup and then return to the guides for the next issue.

Open configurator

Direct crossplay without a proxy

This is the simplest self-hosted crossplay setup if you want Bedrock players on a Java server without introducing a separate proxy layer:

  • a Paper server
  • Geyser installed directly as a plugin
  • Floodgate installed directly as a plugin
  • no separate proxy layer

If you are not on Paper yet, start with Paper vs Vanilla vs Fabric vs Forge.

One important Geyser version note: Bedrock clients update automatically and Geyser tracks the latest supported Java client version. If your Paper server is not on that current Java version yet, install ViaVersion so Bedrock players can still join older Java server versions.

What Geyser and Floodgate actually do

Geyser describes itself as a translator between Bedrock Edition clients and a Java Edition server. That is what enables crossplay.

Floodgate adds a different piece: it allows Xbox Live authenticated Bedrock players to join without needing a paid Java Edition account.

The pair is common because:

  • Geyser handles protocol translation
  • Floodgate handles Bedrock-friendly authentication

Step 1: Start from a Paper server

This is the cleanest base for the direct plugin setup.

If your server is still in early deployment, you can begin with the Hetzner Docker setup guide and then move the server type to Paper in your Compose configuration.

Step 2: Install the plugins

  1. Download the current Geyser plugin build for Paper/Spigot from the official download page.
  2. Place the plugin jar in the server plugins directory.
  3. Restart the server.

Then do the same for Floodgate:

  1. Download the current Floodgate plugin build for Paper/Spigot from the official download page.
  2. Place the plugin jar in the plugins directory.
  3. Restart the server.

Geyser's Paper/Spigot setup guide documents the direct setup flow, and Floodgate's Paper/Spigot setup guide documents the required auth-type change.

Step 3: Switch Geyser authentication to Floodgate

Open /plugins/Geyser-Spigot/config.yml, find the auth-type setting, and change it to floodgate.

Then restart the server again.

That is the required link between the two plugins.

Step 4: Publish the Bedrock port

Geyser documents the Bedrock listener like this:

bedrock:
  address: 0.0.0.0
  port: 19132
  clone-remote-port: false

That port is UDP, not TCP.

Keep clone-remote-port disabled unless your host specifically requires Bedrock to reuse the Java port. Geyser's current setup docs note that enabling it overwrites the Bedrock port with the Java port.

If you run Docker, publish it explicitly:

ports:
  - "25565:25565/tcp"
  - "19132:19132/udp"

If players still cannot connect, fix the network path with the port troubleshooting guide, but remember that the Bedrock side uses UDP 19132 by default.

Also note one current Geyser restriction from the setup docs: other UDP-based features such as voice chat or query cannot share Geyser's UDP port.

Step 5: Validate with a Bedrock connection test

Geyser documents a built-in connection test command:

geyser connectiontest <ip> <port>

Run it from the console and then test with a real Bedrock client.

Important note for console players

Crossplay support on the server side does not automatically mean that every Bedrock console can type in any public server address directly.

That is the practical limitation many admins miss:

  • Bedrock on phones, tablets, and Windows can usually add a custom server directly
  • console editions often do not expose the same free-form server entry in the normal UI

That is why console players sometimes need an additional workaround even though your Geyser setup itself is correct.

The key point is the reason, not the app name:

  • this is a console client limitation
  • Geyser and Floodgate do not remove that limitation on their own
  • the workaround happens on the player side, not on the server

Two common examples are:

  • BedrockConnect, which documents DNS-based and LAN-based join methods for consoles
  • BedrockTogether, a third-party helper project some players use on consoles when they need another client-side workaround path

The exact workaround can vary by console and home network, and it is not a mandatory part of your server setup.

The practical takeaway is simple: if phone and Windows Bedrock clients can join but console players still cannot, the remaining problem is often the console join path, not your Geyser or Floodgate installation.

Limits you should understand

This setup gives you practical direct crossplay, but it does not make Java and Bedrock identical. There will still be gameplay differences and plugin compatibility edge cases.

The point of this guide is to get a robust first setup, not to pretend that every Bedrock behavior perfectly matches Java.

Common mistakes

MistakeResultFix
Installing Geyser but not FloodgateBedrock players still need Java authenticationInstall Floodgate and set auth-type: floodgate
Opening only TCP portsJava may work while Bedrock failsPublish and allow UDP 19132
Running this on the wrong server typePlugin path becomes awkward or unsupportedUse Paper for the direct plugin setup
Treating SRV records as a Bedrock solutionJava DNS polish does not solve Bedrock portsKeep Java and Bedrock join paths conceptually separate

FAQ

Do I need a separate proxy for this setup?

No. This guide is deliberately scoped to the direct Paper plugin path.

Can Java and Bedrock players join the same world?

Yes. That is the point of the translation layer, as long as the server and plugins involved behave acceptably with Geyser.

Next steps

Frequently asked questions

Short answers to the questions that usually come up while working through this topic.