How to make a Minecraft crossplay server

Updated 28 Sep 2026 · 4 min read

The short answer

Run a Paper or Purpur server, add the Geyser and Floodgate plugins, and open UDP 19132 for Bedrock players beside the TCP game port Java players use. In Playkeeper that's one switch, Bedrock players in a server's Settings, from version 0.4.4. You still open the UDP port in your provider's firewall, and add Bedrock friends to the allowlist as a dot and their Xbox gamertag.

1What a crossplay server needs

Versions Playkeeper installed on 28 Sep.
PartWhat it's forWith the switch
Paper or PurpurThe Java server, which takes pluginsAny Paper or Purpur server you have
GeyserTranslates between Bedrock's game and the Java server2.11.3-b1247, from Modrinth
FloodgateLets Bedrock players in with their Xbox account2.2.5-b141, checked against GeyserMC's SHA-256
UDP 19132The port Bedrock players connect toPublished 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
  1. 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.

  2. Open UDP 19132 at your provider

    The dialog shows the port. A second server with crossplay gets the next free one, such as 19133.

  3. 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

  1. Download Geyser and Floodgate for Spigot, Paper and Purpur from GeyserMC's download page, and put both in the server's plugins folder.
  2. Start the server once, so both plugins write their settings, then stop it.
  3. Set the lines below, and start it again.
  4. Open UDP 19132 on the machine and at your provider.
  5. Add each Bedrock friend from the console with fwhitelist add and their gamertag.
# plugins/Geyser-Spigot/config.yml (Geyser 2.11)
bedrock:
  port: 19132
java:
  auth-type: floodgate

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.

Java and Bedrock friends on one server.

Free and open source. One switch installs Geyser and Floodgate and opens the port.

curl -fsSL https://playkeeper.io/install | sudo sh
Try the live demo