DGuard

Geyser and Floodgate: letting Bedrock players onto a Java server

Geyser translates the Bedrock Edition protocol into Java Edition, so players on phones, consoles and Windows can join your Paper server. Floodgate lets them in without a paid Java account. That's two plugins and port 19132 — and then it pays to know what the bridge can't do and how the anticheat treats these players.

The DGuard team7 min read

In short: put Geyser-Spigot.jar in plugins/ on a Paper server or Geyser-Velocity.jar on the proxy, restart, and open Geyser's port — 19132 by default, now over both TCP and UDP. So that Bedrock players don't need a Java account, add Floodgate and switch auth-type in Geyser's config to floodgate. Geyser poses as a Java 26.3 client, so a server on another version, such as 1.21.11, has to accept those clients through ViaVersion.

How it works and where it goes

Geyser is a protocol translator between two different games. The Bedrock client connects to Geyser, and Geyser joins the Java server as a regular Java client. As of October 2026 it supports Bedrock 26.30–26.52 and Java 26.3; older Bedrock versions aren't supported — Bedrock updates itself on every platform.

WhereHowConditions
Paper / SpigotThe Geyser-Spigot plugin in plugins/Server 1.20.5 or newer, Java 21+. If the server isn't on 26.3, you need ViaVersion
Velocity / BungeeCordThe plugin on the proxy onlyThe proxy is up to date, and every server behind it accepts 26.3 clients (otherwise ViaVersion on them)
Fabric / NeoForgeThe Geyser modOnly a 26.3 server and only server-side mods
SeparatelyGeyser-Standalone or Geyser-ViaProxyWhen you can't install anything on the server itself
Based on the Setup and Supported versions pages of the GeyserMC wiki

On a network, Geyser goes on the proxy rather than on every server: that's where players connect. How a network is put together is in Velocity or BungeeCord and Velocity setup.

Installing on Paper

  1. 1

    Check the server version

    If the server isn't on 26.3, install ViaVersion first: without it Geyser, which presents itself as a 26.3 client, can't join.

  2. 2

    Install Geyser

    Download Geyser-Spigot.jar from the GeyserMC downloads page, put it in plugins/ and restart the server. plugins/Geyser-Spigot/config.yml will appear.

  3. 3

    Set the port

    Under bedrock: keep port: 19132 or choose your own. It can't be the Java server's port and must not be used by any other program, over TCP or UDP: voice chat, Query, a web map, a website.

  4. 4

    Open the port to the internet

    Forward Geyser's port over both TCP and UDP in your router and firewall. UDP used to be enough, but Bedrock now finds the server over TCP and plays over UDP: without TCP the server won't show up. If you can't open a port, the docs suggest a playit.gg tunnel; ngrok won't work because it doesn't do UDP. On a hosting plan the host usually assigns the port — GeyserMC keeps guides for many providers.

plugins/Geyser-Spigot/config.yml
bedrock:
  port: 19132
  transport: nethernet

transport: nethernet is fully supported from Bedrock 26.50. The docs also describe both — NetherNet plus RakNet: some versions, such as 26.40, fetch the MOTD and player count over RakNet. That mode needs a separate UDP port, webrtc-port, which you open too. General rules about ports and firewalls are in server IP and port.

Floodgate: no Java account needed

Without Floodgate, Geyser either authenticates the player with Mojang — so every Bedrock player needs a paid Java account — or joins an offline-mode server without authentication, which GeyserMC calls dangerous and against the EULA. Floodgate lets players in with their Microsoft Bedrock account, shows their skins to Java players, lets plugins send Bedrock forms, and links Bedrock and Java accounts.

  1. 1

    Install Floodgate

    Download Floodgate-Spigot.jar from the GeyserMC downloads page, put it in plugins/ and restart the server.

  2. 2

    Switch Geyser over

    Set auth-type: floodgate in Geyser's config and restart the server again.

  3. 3

    A network with a proxy

    Floodgate on the proxy is enough. On the servers behind it, only if plugins there need the Floodgate API: then you set up player info forwarding from the proxy, enable send-floodgate-data on the proxy, and copy key.pem to every server.

  • `key.pem` is a secret. The docs say it outright: never share it. Whoever has the key can join with Bedrock accounts and skip Java authentication.
  • Name prefix. Floodgate adds a prefix to Bedrock names so they can't clash with Java names: a dot by default (username-prefix: "."), and spaces become _.
  • Whitelist. Bedrock players are added with fwhitelist add <name> without the prefix; the permission is floodgate.command.fwhitelist. How the whitelist works is in OP and the whitelist.

What Geyser can't do

Bedrock and Java are different games with different code, and some gaps Geyser can't close. From its "Current limitations" list:

  • clickable links in chat and the glowing effect;
  • telling left and right clicks apart in inventories;
  • anything that relies on tab completion or typing in the chat screen, and arguments of commands that don't use the Brigadier library;
  • more than 6 banner layers, custom anvil and smithing recipes, custom enchantments;
  • movement around bamboo, because of offset differences between the editions; the Hurricane plugin works around it;
  • heights below −512 and above 512 in the overworld;
  • gliding without elytra and custom elytra, and a different maximum sign length.

Some differences — armor stand poses, hit particles, offhand animations, scoreboard width — are fixed by GeyserIntegratedPack, a resource pack that ships with Geyser. Before you open, test your key mechanics from a Bedrock client: click-based menus, commands with suggestions, custom items.

Geyser and the anticheat

A Bedrock client moves and fights by its own physics, and an anticheat built for the Java client may read the difference as a cheat. GeyserMC keeps a community list of anticheat compatibility in three groups: checks Bedrock players accurately; doesn't check or ignores them; false positives. The authors note that the list is community-compiled and not an endorsement. Why false bans happen at all is in false bans.

DGuard — the best anticheat for a modern Minecraft server — makes exceptions for Bedrock players coming through Floodgate. Java players it checks on every front: combat, movement, packets, inventory, building and the world. DGuard works behind Velocity and BungeeCord and checks 1.21–26.x clients joining through ViaVersion. If you let Bedrock players into a network with a proxy, ask support how best to set up Floodgate for your layout.

FAQ

Can I join a Java Minecraft server from a phone?

Yes, if the owner has installed Geyser: a Bedrock client on a phone, console or Windows connects to Geyser's port, 19132 by default. With Floodgate no Java account is needed.

Which port does Geyser need?

The one in bedrock.port in Geyser's config, 19132 by default — over both TCP and UDP. It can't be the Java server's port.

Do I need Floodgate?

Only if Bedrock players should join without a paid Java account. Without Floodgate, Geyser authenticates them with Mojang, and each of them needs a Java account.

Why won't Geyser join my 1.21.11 server?

Geyser presents itself as a Java 26.3 client. A server on another version has to accept such clients — that's what ViaVersion on the server is for.

How does an anticheat treat Bedrock players?

It varies: GeyserMC keeps a community list of anticheat compatibility. DGuard makes exceptions for Bedrock players coming through Floodgate.

Sources

All sections

Run the best anticheat for modern Minecraft

DGuard catches all 47 kinds of cheats in our comparison — the closest rival, Intave, has 27. Full protection on every plan, free up to 30 players online.