setupmc.com

Set up Geyser and Floodgate on Paper

Let Bedrock players join a Java server: install the plugins, configure NetherNet, and test the connection.

Networking
setupmc.com Team

NetherNet is now required: Bedrock 26.60 was released on 27 October 2026. According to Geyser, clients from 26.60 onward no longer connect over RakNet. Update Geyser and use transport: nethernet; switching back to RakNet does not fix current clients.

For iPhone/iPad issues and certificates, use the HTTPS guide for iOS and iPadOS.

Direct crossplay without a proxy

This guide uses the following components on one server:

  • 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.

Check compatibility before updating

Use the official compatibility page to check which Bedrock versions your Geyser supports and which Java client it emulates. Your Java server must accept that client version.

Bedrock clients often update automatically. If Paper does not accept Geyser's emulated client, check the documented use of ViaVersion for your particular server version. ViaVersion does not add missing Bedrock support to Geyser.

What Geyser and Floodgate do

Geyser translates between Bedrock clients and the Java server. Floodgate lets Xbox Live authenticated Bedrock players join without an additional Java Edition account.

Step 1: Start from a Paper server

For the current Geyser-Spigot plugin path, Geyser requires at least Minecraft Java Edition server 1.20.5 and Java 21. Newer Paper releases can require a newer Java runtime; check the Java compatibility guide before changing the image or host runtime.

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.

Step 4: Publish the Bedrock port

Hosting on your PC or NAS? Find your public IP without renting a server explains checking from the home network and comparing the router WAN address. Do not advertise a local PC address as your public endpoint.

For current Bedrock clients, configure NetherNet. Replace YOUR_PUBLIC_IP with your reachable public IP:

bedrock:
  address: 0.0.0.0
  port: 19132
  clone-remote-port: false
  transport: nethernet
  webrtc-port: 0
  signaling:
    mode: builtin
    advertise-addresses:
      - "YOUR_PUBLIC_IP:19132"

This configuration needs TCP 19132 for signaling and UDP 19132 for gameplay.

Keep clone-remote-port disabled for built-in signaling: Java already occupies its TCP port. If your host requires a shared port, use the external-signaling option in the NetherNet guide.

If you run Docker, publish it explicitly:

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

Fully restart Paper after saving the Geyser configuration; /geyser reload is not sufficient for this transport change. If you added Docker port publications, recreate the service with docker compose up -d and preserve its data volume. A plain docker compose restart does not apply changed publications. Check startup logs before continuing to Step 5.

If players still cannot connect, fix the network path with the port troubleshooting guide, and check both TCP and UDP 19132 for this setup.

Voice chat and Query need a different UDP port from Geyser.

Migrate an existing RakNet installation

Back up the generated Geyser configuration, apply the NetherNet settings above and add the TCP publication alongside UDP. Preserve Floodgate and backend settings. After Docker publication changes, use docker compose up -d, then fully restart the server/proxy. The NetherNet guide covers different port mappings, external signaling and current error reports.

Step 5: Validate with a Bedrock connection test

For NetherNet, check TCP signaling first with curl --fail --max-time 10 http://YOUR_PUBLIC_IP:19132/v1/join. Replace the placeholder with your public IP. If you receive server JSON, join with a Bedrock client from another network to check the UDP gameplay connection too. Follow the NetherNet connection tests if joining fails.

Joining on consoles

Phones, tablets and Windows usually allow custom server entries. Consoles often need an additional join method, depending on the console and home network:

If mobile or Windows clients can join, check this additional console connection path first.

Gameplay and plugin compatibility

Some game mechanics and plugins behave differently for Bedrock and Java players. Test the features your server relies on with both editions.

Common mistakes

MistakeResultFix
Installing Geyser but not FloodgateBedrock players still need Java authenticationInstall Floodgate and set auth-type: floodgate
Opening only TCP portsBedrock gameplay failsRakNet: allow UDP 19132; NetherNet: allow TCP signaling and the advertised UDP gameplay port
Running this on the wrong server typePlugin path becomes awkward or unsupportedUse Paper for the direct plugin setup
Ignoring the supported-version matrixA Bedrock update suddenly breaks joiningCheck Geyser's matrix and update Geyser or add ViaVersion as required
Treating SRV records as a Bedrock solutionBedrock players still need the correct server portKeep Java and Bedrock join paths conceptually separate

Next steps

  • If you want a cleaner Java join address, configure an SRV record.

Sources

Java configurator

Create a Compose file

Choose your server software, version, and settings, then download your configuration.

Open Java configurator

Frequently asked questions