All guides

What server versions mean and which to pick

Why a server sits on 1.20.4 while you are on 1.21, how one server supports both, and what to run.

Minecraft's network protocol changes with almost every release, so a client and a server generally have to agree on a version before they will exchange a single packet. The version on a listing is the one the server itself reported the last time we pinged it.

Reading a version number

In 1.20.4, 1.20 is the major release and .4 is a patch. What actually decides compatibility is not the name but the protocol number underneath it, which Mojang bumps whenever the wire format changes. Patches sometimes share a protocol — every release from 1.8 to 1.8.9 speaks protocol 47, which is why that era is still described as "1.8" a decade later — and just as often do not. Two clients on 1.20.1 and 1.20.4 may or may not be able to join the same server, and the version string alone will not tell you which.

Servers that accept several versions

Large networks put a proxy such as Velocity or BungeeCord in front of their servers, usually with the ViaVersion family of plugins behind it. ViaVersion lets a newer client talk to an older server, ViaBackwards does the reverse and ViaRewind stretches support back into the 1.8 era. Together they let one server advertise a range like 1.8-1.21.

Our listings normalise a range to the newest version in it, so a server showing 1.21 may very well still let a 1.16 client in. The server's own description and Discord are where the real supported range is written down.

Why servers sit behind the latest release

A plugin server cannot update on the day Mojang ships. Paper and Spigot have to be updated for the new internals first, and then every plugin the server runs has to follow. A network with sixty plugins is waiting on the slowest of sixty maintainers, and moving early means breaking things players depend on. A server one or two releases back is usually a sign of care rather than neglect.

Snapshots and modded versions

Snapshot and pre-release servers report versions like 24w14a. Modded servers frequently report a loader name or a pack name instead of a number at all. We keep whatever the server sent when it is not a recognisable 1.x figure, so a listing occasionally shows something that is not a version in any normal sense.

Bedrock version numbers

Bedrock uses its own three-part numbering — 1.21.44 and the like — and its own protocol numbers, which have nothing to do with Java's despite looking similar. Bedrock also updates clients automatically through the store, so its players are usually on the newest release whether they wanted to be or not. A Bedrock server that has not updated within a few days of a release starts refusing everybody, which is why Bedrock listings churn more than Java ones.

Which version should you pick?

  • Play the version the server runs. In the Java launcher, create an installation per version and switch profiles. It takes ten seconds and costs nothing.
  • The latest release is right if you want current content and the widest choice of servers. Most large networks accept it through ViaVersion even when their backend is older.
  • 1.20 and 1.21 are where the bulk of active survival, skyblock and towny servers sit.
  • 1.16 still has a following in modded play, because several very large Forge packs were built for it and never moved.
  • 1.8 survives almost entirely for PvP. Pre-1.9 combat has no attack cooldown and the competitive scene never accepted the change, so practice and factions servers often still expect it.

Filtering by version here

The version filter on the server list matches on the major release, so choosing 1.20 returns 1.20, 1.20.1 and 1.20.4 alike. If you still cannot connect after matching the version, the problem is something else — how to join a server lists the common connection errors and what each one actually means.

Related guides