Pre-release protocol: Difference between revisions

From wiki.vg
Jump to navigation Jump to search
imported>Rmheuer
imported>Rmheuer
((Some of) 24w13a)
Line 1: Line 1:
This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently [[Protocol version numbers|1.20.4, protocol 765]]) to the current pre-release (currently [[Protocol version numbers|24w03b, protocol {{Snapshot PVN|1073741996}}]]). Note that this page contains bleeding-edge information that may not be completely or correctly documented.
This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently [[Protocol version numbers|1.20.4, protocol 765]]) to the current pre-release (currently [[Protocol version numbers|24w13b, protocol {{Snapshot PVN|1073742006}}]]). 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.
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.
Line 22: Line 22:
  |-
  |-
  !colspan="4"| Login clientbound
  !colspan="4"| Login clientbound
{{PacketList|0x01|Encryption Request}}
  {{PacketList|0x05|Cookie Request (login)|rel=added}}
  {{PacketList|0x05|Cookie Request (login)|rel=added}}
  |-
  |-
Line 34: Line 35:
  {{PacketList|{{change|0x03|0x04}}|Clientbound Keep Alive (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x03|0x04}}|Clientbound Keep Alive (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x04|0x05}}|Ping (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x04|0x05}}|Ping (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x05|0x06}}|Registry Data|pre=unchanged}}
{{PacketList|0x06|Reset Chat|rel=added}}
  {{PacketList|{{change|0x06|0x07}}|Remove Resource Pack (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x05|0x07}}|Registry Data}}
  {{PacketList|{{change|0x07|0x08}}|Add Resource Pack (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x06|0x08}}|Remove Resource Pack (configuration)|pre=unchanged}}
  {{PacketList|0x09|Store Cookie (configuration)|rel=added}}
  {{PacketList|{{change|0x07|0x09}}|Add Resource Pack (configuration)|pre=unchanged}}
  {{PacketList|0x0A|Transfer (configuration)|rel=added}}
  {{PacketList|0x0A|Store Cookie (configuration)|rel=added}}
  {{PacketList|{{change|0x08|0x0B}}|Feature Flags|pre=unchanged}}
  {{PacketList|0x0B|Transfer (configuration)|rel=added}}
  {{PacketList|{{change|0x09|0x0C}}|Update Tags (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x08|0x0C}}|Feature Flags|pre=unchanged}}
 
  {{PacketList|{{change|0x09|0x0D}}|Update Tags (configuration)|pre=unchanged}}
{{PacketList|0x0E|Clientbound Known Packs|rel=added}}
  |-
  |-
  !colspan="4"| Configuration serverbound
  !colspan="4"| Configuration serverbound
Line 50: Line 52:
  {{PacketList|{{change|0x04|0x05}}|Pong (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x04|0x05}}|Pong (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x05|0x06}}|Resource Pack Response (configuration)|pre=unchanged}}
  {{PacketList|{{change|0x05|0x06}}|Resource Pack Response (configuration)|pre=unchanged}}
{{PacketList|0x07|Serverbound Known Packs|rel=added}}
  |-
  |-
  !colspan="4"| Play clientbound
  !colspan="4"| Play clientbound
Line 57: Line 60:
  {{PacketList|{{change|0x18|0x19}}|Clientbound Plugin Message (play)|pre=unchanged}}
  {{PacketList|{{change|0x18|0x19}}|Clientbound Plugin Message (play)|pre=unchanged}}
  {{PacketList|{{change|0x19|0x1A}}|Damage Event|pre=unchanged}}
  {{PacketList|{{change|0x19|0x1A}}|Damage Event|pre=unchanged}}
  {{PacketList|{{change|0x1A|0x1B}}|Delete Message|pre=unchanged}}
{{PacketList|0x1B|Debug Sample|rel=added}}
  {{PacketList|{{change|0x1B|0x1C}}|Disconnect (play)|pre=unchanged}}
  {{PacketList|{{change|0x1A|0x1C}}|Delete Message|pre=unchanged}}
  {{PacketList|{{change|0x1C|0x1D}}|Disguised Chat Message|pre=unchanged}}
  {{PacketList|{{change|0x1B|0x1D}}|Disconnect (play)|pre=unchanged}}
  {{PacketList|{{change|0x1D|0x1E}}|Entity Event|pre=unchanged}}
  {{PacketList|{{change|0x1C|0x1E}}|Disguised Chat Message|pre=unchanged}}
  {{PacketList|{{change|0x1E|0x1F}}|Explosion|pre=unchanged}}
  {{PacketList|{{change|0x1D|0x1F}}|Entity Event|pre=unchanged}}
  {{PacketList|{{change|0x1F|0x20}}|Unload Chunk|pre=unchanged}}
  {{PacketList|{{change|0x1E|0x20}}|Explosion|pre=unchanged}}
  {{PacketList|{{change|0x20|0x21}}|Game Event|pre=unchanged}}
  {{PacketList|{{change|0x1F|0x21}}|Unload Chunk|pre=unchanged}}
  {{PacketList|{{change|0x21|0x22}}|Open Horse Screen|pre=unchanged}}
  {{PacketList|{{change|0x20|0x22}}|Game Event|pre=unchanged}}
  {{PacketList|{{change|0x22|0x23}}|Hurt Animation|pre=unchanged}}
  {{PacketList|{{change|0x21|0x23}}|Open Horse Screen|pre=unchanged}}
  {{PacketList|{{change|0x23|0x24}}|Initialize World Border|pre=unchanged}}
  {{PacketList|{{change|0x22|0x24}}|Hurt Animation|pre=unchanged}}
  {{PacketList|{{change|0x24|0x25}}|Clientbound Keep Alive (play)|pre=unchanged}}
  {{PacketList|{{change|0x23|0x25}}|Initialize World Border|pre=unchanged}}
  {{PacketList|{{change|0x25|0x26}}|Chunk Data and Update Light|pre=unchanged}}
  {{PacketList|{{change|0x24|0x26}}|Clientbound Keep Alive (play)|pre=unchanged}}
  {{PacketList|{{change|0x26|0x27}}|World Event|pre=unchanged}}
  {{PacketList|{{change|0x25|0x27}}|Chunk Data and Update Light|pre=unchanged}}
  {{PacketList|{{change|0x27|0x28}}|Particle|pre=unchanged}}
  {{PacketList|{{change|0x26|0x28}}|World Event|pre=unchanged}}
  {{PacketList|{{change|0x28|0x29}}|Update Light|pre=unchanged}}
  {{PacketList|{{change|0x27|0x29}}|Particle|pre=unchanged}}
  {{PacketList|{{change|0x29|0x2A}}|Login (play)|pre=unchanged}}
  {{PacketList|{{change|0x28|0x2A}}|Update Light|pre=unchanged}}
  {{PacketList|{{change|0x2A|0x2B}}|Map Data|pre=unchanged}}
  {{PacketList|{{change|0x29|0x2B}}|Login (play)|pre=unchanged}}
  {{PacketList|{{change|0x2B|0x2C}}|Merchant Offers|pre=unchanged}}
  {{PacketList|{{change|0x2A|0x2C}}|Map Data|pre=unchanged}}
  {{PacketList|{{change|0x2C|0x2D}}|Update Entity Position|pre=unchanged}}
  {{PacketList|{{change|0x2B|0x2D}}|Merchant Offers|pre=unchanged}}
  {{PacketList|{{change|0x2D|0x2E}}|Update Entity Position and Rotation|pre=unchanged}}
  {{PacketList|{{change|0x2C|0x2E}}|Update Entity Position|pre=unchanged}}
  {{PacketList|{{change|0x2E|0x2F}}|Update Entity Rotation|pre=unchanged}}
  {{PacketList|{{change|0x2D|0x2F}}|Update Entity Position and Rotation|pre=unchanged}}
  {{PacketList|{{change|0x2F|0x30}}|Move Vehicle|pre=unchanged}}
  {{PacketList|{{change|0x2E|0x30}}|Update Entity Rotation|pre=unchanged}}
  {{PacketList|{{change|0x30|0x31}}|Open Book|pre=unchanged}}
  {{PacketList|{{change|0x2F|0x31}}|Move Vehicle|pre=unchanged}}
  {{PacketList|{{change|0x31|0x32}}|Open Screen|pre=unchanged}}
  {{PacketList|{{change|0x30|0x32}}|Open Book|pre=unchanged}}
  {{PacketList|{{change|0x32|0x33}}|Open Sign Editor|pre=unchanged}}
  {{PacketList|{{change|0x31|0x33}}|Open Screen|pre=unchanged}}
  {{PacketList|{{change|0x33|0x34}}|Ping (play)|pre=unchanged}}
  {{PacketList|{{change|0x32|0x34}}|Open Sign Editor|pre=unchanged}}
  {{PacketList|{{change|0x34|0x35}}|Ping Response (play)|pre=unchanged}}
  {{PacketList|{{change|0x33|0x35}}|Ping (play)|pre=unchanged}}
  {{PacketList|{{change|0x35|0x36}}|Place Ghost Recipe|pre=unchanged}}
  {{PacketList|{{change|0x34|0x36}}|Ping Response (play)|pre=unchanged}}
  {{PacketList|{{change|0x36|0x37}}|Player Abilities|pre=unchanged}}
  {{PacketList|{{change|0x35|0x37}}|Place Ghost Recipe|pre=unchanged}}
  {{PacketList|{{change|0x37|0x38}}|Player Chat Message|pre=unchanged}}
  {{PacketList|{{change|0x36|0x38}}|Player Abilities|pre=unchanged}}
  {{PacketList|{{change|0x38|0x39}}|End Combat|pre=unchanged}}
  {{PacketList|{{change|0x37|0x39}}|Player Chat Message|pre=unchanged}}
  {{PacketList|{{change|0x39|0x3A}}|Enter Combat|pre=unchanged}}
  {{PacketList|{{change|0x38|0x3A}}|End Combat|pre=unchanged}}
  {{PacketList|{{change|0x3A|0x3B}}|Combat Death|pre=unchanged}}
  {{PacketList|{{change|0x39|0x3B}}|Enter Combat|pre=unchanged}}
  {{PacketList|{{change|0x3B|0x3C}}|Player Info Remove|pre=unchanged}}
  {{PacketList|{{change|0x3A|0x3C}}|Combat Death|pre=unchanged}}
  {{PacketList|{{change|0x3C|0x3D}}|Player Info Update|pre=unchanged}}
  {{PacketList|{{change|0x3B|0x3D}}|Player Info Remove|pre=unchanged}}
  {{PacketList|{{change|0x3D|0x3E}}|Look At|pre=unchanged}}
  {{PacketList|{{change|0x3C|0x3E}}|Player Info Update|pre=unchanged}}
  {{PacketList|{{change|0x3E|0x3F}}|Synchronize Player Position|pre=unchanged}}
  {{PacketList|{{change|0x3D|0x3F}}|Look At|pre=unchanged}}
  {{PacketList|{{change|0x3F|0x40}}|Update Recipe Book|pre=unchanged}}
  {{PacketList|{{change|0x3E|0x40}}|Synchronize Player Position|pre=unchanged}}
  {{PacketList|{{change|0x40|0x41}}|Remove Entities|pre=unchanged}}
  {{PacketList|{{change|0x3F|0x41}}|Update Recipe Book|pre=unchanged}}
  {{PacketList|{{change|0x41|0x42}}|Remove Entity Effect|pre=unchanged}}
  {{PacketList|{{change|0x40|0x42}}|Remove Entities|pre=unchanged}}
  {{PacketList|{{change|0x42|0x43}}|Reset Score|pre=unchanged}}
  {{PacketList|{{change|0x41|0x43}}|Remove Entity Effect|pre=unchanged}}
  {{PacketList|{{change|0x43|0x44}}|Remove Resource Pack (play)|pre=unchanged}}
  {{PacketList|{{change|0x42|0x44}}|Reset Score|pre=unchanged}}
  {{PacketList|{{change|0x44|0x45}}|Add Resource Pack (play)|pre=unchanged}}
  {{PacketList|{{change|0x43|0x45}}|Remove Resource Pack (play)|pre=unchanged}}
  {{PacketList|{{change|0x45|0x46}}|Respawn|pre=unchanged}}
  {{PacketList|{{change|0x44|0x46}}|Add Resource Pack (play)|pre=unchanged}}
  {{PacketList|{{change|0x46|0x47}}|Set Head Rotation|pre=unchanged}}
  {{PacketList|{{change|0x45|0x47}}|Respawn|pre=unchanged}}
  {{PacketList|{{change|0x47|0x48}}|Update Section Blocks|pre=unchanged}}
  {{PacketList|{{change|0x46|0x48}}|Set Head Rotation|pre=unchanged}}
  {{PacketList|{{change|0x48|0x49}}|Select Advancements Tab|pre=unchanged}}
  {{PacketList|{{change|0x47|0x49}}|Update Section Blocks|pre=unchanged}}
  {{PacketList|{{change|0x49|0x4A}}|Server Data|pre=unchanged}}
  {{PacketList|{{change|0x48|0x4A}}|Select Advancements Tab|pre=unchanged}}
  {{PacketList|{{change|0x4A|0x4B}}|Set Action Bar Text|pre=unchanged}}
  {{PacketList|{{change|0x49|0x4B}}|Server Data|pre=unchanged}}
  {{PacketList|{{change|0x4B|0x4C}}|Set Border Center|pre=unchanged}}
  {{PacketList|{{change|0x4A|0x4C}}|Set Action Bar Text|pre=unchanged}}
  {{PacketList|{{change|0x4C|0x4D}}|Set Border Lerp Size|pre=unchanged}}
  {{PacketList|{{change|0x4B|0x4D}}|Set Border Center|pre=unchanged}}
  {{PacketList|{{change|0x4D|0x4E}}|Set Border Size|pre=unchanged}}
  {{PacketList|{{change|0x4C|0x4E}}|Set Border Lerp Size|pre=unchanged}}
  {{PacketList|{{change|0x4E|0x4F}}|Set Border Warning Delay|pre=unchanged}}
  {{PacketList|{{change|0x4D|0x4F}}|Set Border Size|pre=unchanged}}
  {{PacketList|{{change|0x4F|0x50}}|Set Border Warning Distance|pre=unchanged}}
  {{PacketList|{{change|0x4E|0x50}}|Set Border Warning Delay|pre=unchanged}}
  {{PacketList|{{change|0x50|0x51}}|Set Camera|pre=unchanged}}
  {{PacketList|{{change|0x4F|0x51}}|Set Border Warning Distance|pre=unchanged}}
  {{PacketList|{{change|0x51|0x52}}|Set Held Item|pre=unchanged}}
  {{PacketList|{{change|0x50|0x52}}|Set Camera|pre=unchanged}}
  {{PacketList|{{change|0x52|0x53}}|Set Center Chunk|pre=unchanged}}
  {{PacketList|{{change|0x51|0x53}}|Set Held Item|pre=unchanged}}
  {{PacketList|{{change|0x53|0x54}}|Set Render Distance|pre=unchanged}}
  {{PacketList|{{change|0x52|0x54}}|Set Center Chunk|pre=unchanged}}
  {{PacketList|{{change|0x54|0x55}}|Set Default Spawn Position|pre=unchanged}}
  {{PacketList|{{change|0x53|0x55}}|Set Render Distance|pre=unchanged}}
  {{PacketList|{{change|0x55|0x56}}|Display Objective|pre=unchanged}}
  {{PacketList|{{change|0x54|0x56}}|Set Default Spawn Position|pre=unchanged}}
  {{PacketList|{{change|0x56|0x57}}|Set Entity Metadata|pre=unchanged}}
  {{PacketList|{{change|0x55|0x57}}|Display Objective|pre=unchanged}}
  {{PacketList|{{change|0x57|0x58}}|Link Entities|pre=unchanged}}
  {{PacketList|{{change|0x56|0x58}}|Set Entity Metadata|pre=unchanged}}
  {{PacketList|{{change|0x58|0x59}}|Set Entity Velocity|pre=unchanged}}
  {{PacketList|{{change|0x57|0x59}}|Link Entities|pre=unchanged}}
  {{PacketList|{{change|0x59|0x5A}}|Set Equipment|pre=unchanged}}
  {{PacketList|{{change|0x58|0x5A}}|Set Entity Velocity|pre=unchanged}}
  {{PacketList|{{change|0x5A|0x5B}}|Set Experience|pre=unchanged}}
  {{PacketList|{{change|0x59|0x5B}}|Set Equipment|pre=unchanged}}
  {{PacketList|{{change|0x5B|0x5C}}|Set Health|pre=unchanged}}
  {{PacketList|{{change|0x5A|0x5C}}|Set Experience|pre=unchanged}}
  {{PacketList|{{change|0x5C|0x5D}}|Update Objectives|pre=unchanged}}
  {{PacketList|{{change|0x5B|0x5D}}|Set Health|pre=unchanged}}
  {{PacketList|{{change|0x5D|0x5E}}|Set Passengers|pre=unchanged}}
  {{PacketList|{{change|0x5C|0x5E}}|Update Objectives|pre=unchanged}}
  {{PacketList|{{change|0x5E|0x5F}}|Update Teams|pre=unchanged}}
  {{PacketList|{{change|0x5D|0x5F}}|Set Passengers|pre=unchanged}}
  {{PacketList|{{change|0x5F|0x60}}|Update Score|pre=unchanged}}
  {{PacketList|{{change|0x5E|0x60}}|Update Teams|pre=unchanged}}
  {{PacketList|{{change|0x60|0x61}}|Set Simulation Distance|pre=unchanged}}
  {{PacketList|{{change|0x5F|0x61}}|Update Score|pre=unchanged}}
  {{PacketList|{{change|0x61|0x62}}|Set Subtitle Text|pre=unchanged}}
  {{PacketList|{{change|0x60|0x62}}|Set Simulation Distance|pre=unchanged}}
  {{PacketList|{{change|0x62|0x63}}|Update Time|pre=unchanged}}
  {{PacketList|{{change|0x61|0x63}}|Set Subtitle Text|pre=unchanged}}
  {{PacketList|{{change|0x63|0x64}}|Set Title Text|pre=unchanged}}
  {{PacketList|{{change|0x62|0x64}}|Update Time|pre=unchanged}}
  {{PacketList|{{change|0x64|0x65}}|Set Title Animation Times|pre=unchanged}}
  {{PacketList|{{change|0x63|0x65}}|Set Title Text|pre=unchanged}}
  {{PacketList|{{change|0x65|0x66}}|Entity Sound Effect|pre=unchanged}}
  {{PacketList|{{change|0x64|0x66}}|Set Title Animation Times|pre=unchanged}}
  {{PacketList|{{change|0x66|0x67}}|Sound Effect|pre=unchanged}}
  {{PacketList|{{change|0x65|0x67}}|Entity Sound Effect|pre=unchanged}}
  {{PacketList|{{change|0x67|0x68}}|Start Configuration|pre=unchanged}}
  {{PacketList|{{change|0x66|0x68}}|Sound Effect|pre=unchanged}}
  {{PacketList|{{change|0x68|0x69}}|Stop Sound|pre=unchanged}}
  {{PacketList|{{change|0x67|0x69}}|Start Configuration|pre=unchanged}}
  {{PacketList|0x6A|Store Cookie (Play)|rel=added}}
  {{PacketList|{{change|0x68|0x6A}}|Stop Sound|pre=unchanged}}
  {{PacketList|{{change|0x69|0x6B}}|System Chat Message|pre=unchanged}}
  {{PacketList|0x6B|Store Cookie (Play)|rel=added}}
  {{PacketList|{{change|0x6A|0x6C}}|Set Tab List Header And Footer|pre=unchanged}}
  {{PacketList|{{change|0x69|0x6C}}|System Chat Message|pre=unchanged}}
  {{PacketList|{{change|0x6B|0x6D}}|Tag Query Response|pre=unchanged}}
  {{PacketList|{{change|0x6A|0x6D}}|Set Tab List Header And Footer|pre=unchanged}}
  {{PacketList|{{change|0x6C|0x6E}}|Pickup Item|pre=unchanged}}
  {{PacketList|{{change|0x6B|0x6E}}|Tag Query Response|pre=unchanged}}
  {{PacketList|{{change|0x6D|0x6F}}|Teleport Entity|pre=unchanged}}
  {{PacketList|{{change|0x6C|0x6F}}|Pickup Item|pre=unchanged}}
  {{PacketList|{{change|0x6E|0x70}}|Set Ticking State|pre=unchanged}}
  {{PacketList|{{change|0x6D|0x70}}|Teleport Entity|pre=unchanged}}
  {{PacketList|{{change|0x6F|0x71}}|Step Tick|pre=unchanged}}
  {{PacketList|{{change|0x6E|0x71}}|Set Ticking State|pre=unchanged}}
  {{PacketList|0x72|Transfer (Play)|rel=added}}
  {{PacketList|{{change|0x6F|0x72}}|Step Tick|pre=unchanged}}
  {{PacketList|{{change|0x70|0x73}}|Update Advancements|pre=unchanged}}
  {{PacketList|0x73|Transfer (Play)|rel=added}}
  {{PacketList|{{change|0x71|0x74}}|Update Attributes}}
  {{PacketList|{{change|0x70|0x74}}|Update Advancements|pre=unchanged}}
  {{PacketList|{{change|0x72|0x75}}|Entity Effect}}
  {{PacketList|{{change|0x71|0x75}}|Update Attributes}}
  {{PacketList|{{change|0x73|0x76}}|Update Recipes|pre=unchanged}}
  {{PacketList|{{change|0x72|0x76}}|Entity Effect}}
  {{PacketList|{{change|0x74|0x77}}|Update Tags (play)|pre=unchanged}}
  {{PacketList|{{change|0x73|0x77}}|Update Recipes|pre=unchanged}}
  {{PacketList|{{change|0x74|0x78}}|Update Tags (play)|pre=unchanged}}
  |-
  |-
  !colspan="4"| Play serverbound
  !colspan="4"| Play serverbound
  {{PacketList|0x10|Cookie Response (play)|rel=added}}
  {{PacketList|0x05|Signed Chat Command|rel=added}}
  {{PacketList|{{change|0x10|0x11}}|Serverbound Plugin Message (play)|pre=unchanged}}
{{PacketList|{{change|0x05|0x06}}|Chat Message|pre=unchanged}}
  {{PacketList|{{change|0x11|0x12}}|Edit Book|pre=unchanged}}
{{PacketList|{{change|0x06|0x07}}|Player Session|pre=unchanged}}
  {{PacketList|{{change|0x12|0x13}}|Query Entity Tag|pre=unchanged}}
{{PacketList|{{change|0x07|0x08}}|Chunk Batch Received|pre=unchanged}}
  {{PacketList|{{change|0x13|0x14}}|Interact|pre=unchanged}}
{{PacketList|{{change|0x08|0x09}}|Client Status|pre=unchanged}}
  {{PacketList|{{change|0x14|0x15}}|Jigsaw Generate|pre=unchanged}}
{{PacketList|{{change|0x09|0x0A}}|Client Information (play)|pre=unchanged}}
  {{PacketList|{{change|0x15|0x16}}|Serverbound Keep Alive (play)|pre=unchanged}}
{{PacketList|{{change|0x0A|0x0B}}|Command Suggestions Request|pre=unchanged}}
  {{PacketList|{{change|0x16|0x17}}|Lock Difficulty|pre=unchanged}}
{{PacketList|{{change|0x0B|0x0C}}|Acknowledge Configuration|pre=unchanged}}
  {{PacketList|{{change|0x17|0x18}}|Set Player Position|pre=unchanged}}
{{PacketList|{{change|0x0C|0x0D}}|Click Container Button|pre=unchanged}}
  {{PacketList|{{change|0x18|0x19}}|Set Player Position and Rotation|pre=unchanged}}
{{PacketList|{{change|0x0D|0x0E}}|Click Container|pre=unchanged}}
  {{PacketList|{{change|0x19|0x1A}}|Set Player Rotation|pre=unchanged}}
{{PacketList|{{change|0x0E|0x0F}}|Close Container|pre=unchanged}}
  {{PacketList|{{change|0x1A|0x1B}}|Set Player On Ground|pre=unchanged}}
{{PacketList|{{change|0x0F|0x10}}|Change Container Slot State|pre=unchanged}}
  {{PacketList|{{change|0x1B|0x1C}}|Move Vehicle|pre=unchanged}}
{{PacketList|0x11|Cookie Response (play)|rel=added}}
  {{PacketList|{{change|0x1C|0x1D}}|Paddle Boat|pre=unchanged}}
  {{PacketList|{{change|0x10|0x12}}|Serverbound Plugin Message (play)|pre=unchanged}}
  {{PacketList|{{change|0x1D|0x1E}}|Pick Item|pre=unchanged}}
{{PacketList|0x13|Debug Sample Subscription|rel=added}}
  {{PacketList|{{change|0x1E|0x1F}}|Ping Request (play)|pre=unchanged}}
  {{PacketList|{{change|0x11|0x14}}|Edit Book|pre=unchanged}}
  {{PacketList|{{change|0x1F|0x20}}|Place Recipe|pre=unchanged}}
  {{PacketList|{{change|0x12|0x15}}|Query Entity Tag|pre=unchanged}}
  {{PacketList|{{change|0x20|0x21}}|Player Abilities|pre=unchanged}}
  {{PacketList|{{change|0x13|0x16}}|Interact|pre=unchanged}}
  {{PacketList|{{change|0x21|0x22}}|Player Action|pre=unchanged}}
  {{PacketList|{{change|0x14|0x17}}|Jigsaw Generate|pre=unchanged}}
  {{PacketList|{{change|0x22|0x23}}|Player Command|pre=unchanged}}
  {{PacketList|{{change|0x15|0x18}}|Serverbound Keep Alive (play)|pre=unchanged}}
  {{PacketList|{{change|0x23|0x24}}|Player Input|pre=unchanged}}
  {{PacketList|{{change|0x16|0x19}}|Lock Difficulty|pre=unchanged}}
  {{PacketList|{{change|0x24|0x25}}|Pong (play)|pre=unchanged}}
  {{PacketList|{{change|0x17|0x1A}}|Set Player Position|pre=unchanged}}
  {{PacketList|{{change|0x25|0x26}}|Change Recipe Book Settings|pre=unchanged}}
  {{PacketList|{{change|0x18|0x1B}}|Set Player Position and Rotation|pre=unchanged}}
  {{PacketList|{{change|0x26|0x27}}|Set Seen Recipe|pre=unchanged}}
  {{PacketList|{{change|0x19|0x1C}}|Set Player Rotation|pre=unchanged}}
  {{PacketList|{{change|0x27|0x28}}|Rename Item|pre=unchanged}}
  {{PacketList|{{change|0x1A|0x1D}}|Set Player On Ground|pre=unchanged}}
  {{PacketList|{{change|0x28|0x29}}|Resource Pack Response (play)|pre=unchanged}}
  {{PacketList|{{change|0x1B|0x1E}}|Move Vehicle|pre=unchanged}}
  {{PacketList|{{change|0x29|0x2A}}|Seen Advancements|pre=unchanged}}
  {{PacketList|{{change|0x1C|0x1F}}|Paddle Boat|pre=unchanged}}
  {{PacketList|{{change|0x2A|0x2B}}|Select Trade|pre=unchanged}}
  {{PacketList|{{change|0x1D|0x20}}|Pick Item|pre=unchanged}}
  {{PacketList|{{change|0x2B|0x2C}}|Set Beacon Effect|pre=unchanged}}
  {{PacketList|{{change|0x1E|0x21}}|Ping Request (play)|pre=unchanged}}
  {{PacketList|{{change|0x2C|0x2D}}|Set Held Item|pre=unchanged}}
  {{PacketList|{{change|0x1F|0x22}}|Place Recipe|pre=unchanged}}
  {{PacketList|{{change|0x2D|0x2E}}|Program Command Block|pre=unchanged}}
  {{PacketList|{{change|0x20|0x23}}|Player Abilities|pre=unchanged}}
  {{PacketList|{{change|0x2E|0x2F}}|Program Command Block Minecart|pre=unchanged}}
  {{PacketList|{{change|0x21|0x24}}|Player Action|pre=unchanged}}
  {{PacketList|{{change|0x2F|0x30}}|Set Creative Mode Slot|pre=unchanged}}
  {{PacketList|{{change|0x22|0x25}}|Player Command|pre=unchanged}}
  {{PacketList|{{change|0x30|0x31}}|Program Jigsaw Block|pre=unchanged}}
  {{PacketList|{{change|0x23|0x26}}|Player Input|pre=unchanged}}
  {{PacketList|{{change|0x31|0x32}}|Program Structure Block|pre=unchanged}}
  {{PacketList|{{change|0x24|0x27}}|Pong (play)|pre=unchanged}}
  {{PacketList|{{change|0x32|0x33}}|Update Sign|pre=unchanged}}
  {{PacketList|{{change|0x25|0x28}}|Change Recipe Book Settings|pre=unchanged}}
  {{PacketList|{{change|0x33|0x34}}|Swing Arm|pre=unchanged}}
  {{PacketList|{{change|0x26|0x29}}|Set Seen Recipe|pre=unchanged}}
  {{PacketList|{{change|0x34|0x35}}|Teleport To Entity|pre=unchanged}}
  {{PacketList|{{change|0x27|0x2A}}|Rename Item|pre=unchanged}}
  {{PacketList|{{change|0x35|0x36}}|Use Item On|pre=unchanged}}
  {{PacketList|{{change|0x28|0x2B}}|Resource Pack Response (play)|pre=unchanged}}
  {{PacketList|{{change|0x36|0x37}}|Use Item|pre=unchanged}}
  {{PacketList|{{change|0x29|0x2C}}|Seen Advancements|pre=unchanged}}
  {{PacketList|{{change|0x2A|0x2D}}|Select Trade|pre=unchanged}}
  {{PacketList|{{change|0x2B|0x2E}}|Set Beacon Effect|pre=unchanged}}
  {{PacketList|{{change|0x2C|0x2F}}|Set Held Item|pre=unchanged}}
  {{PacketList|{{change|0x2D|0x30}}|Program Command Block|pre=unchanged}}
  {{PacketList|{{change|0x2E|0x31}}|Program Command Block Minecart|pre=unchanged}}
  {{PacketList|{{change|0x2F|0x32}}|Set Creative Mode Slot|pre=unchanged}}
  {{PacketList|{{change|0x30|0x33}}|Program Jigsaw Block|pre=unchanged}}
  {{PacketList|{{change|0x31|0x34}}|Program Structure Block|pre=unchanged}}
  {{PacketList|{{change|0x32|0x35}}|Update Sign|pre=unchanged}}
  {{PacketList|{{change|0x33|0x36}}|Swing Arm|pre=unchanged}}
  {{PacketList|{{change|0x34|0x37}}|Teleport To Entity|pre=unchanged}}
  {{PacketList|{{change|0x35|0x38}}|Use Item On|pre=unchanged}}
  {{PacketList|{{change|0x36|0x39}}|Use Item|pre=unchanged}}
  |}
  |}


Line 259: Line 276:
  | ({{Type|VarInt}}, Varies)
  | ({{Type|VarInt}}, Varies)
  | particle type (an ID in the <code>minecraft:particle_type</code> registry), particle data (See [[Particles]].)
  | particle type (an ID in the <code>minecraft:particle_type</code> registry), particle data (See [[Particles]].)
{{Metadata type definition|Particles|rel=added}}
| ({{Type|VarInt}}, Array of Particle)
| length of array, particle data (See directly above.)
{{Metadata type definition|Villager Data}}
{{Metadata type definition|Villager Data}}
  | ({{Type|VarInt}}, {{Type|VarInt}}, {{Type|VarInt}})
  | ({{Type|VarInt}}, {{Type|VarInt}}, {{Type|VarInt}})
Line 271: Line 291:
  | {{Type|VarInt}}
  | {{Type|VarInt}}
  | An ID in the <code>minecraft:cat_variant</code> registry.
  | An ID in the <code>minecraft:cat_variant</code> registry.
{{Metadata type definition|Wolf Variant|rel=added}}
| {{Type|VarInt}}
| An ID in the <code>minecraft:wolf_variant</code> registry.
{{Metadata type definition|Frog Variant}}
{{Metadata type definition|Frog Variant}}
  | {{Type|VarInt}}
  | {{Type|VarInt}}
Line 292: Line 315:
  | ({{Type|Float}}, {{Type|Float}}, {{Type|Float}}, {{Type|Float}})
  | ({{Type|Float}}, {{Type|Float}}, {{Type|Float}}, {{Type|Float}})
  | x, y, z, w
  | x, y, z, w
|}
=== Living Entity ===
TODO: This has changed to use the PARTICLES attribute
=== Wolf ===
{{Metadata inherit|Wolf|inherits=Tameable Animal}}
{| class="wikitable"
! Index
! Type
!style="width: 250px;" colspan="2"| Meaning
! Default
|- {{added}}
| {{Metadata id|}}
| {{Metadata type|Wolf Variant}}
|colspan="2"| Wolf Variant
| PALE
|-
| {{Metadata id|}}
| {{Metadata type|Boolean}}
|colspan="2"| Is begging
| false
|-
| {{Metadata id|}}
| {{Metadata type|VarInt}}
|colspan="2"| Collar color (values are those {{Minecraft Wiki|Data_values#Dyes|used with dyes}})
| 14 (Red)
|-
| {{Metadata id|}}
| {{Metadata type|VarInt}}
|colspan="2"| Anger time
| 0
  |}
  |}


Line 370: Line 428:


=== Clientbound ===
=== Clientbound ===
==== Encryption Request ====
{| class="wikitable"
! Packet ID
! State
! Bound To
! Field Name
! Field Type
! Notes
|-
| rowspan="6"| 0x01
| rowspan="6"| Login
| rowspan="6"| Client
| Server ID
| {{Type|String}} (20)
| Appears to be empty.
|-
| Public Key Length
| {{Type|VarInt}}
| Length of Public Key.
|-
| Public Key
| {{Type|Byte Array}}
| The server's public key, in bytes.
|-
| Verify Token Length
| {{Type|VarInt}}
| Length of Verify Token. Always 4 for Notchian servers.
|-
| Verify Token
| {{Type|Byte Array}}
| A sequence of random bytes generated by the server.
|- {{added}}
| Should Authenticate
| {{Type|Boolean}}
|
|}


==== Cookie Request (login) ====
==== Cookie Request (login) ====
Line 448: Line 544:
  | The identifier of the cookie.
  | The identifier of the cookie.
  |}
  |}
==== Reset Chat ====
{| class="wikitable" {{added}}
! Packet ID
! State
! Bound To
! Field Name
! Field Type
! Notes
|-
| 0x06
| Configuration
| Client
| colspan="3"| ''no fields''
|}
==== Registry Data ====
TODO: The structure appears to have changed, need to look deeper to find exactly what changed


==== Store Cookie (configuration) ====
==== Store Cookie (configuration) ====
Line 461: Line 577:
  ! Notes
  ! Notes
  |-
  |-
  | rowspan="2"| 0x09
  | rowspan="2"| 0x0A
  | rowspan="2"| Configuration
  | rowspan="2"| Configuration
  | rowspan="2"| Client
  | rowspan="2"| Client
Line 485: Line 601:
  ! Notes
  ! Notes
  |-
  |-
  | rowspan="2"| 0x0A
  | rowspan="2"| 0x0B
  | rowspan="2"| Configuration
  | rowspan="2"| Configuration
  | rowspan="2"| Client
  | rowspan="2"| Client
Line 495: Line 611:
  | colspan="2"| VarInt
  | colspan="2"| VarInt
  | The port of the server.
  | The port of the server.
|}
==== Clientbound Known Packs ====
{| class="wikitable" {{added}}
! Packet ID
! State
! Bound To
! colspan="2"| Field Name
! colspan="2"| Field Type
! Notes
|-
| rowspan="4"| 0x0E
| rowspan="4"| Configuration
| rowspan="4"| Client
| colspan="2"| Known Pack Count
| colspan="2"| VarInt
| The number of known packs in the following array.
|-
| rowspan="3"| Known Packs
| Namespace
| rowspan="3"| Array
| String
|
|-
| ID
| String
|
|-
| Version
| String
|
  |}
  |}


Line 530: Line 677:
  | The data of the cookie, if any.
  | 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 ==
== Play ==
Line 553: Line 704:
  | colspan="2"| Identifier
  | colspan="2"| Identifier
  | The identifier of the cookie.
  | The identifier of the cookie.
|}
==== Debug Sample ====
{| class="wikitable" {{added}}
! Packet ID
! State
! Bound To
! Field Name
! Field Type
! Notes
|-
| rowspan="3"| 0x1B
| rowspan="3"| Play
| rowspan="3"| 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).
  |}
  |}


Line 567: Line 744:
  ! Notes
  ! Notes
  |-
  |-
  | rowspan="3"| 0x6A
  | rowspan="3"| 0x6B
  | rowspan="3"| Play
  | rowspan="3"| Play
  | rowspan="3"| Client
  | rowspan="3"| Client
Line 595: Line 772:
  ! Notes
  ! Notes
  |-
  |-
  | rowspan="2"| 0x72
  | rowspan="2"| 0x73
  | rowspan="2"| Play
  | rowspan="2"| Play
  | rowspan="2"| Client
  | rowspan="2"| Client
Line 650: Line 827:


Known Key values (see also {{Minecraft Wiki|Attribute#Modifiers}}):
Known Key values (see also {{Minecraft Wiki|Attribute#Modifiers}}):
These changed between 24w03b and 24w13a, TODO: Update this


{| class="wikitable"
{| class="wikitable"
Line 900: Line 1,079:


=== Serverbound ===
=== Serverbound ===
==== Signed Chat Command ====
{| class="wikitable" {{added}}
! Packet ID
! State
! Bound To
! colspan="2"| Field Name
! colspan="2"| Field Type
! Notes
|-
| rowspan="8"| 0x05
| rowspan="8"| Play
| rowspan="8"| Server
| colspan="2"| Command
| colspan="2"| String(256)
|
|-
| colspan="2"| Timestamp
| colspan="2"| Long
| Milliseconds since the Unix epoch.
|-
| colspan="2"| Salt
| colspan="2"| Long
|
|-
| colspan="2"| Argument Signature Count
| colspan="2"| VarInt
| Number of elements in the following array.
|-
| rowspan="2"| Argument Signatures
| Name
| rowspan="2"| Array
| String(16)
|
|-
| Signature
| ByteArray(256)
| Always 256 bytes.
|-
| colspan="2"| Seen Messages Offset
| colspan="2"| VarInt
|
|-
| colspan="2"| Seen Messages Acknowledged
| colspan="2"| Fixed BitSet(20)
|
|}


==== Cookie Response (play) ====
==== Cookie Response (play) ====
Line 913: Line 1,140:
  ! Notes
  ! Notes
  |-
  |-
  | rowspan="4"| 0x6A
  | rowspan="4"| 0x11
  | rowspan="4"| Play
  | rowspan="4"| Play
  | rowspan="4"| Server
  | rowspan="4"| Server
Line 931: Line 1,158:
  | colspan="2"| Optional Byte Array (5120)
  | colspan="2"| Optional Byte Array (5120)
  | The data of the cookie, if any.
  | The data of the cookie, if any.
|}
==== Debug Sample Subscription ====
{| class="wikitable" {{added}}
! 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).
  |}
  |}


[[Category:Minecraft Modern]]
[[Category:Minecraft Modern]]

Revision as of 03:48, 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
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

TODO: The structure appears to have changed, need to look deeper to find exactly what changed

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).

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

Signed Chat Command

Packet ID State Bound To Field Name Field Type Notes
0x05 Play Server Command String(256)
Timestamp Long Milliseconds since the Unix epoch.
Salt Long
Argument Signature Count VarInt Number of elements in the following array.
Argument Signatures Name Array String(16)
Signature ByteArray(256) Always 256 bytes.
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).