Only show guides for your app
Let players on different Minecraft versions join one server — and understand exactly what ViaVersion, ViaBackwards, and ViaRewind do and, just as importantly, what they don't.
ViaVersion solves a real annoyance: a friend can't join because they updated their game and your server hasn't, or hasn't updated and yours has. It lets clients on different Minecraft versions connect to your server anyway. It's one of the most useful plugins there is — and one of the most misunderstood, because people expect it to do more than it can. This guide is as much about the limits as the setup.
| At a glance | |
|---|---|
| You need | A plugin-capable server (Purpur, PaperSpigot, or another Plugin Servers option) |
| Plan | Any |
| Time | ~10 minutes |
| Install | from the Plugins page |
"Via" is really a small family. Which ones you install depends on which way you need to bridge:
| Plugin | Lets in | Example (server on 1.20) |
|---|---|---|
| ViaVersion | Newer clients than the server | A player on 1.21 joins your 1.20 server |
| ViaBackwards | Older clients than the server | A player on 1.19 joins your 1.20 server |
| ViaRewind | Much older clients (1.8/1.7-era) | A 1.8 PvP player joins a modern server |
ViaVersion is the base — install it first. Add ViaBackwards on top if you also need older clients in, and ViaRewind on top of that for the very old ones. They stack.
🎯 Good to know: Think of it by direction. ViaVersion = let people ahead of you in. ViaBackwards = let people behind you in. Most owners install ViaVersion so they don't have to update the instant a new Minecraft drops and lock friends out; they add ViaBackwards if they want to keep older players too.
This is one of the rare plugins that just works after install:
Check who's connected with what:
/viaversion list
It shows each online player and the client version they joined with — handy for confirming the bridge is working.
ViaVersion's settings are in /plugins/ViaVersion/config.yml, and the honest advice is: leave it alone unless you hit a specific problem. The defaults are tuned for exactly this job. The couple of keys people occasionally touch:
# Keep ViaVersion checking for its own updates
checkforupdates: true
# Block specific protocol versions from connecting (advanced, rarely needed)
block-protocols: []
You will not need to edit config to get the basic "let other versions in" behaviour — that works out of the box.
Join your server from a Minecraft client on a different version than the server runs. If you get in, it's working. Confirm from the console with /viaversion list, which will show your client's version next to your name.
This is the important half of the guide. ViaVersion translates the connection; it does not change the game your server runs.