
You update your server to 1.21.5 and half your players can't connect because they're still on 1.20.4. Sound familiar? This is exactly the problem ViaVersion solves.
ViaVersion is a plugin that translates packets between different Minecraft versions. It lets players on older (or newer) clients connect to your server without forcing everyone to update at the same time. If you run a public server or a community with players across different launchers and versions, you probably need this.
What ViaVersion Actually Does
ViaVersion sits between the client and the server. When a player on 1.20.1 connects to your 1.21.5 server, ViaVersion translates the network packets so both sides understand each other. The server keeps running on its native version. Nothing changes for players already on the right version.
This works because Minecraft's protocol changes between versions, but the core game logic stays similar enough that translation is possible. ViaVersion handles the mapping of block IDs, entity metadata, packet formats, and all the small protocol differences between releases.
By itself, ViaVersion only allows older clients to join a newer server. That covers the most common scenario. But if you need the reverse or want to support really old versions, you need the companion plugins.
ViaVersion vs ViaBackwards vs ViaRewind
These three plugins work together, but each one handles a different direction of version translation.
| Plugin | What it does | Example |
|---|---|---|
| ViaVersion | Lets older clients join a newer server | Player on 1.20.4 joins a 1.21.5 server |
| ViaBackwards | Lets newer clients join an older server | Player on 1.21.5 joins a 1.20.4 server |
| ViaRewind | Extends ViaBackwards support to very old versions (1.8 and 1.7) | Player on 1.8.9 joins a 1.21.5 server |
ViaVersion is the core plugin. You always need it installed.
ViaBackwards is an addon for ViaVersion. You need ViaVersion installed first. This one is useful if you want to keep your server on an older stable version but some players have already updated their client.
ViaRewind extends ViaBackwards to support 1.7.x and 1.8.x clients. The PvP community still has a lot of 1.8.9 players because of the old combat system. If that is your audience, you want this installed too. Keep in mind that the further back you go in versions, the more things break or look wrong.
Most servers only need ViaVersion. Add the others if your player base actually uses those version ranges.
Step by Step Install on Paper or Spigot
This takes about two minutes. Here is the process:
1. Download the plugins
Go to the official sources and grab the latest builds:
- ViaVersion: Modrinth or Hangar
- ViaBackwards (optional): Modrinth or Hangar
- ViaRewind (optional): Modrinth or Hangar
Always download from official sources. There are repackaged versions floating around that bundle old builds or worse.
2. Upload to your plugins folder
Drop the .jar files into your server's plugins/ directory. If you are using a hosting panel, there is usually a file manager where you can upload directly. On Space-Node, you can upload through the panel's file manager or use SFTP.
3. Restart the server
Do a full restart, not a reload. Plugin reloads can cause issues with protocol-level plugins like ViaVersion.
4. Verify it works
After the server starts, check the console for ViaVersion's startup messages. You should see something like:
[ViaVersion] Loading ViaVersion v5.x.x
[ViaVersion] ViaVersion enabled, injecting...
Then test by connecting with a client on a different version than your server. If you get in without errors, it is working.
Config Settings Worth Knowing
ViaVersion's default config works fine for most servers. But there are a few settings you might want to tweak. The config file is at plugins/ViaVersion/config.yml.
Block specific versions
If you want to prevent certain client versions from joining:
block-protocols:
- 47 # Block 1.8.x clients
- 340 # Block 1.12.2 clients
You can find protocol version numbers on the Minecraft wiki. This is useful when a specific old version causes too many visual glitches or exploits on your server.
Suppress conversion warnings
If your console gets spammed with warnings about block or item conversion:
suppress-conversion-warnings: true
Prevent players from using 1.8 attack speed
Some old version clients can bypass the 1.9+ combat cooldown:
simulate-pt: true
This simulates the player tick for older clients so the attack cooldown applies properly.
Known Issues and Limitations
ViaVersion does not magically make old clients fully compatible. The translation has limits, and you should know what your players will experience.
Blocks rendering incorrectly. New blocks that don't exist in the player's client version get replaced with the closest equivalent. A player on 1.16 joining a 1.21 server will see newer blocks show up as stone, cobblestone, or other placeholder blocks. This is cosmetic only. The actual block data stays correct on the server.
Items appearing different. Same principle as blocks. New items get mapped to existing ones in the client. This can confuse players when they pick something up and it looks like something else.
Redstone behavior differences. Redstone mechanics changed between versions. A contraption built for 1.21 behavior might not work correctly when a 1.12 client interacts with it. ViaVersion translates packets, not game logic.
New features just don't work. If a player on 1.19 joins a 1.21 server, they cannot see or use features that were added in 1.20 or 1.21. New mobs might appear as generic entities. New enchantments won't display correctly. This is expected.
Skins and entity rendering. Occasionally, skins or mob models break on very old clients. Not much you can do about this.
The general rule: the closer the client version is to the server version, the fewer issues you will run into. Supporting 1.20 clients on a 1.21 server is nearly seamless. Supporting 1.8 clients on a 1.21 server works but with a lot of visual compromises.
Proxy vs Backend: Where Should You Install ViaVersion?
If you run a simple single-server setup (most people), install ViaVersion directly on that server. Done.
If you run a network with a proxy (Velocity or BungeeCord), you have a choice:
Option 1: Install on the proxy. ViaVersion handles the translation at the proxy level before traffic reaches your backend servers. Your backend servers stay clean with no extra plugins. This is the recommended approach for networks.
Option 2: Install on each backend server. This gives you more control per server (maybe your lobby supports 1.8 but your survival server only supports 1.20+), but adds more maintenance.
Option 3: Both. Some network admins install ViaVersion on the proxy and use ViaBackwards/ViaRewind selectively on specific backend servers. This works but adds complexity.
For Velocity specifically, there is ViaVersion for Velocity available on the same download pages. Make sure you grab the right build for your proxy software.
Performance Considerations
ViaVersion adds a small amount of overhead because it intercepts and translates every packet. For most servers, this is negligible. On a server with 20 players where 5 are on different versions, you will not notice any performance impact.
Where it can start to matter:
- 100+ players with many on mismatched versions. The packet translation adds up.
- Servers with heavy entity counts. More entities means more packets to translate per tick.
- Very old client versions. Translating from 1.8 to 1.21 requires more remapping work than 1.20 to 1.21.
In practice, ViaVersion is well optimized. The developers have spent years reducing its footprint. If you are running on decent hardware, it is not going to be your bottleneck. TPS drops almost always come from plugins doing expensive operations, world generation, or too many entities before ViaVersion becomes a factor.
If you are on a shared host with limited resources and notice issues, try limiting the version range you support. Cutting 1.8 support alone removes a lot of translation overhead.
FAQ
"Do I need ViaBackwards if I only want older players to join?"
No. ViaVersion alone handles older clients connecting to a newer server. You only need ViaBackwards if you want newer clients to connect to an older server.
"Does ViaVersion work with Fabric or Forge servers?"
ViaVersion is built for Bukkit-based servers (Paper, Spigot, Purpur). For Fabric, there is ViaFabric and ViaFabricPlus. Forge does not have great support for ViaVersion. If you run Forge, a proxy setup with ViaVersion on the proxy is your best bet.
"Can players on old versions use new commands and features?"
They can use commands, but new features tied to client rendering won't work. For example, a 1.19 player on a 1.21 server can run commands fine but won't see the visual differences introduced in 1.20+.
"Is ViaVersion safe to use? Will it break my world?"
ViaVersion does not modify your world data at all. It only translates network packets between the client and server. If you remove ViaVersion later, your world stays exactly as it was. The only risk is players on old clients accidentally breaking builds by interacting with blocks their client cannot properly display.
"Should I use ViaVersion or just tell players to update?"
Depends on your server. If you run a small private server with friends, just tell everyone to update. If you run a public server or community, forcing version updates means losing players. Some people play on modpacks locked to older versions, or they use clients like Lunar or Badlion that might lag behind on updates. ViaVersion keeps your community together.
"What Minecraft versions does ViaVersion currently support?"
ViaVersion supports all releases from 1.9 through the latest version. With ViaBackwards and ViaRewind added, you can extend this down to 1.7. The developers actively update ViaVersion within days of a new Minecraft release, so you are rarely stuck waiting.
"How do I check which version a player is using?"
ViaVersion adds a /viaversion command (alias /vv). Running /vv list shows every connected player and their client version. Useful for seeing if anyone is on a version causing issues.
Wrapping Up
ViaVersion is one of those plugins that just works. Install it, and version mismatches stop being a problem for your community. Start with just ViaVersion, add ViaBackwards or ViaRewind only if your players actually need those version ranges.
If you are setting up a new Minecraft server, Space-Node servers come with Paper pre-installed and you can drop ViaVersion into the plugins folder through the panel in about 30 seconds. We have locations in 8 regions across Europe, North America, Asia, and Australia, so your players get good latency no matter where they connect from.
Related guides: Aikar's Flags: Best JVM arguments for Minecraft | Best Minecraft plugins for server admin