// Minecraft

Geyser and Floodgate: Bedrock Players on Your Java Server

Geyser and Floodgate: Bedrock Players on Your Java Server

Geyser translates the Bedrock protocol into the Java protocol, so players on phone, tablet, console and Windows can join in on an ordinary Java server. Floodgate is the companion plugin that lets those players log in without a Java account, which means your server can stay in online mode. Bedrock connects over UDP port 19132, so that port has to be open alongside your normal Java port. Both are free and open source.

What do Geyser and Floodgate actually do?

Java Edition and Bedrock Edition are two separate programs with two separate network protocols. A Bedrock client sends packets a Java server cannot understand, and the other way round. Geyser sits in between: towards the player it behaves like a Bedrock server, towards your server like a Java client. Everything is translated in both directions: movement, placing blocks, inventory, chat, sounds, scoreboards.

That solves the network problem, but not the account problem. A Java server in online mode checks on every login whether the account exists and whether the player is who they claim to be. A Bedrock player has an Xbox account and no Java account, so that check fails. Floodgate authenticates them on the Xbox side and then lets them in as a verified player. So you never switch online-mode off: Java players stay fully checked.

Without Floodgate, every Bedrock player would first have to link a Java account, or you would have to run your server in offline mode. The first shuts out exactly the group you were trying to reach, the second leaves your door open to anyone who can type a name.

Do you run Geyser as a plugin or as a standalone proxy?

Geyser comes in two flavours. As a plugin you drop the jar file into the plugins folder of your Paper, Purpur or Spigot server, or of your BungeeCord or Velocity proxy. As a standalone, Geyser runs as a separate program with its own port and connects to your server as a regular Java client.

For a single server the plugin is almost always the right call: fewer moving parts and less configuration. Standalone becomes interesting when you cannot install plugins on the target server. If you run a network behind a proxy, put Geyser on the proxy and Floodgate on both the proxy and every backend server; otherwise a Bedrock player reaches the lobby but gets rejected the moment they switch across. A separate 512 MB BungeeCord proxy costs EUR 0.50 per month at MC-Node.

Which port does Bedrock use?

Bedrock uses UDP port 19132 by default. That is a different protocol from the TCP port your Java server listens on, which has two consequences. Both may use the same port number, and your hosting really does have to let that UDP port through. A firewall that only opens TCP leaves Bedrock players hanging endlessly on the connection screen while nothing at all shows up in your console.

In a Pterodactyl panel you add an extra allocation for this and enter that port number under bedrock in the Geyser config. Keep it on 19132 wherever you can: that is the value the Bedrock client fills in by itself, so your players only need to type the address. If your port differs, they have to add the number manually.

How do you install Geyser and Floodgate?

  1. Download the Geyser jar and the Floodgate jar from GeyserMC in the variant that matches your platform: Spigot/Paper, BungeeCord, Velocity or standalone.
  2. Put both files in the plugins folder and start the server once so they create their configuration folders. Then stop the server again.
  3. Open the Geyser config and, under bedrock, set the address to 0.0.0.0 and the port to the UDP port you have opened.
  4. Set auth-type to floodgate. If it stays on online, players still have to link a Java account themselves.
  5. Check that key.pem is present in the Floodgate folder. If Geyser runs standalone or on another machine, copy that file into the Geyser folder; without that key the link is refused.
  6. Leave online-mode in server.properties set to true.
  7. Start the server and test from a phone using your address and the UDP port. Visible in the list but no connection? Then it is almost always the firewall.

How do usernames and permissions work?

Java names consist only of letters, digits and underscores. Bedrock gamertags may contain spaces and other characters. Floodgate solves that by replacing spaces and sticking a prefix on the front. The default prefix is a full stop, so a gamertag like Alex Smith shows up as .Alex_Smith.

That prefix is not cosmetic. A full stop cannot appear in a Java name, so a Bedrock player can never take over the name of an existing Java account, by accident or on purpose. You can change it in the Floodgate config or leave it empty, but an empty prefix opens up exactly that risk. If you pick something else, choose a character Java does not allow in the first place.

For permissions little changes. Floodgate gives every Bedrock player a fixed UUID based on their Xbox account, and LuckPerms and the other standard plugins work on that quite happily. You assign ranks to the name including the prefix, so with that full stop attached. Watch out for two things: the ordinary whitelist does not work, because your server looks that name up at Mojang and finds nothing, and Floodgate supplies its own commands for this. On top of that, some older plugins trip over a full stop in a player name, usually in commands or in a webshop integration.

What does not translate one to one?

Geyser is surprisingly complete for plain survival, but the editions are not identical, and you notice that precisely where server owners build the most.

ElementWhat Bedrock players notice
Building, redstone, mobs, dimensionsWorks; small differences in mechanics and timing remain
Plugin menus in a chest GUIThey open, but Java fonts and negative spacing drop away, so the layout can shift
Custom item models and resource packsA Java resource pack is not loaded; you have to offer a separate Bedrock pack
PvPBedrock has no attack cooldown; reach and knockback feel different, which skews competitive PvP
AnticheatTranslated movement can trigger false flags; set up exemptions for Floodgate players
ModsDoes not work: a Bedrock client cannot load Java mods

The closer your server stays to vanilla survival, the less you notice Geyser at all. The more you lean on custom models, texture tricks in menus and finely balanced PvP, the more often a Bedrock player sees something different from the Java player standing next to them.

Does Geyser work on a modded server?

No, not for the mods themselves. All the Mods 10 runs on NeoForge and Minecraft 1.21.1 with 400 to 500 mods in it; a Bedrock client does not know those blocks and items and cannot install them either. Geyser builds exist for Fabric and NeoForge, but they translate the vanilla content, not the mods you run on top of it.

Crossplay is therefore a vote for plugins and against mods. Plugins run purely server-side on otherwise vanilla mechanics, so everything you build with them reaches Bedrock players too. Choose a modpack with hundreds of mods and you accept that your server is Java-only. Datapacks sit in between: they run server-side and usually work, but Bedrock players never see the resource pack side of them.

When are you better off with a true Bedrock server?

Geyser is a translation layer, not a levelling of the two editions. If your group consists almost entirely of players on phone and console and you need no Java plugins, a true Bedrock server delivers fewer surprises: no translation glitches, no prefixes, no menus that look slightly off. If there is a serious Java core in your community, Geyser with Floodgate is exactly how you avoid splitting that group across two worlds.

Spare a thought for consoles as well. On Windows and mobile a player adds a server themselves with an address and port. On Xbox, PlayStation and Switch that is not possible without a detour through DNS settings, and that is a real barrier for younger players. That limitation comes from the console itself and applies just as much to a true Bedrock server.

Finally, budget for a little extra work on your server: every packet has to be translated, so each Bedrock player costs some additional CPU and memory. Minecraft hosting at MC-Node charges a flat EUR 1.10 per GB of RAM per month on the budget line, so an extra gigabyte of headroom is rarely a reason to skip crossplay altogether.

Frequently asked questions

Can Bedrock players really join without a Java account? Yes, that is precisely what Floodgate is for. You set auth-type to floodgate in the Geyser config, after which the player is verified through their Xbox account and gets in without buying Java. Your server stays in online mode throughout, so you do not weaken security for Java players.

Which port do I need to open for Geyser? UDP port 19132 is the Bedrock default. Because Java connects over TCP and Bedrock over UDP, the same port number may be used for both. Make sure your firewall or panel genuinely lets the UDP port through, otherwise the connection hangs with no clear error message.

Why is there a full stop in front of a Bedrock player's name? That is the Floodgate prefix, a full stop by default. A full stop cannot appear in a Java name, so a Bedrock gamertag never collides with an existing Java account. You assign permissions and ranks to the name including that full stop; the character can be changed, but clearing it brings a risk of name confusion.

Does Geyser work with a modpack like All the Mods 10? No. ATM10 runs on NeoForge with Minecraft 1.21.1 and 400 to 500 mods, and a Bedrock client cannot load those mods. If you want crossplay with extra features, build your server on plugins instead of mods, because plugins run entirely server-side.

How much extra RAM does Geyser need? There is no fixed figure: it depends on how many Bedrock players are online at once and how busy your server is. Budget for some extra CPU and memory for the translation and keep headroom above your normal plan. If lag only appears once the Bedrock players join, that is your signal to move up a step.

Further reading

// TRY IT YOURSELF
Your server online in 60 seconds
MC-Node →