Only show guides for your app
What Geyser and Floodgate actually do on a Falix server — the preconfigured Version Changer variants, the extra UDP port, the config keys worth knowing, and linked accounts.
Bedrock, Java, and crossplay covers the big picture: run Geyser and your Bedrock friends can join a Java server. This guide goes one level deeper — what the two plugins each do, what Falix sets up for you, and the handful of config keys worth understanding before you point people at geysermc.org for the parts that move with every Minecraft version.
| At a glance | |
|---|---|
| You need | A Java Minecraft server, running one of the Geyser options in the Version Changer |
| Plan | Free plan is fine |
| Prerequisite | Bedrock, Java, and crossplay for the basics |
They're often named in one breath, but Geyser and Floodgate do different things:
You can run Geyser on its own (Bedrock players need a Java account), but almost everyone runs both.
In the Version Changer (opened from the Console page), Geyser isn't one entry — it's a small family, each one Geyser preconfigured on a different base server:
| Version Changer option | Base | Pick it when |
|---|---|---|
| Geyser - Bedrock Bridge | Purpur | The default — a fast, plugin-capable base |
| Geyser PaperSpigot | PaperSpigot | You specifically want the Paper baseline |
| Geyser Spigot | Spigot | An older/very compatible plugin base |
| Geyser Pufferfish | Pufferfish | A performance-tuned plugin base |
| Geyser Fabric | Fabric | Crossplay on a Fabric-modded server |
| Geyser NeoForge | NeoForge | Crossplay on a NeoForge-modded server |
Because these come preconfigured, the networking is already done: Falix allocates the extra UDP port for the Bedrock listener and wires Geyser's config to it, and Floodgate is set up to talk to Geyser. Your job is mostly to find that Bedrock port on the Network page and share it — Bedrock players type your address and that port in the two separate fields their client gives them.
🎯 Good to know: On the plugin-server bases (Purpur, Paper, Spigot, Pufferfish) the configs live under
/plugins/Geyser-Spigot/config.ymland/plugins/floodgate/config.yml. On the modded bases (Fabric, NeoForge) Geyser is a mod, so its config sits under the server'sconfig/folder instead. Same keys, different home.
You rarely need to touch the networking keys — Falix set those. But a few keys explain how crossplay behaves, and you'll meet them in every Geyser tutorial:
| Key | Where | What it controls |
|---|---|---|
remote.auth-type |
Geyser config.yml |
How the server authenticates translated players. With Floodgate installed this is floodgate; the alternatives are online (needs a Java account) and offline |
bedrock.port |
Geyser config.yml |
The UDP port Bedrock clients connect to — already set to your extra allocation, so leave it |
username-prefix |
Floodgate config.yml |
A prefix stuck on Bedrock usernames so they never clash with a Java player's name. A dot (.) by default; many servers set it to nothing |
player-link |
Floodgate config.yml |
Whether Bedrock and Java accounts can be linked (see below), and whether linking is required |
After editing any of these in the File Manager, restart the server (or run /geyser reload) to apply.
⚠️ Heads up: Everything past these keys — supported Minecraft versions, packet-level options, extension APIs — changes with almost every release. Don't copy old config blocks off a forum. The current, version-matched reference is Geyser's own site: geysermc.org. Treat it as the source of truth.
A Bedrock player and a Java player are, to the server, two different people — different UUIDs, different inventories, different everything. Account linking ties them together: link your Bedrock account to your Java account once, and you're the same player, with the same builds and balance, whichever edition you log in from.
There are two flavors, and they're a Floodgate feature:
The player-facing command is /linkaccount. Because the exact steps and storage options shift over time, follow the current linking guide on geysermc.org rather than a fixed recipe here.
Skins mostly take care of themselves — Geyser translates a Bedrock player's skin onto their Java-side character automatically. When a skin looks off, it's nearly always a version or cache issue on Geyser's end, and its docs cover it.
Done (…) line, then for Geyser and Floodgate reporting they enabled.remote.auth-type is floodgate in Geyser's config and that Floodgate actually loaded (look for it in /plugins and in the console).username-prefix prevents; if you set it to empty, a Bedrock player whose name matches a Java player's can conflict.