> ## Documentation Index
> Fetch the complete documentation index at: https://docs.purpify.host/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up Geyser cross-play

> Install Geyser on a Purpify Java server so Minecraft Bedrock players can connect.

Install Geyser as a plugin on a compatible Java server, start the server once to generate its files, then add a port and update the Geyser configuration.

<Note>
  This guide covers the normal plugin installation for compatible Java server software. Modded servers and proxy networks use different Geyser files and locations.
</Note>

## How cross-play works

Geyser accepts connections from Minecraft Bedrock Edition and translates them for the Java server. Java players continue using the normal Java address. Bedrock players use the server address and the port configured for Geyser.

Geyser does not convert Java worlds, plugins, or mods into native Bedrock formats.

## Before you begin

You need:

* A running Purpify Minecraft Java server with plugin-compatible software
* Access to the plugin installer or `/plugins` folder
* Permission to add an allocation in the Purpify game panel
* A server backup

<Warning>
  Give Geyser its own allocation. Do not reuse a port assigned to another server feature.
</Warning>

## Install and configure Geyser

<Steps>
  <Step title="Install Geyser">
    Use Purpify's plugin installer to install Geyser. For a manual installation, download `Geyser-Spigot.jar` from [GeyserMC](https://geysermc.org/download) and upload it to `/plugins`.
  </Step>

  <Step title="Start the server once">
    Start the server and wait until startup completes. Geyser creates its configuration files during this start.
  </Step>

  <Step title="Stop the server">
    Stop the server normally before editing the Geyser configuration.
  </Step>

  <Step title="Add a port">
    Go to **Network** in the server management view and select **Add Allocation**. Copy the new port number.
  </Step>

  <Step title="Open the configuration">
    Open `/plugins/Geyser-Spigot/config.yml` in the Purpify file manager.
  </Step>

  <Step title="Configure Geyser">
    Find the `bedrock` section. Paste the port from **Network** after `port:`.

    ```yaml Geyser config theme={"dark"}
    bedrock:
      # The IP address that Geyser will bind on to listen for incoming Bedrock connections.
      # Generally, you should only change this if you want to limit what IPs can connect to your server.
      address: 0.0.0.0

      # The port that will Geyser will listen on for incoming Bedrock connections.
      # Since Minecraft: Bedrock Edition uses UDP, this port must allow UDP traffic.
      port:

      # Some hosting services change your Java port everytime you start the server and require the same port to be used for Bedrock.
      # This option makes the Bedrock port the same as the Java port every time you start the server.
      clone-remote-port: false
    ```

    For example, if **Add Allocation** gives you port `19150`, change the line to `port: 19150`.
  </Step>

  <Step title="Start and test">
    Save the file and start the server. Check the console for Geyser errors, then connect from Bedrock using the server address and the configured port.
  </Step>
</Steps>

<Check>
  Cross-play works when Java players can connect normally and a Bedrock player can join through the Geyser port.
</Check>

## Add Floodgate

Floodgate lets Bedrock players join without signing in with a paid Java Edition account.

<Steps>
  <Step title="Install Floodgate">
    Download the Floodgate plugin for Spigot from [GeyserMC](https://geysermc.org/download), then upload the Floodgate `.jar` to `/plugins`.
  </Step>

  <Step title="Generate the Floodgate files">
    Start the server once, wait for startup to complete, then stop it.
  </Step>

  <Step title="Change Geyser authentication">
    Open `/plugins/Geyser-Spigot/config.yml`. Near the top of the file, find the `java` section directly below the `bedrock` section. Change `auth-type` from `online` to `floodgate`.

    ```yaml Geyser authentication theme={"dark"}
    java:
      # What type of authentication Bedrock players will be checked against when logging into the Java server.
      # Can be "floodgate", "online", or "offline".
      auth-type: floodgate
    ```
  </Step>

  <Step title="Restart and test">
    Start the server and connect with a Bedrock account.
  </Step>
</Steps>

<Warning>
  Never share Floodgate's `key.pem` file. Anyone with this key may be able to bypass the intended Java authentication path.
</Warning>

## Test the Geyser port

Run this command in the server console with your public server address and configured Bedrock port:

```text theme={"dark"}
geyser connectiontest <server-address> <bedrock-port>
```

The connection test helps determine whether the Geyser port is reachable from outside the server.

## Troubleshoot cross-play

<AccordionGroup>
  <Accordion title="Bedrock cannot connect">
    Confirm that the server is running, Geyser enabled successfully, and the Bedrock client uses the exact port from `config.yml`. Check that another service is not using the same allocation.
  </Accordion>

  <Accordion title="The connection test fails">
    Go to **Network** and confirm that `port` contains the number created through **Add Allocation**. Check that `clone-remote-port` has not overwritten it. Copy the first relevant Geyser error from the console when contacting support.
  </Accordion>

  <Accordion title="Bedrock asks for a Java account">
    Confirm that the Floodgate `.jar` is in `/plugins`. In `/plugins/Geyser-Spigot/config.yml`, find the top-level `java` section and set `auth-type: floodgate`, then restart the server.
  </Accordion>

  <Accordion title="Geyser reports an incompatible version">
    Update Geyser and verify that the Java server version is supported. Some older Java server versions also require a compatible ViaVersion installation.
  </Accordion>

  <Accordion title="A modded client cannot join">
    Geyser only supports server-side Java mods. Mods that require installation on the Java client cannot be translated for a Bedrock client.
  </Accordion>
</AccordionGroup>

## Detailed video guide

Watch the complete walkthrough when you want to follow the setup visually.

<iframe width="560" height="315" src="https://www.youtube.com/embed/NwCUhAJCaR0" title="Detailed GeyserMC Java and Bedrock cross-play setup guide" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen style={{ width: '100%', borderRadius: '0.9rem' }} />

[Open the detailed Geyser video guide on YouTube](https://youtu.be/NwCUhAJCaR0)

For configuration details, see the [official Geyser setup guide](https://geysermc.org/wiki/geyser/setup/) and [official Floodgate setup guide](https://geysermc.org/wiki/floodgate/setup/).
