1What a crossplay server needs
| Part | What it's for | With the switch |
|---|---|---|
| Paper or Purpur | The Java server, which takes plugins | Any Paper or Purpur server you have |
| Geyser | Translates between Bedrock's game and the Java server | 2.11.3-b1247, from Modrinth |
| Floodgate | Lets Bedrock players in with their Xbox account | 2.2.5-b141, checked against GeyserMC's SHA-256 |
| UDP 19132 | The port Bedrock players connect to | Published by Playkeeper; you open it at your provider |
Geyser also needs auth-type: floodgate in its config, and the server needs enforce-secure-profile=false, or Bedrock players' chat is refused. The switch sets both.
2The one-switch way
Playkeeper runs your server on a VPS you rent. Install it with one command:
curl -fsSL https://playkeeper.io/install | sudo sh
Turn on Bedrock players
In a Paper or Purpur server's Settings, then Turn on crossplay. Playkeeper installs Geyser and Floodgate, sets them up and restarts the server. On a test server on 28 Sep it took 22 seconds.
Open UDP 19132 at your provider
The dialog shows the port. A second server with crossplay gets the next free one, such as 19133.
Add Bedrock friends on Players
While the server runs, type a dot and their Xbox gamertag, like .Steve. Playkeeper has Floodgate look the gamertag up at GeyserMC and add it to the allowlist.
Friends on phones, tablets and Windows choose Play, then Servers › Add Server, with the Bedrock address and port on the server's Join card. That address is your machine's name, not the server's own address, because Bedrock can't follow the record that gives each server its own. Xbox, PlayStation and Switch players need a workaround such as BedrockConnect, which GeyserMC's guide for consoles explains.
- A server with crossplay stays awake. A Bedrock player can't wake a sleeping server, so sleeping when empty pauses while crossplay is on.
- Templates don't carry it. Turn crossplay on after you create a server from one.
- Keep Geyser up to date on the Plugins tab. When Bedrock updates, an older Geyser turns the new version away.
3Open the Bedrock port in your firewall
Bedrock connects over UDP, not TCP. Playkeeper publishes the port from the server's container, but a firewall at your provider, or ufw on some images, still has to let it in. Add an inbound rule for UDP 19132 from anywhere, or for the port the Join card shows:
- DigitalOcean: in the Droplet's Cloud Firewall, if it has one, under Networking › Firewalls.
- Hostinger: in hPanel's firewall, if it's on, under Security › Firewall.
- Vultr: in its Firewall group, if you added one, and in ufw on the server, which Vultr's Ubuntu image turns on:
sudo ufw allow 19132/udp. - Oracle Cloud: in the security list, then in the VM's own iptables as well.
- A server at home: forward UDP 19132 in your router to the machine.
Java players keep using the TCP game port, 25565 for the first server.
4By hand, without Playkeeper
- Download Geyser and Floodgate for Spigot, Paper and Purpur from GeyserMC's download page, and put both in the server's
pluginsfolder. - Start the server once, so both plugins write their settings, then stop it.
- Set the lines below, and start it again.
- Open UDP 19132 on the machine and at your provider.
- Add each Bedrock friend from the console with
fwhitelist addand their gamertag.
# plugins/Geyser-Spigot/config.yml (Geyser 2.11)
bedrock:
port: 19132
java:
auth-type: floodgate
# Otherwise the server refuses Bedrock players' chat
enforce-secure-profile=false
GeyserMC's Geyser setup and Floodgate setup pages cover proxies, Fabric and NeoForge.
5What we tested, and what we haven't
- Tested: on a Paper 26.2 server on 28 Sep, a Bedrock test client speaking Bedrock 1.26.51 joined through Geyser and Floodgate with the allowlist on, spawned, chatted and showed up on the Players tab. Turning crossplay off took 12 seconds and closed the port.
- How that client signed in: offline, so Geyser's check of the Xbox sign-in was turned off by hand for the test. Playkeeper leaves that check on.
- Not tested yet: a phone, tablet or Windows player signed in to Xbox; a console through BedrockConnect; and a player joining from another network, through a provider's firewall.
Questions
What port does Bedrock use?
UDP 19132, Bedrock's own. Playkeeper gives each further server with crossplay the next free port, and the Join card shows which.
Do I need Floodgate?
For Bedrock players without a Java account, yes. Geyser alone makes each of them sign in with a Java account too.
Does crossplay work on modded servers?
Geyser and Floodgate have Fabric and NeoForge builds, but Bedrock players can't see blocks and items that mods add. Playkeeper offers the switch on Paper and Purpur servers.
Why can't my friend on Switch join?
Consoles can only join the featured servers Microsoft lists. They need a workaround such as BedrockConnect, which we haven't tested yet.
Why did Bedrock players stop getting in after an update?
Bedrock updated and Geyser didn't. Update Geyser on the Plugins tab, and they can join again once it supports the new version.