GE

GeyserMC

Bridge that lets Bedrock players join Java Minecraft servers

Game Servers ★ 5.8k stars Medium setup MIT

Geyser is a self-hostable proxy that bridges communication between Minecraft Bedrock Edition clients and Java Edition servers. It allows Bedrock players to connect to Java servers without any modifications.

Key features

  • Bedrock to Java bridge
  • Standalone or plugin mode
  • Cross-platform play
  • No client mods needed

Pros & cons

Strengths

  • Enables cross-play
  • Works as plugin or proxy

Trade-offs

  • Some feature gaps
  • Needs pairing with Floodgate

GeyserMC replaces

Last reviewed Sep 13, 2026 · 878 words

Twenty minutes is a fair estimate for getting a Bedrock player on an iPad into your existing Java Paper server with Geyser, provided you do two things: open UDP port 19132, not TCP, and install Floodgate alongside it so Bedrock players do not need a paid Java account. Skip either one and you will spend an evening reading the wrong troubleshooting page. Geyser itself is a protocol translator, about 256 MB of RAM, and it changes nothing about the Java server it sits in front of.

Plugin mode is the right default for one server

Geyser ships in several forms: a plugin for Paper, Spigot and Fabric servers, a plugin for Velocity and BungeeCord proxies, and a standalone jar that runs as its own process. If you run one Paper server, drop Geyser-Spigot.jar and floodgate-spigot.jar into plugins/, restart, and Geyser listens on 19132/udp inside the same JVM. There is no second process to babysit and the config lives at plugins/Geyser-Spigot/config.yml.

Standalone mode is for when the Java server is not yours to modify, or when several servers hang off one proxy. It needs its own remote.address and remote.port in config.yml pointing at the Java server, and an auth-type that decides how Bedrock players are identified. If you run Pterodactyl or Crafty Controller, both have community eggs and templates for standalone Geyser, but plugin mode inside the existing server container is still fewer moving parts.

Floodgate is what makes cross-play free

Java Edition needs a Mojang or Microsoft account that owns Java. Bedrock players own Bedrock, usually on a console or phone. Without Floodgate, Geyser has to log each Bedrock player in with Java credentials, which means every player needs a second purchase. Floodgate lets the Java server trust Geyser's Xbox Live authentication instead, so Bedrock players join under their gamertag with a prefix (a dot by default, so .Steve) to avoid colliding with Java usernames.

The catalogue lists "needs pairing with Floodgate" as a con, and it is one in the sense of an extra jar and one config line (auth-type: floodgate). In practice nobody runs Geyser without it. Install both, and if you use a proxy install Floodgate on the proxy and on each backend server so the player identity survives server switches.

The Docker mistake is a one-character fix

Bedrock speaks RakNet over UDP. Every compose file that publishes 19132:19132 without /udp produces a server that Java players reach fine and Bedrock players cannot see at all, with no error anywhere:

services:
  paper:
    image: itzg/minecraft-server
    environment:
      - EULA=TRUE
      - TYPE=PAPER
      - PLUGINS=https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot,https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot
    ports:
      - "25565:25565"
      - "19132:19132/udp"

Remember that the same /udp applies to the router port-forward and to any cloud firewall rule. Consoles add one more wrinkle: Xbox, PlayStation and Switch cannot type a server address, so players need a DNS trick or the BedrockConnect method to reach a self-hosted server, and that is a client-side workaround Geyser documents but does not fix.

What does not translate, and how much it matters

Bedrock and Java are different games sharing a name. Geyser handles blocks, entities, inventories, chat, commands and most of vanilla play well enough that casual players do not notice. It cannot make Bedrock render Java resource packs or mod blocks, so a heavily modded Fabric server gives Bedrock players invisible or wrong blocks. Some inventory screens, sign editing and a handful of movement mechanics behave differently. Custom items from plugins like ItemsAdder need their own Geyser mappings.

For a survival or family server on Paper with normal plugins, the gaps are cosmetic. For a modpack server they are disqualifying, and the honest advice is that cross-play there is not a Geyser problem to solve. The project is MIT-licensed, 5,700 stars, and updates within days of each Minecraft release, which is the thing that matters most: an out-of-date Geyser stops working the day Bedrock auto-updates on everyone's phone.

Keeping it working across updates

Bedrock clients update automatically and often. Geyser's latest download tracks that, so plan to update the jar whenever a Bedrock version lands, and pin ViaVersion on the Java side if your Java server lags the current release. The itzg image's PLUGINS variable re-downloads on restart, which is convenient and also a way to pick up a broken build at 2 a.m.; on a server that matters, download to a local folder and update on your own schedule.

What I'd do

Paper server, Geyser and Floodgate as plugins, 19132/udp forwarded, . prefix left alone. Tell console players about BedrockConnect and accept it is clunky. Update Geyser the same week each Minecraft release ships. If your server is a Forge or Fabric modpack, do not promise cross-play at all; if it is vanilla-ish survival for family and friends, this is one of the more reliable things in the games category and there is no reason to run a separate Bedrock server anymore.

Similar game servers apps