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.
- Open your Java Minecraft server in the panel
- Choose Cross-play from the sidebar
- 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.
| Edition | Address | Port |
|---|---|---|
| Java | Your server address | Your normal server port |
| Bedrock | The same address | The 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.
| Works | Does not fully translate |
|---|---|
| Joining, moving, building, fighting in your Java world | Some custom Java resource packs |
| Server plugins that act on players, such as permissions and moderation | Java-only client mods |
| Chat, commands, and the whitelist | Some complex custom GUI menus, which may render differently |
| Your existing world, builds, and player data | Java-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.