How to Enable Crossplay on a Minecraft Server with Geyser
Geyser lets Bedrock players (phone, console) join your Java server. Add Floodgate and they don't even need a Java account.

Geyser is the bridge that lets Bedrock Edition players — phones, consoles, Windows — join a Java Edition server. Add Floodgate and they don't even need to own Java. This guide sets up true crossplay on a Paper server.
How Geyser works
Geyser is a protocol translator. It runs as a plugin on your Java server and translates Bedrock network packets into Java ones on the fly. Bedrock players connect to a separate UDP port; Java players connect normally. Floodgate is the companion that lets Bedrock players join without a paid Java account.
You need a Paper (or Spigot) server for the plugin version — if you don't have one, our plugin install guide gets you there. Geyser can also run standalone as a proxy, but the plugin route is simplest.
Install Geyser and Floodgate
Download both jars from geysermc.org into your plugins folder and restart:
cd ~/paper/plugins
wget -O Geyser-Spigot.jar "https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot"
wget -O floodgate-spigot.jar "https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot"
# then restart the server

Configure the ports
On first start, Geyser generates plugins/Geyser-Spigot/config.yml. The key section is the Bedrock listener:
bedrock:
address: 0.0.0.0
port: 19132
remote:
address: auto
auth-type: floodgate
Set auth-type: floodgate so Bedrock players can join without a Java account. Then open the Bedrock UDP port alongside your Java TCP port:
sudo ufw allow 25565/tcp
sudo ufw allow 19132/udp
Handle the username prefix
Floodgate adds a prefix (default .) to Bedrock usernames so they don't clash with Java names. You can change it in Floodgate's config. Keep it if you want to tell platforms apart; blank it if you want clean names (watch for collisions).
Test crossplay
Java players connect to your IP on 25565 as usual. Bedrock players add a server pointing at the same IP on port 19132. Both land in the same world. For a public setup you'll also want a whitelist — note Bedrock/Floodgate players use their prefixed name when whitelisting.
Common gotchas
- Skins and some blocks look off to Bedrock players — this is normal translation behaviour.
- Custom Java mod content won't render on Bedrock; Geyser translates vanilla-ish content best.
- Resource packs can improve the Bedrock experience but need extra config.
A crossplay server is a great base for an SMP with friends who play on different platforms. If you'd rather everyone be on Bedrock only, see the Bedrock Dedicated Server guide.
Plugin mode vs standalone proxy
This guide uses Geyser as a plugin on your Java server, which is the simplest setup. Geyser also runs standalone as a separate proxy process that forwards to any Java server (handy for networks, or when you can't add plugins). For a single server, plugin mode is easier — one process, shared config, no extra port juggling beyond the Bedrock listener. Only reach for standalone if you're proxying multiple backends or running a BungeeCord/Velocity network.
Improve the Bedrock experience
Two optional extras make crossplay smoother for Bedrock players:
- A Geyser resource pack: translates Java custom items and some content so Bedrock players see them more faithfully. Configure it in Geyser's
packsfolder. - ViaVersion: lets Java clients on slightly different versions connect, widening who can join alongside Bedrock players.
Neither is required to get basic crossplay working, but they polish the result for a public SMP.
Performance and expectations
Geyser adds packet-translation overhead, so give the server a little extra RAM and CPU headroom versus a Java-only setup — see our RAM guide. For typical friend-group and small community sizes this is easily absorbed. Set realistic expectations with players, too: Bedrock and Java have small mechanical differences (redstone timing, some block interactions), and Geyser translates vanilla-style gameplay best. Heavily modded Java content won't render for Bedrock users. If everyone happens to be on Bedrock anyway, a native Bedrock Dedicated Server avoids the translation layer entirely. Whichever route you take, back up regularly and lock the server with a whitelist.
Telling players how to connect
A small but common support headache is players not knowing how to join, so spell it out. Java players add your server exactly as normal: your IP or domain on port 25565. Bedrock players go to Play, then Servers, then Add Server, and enter the same IP with port 19132. On some platforms (notably consoles) adding a third-party server is restricted, and players may need a workaround like BedrockConnect — set expectations there, since it's a platform limitation, not a Geyser one. Once connected, everyone shares one world and one chat. Because a crossplay server invites a mixed audience, a whitelist (remembering Floodgate's username prefix) keeps it private if you want it that way, and regular backups protect the shared world.
FAQ
Do Bedrock players need a Java account with Geyser?
No — with Floodgate installed and auth-type: floodgate, Bedrock players join with their Xbox account only.
What ports does Geyser need open?
Java TCP 25565 as normal, plus Bedrock UDP 19132 for Geyser's listener.
Does Geyser work with mods?
Geyser targets vanilla Java gameplay. It works best on Paper/Spigot with plugins; heavily modded Forge content often won't translate.
Will crossplay hurt performance?
Geyser adds some translation overhead, but for typical player counts it's modest. Give the server a little extra RAM headroom.
Crossplay servers keep everyone together regardless of device. Run yours on Nxeon's Minecraft server hosting — NVMe VPS plans, full root access, and open UDP ports for Bedrock.