// Minecraft

Java and Bedrock on one server: crossplay with Geyser

Java and Bedrock on one server: crossplay with Geyser

Minecraft has existed in two flavors for years: Java Edition on PC and Bedrock Edition on phones, tablets, consoles and Windows. Two editions, two protocols — and normally, therefore, two separate worlds. Annoying if you play Java while your little brother only has a Switch, or a friend only plays on their phone.

Fortunately there's a neat solution: Geyser. It lets Bedrock players simply join your Java server, without you having to overhaul your world or plugins. Here's how it works, including the pitfalls almost everyone stumbles into at some point.

What exactly do Geyser and Floodgate do?

Geyser is essentially a translator. It sits between the Bedrock client and your Java server and translates all network traffic live from one protocol to the other. The Bedrock player thinks they're talking to a Bedrock server; your Java server thinks a regular Java player is joining. Nobody has to install anything on the player side — the translation happens entirely on the server.

Floodgate solves the account problem. Without Floodgate, a Bedrock player would need a paid Java account on top of their Bedrock version to log in, which makes crossplay pretty pointless. With Floodgate, Bedrock players simply log in with their own Microsoft/Xbox account and nobody needs a second account.

In practice you want both: Geyser for the translation, Floodgate for the login. They come from the same team (the GeyserMC project) and are built to work together. Both are free and open source, and actively maintained — important, because every Bedrock update calls for an updated translation.

Honestly: these are the limitations

Geyser has become impressively good, but a translation remains a translation. A few things to know before you raise expectations with your players:

  • Bedrock and Java differ at the detail level: slightly different mechanics, hitboxes and menus. Most players barely notice in survival, but on a competitive PvP server the difference can be felt.
  • Some Java features don't translate perfectly. Complex custom menus and resource packs from your Java server can look different or work in a limited way on Bedrock.
  • On modded servers (Forge, NeoForge or Fabric with content mods) Geyser is not a good match: the Bedrock client simply doesn't know those new blocks and items. For plugin servers like Paper, it's a great fit.
  • Right after a major Minecraft update it can take a while before everything runs flawlessly again, though the team is usually quick.

For a survival server with friends or family, these are rarely dealbreakers. Just know that the Bedrock experience comes very close to the Java experience, but isn't one hundred percent identical.

Installation: Geyser as a plugin on your server

The easiest route is a plugin server like Paper. You then install Geyser and Floodgate as regular plugins:

  1. Download Geyser (the Spigot/Paper version) and Floodgate via the official GeyserMC site.
  2. Put both files in your server's plugins folder.
  3. Restart the server. Both plugins create their own config files on first start.
  4. Open the Geyser config and check two things: the port number for Bedrock (more on that below) and whether Floodgate is set as the login method.

If you run a network with a proxy like Velocity or BungeeCord, you usually install Geyser there instead of on each individual server. And for the purists: there's also a standalone version of Geyser that runs separately from the server. For a single server, the plugin route is by far the simplest, so that's where I'd start.

Do keep Geyser up to date afterwards. Bedrock gets small updates remarkably often, and an older Geyser version can sometimes no longer let new Bedrock clients in. Dropping the latest build into your plugins folder and restarting is usually enough — a few minutes' job that saves you a lot of "I can't get in anymore" messages.

Setting the Bedrock port correctly

This is where things go wrong most often in practice. Java players connect via the normal server port (25565 by default, over TCP). Bedrock uses its own port and a different protocol: port 19132 by default, over UDP. The two are completely independent, so a working Java connection says nothing about the Bedrock side.

On a rented server you can't always just claim any port. Check your control panel to see which ports are available for your server and put that port number in the Geyser config as the Bedrock port. Then give your Bedrock players the server address plus that port number; they enter both when adding a server in their game's server list.

If Bedrock players can't get in while Java players connect fine, the problem is almost always here: a wrong port in the config, a port that isn't open, or a player trying the default port 19132 while your server uses a different one.

The quickest way to test is with a phone nearby. Add the server in Bedrock with the address and port number and see if it shows up as online in your list. If it works at your place but not at a friend's, have that friend connect via mobile data for a moment; that rules out their home network or school Wi-Fi as the cause.

Account handling: prefix, whitelist and linking

Bedrock players appear on your server with a prefix before their name — a dot by default, so .Steve instead of Steve. That way a Java player and a Bedrock player with the same name can never collide. Useful to know for your administration:

  • On a whitelist server, add Bedrock players with that prefix.
  • For permissions and other plugins too: the name with prefix is the real player name.
  • The prefix can be changed in the Floodgate config, should the dot clash with another plugin on your server.

Do you play on both editions yourself? Then you can link your Bedrock and Java accounts, also known as account linking. After linking, the server sees you as one and the same player — with the same inventory, permissions and statistics — whether you log in from your PC or your phone. You set up the link via Floodgate with a link command in-game, or via the GeyserMC project's global linking service, which works on multiple servers at once.

What kind of server do you need for this?

Good news: Geyser doesn't require exotic hardware. You simply run a Java server (Paper, for example) with two extra plugins. Expect at most slightly higher memory and processor usage, because Geyser is live-translating all the Bedrock traffic — with a handful of players you'll barely notice. At MC-Node, your server runs on our own hardware with NVMe storage in the Previder data center in Hengelo, with DDoS protection included.

For a small group of friends, you can start with the Cobblestone plan at €0.50 per month; if you want a bit more headroom for plugins and players, Iron (€3.30 per month) is a logical step. All plans can be cancelled monthly, so trying it out costs you little. Check out the options in the MC-Node store and get your crossplay server live tonight.

// TRY IT YOURSELF
Your Minecraft server online in 60 seconds
View packages →