Pre-release protocol: Difference between revisions

From wiki.vg
Jump to navigation Jump to search
imported>Rmheuer
(Chat Command no longer has signature data)
imported>Rmheuer
(Registry codecs use VarInt ID instead of Identifier)
Line 76: Line 76:
  {{PacketList|{{change|0x27|0x29}}|Particle|pre=unchanged}}
  {{PacketList|{{change|0x27|0x29}}|Particle|pre=unchanged}}
  {{PacketList|{{change|0x28|0x2A}}|Update Light|pre=unchanged}}
  {{PacketList|{{change|0x28|0x2A}}|Update Light|pre=unchanged}}
  {{PacketList|{{change|0x29|0x2B}}|Login (play)|pre=unchanged}}
  {{PacketList|{{change|0x29|0x2B}}|Login (play)}}
  {{PacketList|{{change|0x2A|0x2C}}|Map Data|pre=unchanged}}
  {{PacketList|{{change|0x2A|0x2C}}|Map Data|pre=unchanged}}
  {{PacketList|{{change|0x2B|0x2D}}|Merchant Offers|pre=unchanged}}
  {{PacketList|{{change|0x2B|0x2D}}|Merchant Offers|pre=unchanged}}
Line 104: Line 104:
  {{PacketList|{{change|0x43|0x45}}|Remove Resource Pack (play)|pre=unchanged}}
  {{PacketList|{{change|0x43|0x45}}|Remove Resource Pack (play)|pre=unchanged}}
  {{PacketList|{{change|0x44|0x46}}|Add Resource Pack (play)|pre=unchanged}}
  {{PacketList|{{change|0x44|0x46}}|Add Resource Pack (play)|pre=unchanged}}
  {{PacketList|{{change|0x45|0x47}}|Respawn|pre=unchanged}}
  {{PacketList|{{change|0x45|0x47}}|Respawn}}
  {{PacketList|{{change|0x46|0x48}}|Set Head Rotation|pre=unchanged}}
  {{PacketList|{{change|0x46|0x48}}|Set Head Rotation|pre=unchanged}}
  {{PacketList|{{change|0x47|0x49}}|Update Section Blocks|pre=unchanged}}
  {{PacketList|{{change|0x47|0x49}}|Update Section Blocks|pre=unchanged}}
Line 769: Line 769:
  | VarInt Enum
  | VarInt Enum
  | The type of sample data. Currently always 0 (TICK_TIME).
  | The type of sample data. Currently always 0 (TICK_TIME).
|}
==== Login (play) ====
{| class="wikitable"
! Packet ID
! State
! Bound To
! Field Name
! Field Type
! Notes
|-
| rowspan="21"| 0x2B
| rowspan="21"| Play
| rowspan="21"| Client
| Entity ID
| {{Type|Int}}
| The player's Entity ID (EID).
|-
| Is hardcore
| {{Type|Boolean}}
|
|-
| Dimension Count
| {{Type|VarInt}}
| Size of the following array.
|-
| Dimension Names
| {{Type|Array}} of {{Type|Identifier}}
| Identifiers for all dimensions on the server.
|-
| Max Players
| {{Type|VarInt}}
| Was once used by the client to draw the player list, but now is ignored.
|-
| View Distance
| {{Type|VarInt}}
| Render distance (2-32).
|-
| Simulation Distance
| {{Type|VarInt}}
| The distance that the client will process specific things, such as entities.
|-
| Reduced Debug Info
| {{Type|Boolean}}
| If true, a Notchian client shows reduced information on the {{Minecraft Wiki|debug screen}}.  For servers in development, this should almost always be false.
|-
| Enable respawn screen
| {{Type|Boolean}}
| Set to false when the doImmediateRespawn gamerule is true.
|-
| Do limited crafting
| {{Type|Boolean}}
| Whether players can only craft recipes they have already unlocked. Currently unused by the client.
|-
| Dimension Type
| {{change|Identifier|VarInt}}
| The ID of the type of dimension in the <code>minecraft:dimension_type</code> registry, defined by the Registry Data packet.
|-
| Dimension Name
| {{Type|Identifier}}
| Name of the dimension being spawned into.
|-
| Hashed seed
| {{Type|Long}}
| First 8 bytes of the SHA-256 hash of the world's seed. Used client side for biome noise
|-
| Game mode
| {{Type|Unsigned Byte}}
| 0: Survival, 1: Creative, 2: Adventure, 3: Spectator.
|-
| Previous Game mode
| {{Type|Byte}}
| -1: Undefined (null), 0: Survival, 1: Creative, 2: Adventure, 3: Spectator. The previous game mode. Vanilla client uses this for the debug (F3 + N & F3 + F4) game mode switch. (More information needed)
|-
| Is Debug
| {{Type|Boolean}}
| True if the world is a {{Minecraft Wiki|debug mode}} world; debug mode worlds cannot be modified and have predefined blocks.
|-
| Is Flat
| {{Type|Boolean}}
| True if the world is a {{Minecraft Wiki|superflat}} world; flat worlds have different void fog and a horizon at y=0 instead of y=63.
|-
| Has death location
| {{Type|Boolean}}
| If true, then the next two fields are present.
|-
| Death dimension name
| {{Type|Optional}} {{Type|Identifier}}
| Name of the dimension the player died in.
|-
| Death location
| {{Type|Optional}} {{Type|Position}}
| The location that the player died at.
|-
| Portal cooldown
| {{Type|VarInt}}
| The number of ticks until the player can use the portal again.
|}
==== Respawn ====
{| class="wikitable"
! Packet ID
! State
! Bound To
! Field Name
! Field Type
! Notes
|-
| rowspan="12"| 0x47
| rowspan="12"| Play
| rowspan="12"| Client
| Dimension Type
| {{change|Identifier|VarInt}}
| The ID of the type of dimension in the <code>minecraft:dimension_type</code> registry, defined by the [[Protocol#Registry_Data|Registry Data]] packet.
|-
| Dimension Name
| {{Type|Identifier}}
| Name of the dimension being spawned into.
|-
| Hashed seed
| {{Type|Long}}
| First 8 bytes of the SHA-256 hash of the world's seed. Used client side for biome noise
|-
| Game mode
| {{Type|Unsigned Byte}}
| 0: Survival, 1: Creative, 2: Adventure, 3: Spectator.
|-
| Previous Game mode
| {{Type|Byte}}
| -1: Undefined (null), 0: Survival, 1: Creative, 2: Adventure, 3: Spectator. The previous game mode. Vanilla client uses this for the debug (F3 + N & F3 + F4) game mode switch. (More information needed)
|-
| Is Debug
| {{Type|Boolean}}
| True if the world is a {{Minecraft Wiki|debug mode}} world; debug mode worlds cannot be modified and have predefined blocks.
|-
| Is Flat
| {{Type|Boolean}}
| True if the world is a {{Minecraft Wiki|superflat}} world; flat worlds have different void fog and a horizon at y=0 instead of y=63.
|-
| Has death location
| {{Type|Boolean}}
| If true, then the next two fields are present.
|-
| Death dimension Name
| {{Type|Optional}} {{Type|Identifier}}
| Name of the dimension the player died in.
|-
| Death location
| {{Type|Optional}} {{Type|Position}}
| The location that the player died at.
|-
| Portal cooldown
| {{Type|VarInt}}
| The number of ticks until the player can use the portal again.
|-
| Data kept
| {{Type|Byte}}
| Bit mask. 0x01: Keep attributes, 0x02: Keep metadata. Tells which data should be kept on the client side once the player has respawned.
In the Notchian implementation, this is context dependent:
* normal respawns (after death) keep no data;
* exiting the end poem/credits keeps the attributes;
* other dimension changes (portals or teleports) keep all data.
  |}
  |}



Revision as of 19:22, 9 April 2024

This page documents the changes from the last stable Minecraft release (currently 1.20.4, protocol 765) to the current pre-release (currently 24w13b, protocol Snapshot {{#expr: 1073742006 - 1073741824}}). Note that this page contains bleeding-edge information that may not be completely or correctly documented.

One who wishes to commandeer the merging of this into Protocol when an update is made must be sure to respect any changes that may have occurred to the respective packets there.

Contents

Data types

No changes so far.

Packets

ID Packet name Documentation
Handshake serverbound
0x00 Handshake added Current }} removed unchanged | (unchanged) | Pre }} }}
Login clientbound
0x01 Encryption Request added Current }} removed unchanged | (unchanged) | Pre }} }}
0x05 Cookie Request (login) added Current }} removed unchanged | (unchanged) | Pre }} }}
Login serverbound
0x04 Cookie Response (login) added Current }} removed unchanged | (unchanged) | Pre }} }}
Configuration clientbound
0x00 Cookie Request (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x00}}{{#if:0x01|{{#if:0x00| }}0x01}} Clientbound Plugin Message (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x01}}{{#if:0x02|{{#if:0x01| }}0x02}} Disconnect (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x02}}{{#if:0x03|{{#if:0x02| }}0x03}} Finish Configuration added Current }} removed unchanged | (unchanged) | Pre }} }}
0x03}}{{#if:0x04|{{#if:0x03| }}0x04}} Clientbound Keep Alive (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x04}}{{#if:0x05|{{#if:0x04| }}0x05}} Ping (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x06 Reset Chat added Current }} removed unchanged | (unchanged) | Pre }} }}
0x05}}{{#if:0x07|{{#if:0x05| }}0x07}} Registry Data added Current }} removed unchanged | (unchanged) | Pre }} }}
0x06}}{{#if:0x08|{{#if:0x06| }}0x08}} Remove Resource Pack (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x07}}{{#if:0x09|{{#if:0x07| }}0x09}} Add Resource Pack (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0A Store Cookie (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0B Transfer (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x08}}{{#if:0x0C|{{#if:0x08| }}0x0C}} Feature Flags added Current }} removed unchanged | (unchanged) | Pre }} }}
0x09}}{{#if:0x0D|{{#if:0x09| }}0x0D}} Update Tags (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0E Clientbound Known Packs added Current }} removed unchanged | (unchanged) | Pre }} }}
Configuration serverbound
0x01 Cookie Response (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x01}}{{#if:0x02|{{#if:0x01| }}0x02}} Serverbound Plugin Message (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x02}}{{#if:0x03|{{#if:0x02| }}0x03}} Finish Configuration added Current }} removed unchanged | (unchanged) | Pre }} }}
0x03}}{{#if:0x04|{{#if:0x03| }}0x04}} Serverbound Keep Alive (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x04}}{{#if:0x05|{{#if:0x04| }}0x05}} Pong (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x05}}{{#if:0x06|{{#if:0x05| }}0x06}} Resource Pack Response (configuration) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x07 Serverbound Known Packs added Current }} removed unchanged | (unchanged) | Pre }} }}
Play clientbound
0x16 Cookie Request (Play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x16}}{{#if:0x17|{{#if:0x16| }}0x17}} Set Cooldown added Current }} removed unchanged | (unchanged) | Pre }} }}
0x17}}{{#if:0x18|{{#if:0x17| }}0x18}} Chat Suggestions added Current }} removed unchanged | (unchanged) | Pre }} }}
0x18}}{{#if:0x19|{{#if:0x18| }}0x19}} Clientbound Plugin Message (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x19}}{{#if:0x1A|{{#if:0x19| }}0x1A}} Damage Event added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1B Debug Sample added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1A}}{{#if:0x1C|{{#if:0x1A| }}0x1C}} Delete Message added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1B}}{{#if:0x1D|{{#if:0x1B| }}0x1D}} Disconnect (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1C}}{{#if:0x1E|{{#if:0x1C| }}0x1E}} Disguised Chat Message added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1D}}{{#if:0x1F|{{#if:0x1D| }}0x1F}} Entity Event added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1E}}{{#if:0x20|{{#if:0x1E| }}0x20}} Explosion added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1F}}{{#if:0x21|{{#if:0x1F| }}0x21}} Unload Chunk added Current }} removed unchanged | (unchanged) | Pre }} }}
0x20}}{{#if:0x22|{{#if:0x20| }}0x22}} Game Event added Current }} removed unchanged | (unchanged) | Pre }} }}
0x21}}{{#if:0x23|{{#if:0x21| }}0x23}} Open Horse Screen added Current }} removed unchanged | (unchanged) | Pre }} }}
0x22}}{{#if:0x24|{{#if:0x22| }}0x24}} Hurt Animation added Current }} removed unchanged | (unchanged) | Pre }} }}
0x23}}{{#if:0x25|{{#if:0x23| }}0x25}} Initialize World Border added Current }} removed unchanged | (unchanged) | Pre }} }}
0x24}}{{#if:0x26|{{#if:0x24| }}0x26}} Clientbound Keep Alive (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x25}}{{#if:0x27|{{#if:0x25| }}0x27}} Chunk Data and Update Light added Current }} removed unchanged | (unchanged) | Pre }} }}
0x26}}{{#if:0x28|{{#if:0x26| }}0x28}} World Event added Current }} removed unchanged | (unchanged) | Pre }} }}
0x27}}{{#if:0x29|{{#if:0x27| }}0x29}} Particle added Current }} removed unchanged | (unchanged) | Pre }} }}
0x28}}{{#if:0x2A|{{#if:0x28| }}0x2A}} Update Light added Current }} removed unchanged | (unchanged) | Pre }} }}
0x29}}{{#if:0x2B|{{#if:0x29| }}0x2B}} Login (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2A}}{{#if:0x2C|{{#if:0x2A| }}0x2C}} Map Data added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2B}}{{#if:0x2D|{{#if:0x2B| }}0x2D}} Merchant Offers added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2C}}{{#if:0x2E|{{#if:0x2C| }}0x2E}} Update Entity Position added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2D}}{{#if:0x2F|{{#if:0x2D| }}0x2F}} Update Entity Position and Rotation added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2E}}{{#if:0x30|{{#if:0x2E| }}0x30}} Update Entity Rotation added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2F}}{{#if:0x31|{{#if:0x2F| }}0x31}} Move Vehicle added Current }} removed unchanged | (unchanged) | Pre }} }}
0x30}}{{#if:0x32|{{#if:0x30| }}0x32}} Open Book added Current }} removed unchanged | (unchanged) | Pre }} }}
0x31}}{{#if:0x33|{{#if:0x31| }}0x33}} Open Screen added Current }} removed unchanged | (unchanged) | Pre }} }}
0x32}}{{#if:0x34|{{#if:0x32| }}0x34}} Open Sign Editor added Current }} removed unchanged | (unchanged) | Pre }} }}
0x33}}{{#if:0x35|{{#if:0x33| }}0x35}} Ping (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x34}}{{#if:0x36|{{#if:0x34| }}0x36}} Ping Response (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x35}}{{#if:0x37|{{#if:0x35| }}0x37}} Place Ghost Recipe added Current }} removed unchanged | (unchanged) | Pre }} }}
0x36}}{{#if:0x38|{{#if:0x36| }}0x38}} Player Abilities added Current }} removed unchanged | (unchanged) | Pre }} }}
0x37}}{{#if:0x39|{{#if:0x37| }}0x39}} Player Chat Message added Current }} removed unchanged | (unchanged) | Pre }} }}
0x38}}{{#if:0x3A|{{#if:0x38| }}0x3A}} End Combat added Current }} removed unchanged | (unchanged) | Pre }} }}
0x39}}{{#if:0x3B|{{#if:0x39| }}0x3B}} Enter Combat added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3A}}{{#if:0x3C|{{#if:0x3A| }}0x3C}} Combat Death added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3B}}{{#if:0x3D|{{#if:0x3B| }}0x3D}} Player Info Remove added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3C}}{{#if:0x3E|{{#if:0x3C| }}0x3E}} Player Info Update added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3D}}{{#if:0x3F|{{#if:0x3D| }}0x3F}} Look At added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3E}}{{#if:0x40|{{#if:0x3E| }}0x40}} Synchronize Player Position added Current }} removed unchanged | (unchanged) | Pre }} }}
0x3F}}{{#if:0x41|{{#if:0x3F| }}0x41}} Update Recipe Book added Current }} removed unchanged | (unchanged) | Pre }} }}
0x40}}{{#if:0x42|{{#if:0x40| }}0x42}} Remove Entities added Current }} removed unchanged | (unchanged) | Pre }} }}
0x41}}{{#if:0x43|{{#if:0x41| }}0x43}} Remove Entity Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x42}}{{#if:0x44|{{#if:0x42| }}0x44}} Reset Score added Current }} removed unchanged | (unchanged) | Pre }} }}
0x43}}{{#if:0x45|{{#if:0x43| }}0x45}} Remove Resource Pack (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x44}}{{#if:0x46|{{#if:0x44| }}0x46}} Add Resource Pack (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x45}}{{#if:0x47|{{#if:0x45| }}0x47}} Respawn added Current }} removed unchanged | (unchanged) | Pre }} }}
0x46}}{{#if:0x48|{{#if:0x46| }}0x48}} Set Head Rotation added Current }} removed unchanged | (unchanged) | Pre }} }}
0x47}}{{#if:0x49|{{#if:0x47| }}0x49}} Update Section Blocks added Current }} removed unchanged | (unchanged) | Pre }} }}
0x48}}{{#if:0x4A|{{#if:0x48| }}0x4A}} Select Advancements Tab added Current }} removed unchanged | (unchanged) | Pre }} }}
0x49}}{{#if:0x4B|{{#if:0x49| }}0x4B}} Server Data added Current }} removed unchanged | (unchanged) | Pre }} }}
0x4A}}{{#if:0x4C|{{#if:0x4A| }}0x4C}} Set Action Bar Text added Current }} removed unchanged | (unchanged) | Pre }} }}
0x4B}}{{#if:0x4D|{{#if:0x4B| }}0x4D}} Set Border Center added Current }} removed unchanged | (unchanged) | Pre }} }}
0x4C}}{{#if:0x4E|{{#if:0x4C| }}0x4E}} Set Border Lerp Size added Current }} removed unchanged | (unchanged) | Pre }} }}
0x4D}}{{#if:0x4F|{{#if:0x4D| }}0x4F}} Set Border Size added Current }} removed unchanged | (unchanged) | Pre }} }}
0x4E}}{{#if:0x50|{{#if:0x4E| }}0x50}} Set Border Warning Delay added Current }} removed unchanged | (unchanged) | Pre }} }}
0x4F}}{{#if:0x51|{{#if:0x4F| }}0x51}} Set Border Warning Distance added Current }} removed unchanged | (unchanged) | Pre }} }}
0x50}}{{#if:0x52|{{#if:0x50| }}0x52}} Set Camera added Current }} removed unchanged | (unchanged) | Pre }} }}
0x51}}{{#if:0x53|{{#if:0x51| }}0x53}} Set Held Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x52}}{{#if:0x54|{{#if:0x52| }}0x54}} Set Center Chunk added Current }} removed unchanged | (unchanged) | Pre }} }}
0x53}}{{#if:0x55|{{#if:0x53| }}0x55}} Set Render Distance added Current }} removed unchanged | (unchanged) | Pre }} }}
0x54}}{{#if:0x56|{{#if:0x54| }}0x56}} Set Default Spawn Position added Current }} removed unchanged | (unchanged) | Pre }} }}
0x55}}{{#if:0x57|{{#if:0x55| }}0x57}} Display Objective added Current }} removed unchanged | (unchanged) | Pre }} }}
0x56}}{{#if:0x58|{{#if:0x56| }}0x58}} Set Entity Metadata added Current }} removed unchanged | (unchanged) | Pre }} }}
0x57}}{{#if:0x59|{{#if:0x57| }}0x59}} Link Entities added Current }} removed unchanged | (unchanged) | Pre }} }}
0x58}}{{#if:0x5A|{{#if:0x58| }}0x5A}} Set Entity Velocity added Current }} removed unchanged | (unchanged) | Pre }} }}
0x59}}{{#if:0x5B|{{#if:0x59| }}0x5B}} Set Equipment added Current }} removed unchanged | (unchanged) | Pre }} }}
0x5A}}{{#if:0x5C|{{#if:0x5A| }}0x5C}} Set Experience added Current }} removed unchanged | (unchanged) | Pre }} }}
0x5B}}{{#if:0x5D|{{#if:0x5B| }}0x5D}} Set Health added Current }} removed unchanged | (unchanged) | Pre }} }}
0x5C}}{{#if:0x5E|{{#if:0x5C| }}0x5E}} Update Objectives added Current }} removed unchanged | (unchanged) | Pre }} }}
0x5D}}{{#if:0x5F|{{#if:0x5D| }}0x5F}} Set Passengers added Current }} removed unchanged | (unchanged) | Pre }} }}
0x5E}}{{#if:0x60|{{#if:0x5E| }}0x60}} Update Teams added Current }} removed unchanged | (unchanged) | Pre }} }}
0x5F}}{{#if:0x61|{{#if:0x5F| }}0x61}} Update Score added Current }} removed unchanged | (unchanged) | Pre }} }}
0x60}}{{#if:0x62|{{#if:0x60| }}0x62}} Set Simulation Distance added Current }} removed unchanged | (unchanged) | Pre }} }}
0x61}}{{#if:0x63|{{#if:0x61| }}0x63}} Set Subtitle Text added Current }} removed unchanged | (unchanged) | Pre }} }}
0x62}}{{#if:0x64|{{#if:0x62| }}0x64}} Update Time added Current }} removed unchanged | (unchanged) | Pre }} }}
0x63}}{{#if:0x65|{{#if:0x63| }}0x65}} Set Title Text added Current }} removed unchanged | (unchanged) | Pre }} }}
0x64}}{{#if:0x66|{{#if:0x64| }}0x66}} Set Title Animation Times added Current }} removed unchanged | (unchanged) | Pre }} }}
0x65}}{{#if:0x67|{{#if:0x65| }}0x67}} Entity Sound Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x66}}{{#if:0x68|{{#if:0x66| }}0x68}} Sound Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x67}}{{#if:0x69|{{#if:0x67| }}0x69}} Start Configuration added Current }} removed unchanged | (unchanged) | Pre }} }}
0x68}}{{#if:0x6A|{{#if:0x68| }}0x6A}} Stop Sound added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6B Store Cookie (Play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x69}}{{#if:0x6C|{{#if:0x69| }}0x6C}} System Chat Message added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6A}}{{#if:0x6D|{{#if:0x6A| }}0x6D}} Set Tab List Header And Footer added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6B}}{{#if:0x6E|{{#if:0x6B| }}0x6E}} Tag Query Response added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6C}}{{#if:0x6F|{{#if:0x6C| }}0x6F}} Pickup Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6D}}{{#if:0x70|{{#if:0x6D| }}0x70}} Teleport Entity added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6E}}{{#if:0x71|{{#if:0x6E| }}0x71}} Set Ticking State added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6F}}{{#if:0x72|{{#if:0x6F| }}0x72}} Step Tick added Current }} removed unchanged | (unchanged) | Pre }} }}
0x73 Transfer (Play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x70}}{{#if:0x74|{{#if:0x70| }}0x74}} Update Advancements added Current }} removed unchanged | (unchanged) | Pre }} }}
0x71}}{{#if:0x75|{{#if:0x71| }}0x75}} Update Attributes added Current }} removed unchanged | (unchanged) | Pre }} }}
0x72}}{{#if:0x76|{{#if:0x72| }}0x76}} Entity Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x73}}{{#if:0x77|{{#if:0x73| }}0x77}} Update Recipes added Current }} removed unchanged | (unchanged) | Pre }} }}
0x74}}{{#if:0x78|{{#if:0x74| }}0x78}} Update Tags (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
Play serverbound
0x04 Chat Command added Current }} removed unchanged | (unchanged) | Pre }} }}
0x05 Signed Chat Command added Current }} removed unchanged | (unchanged) | Pre }} }}
0x05}}{{#if:0x06|{{#if:0x05| }}0x06}} Chat Message added Current }} removed unchanged | (unchanged) | Pre }} }}
0x06}}{{#if:0x07|{{#if:0x06| }}0x07}} Player Session added Current }} removed unchanged | (unchanged) | Pre }} }}
0x07}}{{#if:0x08|{{#if:0x07| }}0x08}} Chunk Batch Received added Current }} removed unchanged | (unchanged) | Pre }} }}
0x08}}{{#if:0x09|{{#if:0x08| }}0x09}} Client Status added Current }} removed unchanged | (unchanged) | Pre }} }}
0x09}}{{#if:0x0A|{{#if:0x09| }}0x0A}} Client Information (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0A}}{{#if:0x0B|{{#if:0x0A| }}0x0B}} Command Suggestions Request added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0B}}{{#if:0x0C|{{#if:0x0B| }}0x0C}} Acknowledge Configuration added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0C}}{{#if:0x0D|{{#if:0x0C| }}0x0D}} Click Container Button added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0D}}{{#if:0x0E|{{#if:0x0D| }}0x0E}} Click Container added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0E}}{{#if:0x0F|{{#if:0x0E| }}0x0F}} Close Container added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0F}}{{#if:0x10|{{#if:0x0F| }}0x10}} Change Container Slot State added Current }} removed unchanged | (unchanged) | Pre }} }}
0x11 Cookie Response (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x10}}{{#if:0x12|{{#if:0x10| }}0x12}} Serverbound Plugin Message (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x13 Debug Sample Subscription added Current }} removed unchanged | (unchanged) | Pre }} }}
0x11}}{{#if:0x14|{{#if:0x11| }}0x14}} Edit Book added Current }} removed unchanged | (unchanged) | Pre }} }}
0x12}}{{#if:0x15|{{#if:0x12| }}0x15}} Query Entity Tag added Current }} removed unchanged | (unchanged) | Pre }} }}
0x13}}{{#if:0x16|{{#if:0x13| }}0x16}} Interact added Current }} removed unchanged | (unchanged) | Pre }} }}
0x14}}{{#if:0x17|{{#if:0x14| }}0x17}} Jigsaw Generate added Current }} removed unchanged | (unchanged) | Pre }} }}
0x15}}{{#if:0x18|{{#if:0x15| }}0x18}} Serverbound Keep Alive (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x16}}{{#if:0x19|{{#if:0x16| }}0x19}} Lock Difficulty added Current }} removed unchanged | (unchanged) | Pre }} }}
0x17}}{{#if:0x1A|{{#if:0x17| }}0x1A}} Set Player Position added Current }} removed unchanged | (unchanged) | Pre }} }}
0x18}}{{#if:0x1B|{{#if:0x18| }}0x1B}} Set Player Position and Rotation added Current }} removed unchanged | (unchanged) | Pre }} }}
0x19}}{{#if:0x1C|{{#if:0x19| }}0x1C}} Set Player Rotation added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1A}}{{#if:0x1D|{{#if:0x1A| }}0x1D}} Set Player On Ground added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1B}}{{#if:0x1E|{{#if:0x1B| }}0x1E}} Move Vehicle added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1C}}{{#if:0x1F|{{#if:0x1C| }}0x1F}} Paddle Boat added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1D}}{{#if:0x20|{{#if:0x1D| }}0x20}} Pick Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1E}}{{#if:0x21|{{#if:0x1E| }}0x21}} Ping Request (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1F}}{{#if:0x22|{{#if:0x1F| }}0x22}} Place Recipe added Current }} removed unchanged | (unchanged) | Pre }} }}
0x20}}{{#if:0x23|{{#if:0x20| }}0x23}} Player Abilities added Current }} removed unchanged | (unchanged) | Pre }} }}
0x21}}{{#if:0x24|{{#if:0x21| }}0x24}} Player Action added Current }} removed unchanged | (unchanged) | Pre }} }}
0x22}}{{#if:0x25|{{#if:0x22| }}0x25}} Player Command added Current }} removed unchanged | (unchanged) | Pre }} }}
0x23}}{{#if:0x26|{{#if:0x23| }}0x26}} Player Input added Current }} removed unchanged | (unchanged) | Pre }} }}
0x24}}{{#if:0x27|{{#if:0x24| }}0x27}} Pong (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x25}}{{#if:0x28|{{#if:0x25| }}0x28}} Change Recipe Book Settings added Current }} removed unchanged | (unchanged) | Pre }} }}
0x26}}{{#if:0x29|{{#if:0x26| }}0x29}} Set Seen Recipe added Current }} removed unchanged | (unchanged) | Pre }} }}
0x27}}{{#if:0x2A|{{#if:0x27| }}0x2A}} Rename Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x28}}{{#if:0x2B|{{#if:0x28| }}0x2B}} Resource Pack Response (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x29}}{{#if:0x2C|{{#if:0x29| }}0x2C}} Seen Advancements added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2A}}{{#if:0x2D|{{#if:0x2A| }}0x2D}} Select Trade added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2B}}{{#if:0x2E|{{#if:0x2B| }}0x2E}} Set Beacon Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2C}}{{#if:0x2F|{{#if:0x2C| }}0x2F}} Set Held Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2D}}{{#if:0x30|{{#if:0x2D| }}0x30}} Program Command Block added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2E}}{{#if:0x31|{{#if:0x2E| }}0x31}} Program Command Block Minecart added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2F}}{{#if:0x32|{{#if:0x2F| }}0x32}} Set Creative Mode Slot added Current }} removed unchanged | (unchanged) | Pre }} }}
0x30}}{{#if:0x33|{{#if:0x30| }}0x33}} Program Jigsaw Block added Current }} removed unchanged | (unchanged) | Pre }} }}
0x31}}{{#if:0x34|{{#if:0x31| }}0x34}} Program Structure Block added Current }} removed unchanged | (unchanged) | Pre }} }}
0x32}}{{#if:0x35|{{#if:0x32| }}0x35}} Update Sign added Current }} removed unchanged | (unchanged) | Pre }} }}
0x33}}{{#if:0x36|{{#if:0x33| }}0x36}} Swing Arm added Current }} removed unchanged | (unchanged) | Pre }} }}
0x34}}{{#if:0x37|{{#if:0x34| }}0x37}} Teleport To Entity added Current }} removed unchanged | (unchanged) | Pre }} }}
0x35}}{{#if:0x38|{{#if:0x35| }}0x38}} Use Item On added Current }} removed unchanged | (unchanged) | Pre }} }}
0x36}}{{#if:0x39|{{#if:0x36| }}0x39}} Use Item added Current }} removed unchanged | (unchanged) | Pre }} }}

New/modified data types

No changes so far.

Entity Metadata

{{#vardefine: meta_prerelease | 1}}

{{#vardefine: meta_type | 0}} {{#if: {{#var:meta_prerelease}} {{#switch: {{#vardefine: meta_type_Byte | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_VarInt | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_VarLong | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Float | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_String | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Text Component | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Optional Text Component | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Slot | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Boolean | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Rotations | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Position | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Optional Position | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Direction | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Optional UUID | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Block State | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Optional Block State | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_NBT | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Particle | {{#var:meta_type}}}} {{#switch: added {{#vardefine: meta_type_Particles | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Villager Data | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Optional VarInt | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Pose | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Cat Variant | {{#var:meta_type}}}} {{#switch: added {{#vardefine: meta_type_Wolf Variant | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Frog Variant | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Optional Global Position | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Painting Variant | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Sniffer State | {{#var:meta_type}}}} {{#switch: added {{#vardefine: meta_type_Armadillo State | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Vector3 | {{#var:meta_type}}}} {{#switch: {{#vardefine: meta_type_Quaternion | {{#var:meta_type}}}}
0}}
   }}
{{#if: {{#var:meta_prerelease}} style="min-width: 3em"
   }} | Type
Name Value Notes

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Byte.
           }}
       {{#vardefine: meta_type_Byte | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Byte | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Byte
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Byte
   }}
{{#switch: Pre-release protocol Data types =
       Byte
#default =
       Byte
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type VarInt.
           }}
       {{#vardefine: meta_type_VarInt | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_VarInt | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
VarInt
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
VarInt
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type VarLong.
           }}
       {{#vardefine: meta_type_VarLong | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_VarLong | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
VarLong
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
VarLong
   }}
{{#switch: Pre-release protocol Data types =
       VarLong
#default =
       VarLong
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Float.
           }}
       {{#vardefine: meta_type_Float | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Float | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Float
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Float
   }}
{{#switch: Pre-release protocol Data types =
       Float
#default =
       Float
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type String.
           }}
       {{#vardefine: meta_type_String | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_String | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
String
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
String
   }}
{{#switch: Pre-release protocol Data types =
       String
#default =
       String
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Text Component.
           }}
       {{#vardefine: meta_type_Text Component | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Text Component | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Text Component
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Text Component
   }}
{{#switch: Pre-release protocol Data types =
       Text Component
#default =
       Text Component
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Optional Text Component.
           }}
       {{#vardefine: meta_type_Optional Text Component | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Optional Text Component | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Optional Text Component
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Optional Text Component
   }}
({{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}, {{#switch: Pre-release protocol
Data types =
       Optional
#default =
       Optional
   }} {{#switch: Pre-release protocol
Data types =
       Text Component
#default =
       Text Component
   }})
Text Component is present if the Boolean is set to true.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Slot.
           }}
       {{#vardefine: meta_type_Slot | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Slot | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Slot
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Slot
   }}
{{#switch: Pre-release protocol Data types =
       Slot
#default =
       Slot
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Boolean.
           }}
       {{#vardefine: meta_type_Boolean | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Boolean | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Boolean
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Boolean
   }}
{{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Rotations.
           }}
       {{#vardefine: meta_type_Rotations | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Rotations | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Rotations
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Rotations
   }}
({{#switch: Pre-release protocol Data types =
       Float
#default =
       Float
   }}, {{#switch: Pre-release protocol
Data types =
       Float
#default =
       Float
   }}, {{#switch: Pre-release protocol
Data types =
       Float
#default =
       Float
   }})
rotation on x, rotation on y, rotation on z

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Position.
           }}
       {{#vardefine: meta_type_Position | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Position | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Position
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Position
   }}
{{#switch: Pre-release protocol Data types =
       Position
#default =
       Position
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Optional Position.
           }}
       {{#vardefine: meta_type_Optional Position | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Optional Position | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Optional Position
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Optional Position
   }}
({{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}, {{#switch: Pre-release protocol
Data types =
       Optional
#default =
       Optional
   }} {{#switch: Pre-release protocol
Data types =
       Position
#default =
       Position
   }})
Position is present if the Boolean is set to true.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Direction.
           }}
       {{#vardefine: meta_type_Direction | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Direction | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Direction
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Direction
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: Pre-release protocol
Data types =
       Enum
#default =
       Enum
   }}
Down = 0, Up = 1, North = 2, South = 3, West = 4, East = 5

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Optional UUID.
           }}
       {{#vardefine: meta_type_Optional UUID | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Optional UUID | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Optional UUID
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Optional UUID
   }}
({{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}, {{#switch: Pre-release protocol
Data types =
       Optional
#default =
       Optional
   }} {{#switch: Pre-release protocol
Data types =
       UUID
#default =
       UUID
   }})
UUID is present if the Boolean is set to true.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Block State.
           }}
       {{#vardefine: meta_type_Block State | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Block State | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Block State
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Block State
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
An ID in the block state registry.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Optional Block State.
           }}
       {{#vardefine: meta_type_Optional Block State | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Optional Block State | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Optional Block State
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Optional Block State
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
0 for absent (air is unrepresentable); otherwise, an ID in the block state registry.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type NBT.
           }}
       {{#vardefine: meta_type_NBT | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_NBT | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
NBT
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
NBT
   }}
{{#switch: Pre-release protocol Data types =
       NBT
#default =
       NBT
   }}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Particle.
           }}
       {{#vardefine: meta_type_Particle | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Particle | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Particle
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Particle
   }}
({{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}, Varies)
particle type (an ID in the minecraft:particle_type registry), particle data (See Particles.)

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter added passed to Template:Metadata type definition for type Particles.
           }}
       {{#vardefine: meta_type_Particles | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Particles | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: added | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: added | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Particles
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Particles
   }}
({{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}, Array of Particle)
length of array, particle data (See directly above.)

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Villager Data.
           }}
       {{#vardefine: meta_type_Villager Data | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Villager Data | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Villager Data
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Villager Data
   }}
({{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}, {{#switch: Pre-release protocol
Data types =
       VarInt
#default =
       VarInt
   }}, {{#switch: Pre-release protocol
Data types =
       VarInt
#default =
       VarInt
   }})
villager type, villager profession, level (See below.)

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Optional VarInt.
           }}
       {{#vardefine: meta_type_Optional VarInt | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Optional VarInt | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Optional VarInt
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Optional VarInt
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
0 for absent; 1 + actual value otherwise. Used for entity IDs.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Pose.
           }}
       {{#vardefine: meta_type_Pose | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Pose | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Pose
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Pose
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: Pre-release protocol
Data types =
       Enum
#default =
       Enum
   }}
}}{{#if:, SLIDING = 15, SHOOTING = 16, INHALING = 17|{{#if:| }}, SLIDING = 15, SHOOTING = 16, INHALING = 17}}

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Cat Variant.
           }}
       {{#vardefine: meta_type_Cat Variant | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Cat Variant | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Cat Variant
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Cat Variant
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
An ID in the minecraft:cat_variant registry.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter added passed to Template:Metadata type definition for type Wolf Variant.
           }}
       {{#vardefine: meta_type_Wolf Variant | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Wolf Variant | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: added | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: added | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Wolf Variant
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Wolf Variant
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
An ID in the minecraft:wolf_variant registry.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Frog Variant.
           }}
       {{#vardefine: meta_type_Frog Variant | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Frog Variant | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Frog Variant
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Frog Variant
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
An ID in the minecraft:frog_variant registry.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Optional Global Position.
           }}
       {{#vardefine: meta_type_Optional Global Position | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Optional Global Position | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Optional Global Position
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Optional Global Position
   }}
({{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}, {{#switch: Pre-release protocol
Data types =
       Optional
#default =
       Optional
   }} {{#switch: Pre-release protocol
Data types =
       Identifier
#default =
       Identifier
   }}, {{#switch: Pre-release protocol
Data types =
       Optional
#default =
       Optional
   }} {{#switch: Pre-release protocol
Data types =
       Position
#default =
       Position
   }})
dimension identifier, position; only if the Boolean is set to true.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Painting Variant.
           }}
       {{#vardefine: meta_type_Painting Variant | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Painting Variant | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Painting Variant
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Painting Variant
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
An ID in the minecraft:painting_variant registry.

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Sniffer State.
           }}
       {{#vardefine: meta_type_Sniffer State | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Sniffer State | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Sniffer State
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Sniffer State
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: Pre-release protocol
Data types =
       Enum
#default =
       Enum
   }}
IDLING = 0, FEELING_HAPPY = 1, SCENTING = 2, SNIFFING = 3, SEARCHING = 4, DIGGING = 5, RISING = 6

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter added passed to Template:Metadata type definition for type Armadillo State.
           }}
       {{#vardefine: meta_type_Armadillo State | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Armadillo State | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: added | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: added | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Armadillo State
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Armadillo State
   }}
{{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: Pre-release protocol
Data types =
       Enum
#default =
       Enum
   }}
IDLE = 0, ROLLING = 1, SCARED = 2

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Vector3.
           }}
       {{#vardefine: meta_type_Vector3 | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Vector3 | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Vector3
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Vector3
   }}
({{#switch: Pre-release protocol Data types =
       Float
#default =
       Float
   }}, {{#switch: Pre-release protocol
Data types =
       Float
#default =
       Float
   }}, {{#switch: Pre-release protocol
Data types =
       Float
#default =
       Float
   }})
x, y, z

{{#if: {{#var:meta_prerelease}}

removed | = #default =
               Invalid rel parameter {{{rel}}} passed to Template:Metadata type definition for type Quaternion.
           }}
       {{#vardefine: meta_type_Quaternion | {{#var:meta_type}}}}{{#vardefine: meta_pre_type_Quaternion | {{#var:meta_pre_type}}}}
{{#var:meta_pre_type}} {{#var:meta_type}} {{#var:meta_type}}}}{{#if:{{#var:meta_pre_type}}|{{#if:{{#var:meta_type}}| }}{{#var:meta_pre_type}}}}
           }}
       {{#ifeq: {{{rel}}} | removed
{{#expr: {{#var:meta_pre_type}} + 1}}}}
           }}{{#ifeq: {{{rel}}} | added
{{#expr: {{#var:meta_type}} + 1}}}}
           }}
Quaternion
{{#var:meta_type}}
       {{#vardefine: meta_type | {{#expr: {{#var:meta_type}} + 1}}}}
Quaternion
   }}
({{#switch: Pre-release protocol Data types =
       Float
#default =
       Float
   }}, {{#switch: Pre-release protocol
Data types =
       Float
#default =
       Float
   }}, {{#switch: Pre-release protocol
Data types =
       Float
#default =
       Float
   }}, {{#switch: Pre-release protocol
Data types =
       Float
#default =
       Float
   }})
x, y, z, w

Living Entity

TODO: This has changed to use the PARTICLES attribute

Wolf

{{#if:Wolf||Must specify the current entity ID for Template:Metadata inherit}} {{#vardefine:meta_current_entity|Wolf}}

{{#if:{{#var:meta_prerelease}}|

   {{#if:Tameable Animal
       | {{#if:
           | Extends {{#if:[[{{#varexists:meta_Tameable Animal|Entity metadata}}#Tameable Animal|Tameable Animal]]|[[{{#varexists:meta_Tameable Animal|Entity metadata}}#Tameable Animal|Tameable Animal]]}}{{#if:[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]|{{#if:[[{{#varexists:meta_Tameable Animal|Entity metadata}}#Tameable Animal|Tameable Animal]]| }}[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]}}.
           | Extends [[{{#varexists:meta_Tameable Animal|Entity metadata}}#Tameable Animal|Tameable Animal]].
       }}{{#if:
           | {{#vardefine:meta_Wolf|{{{start_at}}}}}
           {{#if:{{#varexists:meta_Tameable Animal}}|start_at in use when inherited entity Tameable Animal exists}}
           | {{#vardefine:meta_Wolf|{{#var:meta_Tameable Animal|0}}}}
           {{#if:{{#varexists:meta_Tameable Animal}}||Inherited entity Tameable Animal does not exist}}
       }}{{#if:
           | {{#vardefine:meta_pre_Wolf|}}
           {{#if:{{#varexists:meta_Tameable Animal}}|start_at in use when inherited entity Tameable Animal exists}}
           | {{#vardefine:meta_pre_Wolf|{{#var:meta_pre_Tameable Animal|0}}}}
           {{#if:{{#varexists:meta_Tameable Animal}}||Inherited entity Tameable Animal does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Wolf|0}}
       {{#vardefine:meta_pre_Wolf|0}}
   }}

|

   {{#if:Tameable Animal
       | Extends Tameable Animal.
       {{#if:
           | {{#vardefine:meta_Wolf|{{{start_at}}}}}
           {{#if:{{#varexists:meta_Tameable Animal}}|start_at in use when inherited entity Tameable Animal exists}}
           | {{#vardefine:meta_Wolf|{{#var:meta_Tameable Animal|0}}}}
           {{#if:{{#varexists:meta_Tameable Animal}}||Inherited entity Tameable Animal does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Wolf|0}}
   }}

}}

Index Type Meaning Default
   {{#vardefine:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:pre_meta|{{#var:meta_pre_{{#var:meta_current_entity}}}}}}
   {{#switch: 
added =
       {{#if:|}}{{#if:{{#var:pre_meta}}|{{#if:| }}{{#var:pre_meta}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
removed =
       {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:|{{#if:{{#var:cur_meta}}| }}}}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
=
       {{#ifeq: {{#var:cur_meta}}|{{#var:pre_meta}} | {{#var:cur_meta}} | {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:{{#var:pre_meta}}|{{#if:{{#var:cur_meta}}| }}{{#var:pre_meta}}}} }}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
#default =
       Invalid parameter to Template:Metadata id 
   }}
   {{#vardefineecho:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
   {{#ifeq: |||Template:Metadata id must be used as {{Metadata id|}} (with an empty first parameter) for technical reasons}}

}}

Wolf Variant ({{#if: {{#var:meta_prerelease}}
       {{#ifeq: {{#var:meta_type_Wolf Variant}} | {{#var:meta_pre_type_Wolf Variant}}
{{#var:meta_type_Wolf Variant}} {{#var:meta_type_Wolf Variant}}}}{{#if:{{#var:meta_pre_type_Wolf Variant}}|{{#if:{{#var:meta_type_Wolf Variant}}| }}{{#var:meta_pre_type_Wolf Variant}}}}
           }}
       {{#var:meta_type_Wolf Variant}}
   }})
Wolf Variant PALE
   {{#vardefine:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:pre_meta|{{#var:meta_pre_{{#var:meta_current_entity}}}}}}
   {{#switch: 
added =
       {{#if:|}}{{#if:{{#var:pre_meta}}|{{#if:| }}{{#var:pre_meta}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
removed =
       {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:|{{#if:{{#var:cur_meta}}| }}}}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
=
       {{#ifeq: {{#var:cur_meta}}|{{#var:pre_meta}} | {{#var:cur_meta}} | {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:{{#var:pre_meta}}|{{#if:{{#var:cur_meta}}| }}{{#var:pre_meta}}}} }}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
#default =
       Invalid parameter to Template:Metadata id 
   }}
   {{#vardefineecho:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
   {{#ifeq: |||Template:Metadata id must be used as {{Metadata id|}} (with an empty first parameter) for technical reasons}}

}}

Boolean ({{#if: {{#var:meta_prerelease}}
       {{#ifeq: {{#var:meta_type_Boolean}} | {{#var:meta_pre_type_Boolean}}
{{#var:meta_type_Boolean}} {{#var:meta_type_Boolean}}}}{{#if:{{#var:meta_pre_type_Boolean}}|{{#if:{{#var:meta_type_Boolean}}| }}{{#var:meta_pre_type_Boolean}}}}
           }}
       {{#var:meta_type_Boolean}}
   }})
Is begging false
   {{#vardefine:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:pre_meta|{{#var:meta_pre_{{#var:meta_current_entity}}}}}}
   {{#switch: 
added =
       {{#if:|}}{{#if:{{#var:pre_meta}}|{{#if:| }}{{#var:pre_meta}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
removed =
       {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:|{{#if:{{#var:cur_meta}}| }}}}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
=
       {{#ifeq: {{#var:cur_meta}}|{{#var:pre_meta}} | {{#var:cur_meta}} | {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:{{#var:pre_meta}}|{{#if:{{#var:cur_meta}}| }}{{#var:pre_meta}}}} }}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
#default =
       Invalid parameter to Template:Metadata id 
   }}
   {{#vardefineecho:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
   {{#ifeq: |||Template:Metadata id must be used as {{Metadata id|}} (with an empty first parameter) for technical reasons}}

}}

VarInt ({{#if: {{#var:meta_prerelease}}
       {{#ifeq: {{#var:meta_type_VarInt}} | {{#var:meta_pre_type_VarInt}}
{{#var:meta_type_VarInt}} {{#var:meta_type_VarInt}}}}{{#if:{{#var:meta_pre_type_VarInt}}|{{#if:{{#var:meta_type_VarInt}}| }}{{#var:meta_pre_type_VarInt}}}}
           }}
       {{#var:meta_type_VarInt}}
   }})
Collar color (values are those used with dyes) 14 (Red)
   {{#vardefine:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:pre_meta|{{#var:meta_pre_{{#var:meta_current_entity}}}}}}
   {{#switch: 
added =
       {{#if:|}}{{#if:{{#var:pre_meta}}|{{#if:| }}{{#var:pre_meta}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
removed =
       {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:|{{#if:{{#var:cur_meta}}| }}}}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
=
       {{#ifeq: {{#var:cur_meta}}|{{#var:pre_meta}} | {{#var:cur_meta}} | {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:{{#var:pre_meta}}|{{#if:{{#var:cur_meta}}| }}{{#var:pre_meta}}}} }}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
#default =
       Invalid parameter to Template:Metadata id 
   }}
   {{#vardefineecho:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
   {{#ifeq: |||Template:Metadata id must be used as {{Metadata id|}} (with an empty first parameter) for technical reasons}}

}}

VarInt ({{#if: {{#var:meta_prerelease}}
       {{#ifeq: {{#var:meta_type_VarInt}} | {{#var:meta_pre_type_VarInt}}
{{#var:meta_type_VarInt}} {{#var:meta_type_VarInt}}}}{{#if:{{#var:meta_pre_type_VarInt}}|{{#if:{{#var:meta_type_VarInt}}| }}{{#var:meta_pre_type_VarInt}}}}
           }}
       {{#var:meta_type_VarInt}}
   }})
Anger time 0

Armadillo

{{#if:Armadillo||Must specify the current entity ID for Template:Metadata inherit}} {{#vardefine:meta_current_entity|Armadillo}}

{{#if:{{#var:meta_prerelease}}|

   {{#if:Animal
       | {{#if:
           | Extends {{#if:[[{{#varexists:meta_Animal|Entity metadata}}#Animal|Animal]]|[[{{#varexists:meta_Animal|Entity metadata}}#Animal|Animal]]}}{{#if:[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]|{{#if:[[{{#varexists:meta_Animal|Entity metadata}}#Animal|Animal]]| }}[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]}}.
           | Extends [[{{#varexists:meta_Animal|Entity metadata}}#Animal|Animal]].
       }}{{#if:17
           | {{#vardefine:meta_Armadillo|17}}
           {{#if:{{#varexists:meta_Animal}}|start_at in use when inherited entity Animal exists}}
           | {{#vardefine:meta_Armadillo|{{#var:meta_Animal|0}}}}
           {{#if:{{#varexists:meta_Animal}}||Inherited entity Animal does not exist}}
       }}{{#if:17
           | {{#vardefine:meta_pre_Armadillo|17}}
           {{#if:{{#varexists:meta_Animal}}|start_at in use when inherited entity Animal exists}}
           | {{#vardefine:meta_pre_Armadillo|{{#var:meta_pre_Animal|0}}}}
           {{#if:{{#varexists:meta_Animal}}||Inherited entity Animal does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Armadillo|17}}
       {{#vardefine:meta_pre_Armadillo|17}}
   }}

|

   {{#if:Animal
       | Extends Animal.
       {{#if:17
           | {{#vardefine:meta_Armadillo|17}}
           {{#if:{{#varexists:meta_Animal}}|start_at in use when inherited entity Animal exists}}
           | {{#vardefine:meta_Armadillo|{{#var:meta_Animal|0}}}}
           {{#if:{{#varexists:meta_Animal}}||Inherited entity Animal does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Armadillo|17}}
   }}

}}

Index Type Meaning Default
   {{#vardefine:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:pre_meta|{{#var:meta_pre_{{#var:meta_current_entity}}}}}}
   {{#switch: added
added =
       {{#if:|}}{{#if:{{#var:pre_meta}}|{{#if:| }}{{#var:pre_meta}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
removed =
       {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:|{{#if:{{#var:cur_meta}}| }}}}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
=
       {{#ifeq: {{#var:cur_meta}}|{{#var:pre_meta}} | {{#var:cur_meta}} | {{#if:{{#var:cur_meta}}|{{#var:cur_meta}}}}{{#if:{{#var:pre_meta}}|{{#if:{{#var:cur_meta}}| }}{{#var:pre_meta}}}} }}
       {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
       {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
#default =
       Invalid parameter to Template:Metadata id added
   }}
   {{#vardefineecho:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
   {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
   {{#ifeq: added|||Template:Metadata id must be used as {{Metadata id|}} (with an empty first parameter) for technical reasons}}

}}

Armadillo State ({{#if: {{#var:meta_prerelease}}
       {{#ifeq: {{#var:meta_type_Armadillo State}} | {{#var:meta_pre_type_Armadillo State}}
{{#var:meta_type_Armadillo State}} {{#var:meta_type_Armadillo State}}}}{{#if:{{#var:meta_pre_type_Armadillo State}}|{{#if:{{#var:meta_type_Armadillo State}}| }}{{#var:meta_pre_type_Armadillo State}}}}
           }}
       {{#var:meta_type_Armadillo State}}
   }})
Armadillo State IDLE

Block Actions

No changes so far.

Inventories

No changes so far.

Plugin Channels

No changes so far.

Handshake

Serverbound

Handshake

This causes the server to switch into the target state.

Packet ID State Bound To Field Name Field Type Notes
0x00 Handshaking Server Protocol Version VarInt See protocol version numbers (currently 765 in Minecraft 1.20.4).
Server Address String (255) Hostname or IP, e.g. localhost or 127.0.0.1, that was used to connect. The Notchian server does not use this information. Note that SRV records are a simple redirect, e.g. if _minecraft._tcp.example.com points to mc.example.org, users connecting to example.com will provide example.org as server address in addition to connecting to it.
Server Port Unsigned Short Default is 25565. The Notchian server does not use this information.
Next State VarInt Enum 1 for Status, 2 for Login{{#if:|}}{{#if:, 3 for Transfer|{{#if:| }}, 3 for Transfer}}.

Status

Clientbound

No changes so far.

Serverbound

No changes so far.

Login

Clientbound

Encryption Request

Packet ID State Bound To Field Name Field Type Notes
0x01 Login Client Server ID {{#switch: Pre-release protocol Data types =
       String
#default =
       String
   }} (20)
Appears to be empty.
Public Key Length {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
Length of Public Key.
Public Key {{#switch: Pre-release protocol Data types =
       Byte Array
#default =
       Byte Array
   }}
The server's public key, in bytes.
Verify Token Length {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
Length of Verify Token. Always 4 for Notchian servers.
Verify Token {{#switch: Pre-release protocol Data types =
       Byte Array
#default =
       Byte Array
   }}
A sequence of random bytes generated by the server.
Should Authenticate {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}

Cookie Request (login)

Requests a cookie that was previously stored.

Packet ID State Bound To Field Name Field Type Notes
0x05 Login Client Key Identifier The identifier of the cookie.

Serverbound

Cookie Response (login)

Response to a Cookie Request (login) from the server. The Notchian server only accepts responses of up to 5 kiB in size.

Packet ID State Bound To Field Name Field Type Notes
0x04 Login Server Key Identifier The identifier of the cookie.
Has Payload Boolean The payload is only present if the cookie exists on the client.
Payload Length VarInt Length of the following byte array.
Payload Optional Byte Array (5120) The data of the cookie, if any.

Configuration

Clientbound

Cookie Request (configuration)

Requests a cookie that was previously stored.

Packet ID State Bound To Field Name Field Type Notes
0x00 Configuration Client Key Identifier The identifier of the cookie.

Reset Chat

Packet ID State Bound To Field Name Field Type Notes
0x06 Configuration Client no fields

Registry Data

Represents certain registries that are sent from the server and are applied on the client. {{#if:|}}{{#if:The packet is sent for each of the following registries: minecraft:worldgen/biome, minecraft:chat_type, minecraft:trim_pattern, minecraft:trim_material, minecraft:wolf_variant, minecraft:dimension_type, minecraft:damage_type, and minecraft:banner_pattern.|{{#if:| }}The packet is sent for each of the following registries: minecraft:worldgen/biome, minecraft:chat_type, minecraft:trim_pattern, minecraft:trim_material, minecraft:wolf_variant, minecraft:dimension_type, minecraft:damage_type, and minecraft:banner_pattern.}}

Packet ID State Bound To Field Name Field Type Notes
0x07 Configuration Client Registry Codec {{#switch: Pre-release protocol Data types =
       NBT
#default =
       NBT
   }} (Compound)
See Registry Data.
Registry ID Identifier
Entry Count VarInt Number of entries in the following array.
Entries Entry ID Array Identifier
Has Data Boolean Whether the entry has any data following.
Data NBT Tag Entry data. Only present if Has Data is true.

Store Cookie (configuration)

Stores some arbitrary data on the client, which persists between server transfers. The Notchian client only accepts cookies of up to 5 kiB in size.

Packet ID State Bound To Field Name Field Type Notes
0x0A Configuration Client Key Identifier The identifier of the cookie.
Payload ByteArray(5120) The data of the cookie.

Transfer (configuration)

Notifies the client that it should transfer to the given server. Cookies previously stored are preserved between server transfers.

Packet ID State Bound To Field Name Field Type Notes
0x0B Configuration Client Host String The hostname of IP of the server.
Port VarInt The port of the server.

Clientbound Known Packs

Packet ID State Bound To Field Name Field Type Notes
0x0E Configuration Client Known Pack Count VarInt The number of known packs in the following array.
Known Packs Namespace Array String
ID String
Version String

Serverbound

Cookie Response (configuration)

Response to a Cookie Request (configuration) from the server. The Notchian server only accepts responses of up to 5 kiB in size.

Packet ID State Bound To Field Name Field Type Notes
0x01 Configuration Server Key Identifier The identifier of the cookie.
Has Payload Boolean The payload is only present if the cookie exists on the client.
Payload Length VarInt Length of the following byte array.
Payload Optional Byte Array (5120) The data of the cookie, if any.

Serverbound Known Packs

ID 0x07, same structure as Clientbound Known Packs. If the client specifies a pack in this packet, the server should omit its contained data from Registry Data.

Play

Clientbound

Cookie Request (play)

Requests a cookie that was previously stored.

Packet ID State Bound To Field Name Field Type Notes
0x16 Play Client Key Identifier The identifier of the cookie.

Debug Sample

Packet ID State Bound To Field Name Field Type Notes
0x1B Play Client Sample Length VarInt The length of the following array.
Sample Long Array TODO: What is the structure of the data in this array?
Sample Type VarInt Enum The type of sample data. Currently always 0 (TICK_TIME).

Login (play)

Packet ID State Bound To Field Name Field Type Notes
0x2B Play Client Entity ID {{#switch: Pre-release protocol Data types =
       Int
#default =
       Int
   }}
The player's Entity ID (EID).
Is hardcore {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
Dimension Count {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
Size of the following array.
Dimension Names {{#switch: Pre-release protocol Data types =
       Array
#default =
       Array
   }} of {{#switch: Pre-release protocol
Data types =
       Identifier
#default =
       Identifier
   }}
Identifiers for all dimensions on the server.
Max Players {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
Was once used by the client to draw the player list, but now is ignored.
View Distance {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
Render distance (2-32).
Simulation Distance {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
The distance that the client will process specific things, such as entities.
Reduced Debug Info {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
If true, a Notchian client shows reduced information on the debug screen. For servers in development, this should almost always be false.
Enable respawn screen {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
Set to false when the doImmediateRespawn gamerule is true.
Do limited crafting {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
Whether players can only craft recipes they have already unlocked. Currently unused by the client.
Dimension Type Identifier}}{{#if:VarInt|{{#if:Identifier| }}VarInt}} The ID of the type of dimension in the minecraft:dimension_type registry, defined by the Registry Data packet.
Dimension Name {{#switch: Pre-release protocol Data types =
       Identifier
#default =
       Identifier
   }}
Name of the dimension being spawned into.
Hashed seed {{#switch: Pre-release protocol Data types =
       Long
#default =
       Long
   }}
First 8 bytes of the SHA-256 hash of the world's seed. Used client side for biome noise
Game mode {{#switch: Pre-release protocol Data types =
       Unsigned Byte
#default =
       Unsigned Byte
   }}
0: Survival, 1: Creative, 2: Adventure, 3: Spectator.
Previous Game mode {{#switch: Pre-release protocol Data types =
       Byte
#default =
       Byte
   }}
-1: Undefined (null), 0: Survival, 1: Creative, 2: Adventure, 3: Spectator. The previous game mode. Vanilla client uses this for the debug (F3 + N & F3 + F4) game mode switch. (More information needed)
Is Debug {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
True if the world is a debug mode world; debug mode worlds cannot be modified and have predefined blocks.
Is Flat {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
True if the world is a superflat world; flat worlds have different void fog and a horizon at y=0 instead of y=63.
Has death location {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
If true, then the next two fields are present.
Death dimension name {{#switch: Pre-release protocol Data types =
       Optional
#default =
       Optional
   }} {{#switch: Pre-release protocol
Data types =
       Identifier
#default =
       Identifier
   }}
Name of the dimension the player died in.
Death location {{#switch: Pre-release protocol Data types =
       Optional
#default =
       Optional
   }} {{#switch: Pre-release protocol
Data types =
       Position
#default =
       Position
   }}
The location that the player died at.
Portal cooldown {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
The number of ticks until the player can use the portal again.

Respawn

Packet ID State Bound To Field Name Field Type Notes
0x47 Play Client Dimension Type Identifier}}{{#if:VarInt|{{#if:Identifier| }}VarInt}} The ID of the type of dimension in the minecraft:dimension_type registry, defined by the Registry Data packet.
Dimension Name {{#switch: Pre-release protocol Data types =
       Identifier
#default =
       Identifier
   }}
Name of the dimension being spawned into.
Hashed seed {{#switch: Pre-release protocol Data types =
       Long
#default =
       Long
   }}
First 8 bytes of the SHA-256 hash of the world's seed. Used client side for biome noise
Game mode {{#switch: Pre-release protocol Data types =
       Unsigned Byte
#default =
       Unsigned Byte
   }}
0: Survival, 1: Creative, 2: Adventure, 3: Spectator.
Previous Game mode {{#switch: Pre-release protocol Data types =
       Byte
#default =
       Byte
   }}
-1: Undefined (null), 0: Survival, 1: Creative, 2: Adventure, 3: Spectator. The previous game mode. Vanilla client uses this for the debug (F3 + N & F3 + F4) game mode switch. (More information needed)
Is Debug {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
True if the world is a debug mode world; debug mode worlds cannot be modified and have predefined blocks.
Is Flat {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
True if the world is a superflat world; flat worlds have different void fog and a horizon at y=0 instead of y=63.
Has death location {{#switch: Pre-release protocol Data types =
       Boolean
#default =
       Boolean
   }}
If true, then the next two fields are present.
Death dimension Name {{#switch: Pre-release protocol Data types =
       Optional
#default =
       Optional
   }} {{#switch: Pre-release protocol
Data types =
       Identifier
#default =
       Identifier
   }}
Name of the dimension the player died in.
Death location {{#switch: Pre-release protocol Data types =
       Optional
#default =
       Optional
   }} {{#switch: Pre-release protocol
Data types =
       Position
#default =
       Position
   }}
The location that the player died at.
Portal cooldown {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
The number of ticks until the player can use the portal again.
Data kept {{#switch: Pre-release protocol Data types =
       Byte
#default =
       Byte
   }}
Bit mask. 0x01: Keep attributes, 0x02: Keep metadata. Tells which data should be kept on the client side once the player has respawned.

In the Notchian implementation, this is context dependent:

  • normal respawns (after death) keep no data;
  • exiting the end poem/credits keeps the attributes;
  • other dimension changes (portals or teleports) keep all data.

Store Cookie (play)

Stores some arbitrary data on the client, which persists between server transfers. The Notchian client only accepts cookies of up to 5 kiB in size.

Packet ID State Bound To Field Name Field Type Notes
0x6B Play Client Key Identifier The identifier of the cookie.
Payload Length VarInt Length of the following byte array.
Payload Byte Array (5120) The data of the cookie.

Transfer (play)

Notifies the client that it should transfer to the given server. Cookies previously stored are preserved between server transfers.

Packet ID State Bound To Field Name Field Type Notes
0x73 Play Client Host String The hostname of IP of the server.
Port VarInt The port of the server.

Update Attributes

Sets attributes on the given entity.

Packet ID State Bound To Field Name Field Type Notes
0x71 Play Client Entity ID VarInt
Number Of Properties VarInt Number of elements in the following array.
Property Key}}{{#if:Id|{{#if:Key| }}Id}} Array Identifier}}{{#if:VarInt Enum|{{#if:Identifier| }}VarInt Enum}} See below.
Value Double See below.
Number Of Modifiers VarInt Number of elements in the following array.
Modifiers Array of Modifier Data See Attribute#Modifiers. Modifier Data defined below.

Known Key values (see also Attribute#Modifiers):

These changed between 24w03b and 24w13a, TODO: Update this

Id Key Default Min Max Label
0 generic.armor 0.0 0.0 30.0 Armor.
1 generic.armor_toughness 0.0 0.0 20.0 Armor Toughness.
2 generic.attack_damage 2.0 0.0 2048.0 Attack Damage.
3 generic.attack_knockback 0.0 0.0 5.0 Attack Knockback.
4 generic.attack_speed 4.0 0.0 1024.0 Attack Speed.
5 generic.block_interaction_range 4.5 0.0 64.0 Block Interaction Range.
6 generic.entity_interaction_range 3.0 0.0 64.0 Entity Interaction Range.
7 generic.flying_speed 0.4 0.0 1024.0 Flying Speed.
8 generic.follow_range 32.0 0.0 2048.0 Follow Range.
9 horse.jump_strength 0.7 0.0 2.0 Jump Strength.
10 generic.knockback_resistance 0.0 0.0 1.0 Knockback Resistance.
11 generic.luck 0.0 -1024.0 1024.0 Luck.
12 generic.max_absorption 0.0 0.0 2048.0 Max Absorption.
13 generic.max_health 20.0 1.0 1024.0 Max Health.
14 generic.movement_speed 0.7 0.0 1024.0 Movement Speed.
15 generic.scale 1.0 0.0625 16.0 Scale.
16 zombie.spawn_reinforcements 0.0 0.0 1.0 Spawn Reinforcements Chance.
17 generic.step_height 0.6 0.0 10.0 Step Height.

Modifier Data structure:

Field Name Field Type Notes
UUID UUID
Amount Double May be positive or negative.
Operation Byte See below.

The operation controls how the base value of the modifier is changed.

  • 0: Add/subtract amount
  • 1: Add/subtract amount percent of the current value
  • 2: Multiply by amount percent

All of the 0's are applied first, and then the 1's, and then the 2's.

Entity Effect

Packet ID State Bound To Field Name Field Type Notes
0x72 Play Client Entity ID VarInt
Effect ID VarInt See this table.
Amplifier Byte Notchian client displays effect level as Amplifier + 1.
Duration VarInt Duration in ticks. (-1 for infinite)
Flags Byte Bit field, see below.
Has Factor Data Boolean Used in DARKNESS effect
Factor Codec NBT Tag See below
The following information needs to be added to this page:
What exact effect does the blend bit flag have on the client? What happens if it is used on effects besides DARKNESS?

Within flags:

  • 0x01: Is ambient - was the effect spawned from a beacon? All beacon-generated effects are ambient. Ambient effects use a different icon in the HUD (blue border rather than gray). If all effects on an entity are ambient, the "Is potion effect ambient" living metadata field should be set to true. Usually should not be enabled.
  • 0x02: Show particles - should all particles from this effect be hidden? Effects with particles hidden are not included in the calculation of the effect color, and are not rendered on the HUD (but are still rendered within the inventory). Usually should be enabled.
  • 0x04: Show icon - should the icon be displayed on the client? Usually should be enabled.
  • {{#if:|}}{{#if:0x08: Blend - should the effect's hard-coded blending be applied? Currently only used in the DARKNESS effect to apply extra void fog and adjust the gamma value for lighting.|{{#if:| }}0x08: Blend - should the effect's hard-coded blending be applied? Currently only used in the DARKNESS effect to apply extra void fog and adjust the gamma value for lighting.}}

{{#if:Factor Data|Factor Data}}{{#if:|{{#if:Factor Data| }}}}

Name Type Notes
padding_duration TAG_INT
factor_start TAG_FLOAT
factor_target TAG_FLOAT
factor_current TAG_FLOAT
effect_changed_timestamp TAG_INT
factor_previous_frame TAG_FLOAT
had_effect_last_tick TAG_BOOLEAN

Serverbound

Chat Command

Packet ID State Bound To Field Name Field Type Notes
0x04 Play Server Command {{#switch: Pre-release protocol Data types =
       String
#default =
       String
   }} (256)
The command typed by the client.
Timestamp {{#switch: Pre-release protocol Data types =
       Long
#default =
       Long
   }}
The timestamp that the command was executed.
Salt {{#switch: Pre-release protocol Data types =
       Long
#default =
       Long
   }}
The salt for the following argument signatures.
Array length {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
Number of entries in the following array. The maximum length in Notchian server is 8.
Array of argument signatures Argument name {{#switch: Pre-release protocol Data types =
       Array
#default =
       Array
   }} (8)
{{#switch: Pre-release protocol Data types =
       String
#default =
       String
   }} (16)
The name of the argument that is signed by the following signature.
Signature {{#switch: Pre-release protocol Data types =
       Byte Array
#default =
       Byte Array
   }} (256)
The signature that verifies the argument. Always 256 bytes and is not length-prefixed.
Message Count {{#switch: Pre-release protocol Data types =
       VarInt
#default =
       VarInt
   }}
Acknowledged {{#switch: Pre-release protocol Data types =
       Fixed BitSet
#default =
       Fixed BitSet
   }} (20)


Signed Chat Command

Packet ID State Bound To Field Name Field Type Notes
0x05 Play Server Command String(256) The command typed by the client.
Timestamp Long The timestamp that the command was executed. Milliseconds since the Unix epoch.
Salt Long The salt for the following argument signatures.
Argument Signature Count VarInt Number of elements in the following array. The maximum length in Notchian server is 8.
Argument Signatures Name Array String(16) The name of the argument that is signed by the following signature.
Signature ByteArray(256) The signature that verifies the argument. Always 256 bytes and is not length-prefixed.
Seen Messages Offset VarInt
Seen Messages Acknowledged Fixed BitSet(20)

Cookie Response (play)

Response to a Cookie Request (play) from the server. The Notchian server only accepts responses of up to 5 kiB in size.

Packet ID State Bound To Field Name Field Type Notes
0x11 Play Server Key Identifier The identifier of the cookie.
Has Payload Boolean The payload is only present if the cookie exists on the client.
Payload Length Optional VarInt Length of the following byte array.
Payload Optional Byte Array (5120) The data of the cookie, if any.

Debug Sample Subscription

Packet ID State Bound To Field Name Field Type Notes
0x13 Play Server Sample Type VarInt Enum The type of debug sample to subscribe to. Currently always 0 (TICK_TIME).