Setting Up Crossplay (Java + Bedrock) with GeyserMC

Minecraft Server Management · 90 views · Updated 34 minutes ago

What is GeyserMC?

GeyserMC translates Bedrock Edition protocol to Java Edition, allowing Bedrock players (mobile, console, Windows 10) to join your Java server. Floodgate is a companion plugin that lets Bedrock players join using only their Xbox account — without purchasing a Java account.

You need both plugins. Geyser alone will prompt Bedrock players to authenticate with a Java/Microsoft account. Floodgate removes that requirement.

Requirements

  • A Paper or Spigot Minecraft server (1.21.x or later recommended)
  • A UDP port allocated for Bedrock connections (separate from your Java port)
  • Java 17 or newer on the server

Step 1: Allocate a UDP Port

Bedrock uses UDP, not TCP. You need a dedicated UDP port.

  1. Go to your server in the game panel
  2. Click the Network tab
  3. Add a new port allocation (e.g., 19132 or any available port)
  4. Note this port number — you will need it for the Geyser config

If you cannot allocate ports yourself, open a Technical Support ticket and request a UDP port for Geyser.

Step 2: Download Geyser and Floodgate

Geyser is available in the panel plugin downloader. Download it from there.

Floodgate is NOT in the plugin downloader. You must download it directly:

Important: Always download both plugins from the same release. Mismatched versions can cause authentication failures.

Step 3: Install Both Plugins

  1. If you downloaded Geyser from the plugin downloader, it is already in /plugins/
  2. Upload Floodgate-Spigot.jar to your /plugins/ folder via the Files tab or SFTP
  3. Start the server once to generate config files and the Floodgate key.pem file
  4. Stop the server

Step 4: Configure Geyser

Open /plugins/Geyser-Spigot/config.yml in the Files tab and edit these settings:

Bedrock section

bedrock:
  address: 0.0.0.0
  port: 19132

Set port to the UDP port you allocated in Step 1.

Remote section (critical)

remote:
  address: auto
  port: 25565
  auth-type: floodgate

This is the most important setting. auth-type: floodgate tells Geyser to use Floodgate for Bedrock authentication. Without this, Bedrock players will be asked for a Java account.

Note: The key is auth-type, not auth-mode. The old auth-mode key was removed in Geyser 2.x and is no longer recognized.

Step 5: Start and Verify

  1. Start your server
  2. Check the console for:
    • [Geyser-Spigot] GeyserMC is now running.
    • Auth type: FLOODGATE
    • [floodgate] Loaded Floodgate version ...
  3. If you see Auth type: ONLINE instead, the config was not saved correctly — re-check Step 4

Test the connection

Run this command in the server console:

geyser connectiontest YOUR_IP BEDROCK_PORT

This confirms Bedrock players can reach your server from the internet.

How Bedrock Players Connect

  1. Open Minecraft Bedrock Edition
  2. Go to PlayServersAdd Server
  3. Enter your server IP and the Geyser (UDP) port — NOT the Java port
  4. They do not need a Java account — their Xbox account is sufficient

Console players (PlayStation, Xbox): Cannot add custom servers directly. See the GeyserMC Console Guide for workarounds.

Bedrock Player Username Prefix

Floodgate adds a . prefix to Bedrock usernames (e.g., .Steve) to distinguish them from Java players. This affects permissions, whitelists, and bans. You can change the prefix in /plugins/floodgate/config.yml under username-prefix.

Troubleshooting

Bedrock players asked for a Java account

Cause: auth-type is set to online instead of floodgate, or Floodgate is not installed.

Fix:

  1. Confirm Floodgate-Spigot.jar is in /plugins/
  2. Open /plugins/Geyser-Spigot/config.yml
  3. Set auth-type: floodgate (under the remote: section)
  4. Restart and check console for Auth type: FLOODGATE

Bedrock players cannot connect ("Unable to Connect to World")

Cause: UDP port not allocated or firewall blocking it.

Fix: Verify the Geyser port is listed in the Network tab. Run geyser connectiontest to diagnose. If the test fails, the UDP port is not reachable — contact support.

"Cannot reply to EncryptionRequestPacket"

Cause: Floodgate key.pem is missing or misconfigured.

Fix: Check /plugins/floodgate/key.pem exists. Remove any key.pem from /plugins/Geyser-Spigot/ (not needed on a single server). Restart.

Paper rejecting Bedrock usernames

Fix: In config/paper-global.yml, set perform-username-validation: false.

Limitations

  • Not all Java features work perfectly for Bedrock players — some UIs, blocks, and commands behave differently
  • Java players cannot see Bedrock player skins without additional configuration
  • Geyser is a translation layer, not a native port — minor differences are expected

Resources

Note: GeyserMC configuration falls under our unmanaged server policy. For advanced issues, refer to the GeyserMC community.

Still need help?

Create a Support Ticket

Related Articles