How To Allow Bedrock Players On A Java Server: Complete GeyserMC And Floodgate Setup Guide

How To Allow Bedrock Players On A Java Server: Complete GeyserMC And Floodgate Setup Guide

How to enable the allowlist on a Minecraft Bedrock server

To bridge the gap between Minecraft Java Edition and Bedrock Edition, server administrators must deploy the GeyserMC translator plugin alongside the Floodgate authentication system on a compatible server engine like PaperMC or Purpur. This dual-layer framework translates Bedrock network packets into Java-compatible packets on UDP port 19132, allowing console, mobile, and Windows players to join your Java server without buying an additional Java license. By configuring these tools properly, you can achieve a seamless cross-play environment with native performance and synced player identities.

Technical Prerequisites and Network Requirements

Running a cross-play Minecraft server requires a solid foundational setup. Because Bedrock Edition and Java Edition are built on entirely different programming languages—C++ and Java, respectively—your server needs enough computing power to translate packets on the fly without causing tick rate drops.

For the smoothest experience, your hosting environment must meet or exceed the following structural standards:



  • Server Engine: PaperMC, Purpur, or Folia are highly recommended. While standard Spigot works, PaperMC offers aggressive performance optimizations and advanced API access necessary for high-fidelity packet translation. Alternatively, you can run Geyser as a standalone proxy utilizing Velocity or BungeeCord.
  • Java Runtime Environment: Java 17 or Java 21, depending on the specific version of Minecraft your server runs (Java 17 for 1.18 through 1.20; Java 21 for 1.20.5 and above).
  • Access to Network Settings: You must have the ability to forward ports or open ports on your hosting panel (such as Pterodactyl, Multicraft, or VPS command lines).
  • Estimated Budget: Absolutely free. The software dependencies (GeyserMC and Floodgate) are open-source and do not require licensing fees.
  • Setup Duration: Approximately 15 to 25 minutes of active configuration time.

Step-by-Step GeyserMC and Floodgate Integration

This procedure guides you through downloading, installing, configuring, and testing the cross-play bridge. Follow each phase carefully to ensure console and mobile clients can bypass traditional Java login barriers securely.



Step 1: Downloading the Required Software Files

To begin, you must obtain the correct compiled binaries for both GeyserMC and Floodgate. Avoid downloading these resources from third-party mirrors; only use the official GeyserMC continuous integration pipelines.



  1. Navigate to the official GeyserMC downloads page.
  2. Download the version of Geyser built specifically for your platform. For most standard setups, this will be the Geyser-Spigot jar file, which is fully compatible with Paper and Purpur.
  3. Switch to the Floodgate downloads tab on the same site.
  4. Download the Floodgate-Spigot jar file. This plugin acts as the authentication translator, allowing Bedrock players to bypass the Java premium login verification check by linking their Microsoft/Xbox Live accounts instead.


Step 2: Uploading Plugins and Initializing Configuration Directories

Once you have downloaded both jar files, you need to load them into your server environment so they can generate their default configuration structures.



  1. Connect to your Minecraft server using an FTP client or navigate to your hosting provider's built-in file manager.
  2. Locate the folder labeled plugins within your main server directory.
  3. Upload both the Geyser-Spigot jar and the Floodgate-Spigot jar directly into the plugins folder.
  4. Start your server. Watch the console to ensure both plugins are recognized and that they load without throwing initial fatal errors.
  5. Once the server console displays that the startup sequence is complete, execute the stop command in your console to shut the server down safely. This step is critical because the plugins only write their default configuration files to disk upon a successful initial boot and clean shutdown.


Step 3: Configuring Network Interfaces and Ports

Now that the configuration files exist, you must adjust the network parameters so the server listens for Bedrock connections. By default, Java Edition listens on TCP port 25565, while Bedrock Edition listens on UDP port 19132.



  1. In your FTP client or file manager, navigate to the plugins folder, open the Geyser-Spigot directory, and open the config.yml file with a text editor.
  2. Locate the bed-rock section at the top of the file.
  3. Find the address variable. By default, this may be set to 0.0.0.0. Keep this setting as 0.0.0.0, which instructs the server to listen on all available network interfaces. If you are on a shared host that assigns specific IPs, change this to the designated IP address provided by your host.
  4. Find the port variable under the bed-rock section. Ensure this is set to 19132. If your hosting provider requires a custom port, change this to the specific UDP port allocated to your server.
  5. Scroll down to the remote section of the file. This represents the internal connection Geyser makes to your Java server. Set the address variable to 127.0.0.1 (localhost) and ensure the port is set to your Java server's default port (typically 25565).

Warning: Do not change the remote port to 19132. The remote section must point directly to the port that your local Java server uses to communicate with standard Java players, which is usually 25565.



Step 4: Activating Floodgate for Passwordless Bedrock Authentication

Without Floodgate, Bedrock players attempting to join your server would be prompted to log into a premium Java Edition account. Floodgate eliminates this requirement by generating virtual UUIDs for Bedrock players based on their Xbox Live accounts.



  1. Inside the same Geyser config.yml file, locate the auth-type parameter.
  2. By default, this parameter is set to online. Change this value to floodgate in all lowercase letters.
  3. Save the changes to your Geyser config.yml file and close it.
  4. Navigate to the plugins folder, open the Floodgate directory, and locate the config.yml file inside.
  5. Find the username-prefix parameter. By default, this is set to a period. This prefix is automatically prepended to Bedrock players' usernames to prevent naming conflicts with existing Java players. For example, an Xbox player named MinerJohn will appear in the game as .MinerJohn. You can change this prefix to an underscore or another allowed character, but leaving it as a period is highly recommended.
  6. Ensure that the auto-confirm option is set to true. This allows the plugin to automatically authorize incoming Bedrock players using public key cryptography.

Pro-Tip: If you are running a proxy setup like BungeeCord or Velocity, you must install Geyser and Floodgate on the proxy level rather than on the individual backend Spigot/Paper servers. Additionally, make sure to copy the key.pem file generated in the proxy's Floodgate directory over to the backend servers' Floodgate directories to ensure seamless handshakes.



Step 5: Adjusting System Firewalls and Router Settings

For players outside your local network to connect, you must open the designated ports on your router or cloud server firewall.



  1. If you are hosting the server on a VPS (such as Ubuntu), open your terminal and allow incoming UDP connections on port 19132. If you are using the UFW firewall, execute the command to allow 19132/udp. Additionally, ensure TCP port 25565 is open by executing the command to allow 25565/tcp.
  2. If you are hosting on a home computer, log into your router's administration portal. Create a new port forwarding rule. Map external port 19132 to internal port 19132, setting the protocol specifically to UDP, and point it to the local IPv4 address of your hosting machine. Create a second rule mapping port 25565 to 25565 using the TCP protocol.
  3. Restart your Minecraft server completely to apply all configuration adjustments.

Minecraft Java vs Bedrock Server: Which Is Best For You?

Minecraft Java vs Bedrock Server: Which Is Best For You?

Cross-Play Server Port and Protocol Specifications

To successfully maintain a cross-play environment, administrators must understand how Java and Bedrock network protocols interact. The following table provides the operational baselines for each connection type.



Protocol Parameter Java Native Connection Bedrock Native Connection Geyser Translation Bridge
Default Port Number 25565 19132 19132
Transport Protocol TCP UDP UDP (Translates to TCP internally)
Default Authentication Mojang/Microsoft Session Xbox Live Accounts Microsoft via Floodgate Cryptography
Typical Network MTU 1500 bytes (Standard TCP) 1400 bytes (Dynamic UDP) 1400 bytes (Configurable limit)
Encryption Type AES-CFB8 AES-GCM Translates Bedrock GCM to Java CFB
Network Traffic Weight Moderate packet size High packet count, low size Slightly higher CPU overhead for translation

Troubleshooting Common Cross-Play Failures

Connecting two completely different game editions can sometimes lead to network translation issues. Below are the most common deployment failures and how to fix them quickly.



  • Failure Scenario: Bedrock players receive an "Unable to Connect to World" error instantly.



    • Root Cause: The underlying UDP port is either blocked by a system firewall, not forwarded correctly on the router, or Geyser is listening on the wrong IP address.
    • Actionable Fix: First, verify that port 19132 is forwarded as a UDP rule, not TCP. Next, check your server console during bootup to ensure Geyser successfully binds to the port. If you see a binding error, change the address parameter in Geyser's config.yml from 0.0.0.0 to your actual server IP address, or contact your hosting provider to verify which port you are allowed to bind to.
  • Failure Scenario: Bedrock players are kicked with an "Invalid Session" or "Authentication Failed" message.



    • Root Cause: Geyser is configured to require Java account verification, or the Floodgate plugin is not running or communicating properly with Geyser.
    • Actionable Fix: Open the Geyser config.yml file and verify that the auth-type is set exactly to floodgate. If it is set to online, Geyser will expect Bedrock players to own a Java account. If the error persists, check the server log during startup to confirm that Floodgate did not fail to load due to an outdated jar file or Java version mismatch.
  • Failure Scenario: Extreme block lag, delayed block breaking, or rubber-banding for Bedrock players.



    • Root Cause: The Maximum Transmission Unit (MTU) size is too high for the Bedrock player's local network, causing UDP packets to fragment and drop.
    • Actionable Fix: Open the Geyser config.yml file, locate the mtu setting under the bedrock configuration block, and lower the value from its default of 1400 to 1200 or 1300. This smaller packet size prevents fragmentation over unstable consumer connections.
  • Failure Scenario: Skins do not display, or all Bedrock players appear with default Steve or Alex skins.



    • Root Cause: The server is running in offline mode, or Geyser cannot connect to the skin translation API endpoints due to strict firewall egress rules.
    • Actionable Fix: Ensure your Java server has online-mode set to true in the server.properties file. Additionally, make sure your server firewall allows outbound connections to the GeyserMC skin server APIs, allowing the plugin to fetch and convert Bedrock skin textures into Java-compatible format on the fly.

Frequently Asked Questions



Do Bedrock players need to purchase Minecraft Java Edition to join my server?

No. When using the GeyserMC and Floodgate setup, Bedrock players only need their standard Bedrock game client and a free Microsoft/Xbox Live account. Floodgate generates a virtual Java profile for them on your server, eliminating any requirement to buy the Java Edition.



Can console players (Xbox, PlayStation, Nintendo Switch) join a Java server?

Yes, but consoles require an extra step because their game menus do not allow custom server IP entries by default. Console players can use mobile apps like Bedrock Together, change their DNS settings to route through a custom server list portal, or use Geyser's companion tools to easily connect to your IP address.



Will redstone machines, farms, and combat mechanics work the same for Bedrock players?

All core gameplay mechanics, including redstone logic, mob spawning behaviors, and combat cooldowns, are dictated entirely by the Java server engine. Bedrock players will experience Java rules, meaning Bedrock-specific redstone bugs or features will not work, and they must adapt to Java combat timing.



Can I install Java plugins and custom resource packs for Bedrock players?

Yes. Plugins installed on your Paper or Purpur server (such as EssentialsX, LuckPerms, or WorldGuard) will work perfectly for Bedrock players. Additionally, Geyser automatically translates custom Java resource packs and sends them to Bedrock clients upon joining, ensuring everyone sees the same visual themes.

Optimize Your Multi-Platform Minecraft Server

By bridging Java and Bedrock communities, you can build a larger, more active player base. Keep your server software updated to ensure your cross-play features stay compatible with the latest Minecraft releases.


Best Minecraft Bedrock And Java Servers at Eileen Marvin blog

Best Minecraft Bedrock And Java Servers at Eileen Marvin blog

Read also: The Rise of the "Japan Price Tag" Trend: A Deep Dive into Premium Content Pricing and Global Influence
close