Crossplay Setup

How to set up GeyserMC and Floodgate for Java and Bedrock crossplay on your Witchly.host Minecraft server.

Crossplay Setup

GeyserMC and Floodgate allow Bedrock Edition players (Windows 10/11, consoles, mobile) to join your Java Edition Minecraft server. This guide walks you through the complete setup process.

What You Need

  • A Java Edition Minecraft server running Paper, Spigot, Purpur, Fabric, or Forge.
  • GeyserMC — Translates Bedrock network protocol to Java protocol.
  • Floodgate — Allows Bedrock players to join without a Java account.

How It Works

GeyserMC acts as a translator between Bedrock and Java Edition. When a Bedrock player connects, Geyser converts their actions into Java protocol that the server understands, and translates the server’s responses back into Bedrock protocol.

Floodgate removes the requirement for Bedrock players to own a Java Edition account. Without Floodgate, Bedrock players would need to link a Java account to join.

Installation

Step 1: Download GeyserMC and Floodgate

  1. Go to geysermc.org and download the correct version for your server software:

    • Paper/Spigot/Purpur: Download the Spigot plugin versions of both Geyser and Floodgate.
    • Fabric: Download the Fabric mod versions.
    • Forge: Download the Forge mod versions (check version compatibility carefully).
  2. Download both Geyser and Floodgate for your platform.

Step 2: Install on Your Server

  1. Log in to Dashboard and select your server.
  2. Stop your server.
  3. Go to the File Manager tab.
  4. For Paper/Spigot/Purpur: Upload both .jar files to the plugins folder.
  5. For Fabric/Forge: Upload both .jar files to the mods folder.
  6. Start your server. Both plugins/mods will generate their configuration files.
  7. Stop the server again to configure them.

Step 3: Configure GeyserMC

  1. In the File Manager, navigate to:

    • Paper/Spigot/Purpur: plugins/Geyser-Spigot/config.yml
    • Fabric: config/Geyser-Fabric/config.yml
    • Forge: config/Geyser-Forge/config.yml
  2. Open config.yml and find the bedrock section:

    bedrock:
      address: 0.0.0.0
      port: 19132
      clone-remote-port: false
  3. The default Bedrock port is 19132. You may need to use the port assigned by Witchly. Check your server’s allocated ports in the dashboard — if an additional port has been assigned for Bedrock, use that port number.

  4. In the remote section, confirm these settings:

    remote:
      address: auto
      port: auto
      auth-type: floodgate

    Setting auth-type to floodgate enables Bedrock players to join without Java accounts.

Step 4: Configure Floodgate

  1. Navigate to the Floodgate config:

    • Paper/Spigot/Purpur: plugins/floodgate/config.yml
    • Fabric/Forge: config/floodgate/config.yml
  2. Key settings:

    # Prefix added to Bedrock player names to avoid conflicts with Java names
    username-prefix: "."
    
    # Whether to replace spaces in Bedrock names with underscores
    replace-spaces: true

    The username-prefix (default .) is added to Bedrock player names. For example, a Bedrock player named “Steve” would appear as ”.Steve” on the server. You can change this to any character or leave it empty (not recommended as it can cause username conflicts).

Step 5: Set online-mode

For Floodgate to work properly, you need to adjust server.properties:

online-mode=false

Important: Setting online-mode=false means the server will not authenticate Java players against Mojang’s servers by default. To maintain security for Java players, install an authentication plugin.

If you are using Paper or a Paper fork, there is a better approach. In config/paper-global.yml (or paper.yml on older versions), you can enable:

proxies:
  velocity:
    enabled: false
  bungee-cord:
    online-mode: true

Alternatively, keep online-mode=true in server.properties if Geyser is running as a standalone proxy rather than a plugin.

Step 6: Start and Test

  1. Start your server.
  2. Check the console for Geyser and Floodgate startup messages. You should see something like:
    [Geyser-Spigot] Started Geyser on 0.0.0.0:19132
  3. Connect with a Java Edition client using the normal server address.
  4. Connect with a Bedrock Edition client using the server address and the Bedrock port (default 19132 or your assigned port).

Bedrock Players: How to Connect

Windows 10/11

  1. Open Minecraft Bedrock Edition.
  2. Go to Servers tab.
  3. Click Add Server.
  4. Enter the server address and the Bedrock port.
  5. Click Play.

Consoles (Xbox, PlayStation, Nintendo Switch)

Console editions do not natively support adding custom servers. Players need to use a workaround such as a DNS redirect tool (like BedrockConnect) or a LAN proxy.

Mobile (iOS/Android)

  1. Open Minecraft.
  2. Go to Play > Servers.
  3. Click Add Server.
  4. Enter the address and Bedrock port.
  5. Join the server.

Port Allocation

Crossplay requires an additional port for Bedrock connections (UDP). Your Witchly server comes with allocated ports — check your dashboard for the available port allocations. If you need an additional port for Bedrock, contact support on our Discord.

  • Java clients connect on the TCP port (your main server port).
  • Bedrock clients connect on the UDP port (the Geyser Bedrock port).

Common Issues

Bedrock players cannot connect

  • Verify the Bedrock port is correct and matches the allocated port.
  • Check that auth-type is set to floodgate in Geyser’s config.
  • Make sure both Geyser and Floodgate are running (check console output).

”Unable to connect to world”

  • The Bedrock port may be blocked. Verify your port allocation in the dashboard.
  • Make sure you are using the correct address and port.

Bedrock players have no skin

This is a known limitation. Geyser does its best to translate skins, but some Bedrock skins may not display correctly on the Java server.

Permission issues with Bedrock players

Bedrock usernames include the prefix (e.g., .Steve). Make sure your permission plugins use the prefixed name when granting permissions.

Need Help?

For crossplay setup assistance, join our Discord.