On this page
Key takeaways
6- ViaVersion lets newer Java clients join older servers; older clients need additional plugins.
- ViaBackwards requires ViaVersion, and ViaRewind requires both for 1.7.x and 1.8.x clients.
- On a proxy network, install ViaVersion on the proxy or the backend servers, not both.
- Standard ViaVersion builds require Java 17 or later; your server software may require more.
- Use a full restart after installation and test every client version you advertise.
- Older clients retain documented limitations involving features, inventories, sounds and world heights.
This guide is for server owners who want to accept Java Edition players using different Minecraft client versions. You will choose the right Via plugins, decide where to install them, and build a tested list of supported clients.
Choose the plugins for your client versions
ViaVersion lets newer Java Edition clients connect to an older server. Its main supported platforms include Paper and Velocity, and the installation guide describes it as working immediately after installation.
The direction matters. ViaVersion alone does not provide the reverse route for older clients joining a newer server. Write down your server version and the client versions you actually want to accept before choosing the plugins.
ViaBackwards adds support for older clients connecting to newer servers. It requires ViaVersion. Its published pages differ on the lowest supported client release, so check the project's supported-version information for your exact combination rather than advertising an unrestricted range.
ViaRewind provides the route for 1.7.x and 1.8.x clients connecting to newer servers running 1.9 or later. It requires both ViaVersion and ViaBackwards.
| Connection you want | Plugins to investigate | Check before promising support |
|---|---|---|
| Newer client joining an older server | ViaVersion | Your exact server and client releases |
| Older client joining a newer server | ViaVersion and ViaBackwards | The supported client range and known limitations |
| 1.7.x or 1.8.x client joining a newer server | ViaVersion, ViaBackwards and ViaRewind | The complete plugin stack and gameplay on those clients |
Choose between the server and the proxy
On a standalone server, install the required plugins there. For a network using Velocity, the ViaVersion installation guide says to install ViaVersion on either the proxy or the backend servers, not both.
Installing on the proxy gives you one place to manage it. However, the project documents a tradeoff: translation happens at a different level, sword blocking will not be visible on 1.8 servers, and anti-cheat may perform worse. Consider those limits when choosing a location for a PvP network.
- Standalone server: prepare the plugin stack for that server.
- Proxy installation: manage translation at the network entrance and test the documented gameplay tradeoffs.
- Backend installation: manage the plugins on the backend servers that need version translation.
Decide on the installation location before uploading files. If you are still building the network, follow our Velocity setup guide for the proxy connection steps.
Install the required plugin stack
The standard ViaVersion builds require Java 17 or later. That is the plugin's minimum requirement, so also check the requirements of your server software. Choose downloads for your platform from the project's official listings.
Prepare a recoverable backup before changing the installation. If these changes accompany a server version upgrade, our server update guide explains how to plan testing and recovery.
- Use your server's normal stop procedure, then save a backup of the installation before changing files.
- Check the Java runtime used by the selected server or proxy. Standard ViaVersion builds need Java 17 or later; satisfy the server software's requirements too.
- Download ViaVersion from its official Hangar listing. Add ViaBackwards and ViaRewind only when your chosen client range needs them.
- Use your file transfer tool or shell file manager to place the downloaded plugin JAR files in the selected server or proxy's
pluginsfolder. - Start the server or proxy again. Use a full restart after installation, rather than a reload.
- Stop the selected server or proxy from the Console. Create a backup in the Backups tab if your host provides it, or save a copy through SFTP.
- Check the Startup tab for the configured Docker image and Java options. If the host controls the available images, ask the host to provide a runtime that meets both the plugin and server requirements.
- Download the required plugin JAR files from the official listings.
- Open the File Manager and upload them to the selected installation's
pluginsfolder. SFTP is another way to transfer them. - Start the installation from the Console and review its startup output. Restart fully after adding plugins; do not use a reload.
- Stop the selected server or proxy and save a backup through your host's available backup tools or Files / FTP access.
- Check the selected server JAR and ask the host which Java runtime it uses. A JAR selection alone does not confirm that the runtime meets the requirements.
- Download the required plugin JAR files from the official listings.
- Upload them through Files / FTP into the selected installation's
pluginsfolder. - Start it again and review the console output. Use a full restart after installation.
ViaVersion generates a config.yml file. Its installation guide says it works immediately, so leave configuration changes until you have a specific need. Establish whether the intended clients can connect before adjusting extra settings.
Test the client range before announcing it
Make a small test sheet with each client version you intend to support. Record whether it connects, whether ordinary gameplay works, and any differences you need to explain to players. Test the versions themselves rather than assuming that one successful connection proves the whole range.
- Join with a client matching the server version to establish a baseline.
- Join with the newest client you intend to accept.
- If using ViaBackwards, test the oldest client you intend to advertise.
- If using ViaRewind, test the relevant 1.7.x or 1.8.x client separately.
- Check movement, combat, inventories and interactions with content from newer releases.
ViaVersion provides player-version and packet-rate commands under the viaversion.admin permission. Use an administrator account for these checks.
After starting the installation through your normal server process, join in game with your administrator account and run:
/viaver list
/viaver ppsAfter the Console shows that startup has finished, join in game with your administrator account and run:
/viaver list
/viaver ppsAfter startup finishes in the console, join in game with your administrator account and run:
/viaver list
/viaver pps/viaver list shows player versions. /viaver pps reports packets per second. Record the client version alongside any connection or gameplay problem so your troubleshooting starts with a specific combination.
Check the limits of older clients
ViaBackwards documents limitations that matter beyond the login screen. Attribute handling can still break, inventory desynchronisation can affect clients older than 1.17, and sound mappings are incomplete.
It also does not fully support worlds with non-standard min_y or height values. Older clients cannot use blocks outside Y=0 through Y=255 in the documented limitation. If your server depends on unusual world heights, include those areas in your tests.
- Inventory tests: move items and use the inventories players rely on.
- Combat tests: check the interactions that matter to your game mode, especially when translating on a proxy.
- World tests: visit areas affected by the documented height restrictions.
- Presentation tests: check how newer content and sounds appear to older clients.
Narrow down connection and packet problems
If players cannot join, start with the direction of the connection. A newer server accepting older clients needs more than ViaVersion alone. A 1.7.x or 1.8.x client needs the ViaRewind stack described above.
Next, check the installation location and startup results against the installation steps. On a proxy network, confirm that you followed the project's instruction to choose the proxy or backends for ViaVersion.
For a too many packets kick, the project's SpigotMC page points to the packet-limit options in config.yml. Review packet-rate observations before changing those options. Keep a record of the original settings so you can assess whether the change addresses the reported problem.
When asking for support, include the server version, affected client version, installed Via plugins and where you installed them. That gives the problem a reproducible starting point instead of the broad report that a player cannot connect.
Frequently asked questions
What is the difference between ViaVersion, ViaBackwards and ViaRewind?
ViaVersion lets newer Java clients connect to older servers. ViaBackwards adds the reverse direction and requires ViaVersion. ViaRewind requires both and adds support for 1.7.x and 1.8.x clients on newer servers.
Should ViaVersion go on Velocity or the backend servers?
The installation guide says to choose the proxy or backend servers, not both. Proxy installation centralises management, but the project documents differences involving sword blocking on 1.8 servers and potentially worse anti-cheat performance.
Can 1.8 players join a newer Minecraft server?
ViaRewind is designed to let 1.7.x and 1.8.x clients connect to newer servers running 1.9 or later. It requires ViaVersion and ViaBackwards. Check support for your exact releases and test gameplay before advertising access.
Does ViaBackwards give older clients all the newer Minecraft features?
No. Its documentation says it cannot add new features to older clients. Known limitations include attribute handling, inventory desynchronisation for pre-1.17 clients, incomplete sound mappings and restrictions involving world height.
Why does ViaVersion kick players for too many packets?
The project's SpigotMC page directs owners to the packet-limit options in config.yml for this kick. Use /viaver pps with the viaversion.admin permission to inspect packet rates. Review the affected client and observed behaviour before changing the limits.