Minecraft
Minecraft for Java and Bedrock: crossplay with Geyser
How to let mobile, console and Windows edition players join a Java server with Geyser and Floodgate — what works, what doesn't and what to watch out for.
5 min readBlazeHost
Minecraft comes in two editions that don't talk to each other on their own. Java Edition runs on computers; Bedrock Edition runs on phones, consoles and the Windows version. When a group of friends is split across both editions, you don't need to run two servers. Adding Geyser and Floodgate to a Java server is enough. This article explains what these add-ons do, how to set them up on Paper, what needs to happen with ports and how the game differs for Bedrock players.
What Geyser and Floodgate are
Java and Bedrock use different network protocols, so a Bedrock client can't connect to a Java server directly. Geyser sits between them and translates: to the Bedrock client it looks like a Bedrock server, and to the Java server it looks like an ordinary Java player. The server itself doesn't change — it is still a Java server with all its plugins and its world.
Geyser alone doesn't solve logging in, though. A Java server in online-mode=true verifies every player against a Java Edition account, which Bedrock players usually don't have. That is what Floodgate is for. It verifies Bedrock players through their Microsoft (Xbox) account and lets them join without a Java account, while Java players keep authenticating as usual. The server can therefore stay in online mode — and a public server should.
| Add-on | What it does | Required? |
|---|---|---|
| Geyser | Translates the Bedrock protocol into the Java protocol. | Yes |
| Floodgate | Lets Bedrock players join without a Java account, verifying them via their Microsoft account. | In practice, yes (without it everyone needs a Java account) |
| ViaVersion | Lets clients newer than the server version connect. | Only if the server isn't on a version Geyser supports |
Installing on a Paper server
Geyser and Floodgate are available as plugins for Paper and Spigot, as plugins for the Velocity and BungeeCord proxies, and as mods for Fabric and NeoForge. On a single Paper server, the process is the simplest:
- Download the Spigot/Paper builds of both from the official GeyserMC site.
- Upload them to the
pluginsfolder and restart the server. Our guide to installing plugins covers the general process. - After the first start you'll find the configuration files
plugins/Geyser-Spigot/config.ymlandplugins/floodgate/config.yml. - Set the Bedrock port in Geyser's configuration (see the next section) and restart the server again.
If you run a network of servers behind a proxy, Geyser goes on the proxy and Floodgate goes on the proxy and on every backend server — including sharing its key. The details for each platform are in the official Geyser setup guide.
Port 19132 and a separate allocation
Java Edition communicates over TCP on default port 25565. Bedrock uses UDP on default port 19132. Geyser therefore needs its own port to accept Bedrock players on, and that port has to be actually reachable on the server.
On hosting with a shared IP address, you usually can't use the default 19132 — a port belongs to whoever the host assigned it to. At BlazeHost, game servers run on a shared IPv4 address with their own port, so Geyser needs an additional allocation. Check the Network tab in the panel to see whether you can add an allocation yourself (the tab is described in the Pterodactyl panel basics guide). If you can't, contact support.
Then put the assigned port number into Geyser's configuration:
bedrock:
# port of the new allocation from the Network tab
port: 2557025570 is only an example. Bedrock players then connect to the same address as Java players, but with this port. On mobile and the Windows edition you add the server on the Servers tab by entering the address and port. Consoles (Xbox, PlayStation, Switch) don't offer adding a custom server directly — workarounds are described in the Geyser wiki.
Game versions
Bedrock clients on phones and consoles usually update automatically, so players almost always have the latest version. Geyser keeps adding support for new Bedrock releases, and after a major update you need to download its new build. If Bedrock players suddenly can't connect, an outdated Geyser is the most common cause.
On the Java side, Geyser targets current versions. If your server runs an older version, Geyser points to the ViaVersion, which allows a newer client to connect to an older server. The currently supported versions are listed on the Geyser download page. Make a backup before changing the server version — see the guide to backups and version changes.
What differs for Bedrock players
Geyser translates, but the two editions aren't the same game. Some things can't be translated at all and some only approximately. The complete, current list is on the current limitations page. These are the ones you'll run into most often:
- Combat. Since 1.9, Java has an attack cooldown; Bedrock doesn't. The server follows Java rules, so combat can feel different to Bedrock players.
- Mods. Geyser is meant for vanilla content. Bedrock clients don't know blocks and items added by Fabric or Forge mods, so crossplay in practice belongs to Paper servers with plugins.
- Resource packs. Bedrock clients can't load a Java resource pack. For custom textures you need a Bedrock version of the pack, which Geyser can send to players.
- Inventories and menus. Chest-based plugin GUIs mostly work, but using them on a touch screen can be less comfortable.
- Skins. Floodgate can show Bedrock players' skins to Java players too. It can take a moment before a skin shows up.
- Small movement and redstone differences. Some mechanics behave differently between editions, for example farms built from Java tutorials.
Player names and permissions
So that a Bedrock player's name doesn't clash with a Java player of the same name, Floodgate by default puts a dot in front of it, for example .Steve. The prefix can be changed with the username-prefix option in Floodgate's configuration. Bedrock players also get their own UUIDs, separate from Java accounts. Keep this in mind for LuckPerms permissions, bans and the whitelist: add Bedrock players to the whitelist with Floodgate's fwhitelist add command. The whitelist in general is covered in Whitelist and OP.
Crossplay at BlazeHost
Our Minecraft servers run on AMD Ryzen 9 5900X processors with NVMe drives in Frankfurt am Main, and you manage them in the Pterodactyl panel, where you upload plugins and edit configuration. The network is covered by always-on Dataforest DDoS protection with 7.4 Tbps of capacity at layers L3/L4. For Geyser, check the Network tab or get in touch with support. Plans are on the Minecraft hosting page.
Summary
- Geyser translates the Bedrock protocol into Java; Floodgate lets Bedrock players in without a Java account. The server can stay in online mode.
- Bedrock uses UDP on default port 19132. On a shared IP you need your own allocation — check the Network tab or contact support.
- Update Geyser after Bedrock updates. ViaVersion can help with an older Java server.
- Crossplay suits Paper servers with plugins. Mods, Java resource packs and some mechanics don't carry over to Bedrock.
- Bedrock players have a name prefix and their own UUIDs. Keep that in mind for permissions, bans and the whitelist.
Minecraft servers on our own hardware in Frankfurt
Paper, Fabric, Forge and modpacks in the Pterodactyl panel, DDoS protection included.