Setting Up a Java + Bedrock Cross-Play Server
Complete walkthrough for creating a Minecraft server that accepts both Java and Bedrock players using GeyserMC and Floodgate.
Overview
This guide walks you through setting up a Minecraft server that both Java and Bedrock players can join simultaneously. We will use Paper (a high-performance Java server) with GeyserMC (protocol translator) and Floodgate (Bedrock authentication). The result is a unified server where players on phones, consoles, and PCs can all play together.
Architecture
The setup works like this:
- Java players connect directly to the Java server on TCP port 25565.
- Bedrock players connect to GeyserMC on UDP port 19132.
- GeyserMC translates Bedrock packets to Java packets and forwards them to the Java server.
- Floodgate handles authentication so Bedrock players do not need Java accounts.
All players see and interact with the same world. From the server's perspective, every connected player (regardless of edition) is a participant in the same game session.
Step 1: Install Java
Paper requires Java 17 or later:
# Ubuntu/Debian
sudo apt update && sudo apt install openjdk-21-jre-headless
# Verify
java -version
Step 2: Set Up Paper Server
- Create a server directory:
mkdir crossplay-server && cd crossplay-server - Download the latest Paper JAR from the Paper website.
- Create a start script:
#!/bin/bash java -Xms2G -Xmx4G -jar paper.jar --nogui - Run the server once. It will generate files and stop (you need to accept the EULA).
- Edit eula.txt and set
eula=true. - Start the server again. Let it fully generate the world and configuration files.
Step 3: Configure the Java Server
Edit server.properties for your preferences:
server-port=25565
online-mode=true
max-players=20
difficulty=normal
gamemode=survival
pvp=true
spawn-protection=0
Important: Keep online-mode=true for security. Floodgate handles Bedrock authentication without disabling Java authentication.
Step 4: Install Floodgate
- Download the Floodgate plugin for Paper/Spigot from the GeyserMC website.
- Place it in the
pluginsfolder. - Restart the server.
- Floodgate creates its config at
plugins/floodgate/config.ymland generates a key.pem file. - Configure the username prefix in Floodgate's config (the default "." works well).
Step 5: Install GeyserMC
- Download the GeyserMC plugin for Paper/Spigot.
- Place it in the
pluginsfolder. - Restart the server.
- Edit
plugins/Geyser-Spigot/config.yml:bedrock: address: 0.0.0.0 port: 19132 motd1: "My Cross-Play Server" motd2: "Java + Bedrock Welcome" remote: address: auto port: auto auth-type: floodgate - Restart the server one final time.
Step 6: Network Configuration
Forward both ports on your router:
- TCP 25565 for Java players.
- UDP 19132 for Bedrock players.
Also configure your firewall to allow these ports:
# UFW (Ubuntu)
sudo ufw allow 25565/tcp
sudo ufw allow 19132/udp
Step 7: Testing
Test connections from both editions:
- Java: Connect using your server's IP and port 25565 in the Java client multiplayer menu.
- Bedrock: Add a server in the Servers tab with your server's IP and port 19132.
Both players should appear in the same world and be able to interact normally.
Recommended Plugins
For a good cross-play experience, consider these plugins:
- ViaVersion: Allows Java players on different versions to connect.
- EssentialsX: Core server management (homes, warps, kits, economy).
- LuckPerms: Permission management that works with both Java and Floodgate players.
- GeyserSkinManager: Properly displays Bedrock player skins to Java players.
- GeyserOptionalPack: A resource pack that fixes visual issues for Bedrock players.
Common Issues
- Bedrock players cannot see items correctly: Update GeyserMC to the latest version. Item mappings are regularly updated.
- Bedrock players experience rubber-banding: Check server TPS and network latency. GeyserMC adds some overhead.
- Forms and menus do not work for Bedrock: Use GeyserMC's form API or ensure plugins support Bedrock forms.
- Chat formatting is broken for Bedrock: Some chat plugins need configuration changes to handle the username prefix.
Related Astroworld Resources
Related Guides
Guide to playing Minecraft with friends across different platforms and editions, including Bedrock cross-play and Java-Bedrock bridging.
7 min readComplete setup guide for GeyserMC, the proxy that allows Minecraft Bedrock Edition players to join Java Edition servers.
9 min readSet up Floodgate to let Bedrock players join your Java server without needing a Java Edition account.
7 min read