ViaVersion
A plugin that lets players on newer Minecraft Java versions join a server running an older version by translating the protocol.
ViaVersion is a plugin that translates between Minecraft protocol versions. Normally a Java client can only join a server that runs exactly the same Minecraft version. With ViaVersion installed, clients on newer versions can join an older server.
The Via family
- ViaVersion: newer clients join an older server.
- ViaBackwards: older clients join a newer server. Requires ViaVersion.
- ViaRewind: extends ViaBackwards to very old clients such as 1.7 and 1.8. Requires both.
They run on Paper and its forks, on proxies such as Velocity, and there are builds for Fabric as well.
Why it matters for server owners
After a Minecraft update, players update their clients faster than plugins get updated. ViaVersion lets you keep the server on the previous version until your plugins are ready, without locking out players who already updated. It is also common on networks and minigame servers that want to accept a wide range of versions.
Limits
ViaVersion translates packets; it cannot add features the server does not have. On an older server, new blocks, mobs and items from the newer client version do not exist. With ViaBackwards, older clients see replacements for things they do not know, and some mechanics such as combat or movement may behave slightly differently. Mods and client-side modpacks are not covered at all.
Practical tip
Run the server on the newest version your plugins support and use ViaBackwards for older clients only if players actually need it. The further apart server and client versions are, the more translation happens and the more edge cases appear. For Bedrock players, you need Geyser instead; ViaVersion handles Java versions only.