Minecraft Java and Bedrock Crossplay: The Geyser and Floodgate Setup Guide
Java and Bedrock players can share one world when the Java server runs Geyser to translate Bedrock's protocol and Floodgate to handle Bedrock logins.

Bedrock crossplay on Pixly is one switch and a restart, and Java and Bedrock players then join on the same address. On your own server it takes Geyser, Floodgate, port 19132 open for TCP and UDP, and one config line Bedrock needs from version 26.60, planned for 27 October 2026.1
Bedrock crossplay on Pixly: a switch and a restart
Pixly installs Geyser, the plugin that lets Bedrock players join a Java server, and Floodgate, which lets them join without a Java account.2 There is nothing to configure:
- Turn on Bedrock crossplay. Open the server's Settings and flip the switch. It is there on Paper, Purpur, Pufferfish, Leaf, and Folia and Fabric, NeoForge, and Quilt.
- Restart the server. Geyser and Floodgate install on that start. Java players whose game already updated to a newer version can still join, except on NeoForge.
- Share your address. Java players add it under Multiplayer. Bedrock players on phones, tablets and Windows open Play, then Servers, then Add Server, enter the same address and leave the port as it is.
Your own domain works for Bedrock players too, and a Bedrock player joining wakes a sleeping server just as a Java player does. Crossplay comes with every server size at no extra charge; Java and Bedrock crossplay hosting covers the rest.
Before you start: server software, version and Java 21
Running Geyser yourself starts with four checks.
- Server software. Geyser is a plugin on Paper, Spigot and their forks, a mod on Fabric and NeoForge, and a proxy plugin on Velocity and BungeeCord. Vanilla and Forge need Geyser Standalone, which runs as its own program beside the server.3
- Minecraft version. Geyser supports one Java version at a time, 26.3 in October 2026. Paper and Spigot from 1.20.5 up work with it through the ViaVersion plugin. Fabric and NeoForge must run that exact version.4
- Java updates. In 2026 Geyser took 24 to 44 days to support each new Java release,5 so keep the server on the version Geyser supports until it catches up.4
- Java 21 or newer. Geyser does not run on anything older.6
Set up Geyser and Floodgate on your own server
Download both from GeyserMC's download page, then:
- Install Geyser and Floodgate. On Paper or Spigot, put
Geyser-Spigot.jarandFloodgate-Spigot.jarinplugins/.7 On Fabric or NeoForge, put the Geyser build and the Floodgate mod inmods/; Fabric also needs Fabric API.8 - Start the server once. That creates Geyser's
config.ymlinplugins/Geyser-Spigot/,config/Geyser-Fabric/orconfig/Geyser-NeoForge/.6 Geyser finds Floodgate by itself.9 - Add one line to Geyser's config. Under
bedrock:, addtransport: nethernet, as shown below. Bedrock 26.60 only connects this way, and Geyser does not switch to it by default yet.110 - Edit
server.properties. Setenforce-secure-profile=false, or Bedrock players join but cannot chat,11 and keeponline-mode=true.12 - Open port 19132 for TCP and UDP. Forward both on your router, or publish
-p 19132:19132 -p 19132:19132/udpin Docker. It must not be the Java server's port.13 - Restart and check the console.
Built-in signaling started on http://means Bedrock players can join.14WARNING! NetherNet support is NOT enabled.means step 3 did not save.9
bedrock:
port: 19132
transport: nethernetNo TCP port to open? Geyser works with Warden
Warden is a free service from Ziax, the company behind CubeCraft, that Bedrock players connect through before their game reaches your server.1 With it, only UDP has to reach the server,13 players see no trust prompt, and you can use a Warden hostname or your own domain.15 Set it in Geyser's config:
bedrock:
transport: nethernet
signaling:
mode: nxsOn a host that only gives you the Java port, add clone-remote-port: true under bedrock: too. After a restart, the console shows the address and port Bedrock players use.16 Warden has no uptime guarantee and is meant for personal servers.15
How Bedrock players join: address, port, consoles
On phones, tablets and Windows, players open Play, then Servers, then Add Server.16 Three things decide whether they get in:
- Address and port go in separate boxes. Typing
play.example.com:19132in the address box gives "Invalid IP address!"17 - SRV records do not work. Bedrock ignores the DNS records that hide a port on Java, so use the IP address or a domain with a plain A record.17
- Consoles need a workaround. Xbox, PlayStation and Switch players join through BedrockConnect, a DNS service, or a LAN app such as BedrockTogether.18
With the setup above, Bedrock asks each player the first time they join whether to trust the server.19 To remove that question for players who join by domain name, give Geyser a certificate, such as a free one from Let's Encrypt: set certificate and private-key under signaling.builtin.https in the bedrock: section, and run geyser reload after each renewal.20
Proxies, Standalone and ViaProxy: copy key.pem
Floodgate creates key.pem, the key that lets Bedrock players skip Java login, in plugins/floodgate/ or config/floodgate/.2122 In these setups you copy it yourself:
Geyser Standalone
Copy
key.peminto Geyser's folder, setauth-type: floodgate, and set the Java server'saddressandportunderjava:in Geyser's config.2123Geyser-ViaProxy
Copy
key.pemintoplugins/Geyser/, and Floodgate login turns on by itself.2425Velocity or BungeeCord
Install Geyser and Floodgate on the proxy only, with player forwarding on between proxy and servers. Turn secure chat off on the proxy:
enforce_secure_profile: falseon BungeeCord,force-key-authentication = falseon Velocity.2611
What changes for Bedrock players: names, linking, limits
Bedrock players join the same world, with a few differences.
- Names. Floodgate adds a
.in front and turns spaces into underscores, soSteve Minerjoins as.Steve_Miner.27 To whitelist one, usefwhitelist addwith the plain name.28 - Linked accounts. A player with both editions can link them: join
link.geysermc.orgfrom both, run/linkaccounton one and enter its code on the other. They keep the Java account's inventory and progress.29 - Missing features. Bedrock has no clickable chat links, glowing effect, custom enchantments or custom recipes, and the Overworld shows nothing below -512 or above 512. GeyserIntegratedPack, which Geyser installs, restores armor stand poses, offhand animations and more.30
- Resource packs. A Java pack does not work on Bedrock as is. GeyserMC's Thunder, in early beta, converts simple packs; the result goes in Geyser's
packsfolder.31 - Mods. Server-side mods work, but blocks, items and mobs that mods add do not show for Bedrock players.32
Known Geyser issues and how to fix them
Geyser prints these console messages when Bedrock players cannot connect.14
Geyser console messages
Built-in signaling cannot use port … because the Java server already uses it
Give Geyser its own port, open for TCP and UDP.
… is a loopback address
Set
addressunderbedrock:to0.0.0.0, or every player times out.Built-in signaling could not start. Make sure no other program is using TCP port …
Another program uses that port. Stop it or pick a different port.
Other problems show up in the game.
"Unable to Connect to World"
The port or Geyser's config is wrong.33 Check that port 19132 is open for TCP and UDP (UDP alone with Warden), that it is not the Java server's port, and that address under bedrock: is 0.0.0.0.
The server shows up, but joining times out
UDP 19132 is blocked by a router or firewall, or another program on the machine uses it.20
"Cannot reply to EncryptionRequestPacket without profile and access token"
Floodgate is set up wrong: key.pem was copied into Geyser's folder on a plugin install, where it does not belong, or the Java server is in online mode while Geyser is set to offline.17 Remove the extra key and make the two match.
"Outdated client!" or "Outdated server!" when joining
Geyser and the server are on different Minecraft versions. Outdated client! means update Geyser; Outdated server! means update the server or add ViaVersion.17
Does Geyser work with playit.gg or ngrok?
Which plugins conflict with Floodgate?
DynamicBungeeAuth below 10.28B, FastLogin, ExploitFixer, JPremium, LibHatesMods, ProtocolSupportBungee and SayNoToMcLeaks, because Floodgate changes how players log in. TCPShield needs only-allow-proxy-connections turned off unless you are on its paid plan.32
Footnotes
GeyserMC, Preparing Your Geyser Server for NetherNet, 8 October 2026. ↩ ↩ ↩
GeyserMC, Floodgate overview. ↩
GeyserMC, Download: build 1265 of Geyser 2.12.0, 18 October 2026, is published for BungeeCord, Fabric, NeoForge, Spigot, Standalone, Velocity and ViaProxy. Checked 20 October 2026. ↩
GeyserMC, Supported versions. Checked 20 October 2026. ↩ ↩
Modrinth, Geyser versions: the first build listing each release was 2.10.0-b1138 on 7 May, 2.11.0-b1186 on 10 July and 2.12.0-b1255 on 14 October 2026, against the release dates in Mojang's version manifest. Measured 20 October 2026. ↩
GeyserMC, Geyser setup guide. Checked 20 October 2026. ↩ ↩
GeyserMC, Floodgate on Paper and Spigot. ↩
GeyserMC, Floodgate on modded servers. ↩
GeyserMC, GeyserImpl.java, Geyser source. Checked 20 October 2026. ↩ ↩
GeyserMC, GeyserConfig.java, Geyser source, config version 10. Checked 20 October 2026. ↩
GeyserMC, Geyser and Secure Chat. ↩ ↩
minecraft.wiki, server.properties. ↩
GeyserMC, Port forwarding. Checked 20 October 2026. ↩ ↩
GeyserMC, NetherNetServer.java, Geyser source. Checked 20 October 2026. ↩ ↩
Warden, Signaling infrastructure for Minecraft Bedrock. Checked 20 October 2026. ↩ ↩
GeyserMC, Provider.tsx, the source of the setup guide's host instructions. Checked 20 October 2026. ↩ ↩
GeyserMC, Common Issues. Checked 20 October 2026. ↩ ↩ ↩ ↩
GeyserMC, Using Geyser with Consoles. ↩
Mojang, NetherNet HTTP Signaling — Partner Onboarding Guide, protocol documentation generated 13 October 2026. ↩
GeyserMC, HTTPS for NetherNet. Checked 20 October 2026. ↩ ↩
GeyserMC, Floodgate with Geyser Standalone. ↩ ↩ ↩
GeyserMC, FabricFloodgateMod.java, Floodgate-Modded source; the NeoForge build uses the same folder. ↩
GeyserMC, GeyserRemoteConfig.java, Geyser source. ↩
GeyserMC, Floodgate with ViaProxy. ↩
GeyserMC, GeyserViaProxyPlugin.java, Geyser source. ↩
GeyserMC, Floodgate on proxy servers. ↩
GeyserMC, Floodgate's default config.yml, Floodgate source. ↩
GeyserMC, Floodgate features. ↩
GeyserMC, Floodgate account linking. ↩
GeyserMC, Current Limitations. Checked 20 October 2026. ↩
GeyserMC, Frequently Asked Questions. ↩ ↩ ↩
GeyserMC, Fixing 'Unable to Connect to World'. ↩
playit.gg, Minecraft Bedrock: Switch from NetherNet to RakNet, with the status notice "Adding Nethernet Support", last updated 22 September 2026. Checked 20 October 2026. ↩