The bridge got shorter: a simpler PlayStation-on-Java Minecraft setup
PaperMC + native Geyser + BedrockConnect. Geyser caught up to my server's Java version, so the ViaVersion translation layer is gone.
A week ago I wrote up how I put my son’s PlayStation onto our self-hosted Java server. It worked. It still works. But it carried a passenger I never quite trusted — a protocol translator sitting in the middle of the chain, quietly turning one version of Minecraft into another.
Last week I took it out. The setup is simpler now. Here is what changed, why, and how to do the same if you built the original.
What actually changed
In the first post, Geyser spoke an older dialect of Java than my server did. So I added ViaVersion and ViaBackwards to translate between them. Three pieces in the middle instead of two.
Geyser has since caught up. The current build speaks my server’s exact Java version, with no translation in between. The two Via plugins had nothing left to do, so I removed them.
- Before: Geyser spoke Java 26.1.2. My server ran 26.2. The gap needed a bridge.
- After: Geyser 2.11.0 speaks 26.2 natively. The gap closed on its own.
Same server. Same console. One layer fewer.
The path, before and after
The doors do not move. Only the corridor behind them gets shorter.
Before: PS5 → BedrockConnect (19132) → Geyser (19133) → ViaVersion + ViaBackwards → Paper (25565)
After: PS5 → BedrockConnect (19132) → Geyser (19133) → Paper (25565)
Before you pull the bridge
Do not remove Via on faith. Confirm first.
- Check that Geyser lists your server’s exact Java version as supported — its release notes, or the version’s game-versions on Modrinth.
- If Geyser speaks your server’s language, the translator is redundant. Remove it.
- If it does not, leave the bridge exactly where it is. A missing translator is a locked door for every Bedrock player.
The first post taught this lesson backwards: I picked a server version, then scrambled for a bridge that supported it. This is the same lesson the right way round. Let the bridge catch up, then delete it.
How I did the swap
- Back up first. A full snapshot of the world, plugins, and jars, before touching anything.
- Update Geyser to the native build. Still the standalone JAR, as before — not the plugin.
- Remove
ViaVersion.jarandViaBackwards.jarfrom the plugins folder. - Restart Paper, then restart Geyser. No players online.
- Read the Geyser log. On first boot the native build downloads the vanilla client JAR to extract its mappings. That line is your proof it now speaks the server’s version itself.
- Test on the actual console. A Java client proves nothing about the Bedrock path — only the PlayStation does.
Diagnostic gold: Downloading Minecraft JAR to extract required files… successfully downloaded and loaded. See that after the version bump, and Geyser is running native.
What stays exactly the same
The Via bridge was only ever about the protocol gap. Everything else from the first post still stands:
- BedrockConnect still answers on 19132 and hands the console to Geyser.
- The DNS redirect still points the featured-server hostnames at your LAN IP.
- Same subnet still beats every router quirk.
- Offline mode is still LAN-only. Do not port-forward it. Remote friends belong on a VPN.
| Port | Service | Protocol |
|---|---|---|
| 25565 | Paper (Java) | TCP |
| 19132 | BedrockConnect | UDP |
| 19133 | Geyser | UDP |
| 53 | DNS (dnsmasq) | UDP |
Notice what left this table: nothing. Via never held a port — it lived inside the server as a layer. That is exactly why removing it changes the diagram but not the doors.
The honest lesson underneath
There is a quiet satisfaction in deleting something that works. Not replacing it — deleting it. Two plugins, a compatibility matrix, and a whole category of “which version breaks which” worry, all gone, and the world plays exactly as it did the day before.
The first post was about owning the world. This one is about keeping it simple enough that I still understand it in a year. Complexity is a debt, and you pay it every time something breaks at nine on a school night. Every layer I can honestly remove is one less thing to explain to myself later — and one less thing standing between my son and the blocks he wants to place.
A world that’s yours is worth more when it’s simple enough to keep.