Back to Blog
tutorials | | 9 min read

Minecraft Java + Bedrock Crossplay with Geyser: Setup Guide

Set up Geyser for Minecraft Java and Bedrock crossplay. Let Bedrock players join your Java server.

minecraft geyser crossplay bedrock java

One of the most common questions in the Minecraft community is: “Can my friend on Bedrock join my Java server?” The answer is yes, and the tool that makes it possible is called Geyser.

What is Geyser? Geyser is an open-source proxy that translates Bedrock Edition protocol into Java Edition protocol. It allows players on Minecraft Bedrock (Windows 10/11, mobile, Xbox, PlayStation, Nintendo Switch) to connect to a Minecraft Java server without any modifications on the Bedrock client side.

This guide walks you through setting up Geyser on your Minecraft Java server so all your friends can play together regardless of what platform they are on.

How Geyser Works

Geyser sits between Bedrock players and your Java server. When a Bedrock player connects, Geyser translates their inputs and game data into Java Edition format in real time. The Java server sees the Bedrock player as a regular Java player.

Here is a simplified breakdown:

  1. Bedrock player connects to your server on port 19132 (Bedrock default)
  2. Geyser receives the Bedrock protocol data
  3. Geyser translates it into Java Edition protocol
  4. Your Java server processes the player as a Java player
  5. Server responses get translated back to Bedrock format
  6. Bedrock player sees everything in their native client

Important: Geyser is not a separate server. It is a plugin or proxy that runs alongside your existing Java server. You keep your existing world, plugins, and settings.

Prerequisites

Before setting up Geyser, make sure you have:

  • A Minecraft Java Edition server running Paper, Spigot, or another Bukkit-based fork (Paper recommended)
  • Server version 1.20.4 or later (for best compatibility)
  • Access to your server files via SFTP or the management panel
  • Port 19132 UDP available (for Bedrock connections)

This is the simplest method. Geyser runs as a plugin inside your existing Paper/Spigot server.

Step 1: Download Geyser-Spigot

Download the latest Geyser-Spigot.jar from the official GeyserMC website:

  • Go to geysermc.org
  • Click “Download” and select “Geyser-Spigot”
  • Save the .jar file

Step 2: Install the Plugin

  1. Connect to your server via SFTP or your panel’s file manager
  2. Navigate to the /plugins/ directory
  3. Upload Geyser-Spigot.jar to the plugins folder
  4. Restart your server (not just reload)

Step 3: Install Floodgate

Floodgate is a companion plugin that allows Bedrock players to join without needing a Java Edition account.

  1. Download Floodgate-Spigot.jar from geysermc.org
  2. Upload it to the /plugins/ directory alongside Geyser
  3. Restart the server again

What does Floodgate do? Without Floodgate, Bedrock players need to own a Java Edition account and link it through GeyserMC’s authentication system. With Floodgate, Bedrock players can join using only their Xbox/Microsoft account. Their in-game name will appear with a prefix (default is a period, like .BedrockPlayer).

Step 4: Configure Geyser

After the first restart with Geyser installed, a configuration file is generated. Open it at:

/plugins/Geyser-Spigot/config.yml

Key settings to review:

# The IP Bedrock players will connect to
bedrock:
  # The port Bedrock players connect on
  port: 19132

  # Clone the Java server's MOTD
  clone-remote-motd: true

remote:
  # Where Geyser connects to your Java server
  # For plugin mode, these defaults work
  address: auto
  port: auto

  # Authentication type
  auth-type: floodgate

The most important setting is auth-type: floodgate. This tells Geyser to use Floodgate for authentication so Bedrock players do not need Java accounts.

Step 5: Port Configuration

Geyser needs UDP port 19132 open for Bedrock connections. Your Java server uses TCP port 25565 (or your custom port).

If you are using a hosting provider: Most panels (including Pterodactyl) let you add additional ports. Add port 19132 with UDP protocol. On CraftRift, Geyser comes pre-configured and the port is already allocated.

If you are self-hosting: Add a firewall rule to allow UDP traffic on port 19132:

# Linux (ufw)
sudo ufw allow 19132/udp

# Linux (iptables)
sudo iptables -A INPUT -p udp --dport 19132 -j ACCEPT

Step 6: Restart and Test

  1. Restart your server
  2. Check the console for Geyser startup messages: Geyser (Spigot) has started!
  3. On a Bedrock client, add a server with your server’s IP and port 19132
  4. Connect and verify you can join

Method 2: Geyser as a Standalone Proxy

If you cannot install plugins on your server (for example, if you are connecting to a server you do not own), you can run Geyser as a standalone proxy on a separate machine.

  1. Download Geyser-Standalone.jar from geysermc.org
  2. Run it with: java -Xms512M -Xmx512M -jar Geyser-Standalone.jar
  3. Edit the generated config.yml to point remote.address to your Java server’s IP
  4. Bedrock players connect to the proxy, which forwards traffic to the Java server

This method is more complex and adds an extra network hop, so it is only recommended when plugin installation is not possible.

Configuring Floodgate

Floodgate generates its own config file at /plugins/floodgate/config.yml. Key settings:

# Prefix for Bedrock player names
# This prevents name conflicts with Java players
username-prefix: "."

# Allow Bedrock players to link their accounts
# with Java accounts for unified identity
player-link:
  enabled: true

  # Allow Bedrock players to link via /linkaccount
  allowed: true

The Username Prefix

By default, Bedrock player names appear with a dot prefix (e.g., .Steve). This prevents conflicts if a Java player has the same username. You can change the prefix to anything, but using an empty prefix is risky since it could cause permission and data conflicts.

Tip for server operators: If you use permission plugins (LuckPerms, etc.), make sure your permission setup handles prefixed names correctly. You may need to adjust regex-based permission matching.

Troubleshooting Common Issues

Bedrock Players Cannot Connect

Check the port: Make sure UDP port 19132 is open and forwarded. You can test with an online port checker.

Check the console: Look for error messages in your server console when a Bedrock player tries to connect. Common errors include:

  • “Failed to bind to port” - Another process is using port 19132, or the port is not allocated
  • “Unable to connect to downstream” - Geyser cannot reach your Java server

Xbox and Switch players: Console players cannot connect to custom servers directly by default. They need to use a DNS redirect method or BedrockConnect to join non-featured servers. This is a Minecraft Bedrock limitation, not a Geyser issue.

Bedrock Players See Broken Items or Textures

Some Java items and blocks do not have direct Bedrock equivalents. Geyser handles most translations automatically, but edge cases exist. Installing GeyserOptionalPack (a Bedrock resource pack) fixes most visual issues:

  1. Download GeyserOptionalPack from the GeyserMC resources page
  2. Players install it as a resource pack on their Bedrock client
  3. This adds missing textures and models

Skin Issues

Bedrock and Java use different skin systems. By default, Bedrock players appear with default skins on Java clients and vice versa. Floodgate handles basic skin translation, but custom skins may not transfer perfectly between editions.

Plugin Compatibility

Most plugins work with Bedrock players through Geyser, but some have issues:

  • GUI-based plugins: Bedrock inventory handling differs from Java. Some custom inventory GUIs may not display correctly.
  • Scoreboard plugins: Bedrock has different scoreboard limitations. Some scoreboard displays may render differently.
  • World edit with Bedrock tools: Tool interactions are slightly different. Complex WorldEdit brush operations may not work perfectly from a Bedrock client.

The Geyser team maintains a compatibility list documenting known plugin issues and workarounds.

Performance Impact

Geyser adds a small amount of CPU overhead for protocol translation. For most servers, this is negligible.

Benchmarks (approximate):

  • 1-5 Bedrock players: <1% CPU overhead
  • 5-15 Bedrock players: 1-3% CPU overhead
  • 15+ Bedrock players: 3-5% CPU overhead

These numbers are approximate and depend on your hardware and player activity. Protocol translation is lightweight compared to game logic processing.

RAM usage: Geyser typically uses 50-150MB of additional RAM depending on the number of connected Bedrock players.

CraftRift: Crossplay Out of the Box

If you don’t want to deal with manual setup, CraftRift servers come with Geyser and Floodgate pre-installed and pre-configured. Bedrock players can connect immediately after your server is created. The Bedrock port (19132) is already allocated and open.

This means zero setup time for crossplay. Just share your server address with friends on any platform and start playing.

CraftRift plans start at $3/month with Singapore servers for low-latency gameplay across Southeast Asia.

Frequently Asked Questions

Can Bedrock and Java players see each other’s skins?

Partially. Floodgate translates basic skins, but custom skins (especially custom geometry skins on Bedrock) may not display correctly on the other edition. Both players will see each other, but skins might appear as the default Steve/Alex in some cases.

Does Geyser work with modded Minecraft servers?

Geyser works best with vanilla or lightly-modded servers. If your Java server uses Forge or Fabric mods that add custom items and blocks, Bedrock players will not see those custom additions. They may appear as placeholder items or be invisible. For vanilla gameplay with plugins, Geyser works excellently.

Is Geyser allowed by Mojang?

Geyser operates in a gray area. It is not officially endorsed or prohibited by Mojang. The project is open-source, widely used, and has been active for years without legal action. Many large servers use it to support their Bedrock player base.

Can console players (Xbox, PlayStation, Switch) join my server?

Yes, but not directly. Console editions of Bedrock do not have a “direct connect” option for custom servers. Players need to use workarounds like BedrockConnect (a DNS redirect service) or the “Add Server” trick via LAN settings. Search “BedrockConnect” for setup instructions specific to each console.

What Minecraft versions does Geyser support?

Geyser supports the latest stable release of both Java and Bedrock editions. The team typically updates within a few days of a new Minecraft release. Check the GeyserMC Discord or website for version compatibility when a new update drops.

Need Low-Ping Hosting?

CraftRift servers run on dedicated hardware in Singapore. Sub-50ms ping across Southeast Asia, starting at $3/mo.