Skip to content
← Blog
·5 min read

Java and Bedrock Crossplay: A Practical Geyser and Floodgate Checklist

Plan Minecraft crossplay without confusing protocol support, authentication, account identity, permissions, and Bedrock-friendly plugin behavior.

geyserfloodgatebedrockservercrossplay

Fabricio Souza

Founder, GeneX Plugins · 7+ years building Minecraft plugins

About →

Opening a Java server to Bedrock players can bring a community together. The difficult part is making those players' permissions, purchases, inventories, and menus behave consistently after they join.

Before you install anything, separate three questions: can the client connect, how is the account authenticated, and do your server features work for that player?

Geyser's supported-version documentation explains the protocol versions its current builds accept and the Java client version they emulate. Floodgate's setup documentation covers its authentication integration. Read the current pages when you deploy; compatibility ranges can change between this article's publication and your next server update.

Choose a deployment shape before installing plugins

Decide whether Geyser belongs on your single Paper server or at the entry point of a server network. Follow the official setup guide for the platform you actually use.

Draw the connection path in plain text before changing configuration:

Bedrock player -> Geyser entry point -> Java server
Java player   -> Java entry point   -> Java server

For a network, add the proxy and backend servers to that diagram. Record which component authenticates the player and which address each component connects to. If you cannot explain that path, troubleshoot it before adding more plugins.

Check your host's networking controls as well as Minecraft's configuration. The setup guide distinguishes Bedrock's UDP listener from the usual Java connection path. A port being available for one protocol does not prove it is reachable for the other.

Confirm protocol support for the entire path

Treat compatibility as a chain. Your Bedrock client, Geyser build, Java target, and any protocol translation plugin must agree on a supported route.

When a new Minecraft release appears, do not infer support from the release number alone. Verify the current Geyser compatibility page and the documentation for your chosen platform. A workaround described for one deployment type may not apply to another.

If you get an outdated-client message, capture the relevant versions before changing anything. Update one component at a time on a test deployment and keep the last working combination recorded.

Decide how Bedrock accounts enter the server

Floodgate is useful when your intended setup authenticates Bedrock players without requiring them to own a Java account. Configure the integration according to the Floodgate setup guide, including its authentication mode and key handling.

Keep authentication keys private and copy them only where the official setup requires them. Do not solve a connection problem by making an authenticated Java entry point generally accept unverified identities.

Document the account model for players. Are Java and Bedrock progress separate? Can users link accounts? What happens to existing permissions or purchased ranks after linking? Make those decisions before advertising the server as ready.

Use stable identities for valuable player data

Audit plugins that store balances, claims, punishments, inventories, or purchases. Determine which identity each integration uses and whether it supports your crossplay configuration.

Display names are convenient for a chat message, but they are a poor foundation for a custom account database. If a custom feature currently uses only player names, review its identity design before allowing account linking or renaming.

Geyser's Floodgate linking documentation describes linking options. Test the exact option you choose with disposable accounts and test data. Confirm which account state your own integrations should retain rather than assuming linking will merge every plugin's database automatically.

Test the features that look different on Bedrock

Prepare a small acceptance checklist for both editions:

FeatureWhat to verify
LoginCorrect account identity and permissions
MenusButtons, confirmation steps, item movement and closing behavior
EconomyEarn, buy, sell, reconnect and restart
ProtectionClaim rules and permission boundaries
ModerationChat behavior, punishments and relevant anti-cheat rules
Custom contentIntended appearance and interaction on each client

Test on a real Bedrock client using your expected input method. A feature looking correct to a Java administrator does not establish that a mobile player can use it comfortably.

Use a test player without elevated permissions. Check failure cases too: insufficient funds, an expired menu, a denied action, and a disconnect during an interaction.

Launch crossplay in stages

Start with a small group and a written list of supported client and server combinations. Explain account linking and any known feature limitations clearly. Keep a way to temporarily stop new crossplay connections while investigating a problem, without modifying existing player data in a panic.

If you are adding a proxy network, our Velocity setup guide provides useful background. If a custom menu or account integration needs crossplay-specific behavior, describe it in a custom order with the intended platforms and acceptance tests.

The best crossplay launch is one where connecting is easy and progress remains predictable after the player reconnects tomorrow.

Last updated . Spotted a mistake? Let us know.