How to Let Bedrock Players Join Your Java Minecraft Server with Geyser and Floodgate
Install GeyserMC and Floodgate on your Minecraft Java server so Bedrock Edition players (Mobile, Console, Windows 10/11) can join — with auth bypass and no Java account required.
Geyser + Floodgate is the standard combo for letting Bedrock Edition players (mobile, console, Windows 10/11) join your Java Edition server without owning a Java account. Geyser translates the Bedrock protocol to Java in real time. Floodgate handles authentication so Bedrock players don't need a Java login.
This is the only practical way to run a cross-platform server today, and it works on Spigot, Paper, BungeeCord, Velocity, Fabric, NeoForge, and standalone.
How It Works
┌──────────────────┐ ┌──────────────┐
│ Bedrock player │ │ Java │
│ (mobile/console) │ ──── port 19132 (UDP) ──► │ server │
└──────────────────┘ │ + Geyser │
│ + Floodgate │
┌──────────────────┐ │ │
│ Java player │ ──── port 25565 (TCP) ──► │ │
│ (PC) │ │ │
└──────────────────┘ └──────────────┘- Geyser is a protocol translator — Bedrock packets in, Java packets out
- Floodgate lets Bedrock players authenticate without a Mojang account
- Both run as plugins on your Java server (no separate proxy needed)
What You Get
| Feature | Works? |
|---|---|
| Bedrock players join Java server | ✅ |
| Cross-platform PvP / PvE | ✅ |
| Bedrock players see Java skins | ✅ |
| Java players see Bedrock skins | ✅ |
| Most Java plugins (EssentialsX, LuckPerms, etc.) | ✅ |
| Resource packs | ✅ (with conversion) |
| Modded servers (Forge mods) | ⚠️ Limited — depends on the mod |
| Custom command blocks / vanilla commands | ✅ |
| Bedrock-specific UI elements | ✅ via Geyser forms |
Install Geyser and Floodgate
Download both plugins
Get the latest builds from geysermc.org/download. Pick the Geyser AND Floodgate builds for your platform:
| Platform | Geyser file | Floodgate file |
|---|---|---|
| Spigot / Paper | Geyser-Spigot.jar | floodgate-spigot.jar |
| BungeeCord | Geyser-BungeeCord.jar | floodgate-bungee.jar |
| Velocity | Geyser-Velocity.jar | floodgate-velocity.jar |
| Fabric | Geyser-Fabric.jar | floodgate-fabric.jar |
| NeoForge | Geyser-NeoForge.jar | floodgate-neoforge.jar |
| Standalone | Geyser-Standalone.jar | floodgate-standalone.jar |
Always install both. Geyser without Floodgate forces Bedrock players to have a Java account — defeating the point.
Stop the server
In the XGamingServer Panel, open Console and stop your server.
Upload to plugins/ or mods/
Click Files in the sidebar. Upload both JARs to plugins/ (or mods/ for Fabric/NeoForge).
Add the Bedrock port to Network
Click Network in the sidebar. Click Create Allocation and add port 19132 as a UDP allocation. Bedrock uses UDP, not TCP — make sure it's UDP.
Important: If your panel doesn't allow setting protocol manually, the default allocation is usually TCP. Open a support ticket to add a UDP allocation if needed.
Start the server
Start from Console. Geyser and Floodgate generate their config files and bind to port 19132.
Verify
In Console:
pluginsBoth Geyser-Spigot (or your platform) and floodgate should appear in green. You should also see:
[Geyser] Started Geyser on 0.0.0.0:19132Connection Details for Players
Share these with your community:
| Player platform | Server | Port |
|---|---|---|
| Java Edition (PC) | Your IP | Your Java port (e.g., 25565) |
| Bedrock — Mobile / Tablet | Your IP | 19132 |
| Bedrock — Windows 10/11 | Your IP | 19132 |
| Bedrock — Xbox / PlayStation / Switch | Your IP | 19132 (see notes below) |
Console-Specific Caveats
- Xbox: console-edition Bedrock doesn't allow direct IP entry. Players need BedrockConnect or MCXboxBroadcast to connect.
- PlayStation: same as Xbox. Use BedrockConnect.
- Switch: same. BedrockConnect required.
For Switch/PS/Xbox, install MCXboxBroadcast on your server to make it appear as a Bedrock featured server.
Configure Geyser
Main config: plugins/Geyser-Spigot/config.yml (path varies by platform).
Key Settings
bedrock:
port: 19132
motd1: "My Cross-Platform Server"
motd2: "Bedrock + Java"
server-name: "MyServer"
remote:
address: auto
port: auto
auth-type: floodgate
show-cooldown: title
emote-offhand-workaround: disabled| Setting | Description |
|---|---|
bedrock.port | Port for Bedrock connections (must match Network allocation) |
bedrock.motd1 | Server name shown in Bedrock server list |
remote.address | Java server address (auto = same machine) |
remote.port | Java server port (auto = read from server.properties) |
auth-type | Must be floodgate when using Floodgate |
Floodgate Username Prefix
By default, Bedrock players have a . prefix on their username (e.g., .SteveBedrock) to distinguish them from Java players. To change or remove:
In plugins/floodgate/config.yml:
username-prefix: "."Set to "" (empty string) to remove the prefix entirely. Warning: removing the prefix can cause name collisions if a Java player has the same username.
Resource Packs
Java resource packs don't work directly on Bedrock. Geyser supports converted packs:
- Convert your Java pack with GeyserPack Converter
- Drop the
.mcpackintoplugins/Geyser-Spigot/packs/ - Restart — Bedrock players auto-download the pack on join
Plugin Compatibility
| Plugin | Works with Geyser? |
|---|---|
| EssentialsX | ✅ |
| LuckPerms | ✅ |
| WorldEdit / WorldGuard | ✅ |
| ProtocolLib | ✅ |
| Most chat plugins | ✅ |
| Custom GUIs (anvil-based) | ⚠️ Use Geyser forms instead |
| Resource pack-based GUIs | ⚠️ Need Bedrock-compatible pack |
| Anti-cheat plugins | ⚠️ May false-positive Bedrock movement |
| Custom items via NBT | ⚠️ Limited |
For best results, use plugins explicitly designed for cross-platform.
BungeeCord / Velocity Setup
If you have a proxy network, install Geyser and Floodgate on the proxy, not the backends:
- Use
Geyser-BungeeCord.jarorGeyser-Velocity.jar - Use
floodgate-bungee.jarorfloodgate-velocity.jar - Backend servers also need
floodgate-spigot.jar(with the same key file) - Copy
key.pemfrom proxy'splugins/floodgate/to each backend'splugins/floodgate/
This lets the proxy translate Bedrock once, and backends accept Floodgate-authenticated players.
Common Issues
| Problem | Fix |
|---|---|
| Bedrock players can't see the server | Port 19132 not allocated, or wrong UDP/TCP |
| "Could not connect" on Bedrock | Server offline, wrong port, or ISP blocking UDP |
| Bedrock players can connect but immediately disconnect | auth-type not set to floodgate |
| Bedrock players need Java account | Floodgate not installed |
| Anti-cheat kicks Bedrock players | Whitelist Bedrock players, or disable strict checks |
| Skins don't load | Geyser API rate limit — wait or restart |
| Bedrock players appear as "." | That's the prefix — change in Floodgate config |
| Console players can't connect | Console needs BedrockConnect or MCXboxBroadcast |
Common Mistakes
| Mistake | Fix |
|---|---|
| Installing Geyser without Floodgate | Bedrock players forced to use Java accounts |
| Allocating port 19132 as TCP | Bedrock uses UDP — allocate as UDP |
| Forgetting to restart after install | Geyser binds at startup |
Setting auth-type: online instead of floodgate | Defeats Floodgate — Bedrock won't auth |
| Using Geyser-Standalone when running Spigot | Use Geyser-Spigot instead |
| Sharing only the Java port | Bedrock uses 19132 — share both |
Related Guides
How is this guide?

How to Install and Configure EssentialsX on Your Minecraft Server
Install EssentialsX on your Minecraft Java server for homes, warps, kits, economy, teleportation, chat formatting, and 100+ admin commands.
How to Set Up GriefDefender on Your Minecraft Server
Install GriefDefender on your Minecraft Java server for advanced land claiming, grief protection, trust levels, and golden-shovel claim creation.