# Fix GeyserMC 'Unable to Connect to World': Bedrock-Java Crossplay Guide
The "Unable to connect to world" error occurs when GeyserMC cannot establish a UDP connection between Bedrock and Java Edition servers. Fix it by opening UDP port 19132, setting Floodgate auth-type to "floodgate", and ensuring your firewall allows bidirectional UDP traffic. This guide shows the complete crossplay setup.
Understanding the Error
GeyserMC acts as a translation proxy between Bedrock Edition (UDP protocol) and Java Edition (TCP protocol). When Bedrock players see "Unable to connect to world," the server failed to establish the UDP handshake on port 19132.
Common Causes:
- Port 19132 opened for TCP instead of UDP
- Firewall blocking UDP traffic
- Floodgate auth-type misconfigured
- Router NAT issues with UDP forwarding
- Server binding to incorrect network interface
Step-by-Step Fix
Step 1: Verify Port Configuration
GeyserMC requires UDP port 19132 (Bedrock default). Java Edition uses TCP port 25565. These are separate protocols.
# Check if port 19132 is listening (UDP)
netstat -tulnp | grep 19132
# Expected output (if GeyserMC is running):
# udp 0 0 0.0.0.0:19132 0.0.0.0:* LISTEN 12345/javaIf you see nothing, GeyserMC isn't binding to the port. Check config.yml.
Step 2: Configure GeyserMC Port Binding
Edit plugins/Geyser-Spigot/config.yml:
# GeyserMC config.yml - bedrock section
bedrock:
# Port for Bedrock players (must be UDP)
port: 19132
# Bind to all network interfaces
address: 0.0.0.0Critical: The address: 0.0.0.0 setting allows connections from any network interface. If set to 127.0.0.1, only local connections work.
Step 3: Open UDP Port 19132
Most port forwarding guides assume TCP. Bedrock requires UDP.
Linux/VPS Firewall (ufw):
# Allow UDP traffic on port 19132
sudo ufw allow 19132/udp
# Verify rule exists
sudo ufw status | grep 19132
# Output: 19132/udp ALLOW AnywhereRouter Port Forwarding:
- Protocol: UDP (not TCP, not Both)
- External Port: 19132
- Internal Port: 19132
- Internal IP: Your server's LAN IP
Common Router Mistake: Some routers have separate fields for TCP and UDP. You must configure UDP specifically. Setting "Both" sometimes only opens TCP.
Step 4: Configure Floodgate Authentication
Floodgate allows Bedrock players to join without a Java account. Edit plugins/floodgate/config.yml:
# Floodgate config.yml
# Set auth-type to bypass Java authentication for Bedrock players
auth-type: floodgateAuthentication Types:
online: Bedrock players need a Java account (defeats the purpose)floodgate: Bedrock players join directly (recommended)offline: Server in offline mode (insecure, not recommended)
Step 5: Whitelist Bedrock Players Correctly
Bedrock player usernames are prefixed with a period when whitelisted.
# WRONG - Java whitelist command (won't work for Bedrock)
/whitelist add PlayerName
# CORRECT - Bedrock whitelist (note the period prefix)
/fwhitelist add .PlayerNameAlternatively, edit whitelist.json manually:
[
{
"uuid": "00000000-0000-0000-0009-01234567890a",
"name": ".PlayerName"
}
]The period prefix distinguishes Bedrock players from Java players in the server's player database.
Step 6: Test UDP Connectivity
From a Bedrock device, test the connection:
Add Server:
- Server Name: Your server
- Server Address: your-server-ip
- Port: 19132
Connection Test:
If you see "Locating server" for more than 10 seconds, UDP traffic isn't reaching GeyserMC. Check:
- Firewall rules (UDP, not TCP)
- Router port forwarding (UDP protocol selected)
- Server logs:
plugins/Geyser-Spigot/logs/latest.log
Expected Log Output (Success):
[Geyser-Spigot] Player connected with username .PlayerName from /192.168.1.50:54321
[Floodgate] Floodgate player .PlayerName has UUID 00000000-0000-0000-0009-01234567890aThe MANAfuel Difference
The manual fix above works, but requires networking knowledge, firewall configuration, and router access. On MANAfuel, crossplay is pre-configured.
You: "Bob, enable crossplay for Bedrock players."
Bob: "Enabling GeyserMC with Floodgate authentication. I've configured UDP port 19132 on The Grid's network layer, set Floodgate auth-type to 'floodgate', and verified bidirectional UDP traffic. Bedrock players can now connect to your server without port forwarding. Share this address: your-server.manafuel.com:19132"
The Grid's network infrastructure handles UDP port allocation automatically. No router configuration. No firewall rules. Bob provisions the network resources and validates connectivity.
Frequently Asked Questions
# Find what's using port 19132
sudo lsof -i :19132
# If another Java process is listed, kill it:
sudo kill -9 <PID>