Skip to main content
Cross-play9 min read

GeyserMC Setup Guide: Let Bedrock Join Java Servers

Complete setup guide for GeyserMC, the proxy that allows Minecraft Bedrock Edition players to join Java Edition servers.

What is GeyserMC?

GeyserMC is an open-source proxy that translates between the Minecraft Bedrock and Java Edition network protocols. It allows Bedrock players on mobile, console, and Windows 10/11 to join Java Edition servers without needing Java installed. GeyserMC handles the translation of blocks, items, entities, sounds, and other game data in real time.

How It Works

GeyserMC sits between the Bedrock client and the Java server. When a Bedrock player connects, GeyserMC:

  1. Accepts the Bedrock connection using the Bedrock protocol.
  2. Creates a corresponding Java connection to the backend server.
  3. Translates all incoming Bedrock packets to Java packets and vice versa.
  4. Maps Bedrock items, blocks, and entities to their Java equivalents.
  5. Handles differences in game mechanics, inventory management, and player movement.

To the Java server, the Bedrock player appears as a normal Java player. To the Bedrock player, the Java server appears as a normal Bedrock server.

Deployment Options

GeyserMC can run in several modes:

  • Plugin: Runs as a plugin on Spigot, Paper, Velocity, BungeeCord, or other Java server software. This is the easiest and most common setup.
  • Standalone: Runs as a separate proxy application. Useful when you cannot modify the Java server (such as connecting to someone else's server or a hosting provider that does not support GeyserMC plugins).

Plugin Installation (Recommended)

  1. Download the GeyserMC plugin for your server software from the GeyserMC website.
  2. Place the .jar file in your server's plugins folder.
  3. Restart the server.
  4. GeyserMC generates its configuration file at plugins/Geyser-Spigot/config.yml (path varies by platform).
  5. Edit the configuration as needed (see below).
  6. Restart the server again to apply changes.

Configuration

The main configuration file (config.yml) has several important settings:

bedrock:
  address: 0.0.0.0
  port: 19132
  clone-remote-port: false
  motd1: "GeyserMC Server"
  motd2: "Java + Bedrock"
  server-name: "Geyser"

remote:
  address: auto
  port: 25565
  auth-type: online

general:
  show-cooldown: title
  show-coordinates: true
  disable-bedrock-scaffolding: false
  emote-offhand-workaround: disabled

Key settings:

  • bedrock.port - The UDP port Bedrock players connect to. Default 19132.
  • remote.address - The Java server address. Set to "auto" when running as a plugin.
  • remote.auth-type - Authentication mode. "online" requires Java accounts, "floodgate" uses Floodgate for Bedrock authentication.
  • show-cooldown - How to display the Java combat cooldown to Bedrock players (title, actionbar, or disabled).

Port Configuration

When running as a plugin, you need two ports open:

  • TCP port 25565 (or your Java port) for Java players.
  • UDP port 19132 (or your Bedrock port) for Bedrock players.

Make sure your firewall and port forwarding rules allow both TCP and UDP traffic on the appropriate ports.

Authentication

By default, GeyserMC requires Bedrock players to have a linked Java account (online mode). This means each Bedrock player needs to own both Bedrock and Java Edition and link their accounts. To avoid this requirement, use Floodgate (covered in a separate guide), which allows Bedrock players to join without a Java account.

Standalone Setup

  1. Download the GeyserMC standalone JAR.
  2. Run it with: java -jar Geyser.jar
  3. Edit the generated config.yml:
  4. Set remote.address to the Java server's IP.
  5. Set remote.port to the Java server's port.
  6. Set the Bedrock port as needed.
  7. Restart GeyserMC.

Bedrock players connect to the GeyserMC proxy address and port, and GeyserMC forwards the connection to the Java server.

Known Limitations

  • Redstone behavior appears as Java-style to all players since the server is Java.
  • Some visual elements may not translate perfectly (banner patterns, map art, custom heads).
  • Combat feels different because Bedrock players interact with Java combat mechanics through the translation layer.
  • Custom resource packs on the Java server do not automatically transfer to Bedrock players.
  • Some plugins may have compatibility issues with translated Bedrock connections.
  • Performance depends on the number of connected Bedrock players, as each connection requires packet translation.

Troubleshooting

  • If Bedrock players cannot connect, check that UDP port 19132 is open and forwarded.
  • If authentication fails, verify that the Bedrock player has linked their Microsoft and Java accounts.
  • If items appear incorrectly, update GeyserMC to the latest version for better mappings.
  • Check the GeyserMC logs for specific error messages when connections fail.

Related Astroworld Resources

Related Guides