Skip to content

How to Let Bedrock Players Join Your Java Minecraft Server

Turn on cross-play so phone, console and Windows Bedrock players can join the same Java world. Covers Geyser and Floodgate, which port Bedrock connects on, and the version limits that break it.

Level
intermediate
Read
10 min
Updated
By
Bradford

Minecraft ships as two separate games that cannot talk to each other. Java Edition runs on PC and is where mods and plugins live. Bedrock Edition runs on phones, tablets, consoles, and the Windows store version, and it speaks a completely different network protocol. Out of the box a Bedrock player simply cannot join a Java server, which is a problem when half your group is on a console. The fix is a translation layer that sits on the Java server and speaks Bedrock to anyone who connects that way. This guide explains how that works, how to switch it on from the LoafHub panel, and the two limits that catch people out.

Why the Two Editions Cannot Normally Connect

Java and Bedrock are different codebases with different network protocols, different world formats, and different account systems. A Bedrock client sending a connection request to a Java server is not speaking a language the server understands, so it fails before anything else can happen. Running “a Bedrock server and a Java server” does not solve it either, because those are two separate worlds with two separate sets of players.

Cross-play works by translating instead. Geyser sits on your Java server and accepts Bedrock connections, converting them into Java protocol on the fly, so a Bedrock player ends up as a normal player in your existing Java world. Floodgate is the companion piece that lets those players in without owning a Java account.

Note: Cross-play is non-destructive. Bedrock players join the world you already have, nothing is converted or replaced

Note: This runs on the Java server. There is no second world and no second server to keep in sync

Turning On Cross-play in the Panel

On Loafhosts this is one guided action rather than a manual plugin install. Open your server in the LoafHub panel and pick Cross-play from the sidebar, then enable it.

  1. Open your Java Minecraft server in the panel
  2. Choose Cross-play from the sidebar
  3. Enable it and let the job run

Behind the scenes the panel installs Geyser and Floodgate into your plugins folder, restarts once so Geyser writes its default config, patches that config so Bedrock uses your existing server port and so Floodgate handles authentication, and restarts again. It also installs ViaVersion and ViaBackwards by default, which lets Bedrock players connect even when your server is running an older Minecraft version than Geyser natively targets.

When the job finishes, the panel health-checks the result. If Geyser did not come up and bind properly, the enable is rolled back rather than left half-applied.

Tip: Leave ViaVersion and ViaBackwards enabled unless you have a specific reason not to, they are what make cross-play work on older server versions

Note: The server restarts twice during enable, once to generate the config and once to apply it. Warn your players first

Which Port Bedrock Players Use

This is the part people expect to be complicated and is not. Cross-play does not allocate a second port. Your server’s existing allocation already forwards both TCP and UDP, Java uses the TCP side, and Geyser binds the Bedrock listener to the UDP side of that same port.

Practically, that means your Bedrock players use the exact same address and port as your Java players. There is no separate Bedrock address to hand out and nothing extra to configure.

EditionAddressPort
JavaYour server addressYour normal server port
BedrockThe same addressThe same port

Tip: Bedrock’s Add Server screen has separate address and port boxes, make sure your players put the port in the port box rather than on the end of the address

Note: Because Bedrock runs over UDP on the same allocation, there is no extra firewall rule to add

Bedrock Accounts and Usernames

Floodgate is what allows a Bedrock player to join without owning a separate Java account, which is the difference between cross-play that works for everyone and cross-play that only works for people who bought the game twice.

Bedrock players arrive with a prefix on their username so the server can tell the two account systems apart and so a Bedrock name can never collide with a Java one. That prefix is normal and expected. It matters in one place: when you type a Bedrock player’s name into a command, you need the prefixed form the server actually knows them by.

Tip: If a command against a Bedrock player says the player was not found, check their exact in-server name, the prefix is part of it

Note: Whitelisting a Bedrock player uses the same prefixed name, so add them once they have connected and the server knows them

The Version Limit That Breaks Cross-play

The single most common cross-play failure has nothing to do with configuration. Geyser has to be updated to understand each new Minecraft release, and that update lands some time after the release itself. On a server running a Minecraft version newer than Geyser currently supports, Geyser does not degrade gracefully, it crashes on load.

Because of that, the panel blocks enabling cross-play on a server running a version newer than the supported ceiling, rather than letting you install something that will not start. If you hit that block, your options are to stay on a slightly older Minecraft version until support catches up, or wait before updating.

Warning: Updating your server to a brand new Minecraft version can break working cross-play. Check before you update if Bedrock players matter to you

Tip: The reverse direction is fine. Running an older server version is supported, which is exactly what the bundled ViaVersion is there for

What Bedrock Players Can and Cannot Do

Cross-play is a translation, not a merge, so a few differences are inherent rather than bugs.

WorksDoes not fully translate
Joining, moving, building, fighting in your Java worldSome custom Java resource packs
Server plugins that act on players, such as permissions and moderationJava-only client mods
Chat, commands, and the whitelistSome complex custom GUI menus, which may render differently
Your existing world, builds, and player dataJava-specific redstone timing edge cases

Anything server-side generally works, because by the time it reaches your plugins the Bedrock player is just a player. The rough edges are on the client side, where Bedrock has no equivalent for something Java offers.

Note: Inventory-based menus usually work but can look different on Bedrock, test any custom menu system with a Bedrock client before relying on it

Turning It Off Again

Disabling cross-play from the same page removes the jars it installed and its config directory, then restarts. It removes only the exact files it put there, so anything else in your plugins folder is untouched.

Note: Disabling removes the translation layer, not your players. Bedrock players simply cannot connect again until it is re-enabled

Warning: Bedrock players who joined via Floodgate keep their player data, but they cannot reach it while cross-play is off

Frequently Asked Questions

Can Bedrock and Java players play together on one server?

Yes, with a translation layer. Geyser accepts Bedrock connections on your Java server and converts them to Java protocol, and Floodgate lets those players in without a Java account. On Loafhosts you enable both in one action from the Cross-play page in your server’s sidebar.

What port do Bedrock players connect on?

The same one as your Java players. Cross-play does not allocate a second port; your existing allocation forwards both TCP and UDP, and the Bedrock listener binds to the UDP side of it. Give Bedrock players the same address and port you give everyone else.

Do Bedrock players need to buy Minecraft Java?

No. That is exactly the problem Floodgate solves. Bedrock players join with their Bedrock account and appear with a prefix on their username so the two account systems never collide.

Why can I not enable cross-play on my server?

Almost always because your server is running a Minecraft version newer than the translation layer currently supports. It crashes on unsupported versions rather than failing gracefully, so the panel blocks the install instead of letting you break the server. Stay on a slightly older version until support catches up.

Will cross-play convert or damage my world?

No. It is non-destructive. Bedrock players join the Java world you already have, exactly as it is, and nothing is converted. Take a backup before any change anyway.

Does cross-play work on modded servers?

It needs a Bukkit-derivative server such as Paper, Purpur, or Spigot. It is not available on Forge, NeoForge, Fabric, or Quilt, because the translation layer is a plugin rather than a mod.

Why does a command not find my Bedrock player?

Bedrock usernames carry a prefix so they cannot clash with Java names, and that prefix is part of the name the server knows. Use the exact name shown in the player list rather than the name they use on their device.

Rate this guide

Tap a star, it helps us decide what to write (and fix) next.