GeyserMC: Join Java Servers from Bedrock
GeyserMC (usually just "Geyser") is a free, open-source proxy that lets Minecraft Bedrock Edition clients join a Minecraft Java Edition server. Windows and mobile clients can add its address directly. Console clients can use the protocol too, but Xbox, PlayStation, and Switch usually require an unofficial discovery workaround to reach a third-party address. This page covers Geyser, Floodgate, NetherNet networking, and those access limits.
Bedrock 26.60, released on October 27, 2026, ends RakNet. From that update Bedrock clients connect only over NetherNet. Geyser supports NetherNet from build 1237, and since build 1273 (October 26, 2026) a new config uses transport: nethernet by default. A config that already says raknet keeps it, so check that line and open your Geyser port for TCP as well as UDP, as shown below. While it says raknet, Geyser's console warns "NetherNet support is NOT enabled" and Bedrock players on 26.60 cannot join.
What is GeyserMC?
Java and Bedrock are different builds of Minecraft that normally cannot talk to each other. Geyser sits in the middle and converts Bedrock packets into Java packets (and back), so Bedrock clients see your Java world as if it were a native Bedrock server. It is maintained by the GeyserMC team and downloaded from geysermc.org. It is almost always paired with Floodgate (below), which removes the Java-account requirement for Bedrock players.
What GeyserMC runs on
Geyser is distributed as a build for each platform - pick the one that matches your server:
- Paper / Spigot - the most common setup; drop the plugin in
/plugins/. - Fabric / NeoForge - mod builds for modded servers.
- Velocity / BungeeCord - run Geyser once on the proxy in front of a server network.
- Geyser-Standalone - a separate process in front of any Java server, including otherwise unsupported setups.
Plain vanilla is not supported as a plugin host - use Paper/Spigot/Fabric, a proxy, or Standalone in front of it.
Geyser vs Floodgate
These two are easy to confuse:
- Geyser is the bridge that makes Bedrock clients able to connect at all.
- Floodgate is the companion plugin that lets those Bedrock players join without owning Java Edition. With
auth-type: floodgate, Bedrock accounts are handled directly. Without it (auth-type: online), Bedrock players must link a Java/Microsoft account first.
For a public crossplay server you almost always want both, with auth-type: floodgate.
How to install GeyserMC (Paper/Spigot)
1. Add the plugins
Upload Geyser-Spigot.jar and floodgate-spigot.jar to your server's /plugins/ folder, then restart once to generate the config files.
2. Set the Bedrock port and transport
Open plugins/Geyser-Spigot/config.yml and set the bedrock section:
With the default built-in signaling, a Bedrock client first reaches Geyser over TCP on port, then plays over UDP on the same port, so both protocols must be open. transport: both also accepts older RakNet clients, but RakNet and NetherNet then each need their own UDP port: set webrtc-port to a second UDP port and open it. Keep address at 0.0.0.0; on a loopback address Geyser reports "… is a loopback address".
3. Point Geyser at your Java server
In the remote section, match your Java server's IP and port and choose Floodgate auth:
4. Restart
Restart. If the console still prints the box "WARNING! NetherNet support is NOT enabled", the transport line did not take effect. On a proxy network, install Geyser on the proxy instead and point remote at the proxy.
NetherNet: signaling, the trust prompt and Warden
NetherNet is the WebRTC transport that replaces RakNet in Bedrock. Before a player connects, their client and Geyser exchange connection details through signaling. Geyser offers three modes in bedrock.signaling.mode:
- builtin (the default): Geyser runs its own signaling server on the Bedrock port over TCP. Players keep the address and port they already use.
- nxs: Geyser registers the server with an external signaling service, by default Warden (
agent.warden.cloud). Only UDP has to be open, but players join with the address and port Geyser prints in the console, unless you register a custom domain on Warden. The MOTD and player count shown to players update periodically, not live. - hybrid: both at once.
The trust prompt. Built-in signaling over plain HTTP makes each Bedrock player confirm a one-time "trust on first use" prompt when they join by IP address, or by a domain without HTTPS. To remove it, point bedrock.signaling.builtin.https.certificate (plus private-key for a PEM key) at a TLS certificate for your domain, or put an HTTPS reverse proxy in front of the signaling port. Warden already uses HTTPS, so players joining through it see no prompt.
clone-remote-port. With clone-remote-port: true Geyser shares the Java port, and Java already holds that port over TCP, so built-in signaling cannot run. Geyser logs "Built-in signaling cannot use port … because the Java server already uses it" and falls back to Warden: players must then use the address and port from the console instead of your usual address. Give Geyser its own port, open for TCP and UDP, if players should keep your address.
On a Supercraft Java server: the exact steps
First verified on September 3, 2026 with Geyser 2.11.2 and Floodgate 2.2.5 on a Paper server, including a Bedrock-protocol ping from outside the node. Updated on October 24, 2026 for NetherNet, from Geyser 2.12.0's own configuration (build 1264) and a check of the firewall on every node that runs Minecraft. Tested on October 27, 2026 with Geyser 2.12.1 (build 1273) on a Paper server: from outside the node, the server port plus two answered the NetherNet status request a Bedrock client sends before it lists and joins a server, and Geyser's STUN check found the node's public address on the same UDP port. The one thing that differs from a home setup is the port. Your server owns a block of ports, and two of them are already taken: your server port carries Java (TCP) and Minecraft's query listener (UDP), and the next port is RCON. So Geyser goes on your server port plus two.
- Upload
Geyser-Spigot.jarandfloodgate-spigot.jarinto the Plugins partition in the file manager (or FTP into/plugins). Paper, Purpur and Spigot servers all have it. - Restart once so Geyser writes
plugins/Geyser-Spigot/config.yml. - Edit the config. If your server port is
11640, set:bedrock: address: 0.0.0.0 port: 11642 # your server port + 2 transport: nethernet clone-remote-port: false remote: address: 127.0.0.1 port: 11640 # your server port auth-type: floodgateLeaveportat the default 19132 and Geyser will not be reachable, because that port belongs to whichever server on the node claimed it first. Use your server port itself, or turn onclone-remote-port, and Geyser falls back to Warden, because Java already holds that port over TCP: players then need the address Geyser prints instead of yours. - Restart again. If the "NetherNet support is NOT enabled" box still appears, check the
transportline. When it works, the console showsBuilt-in signaling started on http://0.0.0.0:11642.Query running on 0.0.0.0:11640is Minecraft's own listener and is correct. - Connect from Bedrock with your server address and port 11642. Java players keep using 11640. Bedrock players who already joined on 11642 keep their saved server; if Geyser used to share the Java port, they change the saved port to 11642.
No firewall change is needed. Your server port plus two and plus three accept both TCP and UDP, which built-in signaling (TCP) and NetherNet play (UDP) need. The node's public IP sits on the machine itself, so Geyser hands players the right address with advertise-addresses left empty. For transport: both, use your server port plus three as webrtc-port: your block is 20 ports wide and Minecraft uses only the first two. Players joining over plain HTTP see the trust prompt described above once.
How Bedrock players connect
On a phone, tablet, or Windows Bedrock client, add a server with:
- Server Address: your server IP or domain.
- Port: the Geyser port (e.g. 19132), not the Java 25565 port. NetherNet uses the same number: signaling over TCP, then play over UDP.
If Geyser fell back to Warden, players use the address and port from Geyser's console instead. With built-in signaling over plain HTTP, each player confirms a one-time trust prompt on first join.
For Xbox, PlayStation, or Switch, use Geyser's current console guide. It documents third-party approaches such as BedrockConnect and explicitly notes that they are not affiliated with GeyserMC. Test the exact console and current game version before promising access.
Common GeyserMC issues
"Unable to connect to world" after Bedrock 26.60: NetherNet needs the Geyser port open for TCP (signaling) as well as UDP (play). A UDP-only forward or firewall rule, which was enough for RakNet, now fails. Also check that transport is nethernet or both.
"Built-in signaling cannot use port … because the Java server already uses it": Geyser is on the Java port, usually through clone-remote-port: true. Give it its own port, or keep the Warden fallback and send players the address from the console.
"RakNet and NetherNet each need their own UDP port": with transport: both, set webrtc-port to a second UDP port and open it.
"… is a loopback address": set bedrock.address to 0.0.0.0.
Bedrock client cannot see the server / version error: Geyser must support your Bedrock client version. Keep Geyser up to date - it tracks the latest Bedrock and Java releases, and a brand-new Bedrock update can briefly outrun the current build. For Bedrock 26.60, update Geyser and Floodgate: Geyser 2.12.1 build 1273 (October 26, 2026) adds 26.60 support.
"Your server software does not support the Java version that Geyser requires": each Geyser build follows the newest Java Edition release, and 2.12.1 needs 26.3. Update your server to that version, or add the ViaVersion plugin so Geyser can talk to an older one. Bedrock players cannot join until you do.
"Invalid signature" or secure-chat problems: follow Geyser's current secure-chat guidance for the exact server and authentication setup. Changing profile enforcement has security implications, so do not use it as a generic network fix.
Bedrock players are asked to log in / cannot join: Floodgate is missing or auth-type is not set to floodgate. Add Floodgate and set the auth type, or have players link a Java account.
FAQ
Is GeyserMC safe and official?
Yes - it is an established open-source project from the GeyserMC team. Always download from geysermc.org, not third-party mirrors.
Will every Java feature work for Bedrock players?
Most do, but the two editions differ, so a few Java-only mechanics and some UI elements translate imperfectly. Core gameplay works well.
Does GeyserMC work with NetherNet?
Yes, from build 1237, and since build 1273 a new config uses NetherNet by default. Set transport: nethernet (or both), open the Bedrock port for TCP and UDP, and run build 1273 or newer, the first with Bedrock 26.60 support. Bedrock clients stopped using RakNet with 26.60, released on October 27, 2026.
Can I run Geyser on a network of servers?
Yes - install it once on your Velocity or BungeeCord proxy rather than on each backend.
Related guides
- Minecraft Wiki home
- Minecraft Java, Bedrock, Realms, and console crossplay
- Bedrock UDP port and console-access troubleshooting
- DiscordSRV setup (link Discord to your server)
Looking for Geyser-ready Minecraft Java hosting? Supercraft runs Minecraft dedicated servers with daily backups, instant setup, and 4 region options.