ViaVersion explained

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

The three plugins, and which direction each covers

"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.

Setup: there almost isn't any

This is one of the rare plugins that just works after install:

  1. Install ViaVersion from the Plugins page (add ViaBackwards / ViaRewind if you need those directions), and restart.
  2. That's it. Players on the supported versions can now connect.

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.

The config file

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.

Verify it works

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.

The honest limits

This is the important half of the guide. ViaVersion translates the connection; it does not change the game your server runs.

  • New content doesn't magically appear. If your server runs 1.20 and a player joins on 1.21, the 1.21 blocks and items don't exist on your server — because your server is still 1.20. Via shows the client sensible stand-ins, but it can't add content the server doesn't actually have. It bridges the connection, not the world.
  • It's a compatibility layer, not an upgrade. Wanting the new version's features means actually updating the server in the Version Changer — Via is for smoothing a gap, not skipping the update.
  • The bigger the gap, the rougher the edges. Bridging one or two versions is smooth; bridging many (especially with ViaRewind back to 1.8) can produce visual glitches and odd interactions. It's impressive that it works at all — don't expect it to be flawless across a decade of versions.
  • It doesn't fix plugin or mod compatibility. Via translates player connections. Your plugins still have to support your server's actual version.
  • Anti-cheat can get confused by translated packets; if you run one, check that it's compatible with Via.
  • Version support moves fast. Which client versions a given Via build accepts changes with almost every Minecraft release. For "can a 1.X client join my 1.Y server right now?", check ViaVersion's current documentation — that's the one detail that genuinely shifts over time.

Troubleshooting

  • A newer client still can't join — your ViaVersion build may predate that client version; update the plugin from the Plugins page and restart.
  • An older client can't join — you need ViaBackwards (and ViaRewind for 1.8/1.7); base ViaVersion only lets newer clients in.
  • The player joins but sees broken blocks/items — that's the limit above: the content genuinely isn't on your server's version. The fix is updating the server, not the plugin.
  • "Outdated client/server" on connect — the version gap is outside what your installed Via plugins bridge; check the current Via docs for the supported range.

Next steps

Was this guide helpful?