Introduction
You have a Minecraft Java server, and half your friends play on phone, on Switch or on Xbox. By default, these two worlds don't talk to each other: a Bedrock player can't join a Java server, and vice versa. Geyser solves exactly this problem. It's a free plugin that translates the Bedrock protocol into the Java protocol in real time, so everyone can play together on the same server, in the same world, without anyone having to change edition. This guide shows you how to install it on a SERV-Minecraft server, how to configure it properly, and how to avoid the classic pitfalls (port, accounts, consoles).
Native Bedrock server or Geyser: which one to choose?
Before installing anything, there's a question worth asking. At SERV-Minecraft, when you place your order, you choose between a Java server and a Bedrock server. If all your players are on Bedrock (phones, consoles, Windows 10/11 Bedrock edition), a native Bedrock server is simpler: nothing to install, nothing to translate, no limitations. Geyser only makes sense if you want to mix the two audiences on a Java server, with its plugins, its datapacks and its ecosystem.
| Criterion | Native Bedrock server | Java server + Geyser |
|---|---|---|
| Players accepted | Bedrock only | Java and Bedrock together |
| Plugins (Paper, Spigot) | No (Bedrock add-ons only) | Yes, the whole Java ecosystem |
| Installation | None | 2 files to drop in, 1 config to edit |
| Fidelity of the game on Bedrock side | Perfect | Very good, a few details translated approximately |
| Recommended plan | Start (4.99 €) | Plugins (8.99 €) or higher |
For the rest of this guide, we'll go with the most requested case: a Java server running Paper, that needs to welcome Bedrock players.
What you'll need
- A Java server running Paper or Purpur. Geyser installs as a plugin, so a pure Vanilla server won't work (it doesn't load plugins). If you're starting from scratch, our guide on creating a Minecraft server covers moving to Paper.
- Some RAM in reserve. Geyser and Floodgate together use between 500 MB and 1 GB depending on the number of connected Bedrock players. The Plugins plan (16 GB) is a good starting point; the Start plan (8 GB) works for a small group, but without much headroom for other plugins.
- An up to date server. Geyser follows Bedrock versions very closely: Mojang releases a Bedrock update, Geyser releases its own within the following days. A Geyser that's one version behind refuses new clients. Get into the habit of updating it.
Step 1: download Geyser and Floodgate
Everything is on the project's official website, downloads section (geysermc.org). Two files matter to you:
- Geyser-Spigot.jar: the protocol translator itself, in its "Spigot" version (it works on Paper and Purpur).
- floodgate-spigot.jar: Geyser's companion. Without it, a Bedrock player also needs a Java account to connect. With it, a Microsoft Bedrock account is enough, and the server can stay in
online-mode=true, which protects your Java players from name impersonation.
Always take the most recent version of both, at the same time: a recent Geyser with an old Floodgate causes errors at startup.
Step 2: drop the two files into the plugins folder
- Open your server in the SERV-Minecraft panel, Files tab.
- Go into the
pluginsfolder (create it if it doesn't exist yet, which is the case on a server that just moved to Paper and has never started). - Click Upload a file, select both .jar files and confirm. The upload happens from your browser, no software needed.
- If your files are large or you'd rather use a client like FileZilla, the panel's Advanced tab gives you your SFTP credentials.
Then restart the server from the console. On first launch, Geyser and Floodgate each create their own configuration folder inside plugins/. In the console, you should see a line similar to this one:
[Geyser-Spigot] Started Geyser on 0.0.0.0:19132
[floodgate] Floodgate has been enabled
Don't connect yet: the announced port (19132) isn't the right one on a shared hosting setup, which is the subject of the next step.
Step 3: setting the port (the step everyone gets wrong)
By default, Geyser listens on port 19132, the standard Minecraft Bedrock port. On a hosted server, this port isn't yours: each server gets its own port, the one shown in the Java connection address displayed in the panel (for example 25567). The good news is that this port is open both in TCP (for Java) and in UDP (what Bedrock uses). So all you need to do is tell Geyser to use the same port as the Java server.
Open plugins/Geyser-Spigot/config.yml from the panel's file editor and edit these lines:
bedrock:
address: 0.0.0.0
port: 25567 # replace with the port of YOUR Java server
clone-remote-port: true
remote:
address: auto
port: 25565
auth-type: floodgate
Three points to remember:
clone-remote-port: truedoes exactly what its name says: Geyser reuses the Java server's port. With this option on, theportvalue is ignored, but filling it in anyway will save you a surprise if you ever disable it.auth-type: floodgateenables connecting with a simple Bedrock account. Without Floodgate, set it toonline: each Bedrock player will then need to connect with a Java Microsoft account.- Leave
remote.address: auto: Geyser runs in the same process as Paper, it finds it on its own.
Save, restart. The console should now show Started Geyser on 0.0.0.0:25567 (with your port). Don't touch online-mode in server.properties: with Floodgate, it stays on true.
Step 4: connecting from Bedrock
On Windows, Android and iOS: Servers tab, Add Server, then your server's IP address and port (the same one as for Java). The player's name appears on the server side with a dot in front (.Username): that's the Floodgate prefix, which guarantees that a Bedrock player can't impersonate a Java player with the same name.
On consoles (Switch, PlayStation, Xbox), the game doesn't allow adding a custom server. Two workarounds exist, both outside your server:
- BedrockConnect: in the console's network settings, you replace the primary DNS with that of a BedrockConnect server (addresses published on the project's website). The game's "featured" servers then show a list where you enter your own server's address and port. This is the most commonly used method.
- LAN sharing from a phone or PC already connected to the server, more of a workaround, best kept for troubleshooting.
Explain this to your console players from the start: it isn't a limitation of your server, it's a restriction of the console edition.
Step 5: the settings that make a difference
Whitelist and permissions
With the prefix, a Bedrock player is called .Username everywhere: in the whitelist, in permissions, in op commands. The command /whitelist add .Username works, but only once the player has connected at least once (the server needs to know their identifier). You can change the prefix in plugins/floodgate/config.yml (the username-prefix key), but keep one: removing it opens the door to duplicate usernames.
Older Java versions
Geyser always connects Bedrock clients to the server's latest version. To also accept Java players who stayed on an older version, add the ViaVersion plugin. Both coexist without any special setup.
Skins, forms, emotes
Floodgate passes the Bedrock skin to the server, including custom skins, with a slight delay on first connection. Plugin inventory menus (shops, kits) are translated by Geyser into Bedrock forms; the result is clean in the vast majority of cases. What doesn't come through: Forge or Fabric mods that add blocks or items, invisible to a Bedrock client. Geyser also exists in a mod version for these servers, but the experience remains degraded as soon as the pack adds content; for a modded server, assume your audience is on Java.
Troubleshooting: the errors you see all the time
"Unable to connect to world"
In 9 cases out of 10, it's the port. Check the Started Geyser on line in the console: if it still shows 19132, step 3 wasn't applied (file not saved, or server not restarted). Also check that the player entered the port in the dedicated field and not after the IP.
"Outdated version" or immediate disconnection
The Bedrock client was just updated and your Geyser doesn't know this version yet. Download the latest Geyser-Spigot.jar, replace the old one in plugins/, restart. On an active server, plan for this every time Bedrock updates: they happen often.
The player joins, then gets kicked with an authentication message
Most often, Floodgate isn't loaded (file missing or incompatible version) while auth-type is set to floodgate. Look at the first lines of the console at startup: a red error mentioning floodgate points to a mismatched version. Grab both files up to date together.
Lag only for Bedrock players
Geyser encodes chunks for each Bedrock player, which costs CPU when the view distance is high. Lower view-distance to 8 or 10 in server.properties, and apply the settings from our guide on optimizing your Minecraft server: they benefit both editions.
How many Bedrock players can a server handle?
On the Plugins plan (16 GB), a well configured Paper server comfortably handles 30 to 60 players, and the share of Bedrock players changes little as long as the view distance stays reasonable. Geyser's extra cost is mostly felt in RAM (plan for 1 GB more in your calculations) and when players connect, the moment it translates the world all at once. If your community goes past around fifty simultaneous players, the Modpack plan (32 GB) gives you the headroom you need, plus priority support. Switching from one plan to another is done from the panel, without losing the world.
FAQ
Is Geyser paid?
No. Geyser and Floodgate are open source projects, free, maintained by a team of volunteers. There's nothing to buy, either from them or from us: the Plugins plan at 8.99 € per month, with no commitment, is enough for a cross-play server.
Will my Java players notice a difference?
None. Geyser only steps in for Bedrock connections. The server stays a regular Java server, with its usual plugins and performance. The only visible thing is the dot in front of Bedrock players' usernames.
Do you need a Java account to play from Bedrock?
With Floodgate, no: a Microsoft Bedrock account is enough. Without Floodgate (auth-type set to online), yes, each Bedrock player must connect with a Java account on first launch.
Does it work with a Forge or Fabric modded server?
Technically, Geyser exists in a mod version. In practice, everything the mods add (blocks, items, interfaces) doesn't exist on the Bedrock side and displays poorly or not at all. For a modded server, assume your players are on Java.
Can I install Geyser on my native Bedrock server?
That wouldn't make sense: a Bedrock server already accepts Bedrock players. Geyser is meant to open a Java server to Bedrock players, not the other way around. If you want to welcome both audiences, you need a Java server.
In summary
Two files in plugins/, one line reading clone-remote-port: true, one restart: your Java server accepts Bedrock players, with their usual account and their skin. Keep Geyser up to date, explain the DNS trick to your console players, and keep an eye on RAM as the server fills up. If you don't have a server yet, the Plugins plan is ready for it: order at https://panel.serv-minecraft.fr/commander, the server is live within minutes, and you can follow this guide right away.