Categories
Setting Up Crossplay (Java + Bedrock) with GeyserMC
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.
- Go to your server in the game panel
- Click the Network tab
- Add a new port allocation (e.g.,
19132or any available port) - 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:
- Official: geysermc.org/download — select Floodgate, then Spigot
- Modrinth: modrinth.com/mod/floodgate
- Hangar: hangar.papermc.io/GeyserMC/Floodgate
Important: Always download both plugins from the same release. Mismatched versions can cause authentication failures.
Step 3: Install Both Plugins
- If you downloaded Geyser from the plugin downloader, it is already in
/plugins/ - Upload
Floodgate-Spigot.jarto your/plugins/folder via the Files tab or SFTP - Start the server once to generate config files and the Floodgate
key.pemfile - 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
- Start your server
- Check the console for:
[Geyser-Spigot] GeyserMC is now running.Auth type: FLOODGATE[floodgate] Loaded Floodgate version ...
- If you see
Auth type: ONLINEinstead, 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
- Open Minecraft Bedrock Edition
- Go to Play → Servers → Add Server
- Enter your server IP and the Geyser (UDP) port — NOT the Java port
- 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:
- Confirm
Floodgate-Spigot.jaris in/plugins/ - Open
/plugins/Geyser-Spigot/config.yml - Set
auth-type: floodgate(under theremote:section) - 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