Menu

Guidefor server owners3 min read

Letting Bedrock players join a Java server with Geyser

Geyser translates between the two editions so phone and console players can join a Java server. What it does well, what it cannot do, and how to set it up.

What Geyser actually does

Java Edition and Bedrock Edition are two different programs. They do not share a network protocol, a save format, or in several places the same rules. A Bedrock client cannot join a Java server any more than a web browser can join one.

Geyser sits in the middle and translates. It speaks Bedrock's protocol to the player and Java's protocol to the server, converting packets in both directions in real time.

For the player it is invisible. They add your address in their normal server list and connect. Nothing is installed on their device, which is the whole reason this is worth doing: it reaches phone, console and Windows players who cannot install anything even if they wanted to.

Geyser and Floodgate are two things

This trips up almost every first setup.

Geyser does the translation. On its own, it still expects each connecting player to authenticate as a Java account, so a Bedrock player would need a linked Java account to get in.

Floodgate removes that requirement. It lets Bedrock players join with their Bedrock account, no Java account involved. It is a separate plugin installed alongside Geyser.

If you want ordinary Bedrock players to join, you want both. Geyser alone is for the narrower case where every player already owns Java Edition.

Installing it

Geyser runs in several shapes. Pick one:

  • As a plugin on your Paper server. Simplest, and right for a single server.
  • As a plugin on your Velocity proxy. Right for a network, so Bedrock players enter at the proxy and can move between backends like anyone else.
  • Standalone, as its own process. For when you cannot install plugins on the server at all.

For a plugin install:

  1. Put the Geyser jar and the Floodgate jar in plugins/.
  2. Start the server once so both generate their configuration.
  3. Stop it, and edit config/geyser-*/config.yml:
bedrock:
  # The port Bedrock players connect to. Bedrock uses UDP, not TCP.
  port: 19132

remote:
  address: auto
  port: 25565
  # Required by Floodgate. Without this, Bedrock players cannot authenticate.
  auth-type: floodgate
  1. Open UDP port 19132 on your firewall. This is the single most common reason a fresh Geyser install does not work: Bedrock uses UDP and Java uses TCP, and opening the Java port does nothing for Bedrock.

On a proxy, install Geyser and Floodgate on the proxy, and Floodgate on each backend as well so the backends understand the player identities the proxy forwards.

What will feel different

Geyser translates the protocol. It cannot translate the game, and the two editions genuinely differ:

  • Redstone. Bedrock redstone follows different rules. Java contraptions that depend on exact timing or quasi-connectivity will not behave the same for a Bedrock player, and some will not work at all.
  • Combat. Java has the attack cooldown; Bedrock does not. On a PvP server this is a real balance difference rather than a cosmetic one.
  • Inventory handling. Crafting and container interaction differ enough that some plugin-driven custom inventory menus behave oddly.
  • Mob behaviour and spawning. Similar but not identical, which matters for farms.
  • Custom content. A Java resource pack does not apply to a Bedrock client. Serving both a Java pack and a Bedrock pack is possible and is extra work.

None of this makes Geyser a bad idea. It means a survival or creative server works beautifully and a technical Java server built on precise redstone will disappoint Bedrock players.

Usernames

Bedrock players arrive with a prefix, a dot by default, so Steve becomes .Steve. This is deliberate: it prevents a Bedrock player from taking a Java player's name, and it makes it obvious which edition somebody is on.

The prefix is configurable, and the safe advice is to leave it alone. Removing it means two different accounts can present the same username to your permissions plugin, which is exactly the kind of ambiguity you do not want in the thing that decides who can do what.

Checking your setup

  • Bedrock players connect to UDP 19132, Java players to TCP 25565. Both need opening.
  • Geyser must support the Minecraft version your server runs. The plugin catalogue lists what declares support for what.
  • Test from an actual Bedrock device, not from Java. The translation layer is the part you are testing, and only a Bedrock client exercises it.

If Java players can join and Bedrock players cannot, it is the UDP port. It is nearly always the UDP port.

Frequently asked

Do Bedrock players need to install anything?

No. That is the point. They add your server in their normal server list and connect. Everything happens on your side.

Do Bedrock players need a Java account?

Not with Floodgate installed. Without it, they need a linked Java account to authenticate. Floodgate is what makes true crossplay work, and it is a separate component from Geyser.

Does everything work the same for both editions?

No. The two editions differ in redstone, mob behaviour, combat and inventory handling. Geyser translates the protocol, not the game, so anything that depends on Java-specific mechanics will feel different or not work.

Can Geyser run standalone?

Yes, as its own process in front of the server, which is useful when you cannot install plugins. Running it as a plugin on the server or the proxy is simpler and is what most people should do.

Referenced on this site

Last reviewed 2026-07-27. Version data on this site updates automatically; this guide is reviewed by hand when the ecosystem changes.