Bedrock and Java together, Geyser and Floodgate setup honestly reviewed
Bedrock and Java together, Geyser and Floodgate setup honestly reviewed
Java and Bedrock are different games. Different protocols, different physics, different inventory mechanics, different command behavior. They look the same on the surface, but under the hood, they are independent products.
Geyser and Floodgate, two projects from the GeyserMC team, let Bedrock players join Java servers. They work better than you'd expect and worse than the marketing suggests. This article tells you when they're worth setting up and when they aren't.
What each one does, visualized
Geyser is a protocol translator. It listens on a Bedrock port, accepts Bedrock connections, and translates the packets to Java protocol on the fly. From the Java server's perspective, the Bedrock player looks like a slightly-quirky Java player.
Floodgate is an authentication bridge. Bedrock players are authenticated through Microsoft / Xbox Live, not Minecraft's Java auth. Floodgate accepts their auth tokens and creates "FloodgateUUID" players that the Java server can recognize.
You almost always run both together. Geyser alone requires Bedrock players to have a paid Java account. Floodgate eliminates that.
What works well
For the most part, Bedrock players can:
- Join the server, walk around, place and break blocks.
- Interact with most chests and inventories.
- Use most commands.
- See chat messages, send chat messages.
- Mine, craft, fight mobs.
- Build coherently with Java players.
- Play on most plugins (chat, economy, basic claims, vanilla-style gameplay).
For a casual SMP, Geyser + Floodgate is a near-magical experience. Your phone-using friend can play with your Java-using friend, on the same world, fairly seamlessly.
What doesn't work well
A non-trivial list:
| Area | Reality |
|---|---|
| Inventory layouts | Bedrock has different recipes, stack sizes, crafting UI. Plugin GUIs may misrender. |
| PvP combat | Java has 1.9 attack-cooldown. Bedrock has no cooldown. Mixed PvP is unbalanced. |
| Redstone | Bedrock timing differs from Java. Builds may behave oddly. |
| Custom resource packs | Java packs don't transfer fully. Bedrock players see vanilla textures for many custom items. |
| Command-block adventures | Many break or behave oddly for Bedrock players. |
| Anti-cheat plugins | Frequently false-positive on Bedrock players. |
| Cosmetic / GUI plugins | Often unusable, click events don't translate. |
If your server is a casual survival with vanilla-ish gameplay, this list barely affects you. If your server is a competitive minigame or a tightly-tuned PvP arena, this list is a dealbreaker.
Installation: the short version
Geyser can run in three modes:
- As a Spigot/Paper plugin. Easiest. One server, two ports.
- As a Bungee/Velocity plugin. Good for networks.
- As a standalone proxy. Most flexible, most setup.
For a single Paper server hosting a Bedrock-friendly community, the plugin install is the right choice.
- Download Geyser-Spigot.jar from the Geyser releases page.
- Download Floodgate-Spigot.jar from the GeyserMC releases page.
- Drop both in
plugins/. - Restart the server.
- Both plugins generate config files in
plugins/Geyser-Spigot/andplugins/floodgate/.
In Geyser config:
bedrock:
port: 19132
motd1: "Your server name"
remote:
address: auto
port: 25565
The bedrock port (19132) is what Bedrock players connect to. The remote section is how Geyser reaches your Java server (auto means "same machine, look up the port").
For Floodgate, the defaults are usually fine. The plugin generates a key file (key.pem) which Geyser needs to read; in plugin mode, this happens automatically.
Networking
You need to open the Bedrock UDP port (default 19132). This is in addition to your usual Java TCP port (25565). On most paid hosts, you request the extra port through your panel.
Players connect:
- Java:
play.yourserver.comon port 25565. - Bedrock:
play.yourserver.comon port 19132 (often configured in their game's server list).
If you have a custom domain, you can add a Bedrock-friendly SRV record so Bedrock players don't have to type the port:
_minecraft._udp.bedrock.yourserver.com SRV 0 10 19132 host.yourserver.com
(Note: Bedrock's SRV behavior is unique. Read the GeyserMC docs for the latest.)
Authentication trade-offs
Floodgate creates Bedrock players with "Bedrock-style" UUIDs that are distinct from Java UUIDs.
This matters because:
- A Java player and a Bedrock player are different players to your plugins, even if they're the same human. Permissions, balances, claims are tracked separately.
- If a player switches platforms, they don't carry over.
You can pair this with a "link" plugin (LinkedAccounts and similar) that lets a player connect their Java and Bedrock accounts, but it's an extra step.
Most servers just accept this. "If you play on Bedrock, your save is your Bedrock save. Same for Java." Simple, no edge cases.
Performance considerations
Geyser adds some CPU overhead on the host. Translating packets in real time isn't free. For a single-digit Bedrock player count, the overhead is negligible. For 20+ Bedrock players, you'll notice it.
Tips:
- Run Geyser on the same host as Paper for lowest latency. Cross-host networking adds delay.
- Consider running Geyser as a standalone proxy on a separate machine for very large servers.
- Keep Geyser updated. Performance improves regularly with new releases.
Common problems and fixes
Bedrock players can't connect.
- Confirm UDP port is open on the host's firewall.
- Confirm Geyser is listening on the right port (
netstat -an | grep 19132). - On console editions, connecting to third-party "external" servers may require enabling third-party servers in the Xbox or PlayStation account settings. On mobile and Windows, players use the "Add Server" option directly.
Bedrock players see different blocks / textures.
- Geyser uses Bedrock vanilla textures by default for everything. Custom Java resource packs don't transfer.
- Consider creating a parallel Bedrock resource pack and using Geyser's pack-pushing config to send it.
Chat from Bedrock shows up garbled or with weird formatting.
- Some color codes don't translate. Use only colors Bedrock supports if you want consistent chat.
Plugin commands don't work for Bedrock players.
- Many slash-command UIs depend on Java-specific input. Bedrock players may need to type commands fully or use plugins that don't rely on click-to-execute.
Floodgate prefix everywhere.
- By default Floodgate prefixes Bedrock usernames with
.(e.g.,.Steve). This can interact oddly with some plugins. Configure infloodgate/config.yml.
When to bother
Use Geyser + Floodgate if:
- Your community has casual Bedrock players you'd lose otherwise.
- You're running a survival or casual SMP.
- You're willing to accept the limitations on PvP / redstone / plugins.
Don't bother if:
- You're running a competitive Java-specific server.
- Your community is 100 percent Java already.
- You don't want to maintain another integration.
Should you install it? Decision tree
A working example
Real config we run on a casual SMP, edited slightly for clarity:
bedrock:
address: 0.0.0.0
port: 19132
motd1: "MyServer"
motd2: "Bedrock + Java together"
server-name: "MyServer"
compression-level: 6
remote:
address: auto
port: 25565
auth-type: floodgate
floodgate-key-file: key.pem
With Floodgate's default config, this lets a Bedrock player on a phone join the same world as a Java player on a PC. They can build together. The Bedrock player has the . prefix; we don't bother changing it.
Conclusion
Geyser and Floodgate are great tools and well worth setting up for casual cross-platform servers. They are not magic, and they don't make a Java server feel native to Bedrock players. Understand the limits before you commit, and your community gets a real cross-play experience that mostly works.
Hosting your game server with AndroHost means we handle most of what's in this post for you automatically: tier sizing, SRV records, off-site backups, DDoS protection.
Keep reading
CPU vs GPU, a plain-English guide to how chips do math
What CPUs and GPUs actually do when they crunch numbers, why the differences matter, and how to pick the right chip for a workload.
Using your AndroHost database with plugins like LuckPerms
Every paid AndroHost server includes a real MariaDB database for plugins that need one. Here is how to set it up and connect.
Adding voice chat to your Minecraft server (Simple Voice Chat plugin)
The most requested addon for Minecraft community servers in 2026 is Simple Voice Chat (SVC) — the plugin that gives proximity-based voice (you hear players based on distance, like real life, like in DayZ or Rust). It works on Paper, Purp...