Sale 40% off 109 products · ends Oct 15, 2026 Shop the sale

Geyser and Floodgate: Let Bedrock Players Join Your Java Server

Install Geyser and Floodgate on a Paper server, open the right UDP port, and fix the usual problems with usernames, skins and plugins, so Bedrock players can join your Java server.

zArrowTan Resources Oct 3, 2026 6 min read
On this page
  1. How Geyser and Floodgate fit together
  2. Check versions before you install
  3. Install Geyser and Floodgate on Paper
  4. Open the right port (UDP, not TCP)
  5. Usernames: the prefix, spaces and commands
  6. Plugins that need care with Bedrock players
  7. Permissions
  8. Login and authentication plugins
  9. Mods and resource packs
  10. Offhand and menus
  11. Account linking and shared progress
  12. Quick fixes when Bedrock players cannot join

Key takeaways

5
  • Geyser translates Bedrock to Java; add Floodgate so Bedrock players need only a Microsoft account.
  • Open Geyser's port (default 19132) for UDP, not just the Java TCP port.
  • Set auth-type to floodgate in Geyser's config after installing Floodgate.
  • Bedrock names get a prefix (default .), so use it in commands and set allow-invalid-usernames in LuckPerms.
  • Never share Floodgate's key.pem; on proxy setups, install Floodgate on the proxy and each backend and copy the key to every backend.

This guide is for server owners who run a Java server and want Bedrock players (phone, tablet, Windows Bedrock, some consoles) to join without buying a second copy of the game. By the end you will have Geyser and Floodgate running, the right port open, and a short checklist for when a plugin acts strangely with Bedrock players.

How Geyser and Floodgate fit together

Geyser is a bridge. It translates network packets between Bedrock Edition and Java Edition, so a Bedrock client can join a Java server. It runs as a plugin or mod on Paper, Spigot, Velocity, BungeeCord, Fabric and NeoForge, and its Modrinth page lists it as free and open source (MIT).

Floodgate is the companion. Without it, every Bedrock player would need a Java account to pass online-mode checks. With it, Bedrock players sign in with their Microsoft account only. Floodgate also lets Java players see Bedrock skins, and plugins can use its API to send Bedrock forms.

You can run Geyser alone, but if your server is in online mode and you want Bedrock players without Java accounts, you need both.

Check versions before you install

Geyser emulates one Java client version. On its wiki, Geyser supports Bedrock 26.30 to 26.52 and Java 26.2 (as of 3 October 2026). Bedrock updates itself on every platform, so Geyser does not support old Bedrock versions.

  • Server older than 26.2: add ViaVersion to the backend server (or use a proxy setup with it), so the 26.2 client Geyser emulates can connect.
  • Paper or Spigot on 1.20.5 or newer: needs Java 21 or later.
  • Standalone Geyser: also needs Java 21 or later.

Install Geyser and Floodgate on Paper

The plugin route is the simplest. Get the Geyser and Floodgate plugin jars for your platform from the project pages listed above (Modrinth for Geyser, Hangar for Floodgate), or follow the links on the official Geyser wikiSource site, and put both in your plugins folder. Pick the steps for how you run your server.

  1. Stop the server, then upload the Geyser and Floodgate jars into the plugins folder (SFTP, or wget with the file link from the project page).
  2. Check java -version reports 21 or newer.
  3. Start the server once so both plugins create their config folders.
  4. Edit Geyser's config.yml and set auth-type: floodgate, then restart.
  1. Open the Console and stop the server.
  2. In the File Manager, open plugins and upload both jars (or use SFTP).
  3. Check the Java version in the Startup tab. The Docker image sets it, and if you need Java 21 and the list lacks it, ask your host.
  4. Start the server, let both plugins generate their configs, then edit Geyser's config.yml in the File Manager, set auth-type: floodgate, and restart.
  1. Stop the server from the panel, then open the Files / FTP page and upload both jars into plugins.
  2. Start the server once so the configs appear, edit Geyser's config.yml to auth-type: floodgate, and restart. Ask your host if you cannot choose a Java 21 setup.

On a proxy (Velocity or BungeeCord), install Geyser on the proxy, and install Floodgate on the proxy plus each backend server that needs it. Then enable player information forwarding on Velocity (or ip_forward on BungeeCord), set bungeecord to true in spigot.yml on the backends, turn on send-floodgate-data in Floodgate's proxy config, and copy key.pem from the proxy to the Floodgate folder on every backend server.

Open the right port (UDP, not TCP)

Bedrock connects over UDP. Geyser's default is port: 19132 in the bedrock section of its config, with address: 0.0.0.0. Your Java port (usually 25565) is TCP and does not help here.

  • Open the Geyser port for UDP in your firewall and, if you host at home, your router.
  • Voice chat or query plugins that use UDP cannot share the same port as Geyser.
  • If your host only gives you one port, set clone-remote-port: true so Geyser uses the Java port number. The config default is false.
  • Some hosts do not open UDP ports at all. Ask them, or look at a UDP-capable tunnel such as playit.gg (Ngrok is TCP only and does not work).

On a Pterodactyl or Multicraft host, the ports you can use are set by your host, so ask for an extra UDP port if the panel only shows the Java one.

iTitan Hosting

Partner Need a server? Use code ARROWTAN for 15% off at iTitan.

Test it with geyser connectiontest <ip> <port> in the console. Bedrock players then add a server with your IP and the Geyser port. Some consoles do not show custom servers in the server list, so check the Geyser wiki for the current options for those.

Usernames: the prefix, spaces and commands

Floodgate gives Bedrock players a prefix on their name so they cannot clash with Java names. Two config keys matter: username-prefix (default .) and replace-spaces (default true, which turns spaces in Bedrock gamertags into underscores).

  • Include the prefix in commands: /tp .SomeGamertag.
  • If you choose a prefix like *, wrap the name in quotes in commands: /tp "*SomeGamertag".
  • If a prefix change does not show up for returning players on certain Paper builds, delete usercache.json from the server root and restart.

If Paper rejects Bedrock logins with "Failed to verify username!", the Floodgate docs suggest turning off perform-username-validation in config/paper-global.yml (under unsupported settings), or running Floodgate on the backend servers.

Plugins that need care with Bedrock players

Permissions

The Floodgate docs say prefixed usernames conflict with LuckPerms, and the fix is to set allow-invalid-usernames to true in LuckPerms' config. See our LuckPerms ranks guide for building the groups themselves.

Login and authentication plugins

Plugins that handle logins or premium checks can interfere with Floodgate. The Geyser FAQ keeps a list of authentication plugins that conflict, so check it before adding one. Floodgate also cannot run on Forge or Fabric hybrid servers such as Magma or Mohist, so use a proxy there.

Mods and resource packs

If a vanilla Java client can join, Geyser can too. Servers that need client-side mods will not work, because Geyser cannot translate modded blocks and items. Java resource packs are not converted automatically.

Offhand and menus

Players can use /geyser offhand to put an item in their offhand. If chat commands freeze for some Bedrock players, try turning off command-suggestions in Geyser's config.

Account linking and shared progress

By default, Bedrock players get their own player data under their prefixed name. Floodgate's linking connects a Bedrock account to a Java account. It offers global linking (a central service, on by default) and local linking (SQLite or MySQL on your server). Players run /linkaccount on one platform and /linkaccount <code> on the other.

Quick fixes when Bedrock players cannot join

SymptomCheck this
Stuck on "Locating server"Update Java. On poor networks, lower advanced.bedrock.mtu in 100 steps.
"Unable to connect to world"Make sure advanced.java.use-haproxy-protocol is false unless you use a reverse proxy.
"Address already in use"Another program (often a second Geyser) holds that port.
Domain does not resolveBedrock does not support SRV records. Use an IPv4 address and the port.
Encryption packet errorsCheck Floodgate config and key.pem, and that Geyser and the server share the same online or offline mode.
Class file version 65.0 errorUpdate to Java 21.

After any change to Geyser's config, geyser reload works but kicks every connected player, so schedule it. If you need help, geyser dump creates the debug report the Geyser team asks for.

The official docs live on the Geyser wikiSource site, and they are the place to check when versions move on.

Frequently asked questions

Do Bedrock players need a Java account to join my server?

Not if you run Floodgate alongside Geyser and set Geyser's auth-type to floodgate. Bedrock players then sign in with their Microsoft account only. Without Floodgate, your server's online mode would require a Java account.

What port does Geyser use?

Geyser's default is port 19132, and it must be open for UDP. Your Java port is TCP, so opening only that one will not let Bedrock players in. If your host gives you a single port, the config option clone-remote-port makes Geyser use the Java port number.

Why do Bedrock players have a dot before their name?

That is Floodgate's username-prefix, which defaults to a dot. It keeps Bedrock names from clashing with Java names. Include it in commands, or change the prefix in Floodgate's config.

Can Bedrock players use Java mods or resource packs?

Geyser can only serve what a vanilla Java client can join, so servers that need client-side mods will not work. Java resource packs are not converted automatically, so you would convert them yourself.

Does Geyser work if my server is on an older Minecraft version?

Geyser emulates a single Java client version (26.2 at the time of writing), so older servers need ViaVersion so that client can connect. Check Geyser's supported versions page after each Minecraft update.

Share this post

Other plugins mentioned

Related posts

© zArrowTan Resources 2026
Forked and customised by zArrowTan · Powered by Light Store