DGuard

ViaVersion: letting players join from other versions

Clients newer than the server: ViaVersion. Older: ViaVersion plus ViaBackwards. Really old 1.7–1.8: add ViaRewind too. If you run an anticheat, install Via on the game server, not the proxy.

The DGuard team6 min read

A Minecraft server only accepts clients of its own version. ViaVersion translates the protocol on the fly and lets newer clients join. For clients older than the server you add ViaBackwards, and for 1.7.x–1.8.x ViaRewind as well. All three come from the same team, go into plugins/ and work out of the box.

Which plugin you need

Players join with…Install
Versions newer than the serverViaVersion
Versions older than the server, down to 1.9ViaVersion + ViaBackwards
1.7.x–1.8.xViaVersion + ViaBackwards + ViaRewind
From the ViaVersion README. ViaBackwards doesn't work without ViaVersion, and ViaRewind needs both.

Example: your server runs 1.21.11. For 26.x players to join, ViaVersion is enough. To also let 1.21.4 clients in, you need ViaBackwards. Not sure what to install? The developers have a setup helper: pick the server and client versions and it names the plugins.

Installing

  1. 1

    Download from Hangar

    Official plugin releases are on Hangar: ViaVersion, ViaBackwards, ViaRewind. Dev builds live on the developers' Jenkins, but a production server should run releases.

  2. 2

    Put them into plugins/ and restart

    A real restart: the developers say outright that /reload is worse and that Via won't work properly with plugin managers. Details in how to install a plugin.

  3. 3

    Check the log and your players

    Read the startup log for errors. /viaversion list shows which version each player joined with. The command permission is viaversion.admin.

Via needs Java 17 or newer, and the developers warn that Java 21 will be required later. On Paper that's a non-issue: 1.21.x needs Java 21 anyway, and 26.x needs Java 25.

Game server or proxy

On a proxied network, Via goes either on the proxy or on the servers behind it — not both. The base ViaVersion jar runs on Paper and Velocity; for BungeeCord the developers have a separate ViaBungee project.

The choice isn't neutral. The ViaVersion docs warn that on a proxy, anticheats may perform worse because the translation happens at a different level. So on a network with an anticheat, install Via on every game server — where the anticheat runs. Network basics are in Velocity or BungeeCord and setting up Velocity.

What doesn't translate perfectly

  • New blocks on an old server. A player on a newer client can't place blocks that don't exist in the server's version — the developers state plainly that this isn't something ViaVersion does.
  • Old clients on a new server. An old client doesn't know newer blocks, items and mobs, so ViaBackwards shows it substitutes. That player sees some content differently from everyone else.
  • A delay after Minecraft releases. ViaVersion ships a few days after a game update unless the protocol changes were trivial; project sponsors get early access. When you update the server, check that the matching Via release is out.
  • The packet limiter. ViaVersion has a built-in packet limit against exploits; once in a while it trips on honest players — the docs explain how to tune it.
  • Version-specific plugins. If a plugin sends a client something its version doesn't have, the result depends on the translation. Test key mechanics from an old and a new client.

Handy commands

CommandWhat it does
/viaversion listPlayers grouped by client version
/viaversion player <name>Details of a player's connection
/viaversion ppsPackets per second from each player
/viaversion dumpA link with server details for Via support
/viaversion dontbugmeTurn off update reminders
/viaversion reloadReload the config (some options need a restart)
All commands need viaversion.admin; newer versions also accept per-command permissions: viaversion.command.<subcommand>.

Moving the server to a new version

Via often serves as a bridge during a move: the server is still on the old version while players have already updated. To avoid surprises, check in this order:

  1. 1Is there a server build for the new version — Paper or Leaf?
  2. 2Are ViaVersion and ViaBackwards releases with support for it out?
  3. 3Do your plugins support it — especially the ones that work with packets?
  4. 4Is the new version on your anticheat's supported list — for DGuard, the Minecraft versions page — and is the latest PacketEvents release installed?
  5. 5Have you taken a backup of the world and plugins before updating?

ViaVersion and the DGuard anticheat

DGuard runs on Paper and Leaf 1.21–26.3; the main version is 1.21.11, where DGuard is tested and runs on production servers — the others are supported but haven't been run on production servers yet. Players on 1.21–26.x clients who join through ViaVersion are checked the same way as players on the server's own version.

Install Via on the same game server as DGuard — the ViaVersion docs point the same way. On a BungeeCord or Velocity network, DGuard also goes on every game server, each with its own key. If you let clients older than 1.21 in through ViaBackwards or ViaRewind, ask support how DGuard handles them: the stated range is 1.21–26.x clients. The version table is on the Minecraft versions page.

FAQ

How can players join my server from an older Minecraft version?

Install ViaVersion and ViaBackwards on the server (plus ViaRewind for 1.7–1.8). Players don't need to install anything.

Do I install ViaVersion on both the proxy and the servers?

No, in one place only: either the proxy or the servers behind it. With an anticheat, prefer the game servers — on a proxy, anticheats may perform worse.

Why can't players join with the new version after a Minecraft update?

Support for a new version ships a few days after the game's release. Update ViaVersion once a release with that support is out.

Do players on old versions see new blocks?

No, their client doesn't know them, so ViaBackwards shows substitutes. The other way round, a newer client on an older server can't place blocks the server doesn't have.

Do I need ViaVersion if my server runs the newest version?

Yes, if you want players on older clients to join: ViaBackwards only works together with ViaVersion. If everyone plays on the server's version, you don't need Via.

Does an anticheat work with players joining through ViaVersion?

DGuard checks players on 1.21–26.x clients who join through ViaVersion the same way as everyone else. Install Via on the same game server as the anticheat.

Sources

All sections

Run the best anticheat for modern Minecraft

DGuard catches all 47 kinds of cheats in our comparison — the closest rival, Intave, has 27. Full protection on every plan, free up to 30 players online.