---
title: "Setting Up Geyser and Floodgate for Bedrock Cross-Play | ZCS"
description: "Bedrock players use a different protocol entirely, and Geyser is the translation layer that lets them join a Java server at all."
url: "https://www.zcraftstudios.com/blog/geyser-floodgate-bedrock-crossplay-setup"
updated: "2026-10-20T07:15:13.005688+00:00"
source: "ZCraft Studios"
---

> Site index for AI agents: https://www.zcraftstudios.com/llms.txt (full reference: https://www.zcraftstudios.com/llms-full.txt). Every page is available as Markdown by adding `.md` to its URL or sending `Accept: text/markdown`.

1. [Home](https://www.zcraftstudios.com/)
2. [Blog](https://www.zcraftstudios.com/blog)
3. Setting Up Geyser and Floodgate for Bedrock Cross-Play

[ All posts](https://www.zcraftstudios.com/blog)

# Setting Up Geyser and Floodgate for Bedrock Cross-Play

ZCraft StudiosOct 3, 2026Updated Oct 20, 2026

Bedrock players use a different protocol entirely, and Geyser is the translation layer that lets them join a Java server at all.

## In this guide

- [What Geyser and Floodgate Each Do](#what-geyser-and-floodgate-each-do)
- [Installing Both](#installing-both)
- [Configuring Geyser](#configuring-geyser)
- [Opening the Bedrock Port](#opening-the-bedrock-port)
- [Letting Players Connect](#letting-players-connect)
- [Handling Username Collisions](#handling-username-collisions)
- [A Few Things That Commonly Break](#a-few-things-that-commonly-break)
- [Cross-play verification](#cross-play-verification)
- [Separate reachability from account handling](#separate-reachability-from-account-handling)
- [Official documentation and links](#official-documentation-and-links)
- [A Bedrock join test that catches real incompatibilities](#a-bedrock-join-test-that-catches-real-incompatibilities)

## Setting Up Geyser and Floodgate for Bedrock Cross-Play

_Bedrock Edition (mobile, console, Windows 10/11) and Java Edition don't speak the same network protocol. Geyser is what bridges that gap._

Without Geyser, a Java server is simply invisible to Bedrock clients. The issue isn't an incompatible version: they use an entirely different protocol that a Java server has no native way to understand.

## What Geyser and Floodgate Each Do

**Geyser** translates the Bedrock protocol into something the Java server understands in real time, converting blocks, items, and movement on the fly.

**Floodgate** handles authentication for Bedrock players, letting them join without needing a linked Java (Microsoft) account. Without Floodgate, Bedrock players would need a premium Java account specifically, which most of them don't have.

## Installing Both

[GeyserA bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition.On Modrinth ](https://modrinth.com/plugin/geyser)

[FloodgateGeyser companion for Bedrock player authentication.On Official site ](https://geysermc.org/download/?project=floodgate)

Download Geyser from the project linked above. Check the supported Minecraft version, server platform, Java requirement and dependencies for the selected release.

1. Back up the server files and any plugin database.
2. Stop the server before changing JAR files. Put the compatible plugin build and its required dependencies in the correct plugin folder.
3. Start the server and read the startup log. Resolve missing dependencies or version errors before editing the generated configuration.
4. Stop the server, make one small configuration change, then restart and test it with a non-operator account.

Choose the build for the platform hosting Geyser. Use Floodgate only where the network’s authentication design requires it, and follow the official forwarding instructions.

## Configuring Geyser

`plugins/Geyser-Spigot/config.yml` has a few settings worth checking:

```
bedrock:
  port: 19132
  motd1: "Your Server Name"

remote:
  address: 127.0.0.1
  port: 25565
  auth-type: floodgate
```

`auth-type: floodgate` is what actually connects the two plugins. Without it, Geyser won't use Floodgate's authentication even if both are installed.

## Opening the Bedrock Port

Geyser listens on a **separate port** from the Java server (`19132` by default), and it uses UDP, not TCP:

```
sudo ufw allow 19132/udp
```

Forgetting this is the single most common reason Bedrock players can't connect even after both plugins are correctly installed. Java's port being open doesn't cover it.

## Letting Players Connect

Bedrock players add the server using the same IP as the Java server, but with port `19132` instead of the Java port. This goes in Minecraft's "Servers" tab on Bedrock, the same way a Java player would add a server IP.

## Handling Username Collisions

Floodgate prefixes Bedrock usernames (with a `.` by default) to avoid collisions with Java players using the same name. Some plugins that aren't Floodgate-aware may display this prefix in chat or scoreboards. Floodgate includes an API other plugins can use to strip it for display purposes, which some popular plugins already support natively.

## A Few Things That Commonly Break

- **Command blocks and advanced redstone** don't always translate perfectly, since Bedrock and Java have real mechanical differences the protocol bridge can't fully erase.
- **Custom resource packs** built for Java won't automatically work for Bedrock players; a separate Bedrock-format pack is needed if visual parity matters.
- **Forgetting the UDP vs. TCP distinction** when opening firewall rules is the most common setup failure after installation itself.

## Cross-play verification

Connect with both Java and Bedrock test clients. Verify movement, inventories, chat, skins, login behavior and plugin GUI interactions. Record which game and proxy versions were tested. Review the official Geyser and Floodgate documentation before changing authentication or firewall settings, and never promise exact feature parity across editions.

## Separate reachability from account handling

A Bedrock connection failure can happen before the player reaches authentication. Check the listener address, configured port and hosting support for the required transport first. Then inspect the bridge's logs and the chosen authentication mode. Keep Java and Bedrock tests separate so a working Java route does not obscure a broken bridge. If a client reaches the server but receives an account error, investigate identity handling rather than repeatedly opening additional ports.

Test the features that define your server on the actual Bedrock devices your players use. Inventory menus, custom models and combat interactions deserve more attention than a successful join alone. Record any differences in the onboarding guide. Check how permissions and punishments refer to the bridged account and verify consistent identity across backends. Before changing authentication settings, keep a recovery copy of player records that depend on those identities.

### Troubleshooting paths

- No connection: check listener and hosting network configuration.
- Join reaches authentication but fails: review bridge and account-mode documentation.
- Gameplay differs: test the specific feature on a real supported client.

\*

## Official documentation and links

- [Official project repository](https://github.com/GeyserMC/Geyser)
- [Cracked, Whitelisted, or Premium-Only: Picking a Minecraft Server Auth Model](https://www.zcraftstudios.com/blog/minecraft-server-authentication-methods)

[GeyserA bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition.On Modrinth ](https://modrinth.com/plugin/geyser)

## A Bedrock join test that catches real incompatibilities

Test from an actual Bedrock client on the supported version, not only from Java Edition. Verify the correct UDP listener is reachable; a working Java TCP port does not prove Bedrock connectivity. Check Floodgate identity handling and any proxy deployment separately.

Cross-play also affects gameplay expectations: off-hand behavior, user interfaces and certain combat interactions differ between editions. Test your most important menus and anti-cheat checks before advertising full compatibility.

## Continue reading

- [Setting Up ViaVersion for Cross-Version Compatibility](https://www.zcraftstudios.com/blog/viaversion-cross-version-setup)

[ Previous guide Sharing Player Data Across a Network With MySQL](https://www.zcraftstudios.com/blog/mysql-cross-server-player-data)[ Next guide PlaceholderAPI Setup: Install Expansions and Placeholders](https://www.zcraftstudios.com/blog/placeholderapi-setup-guide)
