Due to the work of some brilliant people, it’s now possible to open a Minecraft Java Edition server to Bedrock Edition clients; and, due to another brilliant dude, it’s possible to connect even the nerfed console ports up to an arbitrary server. This means you can have simultaneous crossplay among the whole cornucopia of PC, Android, iOS, Win10, Fire/Stick, Switch, PS4, and Xbox One Minecraft clients!

(*The PS4, XBO, and Switch editions are on thin ice and may be kicked out by Mojang someday. But all the others should keep working forever.)

To open your Java server up to bedrock clients , it's as simple as the following:

  1. Be running a Minecraft server that supports conventional plugins (e.g. Bukkit, Spigot, Paper, etc.)
    • FYSA, this post was last updated on March 4th, 2022. At this time, I was using paper-1.18.2-222, Geyser-Spigot-2.0.2-SNAPSHOT-1043, and floodgate-spigot-2.1.0-SNAPSHOT-64.
    • At the moment, this post does NOT explicitly cover setup for Waterfall, Velocity, or similar exotic architectures. They are supported; I'm just not documenting them today.
  2. Prepare the plugins:
    1. Download these 3 files:
      1. Geyser (Paper servers need the Spigot build)
      2. Floodgate (Paper servers need the Spigot build)
      3. Floodgate SQLite Plugin (downloaded from the same page as Floodgate)
    2. Put the first two files in your plugins folder
    3. Restart the server
    4. Put the third file in the folder plugins/floodgate
  3. You may wish to modify plugins/Geyser-Spigot/config.yml with the following:
    • passthrough-motd: true
      This will show Bedrock players your MOTD; I have no idea why it's not enabled by default.
    • passthrough-protocol-name: true
      This will show Bedrock players any custom "protocol" name you or your server software has configured.
    • passthrough-player-counts: true
      Shows bedrock players how many people are currently playing; again, I have zero clue why this isn't on by default.
    • forward-player-ping: true
      “While enabling this will allow Bedrock players to have more accurate ping, it may also cause players to time out more easily.”
    • max-players: 5
      Purely cosmetic hard-coded value. Recommend setting to your actual max-players value until a passthrough option is added, to avoid gaslighting Bedrock players.
    • cache-images: 7
      (Not sure what this affects but it seems like a good idea)
    • emote-offhand-workaround: "no-emotes"
      Set this to allow Bedrock players to switch items to their offhand by attempting to emote.
    • force-resource-packs: false
      “If set to false, it allows the user to connect to the server even if they don't want to download the resource packs.”
    • If running a 1.17 or older server, you may need to set auth-type: floodgate, but there is no need to do so in recent versions.
  4. You may wish to modify plugins/floodgate/config.yml with some of the following:
    • username-prefix: "*"
    • enable-own-linking: true
    • link-code-timeout: 600
      (600 = 10 minutes for convenience; default is 300 = 5 minutes)
  5. Restart your server one final time to apply any config changes
  6. Open port 19132/udp on your server's firewall, NAT, etc
  7. Invite your friends!
    • If they want to access the same character on both Java and Bedrock, tell them to visit the so-called "global link" server link.geysermc.org or run /linkaccount from their Java client, if you enabled "own linking".
    • Whitelisting Bedrock players is currently a bloody nightmare. Your best bet is to just turn off the whitelist for a moment and let them join, then whitelist them and turn the whitelist back on. (Alternatively, global linking can be used to work around this.)
    • Those on a Nintendo Switch, PS4, or Xbox One must change their console's DNS server to gain access:

Leave a Reply

Your email address will not be published.

Warning: This site uses Akismet to filter spam. Until or unless I can find a suitable replacement anti-spam solution, this means that (per their indemnification document) all commenters' IP addresses will be sent to Automattic, Inc., who may choose to share such with 3rd parties.
If this is unacceptable to you, I highly recommend using an anonymous proxy or public Wi-Fi connection when commenting.