Yes, Minecraft can be played cross-platform, but Java Edition and Bedrock Edition do not connect to one another natively. The dependable workaround is a Java server running the Geyser bridge and Floodgate authentication plugin. Geyser translates Bedrock network traffic for the Java server, while Floodgate lets Bedrock players sign in without owning a Java Edition account. You must also expose a Bedrock UDP port; opening only the usual Java TCP port is not enough.
Playing with friends? Godlike.Host runs hosted Minecraft Java servers from 10 data-center locations, with free DDoS protection.
What “cross-platform” means in Minecraft
Minecraft has two separate editions with different networking and account systems. Java Edition runs on Windows, macOS and Linux computers. Bedrock Edition is the version used on Windows, mobile devices and consoles. Players on the same edition can normally join a server built for that edition, but a standard Java server does not understand a Bedrock client’s connection.
As an Amazon Associate I earn from qualifying purchases.
Free tools Windows power users keep installed
One-click scans. No signup required.
| Server or client | Native compatibility | What is required for Java–Bedrock play |
|---|---|---|
| Java server and Java client | Yes | Normal Java server setup |
| Bedrock server and Bedrock client | Yes | Normal Bedrock Dedicated Server setup |
| Java server and Bedrock client | No | Geyser plus Floodgate, and a Bedrock UDP port |
| Bedrock server and Java client | No native route described here | The documented setup in this guide does not provide Java access to a Bedrock Dedicated Server |
Therefore, “Minecraft crossplay” is not a switch in the game’s ordinary multiplayer menu. It is an additional translation layer placed in front of a Java server. The server remains a Java server; Bedrock players enter through Geyser.
How Geyser and Floodgate work together
Geyser translates the connection
Geyser accepts a Bedrock client connection and translates it into the protocol a Java server expects. The Java server still handles worlds, plugins, permissions and gameplay. Geyser is the part that makes a Bedrock client understandable to that server.
#1 Best Overall
- Play and share with friends on console, mobile and Windows 10
- discover community creations in the new in-game store
- access new mini games and game modes through servers
Floodgate handles Bedrock authentication
Floodgate allows Bedrock players to join without authenticating as Java Edition users. It is an authentication companion to Geyser, not a replacement for it. A public Java–Bedrock server normally needs both plugins.
Floodgate changes how Bedrock names appear to the Java server. A dot prefix is used by default, so a Bedrock player named Alex may appear as .Alex. That prefix matters when you create a whitelist, assign permissions or inspect logs. Always use the server-visible name, including the prefix, in those systems.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteWhat you need before starting
- A working Java server that players can already join over TCP, normally on port
25565. - A server implementation supported by Geyser-Spigot: Paper, Spigot, Purpur, Pufferfish or Folia.
- The current Geyser and Floodgate plugin jars downloaded from the official GeyserMC distribution.
- Permission to open an additional incoming UDP port in your host firewall, router or hosting panel.
- A Bedrock client and a Java client for testing, ideally on a network different from the server.
- Console or file access so you can stop the server and edit its generated configuration safely.
Geyser-Spigot is not designed for a vanilla server, and the documented setup does not support Forge or Fabric servers. If your existing installation uses one of those, use a supported server implementation or choose a different architecture before installing plugins.
Set up crossplay on a Paper or Spigot server
1. Confirm the Java server first
Start the Java server without Geyser and verify that a Java client can connect. Resolve ordinary problems—such as an incorrect address, a blocked TCP port or a failed server startup—before adding crossplay. This isolates Java-server problems from Bedrock-bridge problems.
2. Install both plugins
- Stop the server if it is running.
- Download the Geyser plugin build for your server software and the matching Floodgate plugin from the official GeyserMC site.
- Copy both jar files into the server’s
pluginsdirectory. Do not put them in the root directory or in a client-side mods folder. - Start the server once. Geyser and Floodgate create their configuration folders and files during this startup.
- Stop the server again before editing any generated file.
Editing while the server is running can be overwritten when it shuts down. A clean stop also makes it easier to see configuration errors on the next start.
3. Point Geyser at the Java listener
Open Geyser’s generated configuration and find the section named remote. Some Geyser versions label the same section java, so use the name present in your generated file rather than creating a second section. Set the Java server address and port that Geyser should use, then select Floodgate authentication.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Rank #2
remote:
address: 127.0.0.1
port: 25565
auth-type: floodgate
The snippet shows the settings conceptually; keep the surrounding options generated by your installed version. If Geyser and the Java server run on the same machine, 127.0.0.1 is commonly appropriate. If they are separated, use the reachable private or public address of the Java server instead. A configuration section called java uses the same values under that section.
4. Choose the Bedrock port
Bedrock traffic uses UDP. You can make Geyser reuse the Java port number or assign a separate Bedrock allocation.
- Reuse the Java number: set
clone-remote-port: true. Geyser listens on the same number as the Java server, but Bedrock still reaches it over UDP. - Use a separate allocation: leave cloning disabled and set the chosen number under the
bedrocksection’sportvalue. Shared hosts often offer an extra allocation for this purpose.
A typical generated configuration may contain settings like these:
bedrock:
port: 19132
clone-remote-port: false
Do not assume 19132 is available on a shared host. It is a common default, and another service may already occupy it. If you receive a bind or allocation error, choose an unused port supplied by the host.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
5. Open the port as UDP
Allow the selected Bedrock port through every network layer between the player and the server:
- The operating system firewall on the server.
- Your home router’s port-forwarding rule, if the server is behind a residential connection.
- The game-host control panel or external firewall, if you rent the server.
Specify UDP, not only TCP. Opening TCP 25565 proves that Java can connect, but it does not make a Bedrock listener reachable. If you reuse the Java number, create the UDP rule in addition to the existing Java TCP rule.
Rank #3
6. Restart and inspect the startup log
Start the server after saving the configuration. Look for messages showing that Geyser loaded, Floodgate loaded, the Java remote connection was accepted and the Bedrock listener bound to the selected port. A configuration parse error, an occupied port or a missing dependency should be fixed before testing from a client.
7. Run a connection test, then join from Bedrock
Some Geyser versions provide the console command geyser connectiontest. Run it if your installed build lists that command, and treat its result as a first diagnostic rather than a substitute for a real client test.
From a Bedrock client, add a server using the public address and the Bedrock UDP port—not necessarily the Java port. A Java player continues to use the normal Java address and TCP port. If both clients can enter the same world, test chat, movement, inventory, commands and any installed gameplay plugins before inviting a larger group.
Proxy networks: where Floodgate must be installed
Networks using BungeeCord, Waterfall or Velocity handle authentication at the proxy layer. In that architecture, install Floodgate on the proxy and on every Spigot backend that receives player connections. Enable the proxy’s IP forwarding and set bungeecord: true in each backend’s spigot.yml.
Install and configure Geyser at the network entry point that accepts Bedrock traffic, following the proxy-specific instructions for your software. A common failure is installing Floodgate only on one backend: the proxy authenticates the Bedrock player, but the destination server cannot interpret the forwarded identity. Keep the Floodgate setup consistent across the proxy and all participating backends.
Whitelists, permissions and player names
Because Floodgate adds a dot prefix to Bedrock usernames by default, Java-side administration must use the prefixed name. For example, if the Bedrock account is displayed as .Builder42, add .Builder42 to the whitelist rather than Builder42. Apply the same rule when granting operator status or plugin permissions.
Rank #4
- Play and share with friends on console, mobile and Windows 10
- discover community creations in the new in-game store
- access new mini games and game modes through servers
Check the console after the first Bedrock login and copy the exact name shown there. Names can also be affected by your server’s existing username and permission plugins, so test a normal player account before handing out elevated permissions.
Version compatibility and configuration caveats
Geyser tracks the newest Java protocol. If your Paper or Spigot server is older than the Java version Geyser expects, install ViaVersion as appropriate for that server so it can accept the protocol range. Check the compatibility notes for the exact Geyser build and your server version rather than relying on a generic version number.
Configuration keys have changed names across Geyser releases. The Java destination may be under remote in one release and java in another. Always edit the file generated by the installed release and preserve its spelling, indentation and surrounding options.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Do not rely on unverified claims that a particular future Java release connects natively without a bridge. The safe assumption for a Java–Bedrock server remains that Geyser and Floodgate are required unless the installed release documentation explicitly says otherwise.
Some older hosting guides also recommend setting enforce-secure-profile=false in server.properties. That advice is version- and host-dependent; do not change the setting unless the current Geyser instructions for your server version specifically require it. Changing security settings unnecessarily can affect how signed chat and player authentication behave.
When a Bedrock player cannot join
The server is invisible or times out
- Confirm the player is using the Bedrock address and Bedrock port, not just the Java TCP port.
- Verify that the port is open as UDP in the host firewall, router and hosting panel.
- Check that the selected port is not already in use and that the server log says Geyser bound successfully.
- If you used
clone-remote-port, confirm it is actually enabled and that the Java port number is the one being cloned.
Geyser starts, but the Java server connection fails
- Recheck the
remoteorjavaaddress and port in Geyser’s configuration. - Use the Java server’s reachable address;
127.0.0.1works only when both services share a machine or network namespace. - Make sure the Java server is already listening before Geyser attempts to connect.
- Confirm that the authentication value is exactly
floodgateand that the Floodgate jar loaded without errors.
The player is rejected by a whitelist or permission plugin
Read the name in the server console and add the dot-prefixed Floodgate name. In a proxy network, verify that IP forwarding is enabled, bungeecord: true is set on each backend, and Floodgate is installed on the proxy as well as every backend.
Best Value
The server reports an unsupported protocol
Compare the Geyser release with the Java server version. Update the server software where practical, or use ViaVersion for an older Paper or Spigot installation when the compatibility documentation calls for it. Avoid mixing configuration files from different Geyser releases.
Only some players can connect
Compare the networks and devices of a working and failing player. A local test may succeed while an external player is blocked by router port forwarding or a host firewall. Also confirm that everyone is using the same public address and the current Bedrock port allocation.
Protect the Floodgate key
A standalone Geyser installation creates a Floodgate key file. Possession of that key allows Bedrock accounts to bypass Java authentication through the bridge. Treat it like a credential: keep it on the server, restrict file access, exclude it from public repositories and do not send it in support screenshots or chat.
If the key is exposed, stop the service and follow the current Floodgate recovery procedure for your release rather than continuing with a compromised credential. On a proxy network, protect the key material on both the proxy and backend installations.
What about a standalone Bedrock Dedicated Server?
Floodgate is not compatible with the standalone Bedrock Dedicated Server because that server does not run Java plugins. The Paper/Spigot procedure in this guide therefore cannot be applied to a Bedrock Dedicated Server.
Recommended Free Tools
Xbox, PlayStation and Switch players can use Bedrock servers, but a separate console-oriented setup is required. The documented material for this setup does not establish a supported method for adding Java clients to a standalone Bedrock server, so do not assume that installing Geyser or Floodgate files will work there.
Quick Recap
Operational checklist after installation
- Keep the Java server, Geyser, Floodgate and any protocol-compatibility plugins on versions that are documented to work together.
- Record the Java TCP port and the Bedrock UDP port separately, even when they use the same number.
- Recheck the generated configuration after upgrades; section names and defaults can change.
- Test one Java account and one Bedrock account after every server or plugin update.
- Review whitelist entries and permissions whenever a Bedrock player changes their in-game name.
- Back up the world and configuration files, but store the Floodgate key only in a restricted location.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




