Minecraft Java + Bedrock Crossplay with Geyser: Setup Guide
Set up Geyser for Minecraft Java and Bedrock crossplay. Let Bedrock players join your Java server.
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:
- Bedrock player connects to your server on port 19132 (Bedrock default)
- Geyser receives the Bedrock protocol data
- Geyser translates it into Java Edition protocol
- Your Java server processes the player as a Java player
- Server responses get translated back to Bedrock format
- 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)
Method 1: Geyser as a Plugin (Recommended)
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
- Connect to your server via SFTP or your panel’s file manager
- Navigate to the
/plugins/directory - Upload
Geyser-Spigot.jarto the plugins folder - 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.
- Download
Floodgate-Spigot.jarfrom geysermc.org - Upload it to the
/plugins/directory alongside Geyser - 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
- Restart your server
- Check the console for Geyser startup messages:
Geyser (Spigot) has started! - On a Bedrock client, add a server with your server’s IP and port 19132
- 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.
- Download
Geyser-Standalone.jarfrom geysermc.org - Run it with:
java -Xms512M -Xmx512M -jar Geyser-Standalone.jar - Edit the generated
config.ymlto pointremote.addressto your Java server’s IP - 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:
- Download GeyserOptionalPack from the GeyserMC resources page
- Players install it as a resource pack on their Bedrock client
- 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.
Related Articles
How to Set Up a Minecraft SMP Server for Friends: Complete Guide
Learn how to start your own Minecraft SMP server from scratch. Covers planning, hosting, essential plugins, spawn builds, rules templates, and growing your community.
comparisonsBest Minecraft Server Hosting for Southeast Asia (2026)
Compare the best Minecraft server hosting providers for SEA players. Low ping Singapore servers, pricing, and features compared.
guidesBest Minecraft Server Plugins in 2026: Essential List for Every Server
A complete guide to the best Minecraft server plugins in 2026, covering anti-cheat, economy, world management, performance, and more. Find the right plugins for your Spigot or Paper server.
Free Tools You Might Need
Need Low-Ping Hosting?
CraftRift servers run on dedicated hardware in Singapore. Sub-50ms ping across Southeast Asia, starting at $3/mo.