What are Geyser and Floodgate?
Geyser is a plugin that translates between Minecraft Bedrock and Java Edition, so Bedrock players can join a Java server; Floodgate is its companion plugin that lets them join without a Java Edition account. Together they are the standard way to run a Java server with crossplay for phones, consoles and Windows Bedrock. Both are free and made by the GeyserMC team.
| Plugin | What it does | Do you need it? |
|---|---|---|
| Geyser | Opens a Bedrock "door" on your Java server and translates the game between the two editions | Yes – without it Bedrock players can't connect |
| Floodgate | Lets Bedrock players join with only their Microsoft account, no Java Edition | Recommended – otherwise each Bedrock player needs to own Java Edition too |
This guide is about the server side: setting up a Java server so Bedrock players can join. If you're still deciding between a Bedrock server and a Java server with Geyser, read Is Minecraft cross-platform? first – if your whole group plays Bedrock, a plain Bedrock server is simpler.
What do you need for Geyser?
A Paper, Spigot or Purpur server (or a Velocity proxy) is the easiest base; Fabric and NeoForge work only on the newest Minecraft version and only with server-side mods.
| Server software | Geyser | Notes |
|---|---|---|
| Paper, Purpur, Spigot | Geyser-Spigot plugin | The usual choice. According to GeyserMC, needs Minecraft 1.20.5 or newer and Java 21+ |
| Velocity proxy | Geyser-Velocity, only on the proxy | Put Floodgate on the proxy; backend servers only need it for skins and the Floodgate API |
| Fabric, NeoForge | Geyser-Fabric / Geyser-NeoForge mod | Only on the newest Minecraft version and only with mods players don't need on their client |
| Vanilla | Not possible | Vanilla can't load plugins – switch to Paper |
Two version rules to remember:
- Geyser acts like the newest Java client. If your server runs an older Minecraft version, also install ViaVersion, so Geyser can still connect.
- Bedrock updates automatically on phones and consoles, so after a big Bedrock update keep Geyser up to date, or Bedrock players get "Outdated" errors.
Modded servers where players need client mods (most Forge and NeoForge modpacks) aren't a good fit: Bedrock players can't install Java mods. Plugins are fine, because they run only on the server.
How do Bedrock players connect through Geyser?
Bedrock players add the server with your server address and the Geyser port – a separate port from the one Java players use. Java players keep joining as usual.
Modern Bedrock connects with a method called NetherNet: the player's game first finds the server over TCP and then plays over UDP, both on the Geyser port. That's why the Geyser port must be reachable over both protocols, and why it can't be the same port as the Java server. GeyserMC's default is 19132, but on hosting you normally have to use the port the host assigned to you.
How to install Geyser and Floodgate on a Spot.gg server
Install Geyser and Floodgate from "Addons", set bedrock.port in Geyser's config to one of your additional ports from "Network", and restart. The whole setup takes about five minutes.
- Use Paper. Running Vanilla? Go to "Information" → "Modify" → "Change engine" and switch to Paper on the same Minecraft version – your world stays.
- In "Addons" → "Available to install" search for Geyser and install the file marked "Compatible with your server" (on Paper it's
Geyser-Spigot.jar). - Search for Floodgate and install it the same way.
- Restart the server. Both plugins create their folders and config files.
- Open "Network". In the ports table, pick a port labelled "Additional" that no other plugin uses. Don't use the game port, the voice chat port or the map port.
- In "Files" open
plugins/Geyser-Spigot/config.ymland change thebedrocksection:
bedrock:
port: 30123 # your additional port from "Network"
transport: nethernet
Leave webrtc-port at 0 – Geyser then uses the same port. Save the file.
- Restart the server and look at the "Console". When Geyser is ready, you'll see a line like
Built-in signaling started on http://0.0.0.0:30123with your port. If that line is missing, Geyser didn't start its Bedrock listener (see the problems below).
Why not the default 19132? On Spot.gg every server gets its own set of ports, and only the ports assigned to your server are open to the internet. The additional ports pass both TCP and UDP, which is exactly what Geyser needs. If you'd rather not edit files, you can also ask the AI assistant in the server panel to set Geyser up for you.
Running a Velocity proxy? Install Geyser and Floodgate on the proxy itself (Geyser has a Velocity version in "Addons") and use one of the proxy's additional ports. The config file is then plugins/Geyser-Velocity/config.yml.
How Bedrock players join
- In Minecraft Bedrock, click Play → Servers → Add Server.
- Server Address: your server address from "Network" (the custom address or the basic address) – without a port.
- Port: the additional port you set as
bedrock.port. - Save and join.
The first time, Bedrock may show a "Trust on First Use?" prompt. That's normal: Geyser's built-in signaling uses plain HTTP unless you set up HTTPS for it. Players accept it once.
Console players (Xbox, PlayStation, Switch) can't add servers by address in the normal menu. Ways around that are in How to join a Minecraft server on Xbox, PS5 and Switch.
What does Floodgate change?
With Floodgate, Bedrock players join with their Microsoft account only, and their names get a prefix – by default a dot, e.g. .Steve. Without Floodgate, Geyser asks every Bedrock player to sign in with a Microsoft account that owns Java Edition.
What you should know as an admin:
- The prefix keeps names apart. A Bedrock player called
Steveand a Java player calledStevewould clash, so Floodgate adds.in front of Bedrock names. You can change it withusername-prefixinplugins/floodgate/config.yml. GeyserMC recommends a prefix that isn't a letter or digit. - Spaces become underscores. Bedrock gamertags can have spaces; Java names can't.
replace-spaces: trueturnsCool Gamerinto.Cool_Gamer. - Use the full name in commands. Making a Bedrock player an operator:
op .Steve. In LuckPerms:lp user .Steve parent add vip(see How to set up LuckPerms). - Whitelist with
fwhitelist.fwhitelist add Steveadds a Bedrock player to the whitelist – here you type the name without the prefix. - Geyser switches to Floodgate by itself. When Floodgate is installed on the same server, Geyser uses Floodgate login automatically. The setting is
auth-typein thejavasection of Geyser's config, if you ever need to check it. - "Who can join" can stay on "Original accounts only". Floodgate handles Bedrock players itself, so you don't have to let cracked Java accounts in just for crossplay. What that setting does is explained in Minecraft non-premium server.
- Keep
key.pemprivate. Floodgate creates akey.pemfile; it's what lets Bedrock players skip Java login. Never share it.
Bedrock skins are converted and shown to Java players as well, although it can take a while after a player joins for the first time.
Can players use one account on both editions?
Yes – with Global Linking a player can link their Java and Bedrock accounts and keep the same inventory and progress on both. It's on by default in Floodgate (enable-global-linking).
- The player joins
link.geysermc.orgwith both Java and Bedrock. - They type
/linkaccounton one account and get a code. - They type
/linkaccount <code>on the other account.
After linking, the player uses the Java account's data on your server from both editions. Anything stored on the Bedrock-only account (items, ender chest) isn't visible while the accounts are linked, so move it first.
What doesn't work for Bedrock players?
Most of the game works, but some Java features can't be translated to Bedrock. GeyserMC lists them in its documentation; the ones players notice most:
- clickable links in chat;
- the glowing effect;
- telling left and right clicks apart in inventories;
- banners with more than 6 layers;
- custom enchantments and some custom recipes from data packs;
- tab-completion for commands that don't use Minecraft's own command system.
Server-side plugins (claims, economy, minigames, EssentialsX) work for Bedrock players too, because they run on the server.
Common Geyser and Floodgate problems
"Unable to connect to world" almost always means the Bedrock player uses the wrong port, or Geyser is still listening on a port that isn't open.
| Problem | Cause | Fix |
|---|---|---|
| "Unable to connect to world" | Wrong port in the Bedrock client, or Geyser on 19132 | Set bedrock.port to your additional port, restart, use that port in the client |
| No "Built-in signaling started" line in the console | The port is used by another plugin ("Address already in use") | Pick a different additional port |
| Bedrock can't connect, Java works | Network or config issue | Run geyser connectiontest <address> <port> in the console and follow its hint |
| "Outdated client" / "Outdated server" on Bedrock | Geyser doesn't support the player's new Bedrock version yet | Update Geyser in "Addons" → "Installed" (Replace with the newest file) |
| Bedrock players get kicked with "Please connect through the official Geyser" | Geyser and Floodgate don't use the same key | Keep both plugins on the same server (or follow GeyserMC's proxy guide for networks), update both and restart |
| Bedrock players asked to log in with a Java account | Floodgate not installed or didn't load | Install Floodgate, restart, check the console for errors |
A plugin breaks on names starting with . |
Prefix conflict | Change username-prefix in Floodgate's config to another symbol |
| Java players can't join | Not a Geyser problem | Check the server log; Geyser doesn't change how Java players connect |
After an update, stop the server, replace the plugin and start it again – swapping Geyser while the server runs causes errors.
Paid Minecraft servers on Spot.gg start from $3.90 per month, and a new account can try a server free for 24 hours – enough to set up Geyser and test it with a friend on a phone.
FAQ
What is Floodgate in Minecraft?
Floodgate is a plugin for Java servers that runs alongside Geyser. It lets Bedrock players join the Java server with just their Microsoft account, without owning Java Edition.
Do I need both Geyser and Floodgate?
You need Geyser for Bedrock players to connect at all. Floodgate is optional, but without it every Bedrock player must also own Java Edition and sign in with it.
What port does Geyser use?
GeyserMC's default is 19132, over TCP and UDP. On a hosted server use the port your host gives you – on Spot.gg one of the additional ports in "Network", set as bedrock.port in Geyser's config.
Why do Bedrock players have a dot in front of their name?
That's Floodgate's username prefix. It stops Bedrock and Java players with the same name from clashing. You can change it in Floodgate's config.
Can Bedrock players join a modded Java server?
Only if the mods are server-side. Bedrock players can't install Java mods, so modpacks that need client mods don't work with Geyser.
Does Geyser work on Fabric?
Yes, there is Geyser-Fabric, but only for the newest Minecraft version and only with server-side mods. On Spot.gg upload its .jar to the mods folder in "Files" (with Fabric API).
Is Geyser free?
Yes. Geyser and Floodgate are free, open-source projects by GeyserMC.