ViaVersion translates the protocol for newer Java clients on older servers; ViaBackwards adds older clients on newer servers. Check the specific version pairing and make sure only one translation layer is responsible. The plugins add neither new game content nor Bedrock support.

What Is Installed on Your Server?

On suitable Paper and other Bukkit servers, game-serverhosting installs ViaVersion and ViaBackwards as system plugins during setup. In the panel you can find them under Plugins → Installed with the label "System". Do not additionally add a second ViaVersion JAR from the plugin browser: two files with the same plugin name can prevent Paper from loading the plugin. On an existing or self-converted server, first check the files that are actually installed and the startup log. Fabric servers need the appropriate mod or ViaFabric path and are not equivalent to the Paper guide.

In the startup log, ViaVersion must be enabled without errors. On our test server it said Enabling ViaVersion v5.11.0 and afterwards ViaVersion detected server version: 1.21-1.21.1. The exact version number depends on your server and the installed plugin version. In the console, or as an authorized admin, you can also run /viaversion. /version ViaVersion shows the loaded plugin version on Paper.

ViaVersion replies in chat with the loaded version on the Paper test server
ViaVersion replies in chat with the loaded version on the Paper test server

Which Direction Do You Need?

Newer client → older server: ViaVersion is responsible for this. Our test case was Paper 1.21.1 and a Java client on 1.21.4. A successful join proves exactly this version pairing on this test server, not automatically every future Minecraft version.

Older client → newer server: For this you additionally need ViaBackwards. It requires ViaVersion. Very old client versions may need further components such as ViaRewind. Check the project's current compatibility table before you promise players a particular version.

Bedrock players connect through Geyser and Floodgate; ViaVersion alone does not turn a Java server into a Bedrock server. With a Velocity or Bungee proxy, it must be clear whether the protocol translation takes place on the proxy or on the backends. The ViaVersion documentation recommends not installing it on both levels for one connection without a reason.

Testing the Connection Step by Step

  1. Read the server's real Minecraft version from the startup log and check whether ViaVersion was loaded. In the panel under Plugins → Installed, check that ViaVersion and, if needed, ViaBackwards are present only once.
  2. First start an unmodified Java client with the same version as the server. If even this connection fails, check the basic connection and the startup log before you suspect a version conflict.
  3. Then start exactly one client with the desired newer version and join the same server. Note the client version, server version, ViaVersion version and the specific error message.
  4. Only test an older client if ViaBackwards is active and the version is supported according to the current project documentation. Check spawn, inventory, chat and the plugins that matter for your server in the game.
  5. Use /viaversion list for the versions of connected players or /viaversion player playername for a single connection. These admin commands need viaversion.admin or the matching viaversion.command.* permissions; do not give them to the default group.

Before a plugin update, create a backup. Do not additionally replace the system JAR with a versioned browser JAR, and restart the server completely after a change. According to the ViaVersion documentation, a plugin manager reload is not a reliable substitute for a restart.

When a Client Cannot Join

  • "Outdated server" or "Outdated client": First check the direction. For newer clients you need ViaVersion, for older ones additionally ViaBackwards. Then check the versions that are actually supported and the plugin version.
  • Plugin does not load: Search the startup log for ViaVersion, ViaBackwards, Java errors and Ambiguous plugin name. With duplicate JARs, first check the files in the panel and remove only the clearly redundant file.
  • Joining works, features don't: Protocol translation cannot fully retrofit new blocks, menus or mechanics on old servers. Test the relevant features with the affected client version; with modpacks, client and server must still match the pack.
  • Proxy connection fails: Check the proxy version, backend version and the installation location of the Via plugins separately. A successful direct backend test does not yet prove that the proxy route works.

FAQ

Does ViaVersion turn my server into the new Minecraft version?

No. ViaVersion only translates the network protocol so that a newer client can talk to an older server. Blocks, items and game mechanics of a newer version do not come to the server this way — for that you have to change the server version itself.

Do I additionally need ViaBackwards?

Only for the opposite direction, that is, when players with an older client want to join a newer server. ViaBackwards requires ViaVersion; for very old client versions, ViaRewind is added. Check the project's compatibility table before you promise players a particular version.

Can Bedrock players join via ViaVersion?

No. Bedrock uses a fundamentally different protocol; Geyser and Floodgate are responsible for it. ViaVersion works exclusively between Java versions.

What happens with two ViaVersion files?

Paper then cannot load the plugin unambiguously and reports Ambiguous plugin name in the startup log. On suitable servers, ViaVersion is already installed as a system plugin — do not add a second JAR from the browser, but check under Plugins → Installed that each Via component is present exactly once.

Is a plugin reload enough after an update?

No. The project documentation names a full server restart as the reliable way; a reload via a plugin manager can leave a half-loaded state behind. Create a backup before the update and restart completely afterwards.

Further Guides

You change the actual server version with Changing the Minecraft Server Version. To check the installation, Installing and Managing Minecraft Plugins helps. If a player is rejected because of a wrong modpack, read Joining a Minecraft Modpack Server.

Sources

Recording a Version Pairing as a Binding Test Case

First test server and client on the same version without any additional protocol layer. Then check exactly the desired differing client version with the installed Via version. Record join, inventory, chat and the most important plugin actions. With a proxy, test its route as well; a direct backend connection does not replace it. If only a particular version pairing fails, check the compatibility table instead of adding a second ViaVersion JAR. After an update, run the same test cases again. A passed pairing remains a concrete observation and not a promise for all upcoming client versions.