The Java Edition protocol
How the Minecraft client and server actually talk to each other — the packet-level protocol that plugins, proxies and tools like Geyser and ViaVersion are built on.
Overview
Everything else in this Codex describes what the game does with data. The protocol is the layer underneath: the sequence of packets exchanged over a TCP connection from the first handshake to every block change. You do not need it to write a data pack — but you do need it to understand proxies, version-translation layers, custom clients, or why a plugin can do something commands cannot.
The protocol is not stable between versions. Packet ids are renumbered almost every release, so protocol documentation is only meaningful when read against a stated protocol version. This is the opposite of the data-pack format, which changes deliberately and slowly.
What happened to wiki.vg
For years the reference for this was wiki.vg. It is no longer reachable, and its content was migrated into the Minecraft Wiki, where it now lives under Java Edition protocol and its subpages. If you have an old bookmark or a link in a plugin’s README pointing at wiki.vg, the table below is where that page went.
Protocol documentation
23 pages, all on the Minecraft Wiki.
| Topic | Wiki page |
|---|---|
| Main page | Java Edition protocol |
| Block actions | Java Edition protocol/Block actions |
| Chat | Java Edition protocol/Chat |
| Chunk format | Java Edition protocol/Chunk format |
| Command data | Java Edition protocol/Command data |
| Data types | Java Edition protocol/Data types |
| Development version | Java Edition protocol/Development version |
| Encryption | Java Edition protocol/Encryption |
| Entity metadata | Java Edition protocol/Entity metadata |
| Entity statuses | Java Edition protocol/Entity statuses |
| FAQ | Java Edition protocol/FAQ |
| Inventory | Java Edition protocol/Inventory |
| Object data | Java Edition protocol/Object data |
| Packets | Java Edition protocol/Packets |
| Particles | Java Edition protocol/Particles |
| Plugin channels | Java Edition protocol/Plugin channels |
| Plugin channels/World downloader | Java Edition protocol/Plugin channels/World downloader |
| Plugin channels/WorldEditCUI | Java Edition protocol/Plugin channels/WorldEditCUI |
| Recipes | Java Edition protocol/Recipes |
| Registries | Java Edition protocol/Registries |
| Server List Ping | Java Edition protocol/Server List Ping |
| Slot data | Java Edition protocol/Slot data |
| VarInt and VarLong | Java Edition protocol/VarInt and VarLong |