ViaVersion
Allow players using newer Minecraft client versions to join your server. Translates packets between different protocol versions.
What is ViaVersion?
ViaVersion lets clients on newer Minecraft versions connect to a server running an older version by translating the protocol packets between them on the fly. Run it alongside its companions ViaBackwards (to also allow older clients on a newer server) and ViaRewind (for very old clients) and your server accepts a wide spread of client versions at once. This decouples your server version from your players' client versions, so you can stay on a stable, well-supported server build while still letting people who have updated their launcher join.
Who it's for: Public servers that cannot force every player onto one client version, and owners who want to update their server at their own pace while keeping the door open to players on the latest snapshot or release. It is built and maintained by ViaVersion Team and sits in the admin category.
Key features of ViaVersion
- Multi-version support
- Protocol translation
- Automatic mapping
- Tab-complete fixes
- Minimal performance impact
- Proxy support
How to install ViaVersion
ViaVersion runs on Bukkit, Spigot, Paper or Velocity servers. The ViaVersion team updates rapidly so the newest client versions can join supported server versions soon after each Minecraft release. It runs on Bukkit/Spigot/Paper and on Velocity proxies.
- 1Stop your server, or have it ready to restart. Always back up your world and plugins folder before adding a new plugin.
- 2Download ViaVersion.jar (a build matching your server version) and place it in your server's /plugins folder.
- 3ViaVersion has no required dependencies, so it runs on its own once the jar is in place.
- 4Start the server fully. ViaVersion generates its configuration files on first launch — stop the server, edit them to taste, then start again.
- 5Confirm it loaded by checking the console for ViaVersion on startup, or by running one of its commands in-game.
Note: Drop ViaVersion into /plugins (or the proxy plugins folder). Add ViaBackwards and ViaRewind only if you also need to support clients older than your server. It works immediately; protocol mappings update automatically and can be checked with /viaversion list.
ViaVersion commands and permissions
Main commands
/viaversion- Displays plugin status and the server's supported protocol range.
/viaversion list- Shows the protocol version each connected player is using.
/viaversion debug- Toggles verbose protocol debugging for diagnosing translation issues.
Permission nodes
viaversion.admin- Grants the ViaVersion management and listing commands.
viaversion.update- Allows checking for and applying protocol mapping updates.
ViaVersion FAQ
Does ViaVersion let older clients join a newer server?
Not by itself. ViaVersion handles newer clients on an older server. To let older clients onto a newer server you also install ViaBackwards, and ViaRewind for very old (pre-1.8 style) clients. The three together give the widest client compatibility.
Will ViaVersion hurt performance?
The overhead is small for typical player counts because translation is efficient, but it is not zero — every packet for a translated client is rewritten. On large servers it is a deliberate, accepted cost for broad version support; servers with players all on the native version see no overhead for those players.
Do players get new features from a newer client?
No. ViaVersion makes the connection work, but gameplay is still defined by the server version. A player on a newer client cannot use blocks or items that the older server does not have; those are simply not present in the world.
Can I run ViaVersion on a BungeeCord or Velocity network?
Yes. ViaVersion has proxy builds. On Velocity you can install it on the proxy and/or the backend servers depending on your setup. This centralises version support so all backends behind the proxy accept the same client range.
How do I see what version a player is on?
Run /viaversion list to print every online player alongside the protocol version they connected with. This is useful for confirming that a player who reported a connection problem is on a version your configuration actually supports.
Features
- Multi-version support
- Protocol translation
- Automatic mapping
- Tab-complete fixes
- Minimal performance impact
- Proxy support
Commands
/viaversion/viaversion list/viaversion debugPermissions
viaversion.adminviaversion.update