Pre-release protocol: Difference between revisions

From wiki.vg
Jump to navigation Jump to search
imported>WinX64
(→‎Chat: Added status response to exceptions)
imported>WinX64
(→‎Data types: Added new particles)
Line 69: Line 69:
* [[Protocol#Disconnect (login)|Disconnect (login)]]
* [[Protocol#Disconnect (login)|Disconnect (login)]]
* [[Server_List_Ping#Status_Response|Server List status response (the description field)]]
* [[Server_List_Ping#Status_Response|Server List status response (the description field)]]
==== Particle ====
{| class="wikitable"
|-
! Particle Name
! Particle ID
! Data
|-
| <code>minecraft:ambient_entity_effect</code>
| 0
| None
|-
| <code>minecraft:angry_villager</code>
| 1
| None
|-
| <code>minecraft:block</code>
| 2
|
{| class="wikitable"
  ! Field Name
  ! Field Type
  ! Meaning
  |-
  | BlockState
  | VarInt
  | The ID of the block state.
  |}
|-
| <code>minecraft:block_marker</code>
| 3
|
{| class="wikitable"
  ! Field Name
  ! Field Type
  ! Meaning
  |-
  | BlockState
  | VarInt
  | The ID of the block state.
  |}
|-
| <code>minecraft:bubble</code>
| 4
| None
|-
| <code>minecraft:cloud</code>
| 5
| None
|-
| <code>minecraft:crit</code>
| 6
| None
|-
| <code>minecraft:damage_indicator</code>
| 7
| None
|-
| <code>minecraft:dragon_breath</code>
| 8
| None
|-
| <code>minecraft:dripping_lava</code>
| 9
| None
|-
| <code>minecraft:falling_lava</code>
| 10
| None
|-
| <code>minecraft:landing_lava</code>
| 11
| None
|-
| <code>minecraft:dripping_water</code>
| 12
| None
|-
| <code>minecraft:falling_water</code>
| 13
| None
|-
| <code>minecraft:dust</code>
| 14
|
{| class="wikitable"
  ! Field Name
  ! Field Type
  ! Meaning
  |-
  | Red
  | Float
  | The red RGB value, between 0 and 1. Divide actual RGB value by 255.
  |-
  | Green
  | Float
  | The green RGB value, between 0 and 1. Divide actual RGB value by 255.
  |-
  | Blue
  | Float
  | The blue RGB value, between 0 and 1. Divide actual RGB value by 255.
  |-
  | Scale
  | Float
  | The scale, will be clamped between 0.01 and 4.
  |}
|-
| <code>minecraft:dust_color_transition</code>
| 15
|
{| class="wikitable"
  ! Field Name
  ! Field Type
  ! Meaning
  |-
  | From Red
  | Float
  | The start red RGB value, between 0 and 1. Divide actual RGB value by 255.
  |-
  | From Green
  | Float
  | The start green RGB value, between 0 and 1. Divide actual RGB value by 255.
  |-
  | From Blue
  | Float
  | The start blue RGB value, between 0 and 1. Divide actual RGB value by 255.
  |-
  | Scale
  | Float
  | The scale, will be clamped between 0.01 and 4.
  |-
  | To Red
  | Float
  | The end red RGB value, between 0 and 1. Divide actual RGB value by 255.
  |-
  | To Green
  | Float
  | The end green RGB value, between 0 and 1. Divide actual RGB value by 255.
  |-
  | To Blue
  | Float
  | The end blue RGB value, between 0 and 1. Divide actual RGB value by 255.
  |}
|-
| <code>minecraft:effect</code>
| 16
| None
|-
| <code>minecraft:elder_guardian</code>
| 17
| None
|-
| <code>minecraft:enchanted_hit</code>
| 18
| None
|-
| <code>minecraft:enchant</code>
| 19
| None
|-
| <code>minecraft:end_rod</code>
| 20
| None
|-
| <code>minecraft:entity_effect</code>
| 21
| None
|-
| <code>minecraft:explosion_emitter</code>
| 22
| None
|-
| <code>minecraft:explosion</code>
| 23
| None
|-
| <code>minecraft:sonic_boom</code>
| 24
| None
|-
| <code>minecraft:falling_dust</code>
| 25
|
{| class="wikitable"
  ! Field Name
  ! Field Type
  ! Meaning
  |-
  | BlockState
  | VarInt
  | The ID of the block state.
  |}
|-
| <code>minecraft:firework</code>
| 26
| None
|-
| <code>minecraft:fishing</code>
| 27
| None
|-
| <code>minecraft:flame</code>
| 28
| None
|-
| <code>minecraft:cherry_leaves</code>
| 29
| None
|-
| <code>minecraft:sculk_soul</code>
| 30
| None
|-
| <code>minecraft:sculk_charge</code>
| 31
|
{| class="wikitable"
  ! Field Name
  ! Field Type
  ! Meaning
  |-
  | Roll
  | Float
  | How much the particle will be rotated when displayed.
  |}
|-
| <code>minecraft:sculk_charge_pop</code>
| 32
| None
|-
| <code>minecraft:soul_fire_flame</code>
| 33
| None
|-
| <code>minecraft:soul</code>
| 34
| None
|-
| <code>minecraft:flash</code>
| 35
| None
|-
| <code>minecraft:happy_villager</code>
| 36
| None
|-
| <code>minecraft:composter</code>
| 37
| None
|-
| <code>minecraft:heart</code>
| 38
| None
|-
| <code>minecraft:instant_effect</code>
| 39
| None
|-
| <code>minecraft:item</code>
| 40
|
{| class="wikitable"
  ! Field Name
  ! Field Type
  ! Meaning
  |-
  | Item
  | [[Slot]]
  | The item that will be used.
  |}
|-
| <code>minecraft:vibration</code>
| 41
|
{| class="wikitable"
  ! Field Name
  ! Field Type
  ! Meaning
  |-
  | Position Source Type
  | Identifier
  | The type of the vibration source
  |-
  | Block Position
  | Position
  | The position of the block the vibration originated from. Only present if Position Type is <code>minecraft:block</code>.
  |-
  | Entity ID
  | VarInt
  | The ID of the entity the vibration originated from. Only present if Position Type is <code>minecraft:entity</code>.
  |-
  | Entity eye height
  | Float
  | The height of the entity's eye relative to the entity. Only present if Position Type is <code>minecraft:entity</code>.
  |-
  | Ticks
  | VarInt
  | The amount of ticks it takes for the vibration to travel from its source to its destination.
  |}
|-
| <code>minecraft:item_slime</code>
| 42
| None
|-
| <code>minecraft:item_snowball</code>
| 43
| None
|-
| <code>minecraft:large_smoke</code>
| 44
| None
|-
| <code>minecraft:lava</code>
| 45
| None
|-
| <code>minecraft:mycelium</code>
| 46
| None
|-
| <code>minecraft:note</code>
| 47
| None
|-
| <code>minecraft:poof</code>
| 48
| None
|-
| <code>minecraft:portal</code>
| 49
| None
|-
| <code>minecraft:rain</code>
| 50
| None
|-
| <code>minecraft:smoke</code>
| 51
| None
|- {{added}}
| <code>minecraft:white_smoke</code>
| 52
| None
|-
| <code>minecraft:sneeze</code>
| {{change|52|53}}
| None
|-
| <code>minecraft:spit</code>
| {{change|53|54}}
| None
|-
| <code>minecraft:squid_ink</code>
| {{change|54|55}}
| None
|-
| <code>minecraft:sweep_attack</code>
| {{change|55|56}}
| None
|-
| <code>minecraft:totem_of_undying</code>
| {{change|56|57}}
| None
|-
| <code>minecraft:underwater</code>
| {{change|57|58}}
| None
|-
| <code>minecraft:splash</code>
| {{change|58|59}}
| None
|-
| <code>minecraft:witch</code>
| {{change|59|60}}
| None
|-
| <code>minecraft:bubble_pop</code>
| {{change|60|61}}
| None
|-
| <code>minecraft:current_down</code>
| {{change|61|62}}
| None
|-
| <code>minecraft:bubble_column_up</code>
| {{change|62|63}}
| None
|-
| <code>minecraft:nautilus</code>
| {{change|63|64}}
| None
|-
| <code>minecraft:dolphin</code>
| {{change|64|65}}
| None
|-
| <code>minecraft:campfire_cosy_smoke</code>
| {{change|65|66}}
| None
|-
| <code>minecraft:campfire_signal_smoke</code>
| {{change|66|67}}
| None
|-
| <code>minecraft:dripping_honey</code>
| {{change|67|68}}
| None
|-
| <code>minecraft:falling_honey</code>
| {{change|68|69}}
| None
|-
| <code>minecraft:landing_honey</code>
| {{change|69|70}}
| None
|-
| <code>minecraft:falling_nectar</code>
| {{change|70|71}}
| None
|-
| <code>minecraft:falling_spore_blossom</code>
| {{change|71|72}}
| None
|-
| <code>minecraft:ash</code>
| {{change|72|73}}
| None
|-
| <code>minecraft:crimson_spore</code>
| {{change|73|74}}
| None
|-
| <code>minecraft:warped_spore</code>
| {{change|74|75}}
| None
|-
| <code>minecraft:spore_blossom_air</code>
| {{change|75|76}}
| None
|-
| <code>minecraft:dripping_obsidian_tear</code>
| {{change|76|77}}
| None
|-
| <code>minecraft:falling_obsidian_tear</code>
| {{change|77|78}}
| None
|-
| <code>minecraft:landing_obsidian_tear</code>
| {{change|78|79}}
| None
|-
| <code>minecraft:reverse_portal</code>
| {{change|79|80}}
| None
|-
| <code>minecraft:white_ash</code>
| {{change|80|81}}
| None
|-
| <code>minecraft:small_flame</code>
| {{change|81|82}}
| None
|-
| <code>minecraft:snowflake</code>
| {{change|82|83}}
| None
|-
| <code>minecraft:dripping_dripstone_lava</code>
| {{change|83|84}}
| None
|-
| <code>minecraft:falling_dripstone_lava</code>
| {{change|84|85}}
| None
|-
| <code>minecraft:dripping_dripstone_water</code>
| {{change|85|86}}
| None
|-
| <code>minecraft:falling_dripstone_water</code>
| {{change|86|87}}
| None
|-
| <code>minecraft:glow_squid_ink</code>
| {{change|87|88}}
| None
|-
| <code>minecraft:glow</code>
| {{change|88|89}}
| None
|-
| <code>minecraft:wax_on</code>
| {{change|89|90}}
| None
|-
| <code>minecraft:wax_off</code>
| {{change|90|91}}
| None
|-
| <code>minecraft:electric_spark</code>
| {{change|91|92}}
| None
|-
| <code>minecraft:scrape</code>
| {{change|92|93}}
| None
|-
| <code>minecraft:shriek</code>
| {{change|93|94}}
|
{| class="wikitable"
  ! Field Name
  ! Field Type
  ! Meaning
  |-
  | Delay
  | VarInt
  | The time in ticks before the particle is displayed
  |}
|-
| <code>minecraft:egg_crack</code>
| {{change|94|95}}
| None
|- {{added}}
| <code>minecraft:dust_plume</code>
| 96
| None
|}


=== Packets ===
=== Packets ===

Revision as of 00:36, 27 October 2023

This page documents the changes from the last stable Minecraft release (currently 1.20.2, protocol 764) to the current pre-release (currently 23w43a, protocol Snapshot {{#expr: 1073741983 - 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

NBT

The NBT specification was changed so that the root tag is no longer required to be a Compound Tag when sent over the network.

Presently in the pre-release, only Compound Tag and String Tag types are used as root, but the Notchian server/client implementation is able to handle NBT Tags of any type.

Chat

The Chat type is now serialized as a NBT Tag instead of a JSON String, unless explicitly stated otherwise.

Name Size (bytes) Encodes Notes
Chat ≥ 1
≤ (262144×4) + 3
See Chat Encoded as a String with max length of 262144.
Chat Varies See Chat Encoded as a NBT Tag, with the type of tag used depending on the case:
  • As a String Tag: For components only containing text (no styling, no events etc.).
  • As a Compound Tag: Every other case.

This affects the following packets and data types containing Chat fields:



However, the following are NOT affected, as to maintain backwards compatibility with older versions:

Particle

Particle Name Particle ID Data
minecraft:ambient_entity_effect 0 None
minecraft:angry_villager 1 None
minecraft:block 2
Field Name Field Type Meaning
BlockState VarInt The ID of the block state.
minecraft:block_marker 3
Field Name Field Type Meaning
BlockState VarInt The ID of the block state.
minecraft:bubble 4 None
minecraft:cloud 5 None
minecraft:crit 6 None
minecraft:damage_indicator 7 None
minecraft:dragon_breath 8 None
minecraft:dripping_lava 9 None
minecraft:falling_lava 10 None
minecraft:landing_lava 11 None
minecraft:dripping_water 12 None
minecraft:falling_water 13 None
minecraft:dust 14
Field Name Field Type Meaning
Red Float The red RGB value, between 0 and 1. Divide actual RGB value by 255.
Green Float The green RGB value, between 0 and 1. Divide actual RGB value by 255.
Blue Float The blue RGB value, between 0 and 1. Divide actual RGB value by 255.
Scale Float The scale, will be clamped between 0.01 and 4.
minecraft:dust_color_transition 15
Field Name Field Type Meaning
From Red Float The start red RGB value, between 0 and 1. Divide actual RGB value by 255.
From Green Float The start green RGB value, between 0 and 1. Divide actual RGB value by 255.
From Blue Float The start blue RGB value, between 0 and 1. Divide actual RGB value by 255.
Scale Float The scale, will be clamped between 0.01 and 4.
To Red Float The end red RGB value, between 0 and 1. Divide actual RGB value by 255.
To Green Float The end green RGB value, between 0 and 1. Divide actual RGB value by 255.
To Blue Float The end blue RGB value, between 0 and 1. Divide actual RGB value by 255.
minecraft:effect 16 None
minecraft:elder_guardian 17 None
minecraft:enchanted_hit 18 None
minecraft:enchant 19 None
minecraft:end_rod 20 None
minecraft:entity_effect 21 None
minecraft:explosion_emitter 22 None
minecraft:explosion 23 None
minecraft:sonic_boom 24 None
minecraft:falling_dust 25
Field Name Field Type Meaning
BlockState VarInt The ID of the block state.
minecraft:firework 26 None
minecraft:fishing 27 None
minecraft:flame 28 None
minecraft:cherry_leaves 29 None
minecraft:sculk_soul 30 None
minecraft:sculk_charge 31
Field Name Field Type Meaning
Roll Float How much the particle will be rotated when displayed.
minecraft:sculk_charge_pop 32 None
minecraft:soul_fire_flame 33 None
minecraft:soul 34 None
minecraft:flash 35 None
minecraft:happy_villager 36 None
minecraft:composter 37 None
minecraft:heart 38 None
minecraft:instant_effect 39 None
minecraft:item 40
Field Name Field Type Meaning
Item Slot The item that will be used.
minecraft:vibration 41
Field Name Field Type Meaning
Position Source Type Identifier The type of the vibration source
Block Position Position The position of the block the vibration originated from. Only present if Position Type is minecraft:block.
Entity ID VarInt The ID of the entity the vibration originated from. Only present if Position Type is minecraft:entity.
Entity eye height Float The height of the entity's eye relative to the entity. Only present if Position Type is minecraft:entity.
Ticks VarInt The amount of ticks it takes for the vibration to travel from its source to its destination.
minecraft:item_slime 42 None
minecraft:item_snowball 43 None
minecraft:large_smoke 44 None
minecraft:lava 45 None
minecraft:mycelium 46 None
minecraft:note 47 None
minecraft:poof 48 None
minecraft:portal 49 None
minecraft:rain 50 None
minecraft:smoke 51 None
minecraft:white_smoke 52 None
minecraft:sneeze 52}}{{#if:53|{{#if:52| }}53}} None
minecraft:spit 53}}{{#if:54|{{#if:53| }}54}} None
minecraft:squid_ink 54}}{{#if:55|{{#if:54| }}55}} None
minecraft:sweep_attack 55}}{{#if:56|{{#if:55| }}56}} None
minecraft:totem_of_undying 56}}{{#if:57|{{#if:56| }}57}} None
minecraft:underwater 57}}{{#if:58|{{#if:57| }}58}} None
minecraft:splash 58}}{{#if:59|{{#if:58| }}59}} None
minecraft:witch 59}}{{#if:60|{{#if:59| }}60}} None
minecraft:bubble_pop 60}}{{#if:61|{{#if:60| }}61}} None
minecraft:current_down 61}}{{#if:62|{{#if:61| }}62}} None
minecraft:bubble_column_up 62}}{{#if:63|{{#if:62| }}63}} None
minecraft:nautilus 63}}{{#if:64|{{#if:63| }}64}} None
minecraft:dolphin 64}}{{#if:65|{{#if:64| }}65}} None
minecraft:campfire_cosy_smoke 65}}{{#if:66|{{#if:65| }}66}} None
minecraft:campfire_signal_smoke 66}}{{#if:67|{{#if:66| }}67}} None
minecraft:dripping_honey 67}}{{#if:68|{{#if:67| }}68}} None
minecraft:falling_honey 68}}{{#if:69|{{#if:68| }}69}} None
minecraft:landing_honey 69}}{{#if:70|{{#if:69| }}70}} None
minecraft:falling_nectar 70}}{{#if:71|{{#if:70| }}71}} None
minecraft:falling_spore_blossom 71}}{{#if:72|{{#if:71| }}72}} None
minecraft:ash 72}}{{#if:73|{{#if:72| }}73}} None
minecraft:crimson_spore 73}}{{#if:74|{{#if:73| }}74}} None
minecraft:warped_spore 74}}{{#if:75|{{#if:74| }}75}} None
minecraft:spore_blossom_air 75}}{{#if:76|{{#if:75| }}76}} None
minecraft:dripping_obsidian_tear 76}}{{#if:77|{{#if:76| }}77}} None
minecraft:falling_obsidian_tear 77}}{{#if:78|{{#if:77| }}78}} None
minecraft:landing_obsidian_tear 78}}{{#if:79|{{#if:78| }}79}} None
minecraft:reverse_portal 79}}{{#if:80|{{#if:79| }}80}} None
minecraft:white_ash 80}}{{#if:81|{{#if:80| }}81}} None
minecraft:small_flame 81}}{{#if:82|{{#if:81| }}82}} None
minecraft:snowflake 82}}{{#if:83|{{#if:82| }}83}} None
minecraft:dripping_dripstone_lava 83}}{{#if:84|{{#if:83| }}84}} None
minecraft:falling_dripstone_lava 84}}{{#if:85|{{#if:84| }}85}} None
minecraft:dripping_dripstone_water 85}}{{#if:86|{{#if:85| }}86}} None
minecraft:falling_dripstone_water 86}}{{#if:87|{{#if:86| }}87}} None
minecraft:glow_squid_ink 87}}{{#if:88|{{#if:87| }}88}} None
minecraft:glow 88}}{{#if:89|{{#if:88| }}89}} None
minecraft:wax_on 89}}{{#if:90|{{#if:89| }}90}} None
minecraft:wax_off 90}}{{#if:91|{{#if:90| }}91}} None
minecraft:electric_spark 91}}{{#if:92|{{#if:91| }}92}} None
minecraft:scrape 92}}{{#if:93|{{#if:92| }}93}} None
minecraft:shriek 93}}{{#if:94|{{#if:93| }}94}}
Field Name Field Type Meaning
Delay VarInt The time in ticks before the particle is displayed
minecraft:egg_crack 94}}{{#if:95|{{#if:94| }}95}} None
minecraft:dust_plume 96 None

Packets

ID Packet name Documentation
Configuration clientbound
0x07 Feature Flags added Current }} removed unchanged | (unchanged) | Pre }} }}
Play clientbound
0x20 Game Event added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6C Set Ticking State added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6D Step Tick added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6C}}{{#if:0x6E|{{#if:0x6C| }}0x6E}} Update Advancements added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6D}}{{#if:0x6F|{{#if:0x6D| }}0x6F}} Update Attributes added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6E}}{{#if:0x70|{{#if:0x6E| }}0x70}} Entity Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x6F}}{{#if:0x71|{{#if:0x6F| }}0x71}} Update Recipes added Current }} removed unchanged | (unchanged) | Pre }} }}
0x70}}{{#if:0x72|{{#if:0x70| }}0x72}} Update Tags added Current }} removed unchanged | (unchanged) | Pre }} }}
Play serverbound
0x0F Change Container Slot State added Current }} removed unchanged | (unchanged) | Pre }} }}
0x0F}}{{#if:0x10|{{#if:0x0F| }}0x10}} Serverbound Plugin Message (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x10}}{{#if:0x11|{{#if:0x10| }}0x11}} Edit Book added Current }} removed unchanged | (unchanged) | Pre }} }}
0x11}}{{#if:0x12|{{#if:0x11| }}0x12}} Query Entity Tag added Current }} removed unchanged | (unchanged) | Pre }} }}
0x12}}{{#if:0x13|{{#if:0x12| }}0x13}} Interact added Current }} removed unchanged | (unchanged) | Pre }} }}
0x13}}{{#if:0x14|{{#if:0x13| }}0x14}} Jigsaw Generate added Current }} removed unchanged | (unchanged) | Pre }} }}
0x14}}{{#if:0x15|{{#if:0x14| }}0x15}} Serverbound Keep Alive (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x15}}{{#if:0x16|{{#if:0x15| }}0x16}} Lock Difficulty added Current }} removed unchanged | (unchanged) | Pre }} }}
0x16}}{{#if:0x17|{{#if:0x16| }}0x17}} Set Player Position added Current }} removed unchanged | (unchanged) | Pre }} }}
0x17}}{{#if:0x18|{{#if:0x17| }}0x18}} Set Player Position and Rotation added Current }} removed unchanged | (unchanged) | Pre }} }}
0x18}}{{#if:0x19|{{#if:0x18| }}0x19}} Set Player Rotation added Current }} removed unchanged | (unchanged) | Pre }} }}
0x19}}{{#if:0x1A|{{#if:0x19| }}0x1A}} Set Player On Ground added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1A}}{{#if:0x1B|{{#if:0x1A| }}0x1B}} Move Vehicle added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1B}}{{#if:0x1C|{{#if:0x1B| }}0x1C}} Paddle Boat added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1C}}{{#if:0x1D|{{#if:0x1C| }}0x1D}} Pick Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1D}}{{#if:0x1E|{{#if:0x1D| }}0x1E}} Ping Request (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1E}}{{#if:0x1F|{{#if:0x1E| }}0x1F}} Place Recipe added Current }} removed unchanged | (unchanged) | Pre }} }}
0x1F}}{{#if:0x20|{{#if:0x1F| }}0x20}} Player Abilities added Current }} removed unchanged | (unchanged) | Pre }} }}
0x20}}{{#if:0x21|{{#if:0x20| }}0x21}} Player Action added Current }} removed unchanged | (unchanged) | Pre }} }}
0x21}}{{#if:0x22|{{#if:0x21| }}0x22}} Player Command added Current }} removed unchanged | (unchanged) | Pre }} }}
0x22}}{{#if:0x23|{{#if:0x22| }}0x23}} Player Input added Current }} removed unchanged | (unchanged) | Pre }} }}
0x23}}{{#if:0x24|{{#if:0x23| }}0x24}} Pong (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x24}}{{#if:0x25|{{#if:0x24| }}0x25}} Change Recipe Book Settings added Current }} removed unchanged | (unchanged) | Pre }} }}
0x25}}{{#if:0x26|{{#if:0x25| }}0x26}} Set Seen Recipe added Current }} removed unchanged | (unchanged) | Pre }} }}
0x26}}{{#if:0x27|{{#if:0x26| }}0x27}} Rename Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x27}}{{#if:0x28|{{#if:0x27| }}0x28}} Resource Pack Response (play) added Current }} removed unchanged | (unchanged) | Pre }} }}
0x28}}{{#if:0x29|{{#if:0x28| }}0x29}} Seen Advancements added Current }} removed unchanged | (unchanged) | Pre }} }}
0x29}}{{#if:0x2A|{{#if:0x29| }}0x2A}} Select Trade added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2A}}{{#if:0x2B|{{#if:0x2A| }}0x2B}} Set Beacon Effect added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2B}}{{#if:0x2C|{{#if:0x2B| }}0x2C}} Set Held Item added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2C}}{{#if:0x2D|{{#if:0x2C| }}0x2D}} Program Command Block added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2D}}{{#if:0x2E|{{#if:0x2D| }}0x2E}} Program Command Block Minecart added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2E}}{{#if:0x2F|{{#if:0x2E| }}0x2F}} Set Creative Mode Slot added Current }} removed unchanged | (unchanged) | Pre }} }}
0x2F}}{{#if:0x30|{{#if:0x2F| }}0x30}} Program Jigsaw Block added Current }} removed unchanged | (unchanged) | Pre }} }}
0x30}}{{#if:0x31|{{#if:0x30| }}0x31}} Program Structure Block added Current }} removed unchanged | (unchanged) | Pre }} }}
0x31}}{{#if:0x32|{{#if:0x31| }}0x32}} Update Sign added Current }} removed unchanged | (unchanged) | Pre }} }}
0x32}}{{#if:0x33|{{#if:0x32| }}0x33}} Swing Arm added Current }} removed unchanged | (unchanged) | Pre }} }}
0x33}}{{#if:0x34|{{#if:0x33| }}0x34}} Teleport To Entity added Current }} removed unchanged | (unchanged) | Pre }} }}
0x34}}{{#if:0x35|{{#if:0x34| }}0x35}} Use Item On added Current }} removed unchanged | (unchanged) | Pre }} }}
0x35}}{{#if:0x36|{{#if:0x35| }}0x36}} Use Item added Current }} removed unchanged | (unchanged) | Pre }} }}

New/modified data types

No changes so far.

Entity Metadata

Abstract Vehicle

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

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

   {{#if:Entity
       | {{#if:
           | Extends {{#if:[[{{#varexists:meta_Entity|Entity metadata}}#Entity|Entity]]|[[{{#varexists:meta_Entity|Entity metadata}}#Entity|Entity]]}}{{#if:[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]|{{#if:[[{{#varexists:meta_Entity|Entity metadata}}#Entity|Entity]]| }}[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]}}.
           | Extends [[{{#varexists:meta_Entity|Entity metadata}}#Entity|Entity]].
       }}{{#if:8
           | {{#vardefine:meta_Abstract Vehicle|8}}
           {{#if:{{#varexists:meta_Entity}}|start_at in use when inherited entity Entity exists}}
           | {{#vardefine:meta_Abstract Vehicle|{{#var:meta_Entity|0}}}}
           {{#if:{{#varexists:meta_Entity}}||Inherited entity Entity does not exist}}
       }}{{#if:8
           | {{#vardefine:meta_pre_Abstract Vehicle|8}}
           {{#if:{{#varexists:meta_Entity}}|start_at in use when inherited entity Entity exists}}
           | {{#vardefine:meta_pre_Abstract Vehicle|{{#var:meta_pre_Entity|0}}}}
           {{#if:{{#varexists:meta_Entity}}||Inherited entity Entity does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Abstract Vehicle|8}}
       {{#vardefine:meta_pre_Abstract Vehicle|8}}
   }}

|

   {{#if:Entity
       | Extends Entity.
       {{#if:8
           | {{#vardefine:meta_Abstract Vehicle|8}}
           {{#if:{{#varexists:meta_Entity}}|start_at in use when inherited entity Entity exists}}
           | {{#vardefine:meta_Abstract Vehicle|{{#var:meta_Entity|0}}}}
           {{#if:{{#varexists:meta_Entity}}||Inherited entity Entity does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Abstract Vehicle|8}}
   }}

}}

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}}

}}

VarInt Shaking power 0
   {{#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 Shaking direction 1
   {{#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}}

}}

Float Shaking multiplier 0.0

Abstract Minecart

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

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

   {{#if:Abstract Vehicle
       | {{#if:
           | Extends {{#if:[[{{#varexists:meta_Abstract Vehicle|Entity metadata}}#Abstract Vehicle|Abstract Vehicle]]|[[{{#varexists:meta_Abstract Vehicle|Entity metadata}}#Abstract Vehicle|Abstract Vehicle]]}}{{#if:[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]|{{#if:[[{{#varexists:meta_Abstract Vehicle|Entity metadata}}#Abstract Vehicle|Abstract Vehicle]]| }}[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]}}.
           | Extends [[{{#varexists:meta_Abstract Vehicle|Entity metadata}}#Abstract Vehicle|Abstract Vehicle]].
       }}{{#if:
           | {{#vardefine:meta_Abstract Minecart|{{{start_at}}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}|start_at in use when inherited entity Abstract Vehicle exists}}
           | {{#vardefine:meta_Abstract Minecart|{{#var:meta_Abstract Vehicle|0}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}||Inherited entity Abstract Vehicle does not exist}}
       }}{{#if:
           | {{#vardefine:meta_pre_Abstract Minecart|}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}|start_at in use when inherited entity Abstract Vehicle exists}}
           | {{#vardefine:meta_pre_Abstract Minecart|{{#var:meta_pre_Abstract Vehicle|0}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}||Inherited entity Abstract Vehicle does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Abstract Minecart|0}}
       {{#vardefine:meta_pre_Abstract Minecart|0}}
   }}

|

   {{#if:Abstract Vehicle
       | Extends Abstract Vehicle.
       {{#if:
           | {{#vardefine:meta_Abstract Minecart|{{{start_at}}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}|start_at in use when inherited entity Abstract Vehicle exists}}
           | {{#vardefine:meta_Abstract Minecart|{{#var:meta_Abstract Vehicle|0}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}||Inherited entity Abstract Vehicle does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Abstract Minecart|0}}
   }}

}}

Index Type Meaning Default
8 VarInt Shaking power 0
9 VarInt Shaking direction 1
10 Float Shaking multiplier 0.0
11 VarInt Custom block ID and damage 0
12 VarInt Custom block Y position (in 16ths of a block) 6
13 Boolean Show custom block false

Boat

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

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

   {{#if:Abstract Vehicle
       | {{#if:
           | Extends {{#if:[[{{#varexists:meta_Abstract Vehicle|Entity metadata}}#Abstract Vehicle|Abstract Vehicle]]|[[{{#varexists:meta_Abstract Vehicle|Entity metadata}}#Abstract Vehicle|Abstract Vehicle]]}}{{#if:[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]|{{#if:[[{{#varexists:meta_Abstract Vehicle|Entity metadata}}#Abstract Vehicle|Abstract Vehicle]]| }}[[{{#varexists:meta_{{{pre_inherits}}}|Entity metadata}}#{{{pre_inherits}}}|{{{pre_inherits}}}]]}}.
           | Extends [[{{#varexists:meta_Abstract Vehicle|Entity metadata}}#Abstract Vehicle|Abstract Vehicle]].
       }}{{#if:
           | {{#vardefine:meta_Boat|{{{start_at}}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}|start_at in use when inherited entity Abstract Vehicle exists}}
           | {{#vardefine:meta_Boat|{{#var:meta_Abstract Vehicle|0}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}||Inherited entity Abstract Vehicle does not exist}}
       }}{{#if:
           | {{#vardefine:meta_pre_Boat|}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}|start_at in use when inherited entity Abstract Vehicle exists}}
           | {{#vardefine:meta_pre_Boat|{{#var:meta_pre_Abstract Vehicle|0}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}||Inherited entity Abstract Vehicle does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Boat|0}}
       {{#vardefine:meta_pre_Boat|0}}
   }}

|

   {{#if:Abstract Vehicle
       | Extends Abstract Vehicle.
       {{#if:
           | {{#vardefine:meta_Boat|{{{start_at}}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}|start_at in use when inherited entity Abstract Vehicle exists}}
           | {{#vardefine:meta_Boat|{{#var:meta_Abstract Vehicle|0}}}}
           {{#if:{{#varexists:meta_Abstract Vehicle}}||Inherited entity Abstract Vehicle does not exist}}
       }}
       | The base class.
       {{#vardefine:meta_Boat|0}}
   }}

}}

Index Type Meaning Default
8 VarInt Time since last hit 0
9 VarInt Forward direction 1
10 Float Damage taken 0.0
11 VarInt Type (0=oak, 1=spruce, 2=birch, 3=jungle, 4=acacia, 5=dark oak) 0
12 Boolean Is left paddle turning false
13 Boolean Is right paddle turning false
14 VarInt Splash timer 0

Block Actions

No changes so far.

Inventories

No changes so far.

Plugin Channels

No changes so far.

Status

Clientbound

No changes so far.

Serverbound

No changes so far.

Login

Clientbound

No changes so far.

Serverbound

No changes so far.

Configuration

Clientbound

Feature Flags

Used to enable and disable features, generally experimental ones, on the client.

Packet ID State Bound To Field Name Field Type Notes
0x07 Configuration Client Total Features VarInt Number of features that appear in the array below.
Feature Flags Identifier Array

As of {{#if:1.20.2|1.20.2}}{{#if:1.20.3|{{#if:1.20.2| }}1.20.3}}, the following feature flags are available:

  • minecraft:vanilla - enables vanilla features
  • minecraft:bundle - enables support for the bundle
  • minecraft:trade_rebalance - enables support for the rebalanced villager trades
  • {{#if:|}}{{#if:minecraft:update_1_21 - enables support for 1.21 features|{{#if:| }}minecraft:update_1_21 - enables support for 1.21 features}}

Serverbound

No changes so far.

Play

Clientbound

Game Event

Used for a wide variety of game events, from weather to bed use to game mode to demo messages.

Packet ID State Bound To Field Name Field Type Notes
0x20 Play Client Event Unsigned Byte See below.
Value Float Depends on Event.

Events:

Event Effect Value
0 No respawn block available Note: Displays message 'block.minecraft.spawn.not_valid' (You have no home bed or charged respawn anchor, or it was obstructed) to the player.
1 Begin raining
2 End raining
3 Change game mode 0: Survival, 1: Creative, 2: Adventure, 3: Spectator.
4 Win game 0: Just respawn player.
1: Roll the credits and respawn player.
Note that 1 is only sent by notchian server when player has not yet achieved advancement "The end?", else 0 is sent.
5 Demo event 0: Show welcome to demo screen.
101: Tell movement controls.
102: Tell jump control.
103: Tell inventory control.
104: Tell that the demo is over and print a message about how to take a screenshot.
6 Arrow hit player Note: Sent when any player is struck by an arrow.
7 Rain level change Note: Seems to change both sky color and lighting.
Rain level ranging from 0 to 1.
8 Thunder level change Note: Seems to change both sky color and lighting (same as Rain level change, but doesn't start rain). It also requires rain to render by notchian client.
Thunder level ranging from 0 to 1.
9 Play pufferfish sting sound
10 Play elder guardian mob appearance (effect and sound)
11 Enable respawn screen 0: Enable respawn screen.
1: Immediately respawn (sent when the doImmediateRespawn gamerule changes).
12 Limited crafting 0: Disable limited crafting.
1: Enable limited crafting (sent when the doLimitedCrafting gamerule changes).
13 Start waiting for level chunks Instructs the client to begin the waiting process for the level chunks.
Sent by the server after the level is cleared on the client and is being re-sent (either during the first, or subsequent reconfigurations).

Set Ticking State

Used to adjust the ticking rate of the client, and whether it's frozen.

Packet ID State Bound To Field Name Field Type Notes
0x6C Play Server Tick rate Float
Is frozen Boolean

Step Tick

Advances the client processing by the specified number of ticks. Has no effect is the client ticking is not frozen.

Packet ID State Bound To Field Name Field Type Notes
0x6D Play Client Tick steps VarInt

Serverbound

Change Container Slot State

This packet is sent by the client when toggling the state of a Crafter.

Packet ID State Bound To Field Name Field Type Notes
0x0F Play Server Slot ID VarInt This is the ID of the slot that was changed.
Window ID VarInt This is the ID of the window that was changed.
State Boolean The new state of the slot. True for enabled, false for disabled.

Program Jigsaw Block

Sent when Done is pressed on the Jigsaw Block interface.

Packet ID State Bound To Field Name Field Type Notes
0x2F Play Server Location Position Block entity location
Name Identifier
Target Identifier
Pool Identifier
Final state String (32767) "Turns into" on the GUI, final_state in NBT.
Joint type String (32767) rollable if the attached piece can be rotated, else aligned.
Selection priority VarInt
Placement priority VarInt