A Minecraft server only accepts clients of its own version. ViaVersion translates the protocol on the fly and lets newer clients join. For clients older than the server you add ViaBackwards, and for 1.7.x–1.8.x ViaRewind as well. All three come from the same team, go into plugins/ and work out of the box.
Which plugin you need
| Players join with… | Install |
|---|---|
| Versions newer than the server | ViaVersion |
| Versions older than the server, down to 1.9 | ViaVersion + ViaBackwards |
| 1.7.x–1.8.x | ViaVersion + ViaBackwards + ViaRewind |
Example: your server runs 1.21.11. For 26.x players to join, ViaVersion is enough. To also let 1.21.4 clients in, you need ViaBackwards. Not sure what to install? The developers have a setup helper: pick the server and client versions and it names the plugins.
Installing
- 1
Download from Hangar
Official plugin releases are on Hangar: ViaVersion, ViaBackwards, ViaRewind. Dev builds live on the developers' Jenkins, but a production server should run releases.
- 2
Put them into plugins/ and restart
A real restart: the developers say outright that
/reloadis worse and that Via won't work properly with plugin managers. Details in how to install a plugin. - 3
Check the log and your players
Read the startup log for errors.
/viaversion listshows which version each player joined with. The command permission isviaversion.admin.
Via needs Java 17 or newer, and the developers warn that Java 21 will be required later. On Paper that's a non-issue: 1.21.x needs Java 21 anyway, and 26.x needs Java 25.
Game server or proxy
On a proxied network, Via goes either on the proxy or on the servers behind it — not both. The base ViaVersion jar runs on Paper and Velocity; for BungeeCord the developers have a separate ViaBungee project.
The choice isn't neutral. The ViaVersion docs warn that on a proxy, anticheats may perform worse because the translation happens at a different level. So on a network with an anticheat, install Via on every game server — where the anticheat runs. Network basics are in Velocity or BungeeCord and setting up Velocity.
What doesn't translate perfectly
- New blocks on an old server. A player on a newer client can't place blocks that don't exist in the server's version — the developers state plainly that this isn't something ViaVersion does.
- Old clients on a new server. An old client doesn't know newer blocks, items and mobs, so ViaBackwards shows it substitutes. That player sees some content differently from everyone else.
- A delay after Minecraft releases. ViaVersion ships a few days after a game update unless the protocol changes were trivial; project sponsors get early access. When you update the server, check that the matching Via release is out.
- The packet limiter. ViaVersion has a built-in packet limit against exploits; once in a while it trips on honest players — the docs explain how to tune it.
- Version-specific plugins. If a plugin sends a client something its version doesn't have, the result depends on the translation. Test key mechanics from an old and a new client.
Handy commands
| Command | What it does |
|---|---|
/viaversion list | Players grouped by client version |
/viaversion player <name> | Details of a player's connection |
/viaversion pps | Packets per second from each player |
/viaversion dump | A link with server details for Via support |
/viaversion dontbugme | Turn off update reminders |
/viaversion reload | Reload the config (some options need a restart) |
Moving the server to a new version
Via often serves as a bridge during a move: the server is still on the old version while players have already updated. To avoid surprises, check in this order:
- 1Is there a server build for the new version — Paper or Leaf?
- 2Are ViaVersion and ViaBackwards releases with support for it out?
- 3Do your plugins support it — especially the ones that work with packets?
- 4Is the new version on your anticheat's supported list — for DGuard, the Minecraft versions page — and is the latest PacketEvents release installed?
- 5Have you taken a backup of the world and plugins before updating?
ViaVersion and the DGuard anticheat
DGuard runs on Paper and Leaf 1.21–26.3; the main version is 1.21.11, where DGuard is tested and runs on production servers — the others are supported but haven't been run on production servers yet. Players on 1.21–26.x clients who join through ViaVersion are checked the same way as players on the server's own version.
Install Via on the same game server as DGuard — the ViaVersion docs point the same way. On a BungeeCord or Velocity network, DGuard also goes on every game server, each with its own key. If you let clients older than 1.21 in through ViaBackwards or ViaRewind, ask support how DGuard handles them: the stated range is 1.21–26.x clients. The version table is on the Minecraft versions page.
FAQ
How can players join my server from an older Minecraft version?
Install ViaVersion and ViaBackwards on the server (plus ViaRewind for 1.7–1.8). Players don't need to install anything.
Do I install ViaVersion on both the proxy and the servers?
No, in one place only: either the proxy or the servers behind it. With an anticheat, prefer the game servers — on a proxy, anticheats may perform worse.
Why can't players join with the new version after a Minecraft update?
Support for a new version ships a few days after the game's release. Update ViaVersion once a release with that support is out.
Do players on old versions see new blocks?
No, their client doesn't know them, so ViaBackwards shows substitutes. The other way round, a newer client on an older server can't place blocks the server doesn't have.
Do I need ViaVersion if my server runs the newest version?
Yes, if you want players on older clients to join: ViaBackwards only works together with ViaVersion. If everyone plays on the server's version, you don't need Via.
Does an anticheat work with players joining through ViaVersion?
DGuard checks players on 1.21–26.x clients who join through ViaVersion the same way as everyone else. Install Via on the same game server as the anticheat.
Sources
- ViaVersion on GitHub (README)
- ViaVersion: installation and common issues
- ViaVersion: Java requirements
- ViaBackwards on GitHub
- ViaRewind on GitHub
- ViaVersion on Hangar
- DGuard, the best anticheat for a modern Minecraft server: checks compared with GrimAC, Vulcan, Polar, Intave and Matrix
- DGuard: installation, requirements and troubleshooting
- DGuard: supported Paper and Leaf versions