Setting up Geyser and Floodgate for Java-Bedrock Crossplay
Geyser and Floodgate are two plugins that work together to make it possible to join a Java Minecraft server with a Bedrock client. This allows for crossplay between the two versions of Minecraft.
Setup and Plugin Installation
To get started, you’ll need to install a plugin framework and add the plugins to a Minecraft Java server. You can also use Fabric but, Fabric has limited support for Geyser.
Select a plugin framework to run your server on.
*Note: You can also use Fabric which is a modding framework. However, bedrock players cannot load mods onto their clients so modding is limited in that case.
If you're running a Nodecraft server, you can install any of those from the One Click Installer. For this example, we’ll be using Paper, a fork of Spigot.
Note: If the plugins folder hasn’t been generated yet, turn the server online at least once for it to generate.
Note: If using Fabric the .jar file goes into the mods folder and there are no floodgate files for Fabric.
Note: Use Geyser-Spigot for Spigot derivatives such as Paper, Purpur, etc.
Restart the server for the plugin to take effect and generate configuration files.
Depending on where you are hosting your server, you’ll also need port 19132 to be open. If running a Nodecraft server, this port is already open for you.
Changing the Settings for Floodgate
Floodgate is an additional optional plugin that interfaces with Geyser. It allows bedrock players to join without having a separate java account and allows for allowlist functionality and enables player skins.
*Note, there is no floodgate for Fabric or Sponge server types.
Go to the Geyser config.yml. This file will be in /plugins/Geyser-Spigot.
Change the line
(Optional): Go to the Floodgate config.yml. You’ll find this in the floodgate folder which is located in the plugins folder.
replace-spacesoptions if desired/needed. By default, there will be a . in front of all bedrock names to prevent errors with identical names on java and bedrock, and all spaces are replaced with an underscore.
Changing Optional Geyser Settings
There are some noteworthy settings within the Geyser config which can change certain things about the game for the quality of life of players. While there are more settings than this, these are the options most commonly changed on servers.
You can change the port if you would like. However, you’ll need to verify that the UDP port for the port listed is open depending on how you are hosting your server. Additionally, the default for bedrock clients to connect to is 19132 as listed by default in the config.
motd2are options if you want your Message of the Day(motd) to show differently in bedrock and java.
server-namecan be changed to display a custom name on bedrock edition when players see and connect to your server.
passthrough-motdcan be used to copy the motd that is set in your game settings to bedrock edition if you don’t want to have a separate motd for bedrock.
allow-third-party-capesallows the capes from third party mods such as Optifine, LabyMod etc. to be shown.
The option for
show-cooldownallows the cooldown for weapon attack speeds to be displayed on bedrock edition.
emote-offhand-workaroundallows bedrock players to put any item in their offhand like java can by using emotes. There are 3 options for this. By default, it is
disabledmeaning the workaround isn’t applied. The
no-emotesoption prevents the emote from being seen by other bedrock clients and swaps the item in the offhand. The
emotes-and-offhandoption allows the emote animation to be seen by other bedrock users and swaps the item in the offhand.
above-bedrock-nether-buildingallows bedrock edition players to see above the nether’s bedrock ceiling and build on it which bedrock does not normally allow. It does this by changing the ID of the world which can cause the per-biome fog to be displayed incorrectly.
Adding Bedrock Players to the Allowlist Using Floodgate (Optional)
If you want to use an allowlist on your server, you can use floodgate to add bedrock players. The command to add bedrock players to the allowlist can either be formatted as
/fwhitelist add UserName or
/fwhitelist add floodgateUUID. To note, this command is only used when adding bedrock players to the allowlist. Adding java players to the allowlist is the default "whitelist" command. Additionally, do not include the prefix set in the floodgate config when entering the username to the allowlist.
Getting a FloodgateUUID
In some cases, if the system doesn’t pick up on the username, you’ll need to use the floodgateUUID to ad the player to the allowlist. The floodgateUUID is derived from the XUID and in a specific format so that the java edition can read it. The format is
Get the players XUID. You can use a tool such as Cakes XUID Grabber to do this.
Take the hex value and replace the x characters in the format mentioned with the hex value.
For example, if the hex XUID was