Protocol version

A protocol version number (PVN) is an integer used to check for incompatibilities between the player's client and the server they are trying to connect to.[1][2]

Usage

An outdated client attempting to connect to a server on a newer version.

Client and server versions with the same protocol version are compatible with each other. For example, a client running Java Edition 1.8.9 can connect to a server running Java Edition 1.8, as both have a protocol version of 47.

Upon attempting to join a multiplayer server, the game checks if the client has a protocol version newer or older than the selected server; if it does, the game then alerts the player that their client (or the server) is outdated.

Versioning

All versions, including minor releases and development versions on both Java and Bedrock editions, have their own protocol version. The version takes the form of an ever-increasing positive integer unlike client versions. Protocol versions may occasionally be skipped between major releases.

Since 1.16.4-pre1, protocol versions of Java Edition development releases take the form of very large numbers best represented using hexadecimal (represented by the prefix "0x" in the protocol version tables, starting from 0x40000001 (1073741825 in decimal)). This was made to allow release versions to be cross-compatible while both being incompatible with their development versions. For example, both 1.20.5 and 1.20.6 have a protocol version of 766, and are therefore multiplayer cross-compatible, while both of these are incompatible with 1.20.6-rc1, which has a protocol version of 0x400000C0.

Storage location

Java Edition

version.json

Each Minecraft build since 18w47b specifies its current protocol version in the version.json file, found in the root directory of the client and server jars.

  • [NBT Compound / JSON Object] version.json
    • [Int] protocol_version: The protocol version of this build.

Version command

Running /version (only present in 25w15a and later) prints the protocol version to chat.

Bedrock Edition

Since beta 1.2.0.22, the protocol version can be viewed by going into "Profile Settings" and scrolling down to the bottom. The protocol version appears in front of the text saying "Protocol Version:". It can also appear on the preview/beta debug text in front of the text saying "cli-pn".

List of protocol versions

The latest Java Edition release version, 1.21.8, has a protocol version of 772.

The latest Bedrock Edition release version, 1.21.94, has a protocol version of 819.
The latest Bedrock Edition development version, Preview 1.21.110.20, has a protocol version of 833.

The latest Minecraft Education release version, 1.21.91, has a protocol version of 818.

The tables below are sorted by data version.

History

Java Edition Classic
?Added protocol versions.
Java Edition Indev
0.3120091223-0040Removed protocol versions.
Java Edition Alpha
v1.0.5Re-added protocol versions.
v1.0.17Reset the protocol version number to 1.
Java Edition
1.7.213w41aRewrote the protocol to use Netty, resetting protocol versions back to 0. Protocol versions before this update are not compatible with server versions with the same protocol number after this update.
1.16.4pre1New network protocol scheme, with a high bit (bit 30) set for snapshots. The protocol version increases by 1 for each snapshot, but full releases may keep the same protocol version as the previous full release in cases where the network protocols are compatible.
Pocket Edition Alpha
v0.1.0Added protocol versions.
v0.12.1build 10The protocol version is now displayed at the top of the screen in development versions while the player is in a world.
v0.14.0build 1The protocol version a world used on creation is now saved to level.dat under [Int] NetworkVersion. The game uses this to check if a world is being played in an outdated version.
Bedrock Edition
1.6.0beta 1.6.0.1The protocol version written to level.dat is no longer used to detect if a world is being played in an outdated version.

See also

References

  1. server.jar, located in class com.mojang.bridge.game.GameVersion
  2. Minecraft Wiki:Projects/wiki.vg merge/Protocol version numbers

Navigation