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.
| Where | How | Conditions |
|---|---|---|
| Paper / Spigot | The 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 / BungeeCord | The plugin on the proxy only | The proxy is up to date, and every server behind it accepts 26.3 clients (otherwise ViaVersion on them) |
| Fabric / NeoForge | The Geyser mod | Only a 26.3 server and only server-side mods |
| Separately | Geyser-Standalone or Geyser-ViaProxy | When you can't install anything on the server itself |
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
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
Install Geyser
Download
Geyser-Spigot.jarfrom the GeyserMC downloads page, put it inplugins/and restart the server.plugins/Geyser-Spigot/config.ymlwill appear. - 3
Set the port
Under
bedrock:keepport: 19132or 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
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.
bedrock:
port: 19132
transport: nethernettransport: 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
Install Floodgate
Download
Floodgate-Spigot.jarfrom the GeyserMC downloads page, put it inplugins/and restart the server. - 2
Switch Geyser over
Set
auth-type: floodgatein Geyser's config and restart the server again. - 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-dataon the proxy, and copykey.pemto 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 isfloodgate.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
- GeyserMC: what Geyser is
- GeyserMC: setup
- GeyserMC: supported versions
- GeyserMC: current limitations
- GeyserMC: chat signing
- GeyserMC: anticheat compatibility
- GeyserMC: FAQ
- Floodgate: overview
- Floodgate: setup
- Floodgate: default config.yml
- DGuard, the best anticheat for a modern Minecraft server: checks compared with GrimAC, Vulcan, Polar, Intave and Matrix
- DGuard: installation, requirements and troubleshooting
- DGuard: supported Paper and Leaf versions