|
|
Line 1: |
Line 1: |
| This page documents the changes from the [[Protocol|last stable Minecraft release]] (currently [[Protocol version numbers|1.20.2, protocol 764]]) to the current pre-release (currently [[Protocol version numbers|1.20.3-rc1, protocol {{Snapshot PVN|1073741992}}]]). Note that this page contains bleeding-edge information that may not be completely or correctly documented.
| | There are currently no pre-release versions available to document on this page. For the latest stable Minecraft release, see the [[Protocol|Protocol]] page. For previous pre-release pages, see the [[Protocol version numbers|Protocol version numbers]] page. |
|
| |
|
| 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 9: |
Line 9: |
| === Data types === | | === Data types === |
|
| |
|
| ==== NBT ====
| | No changes so far. |
| | |
| The NBT specification was changed so that the root tag is no longer required to be a [[NBT#Specification:compound_tag|Compound Tag]] when sent over the network.
| |
| | |
| Presently in the pre-release, only [[NBT#Specification:compound_tag|Compound Tag]] and [[NBT#Specification:string_tag|String Tag]] types are used as root, but the Notchian server/client implementation is able to handle [[NBT#Specification|NBT Tags]] of any type.
| |
| | |
| ==== Chat ====
| |
| | |
| The [[Chat]] type is now serialized as a [[NBT#Specification|NBT Tag]] instead of a JSON String, unless explicitly stated otherwise.
| |
| | |
| {| class="wikitable"
| |
| |-
| |
| ! Name
| |
| ! Size (bytes)
| |
| ! Encodes
| |
| ! Notes
| |
| |- {{removed}}
| |
| ! id=Definitions:chat | [[#Definitions:chat|Chat]]
| |
| | ≥ 1 <br />≤ (262144×4) + 3
| |
| | See [[Chat]]
| |
| | Encoded as a String with max length of 262144.
| |
| |- {{added}}
| |
| ! id=Definitions:chat | [[#Definitions:chat|Chat]]
| |
| | Varies
| |
| | See [[Chat]]
| |
| | Encoded as a [[NBT|NBT Tag]], with the type of tag used depending on the case:
| |
| * As a [[NBT#Specification:string_tag|String Tag]]: For components only containing text (no styling, no events etc.).
| |
| * As a [[NBT#Specification:compound_tag|Compound Tag]]: Every other case.
| |
| |}
| |
| | |
| This affects the following packets and data types containing Chat fields:
| |
| * [[Protocol#Disconnect (configuration)|Disconnect (configuration)]]
| |
| * [[Protocol#Resource Pack (configuration)|Resource Pack (configuration)]]
| |
| * [[Protocol#Boss Bar|Boss Bar]]
| |
| * [[Protocol#Command Suggestions Response|Command Suggestions Response]]
| |
| * [[Protocol#Disconnect (play)|Disconnect (play)]]
| |
| * [[Protocol#Disguised Chat Message|Disguised Chat Message]]
| |
| * [[Protocol#Map Data|Map Data]]
| |
| * [[Protocol#Open Screen|Open Screen]]
| |
| * [[Protocol#Player Chat Message|Player Chat Message]]
| |
| * [[Protocol#Combat Death|Combat Death]]
| |
| * [[Protocol#Player Info Update|Player Info Update]]
| |
| * [[Protocol#Resource Pack (play)|Resource Pack (play)]]
| |
| * [[Protocol#Server Data|Server Data]]
| |
| * [[Protocol#Set Action Bar Text|Set Action Bar Text]]
| |
| * [[Protocol#Update Objectives|Update Objectives]]
| |
| * [[Protocol#Update Teams|Update Teams]]
| |
| * [[Protocol#Set Subtitle Text|Set Subtitle Text]]
| |
| * [[Protocol#Set Title Text|Set Title Text]]
| |
| * [[Protocol#System Chat Message|System Chat Message]]
| |
| * [[Protocol#Set Tab List Header And Footer|Set Tab List Header And Footer]]
| |
| * [[Protocol#Update Advancements|Update Advancements]]
| |
| <br>
| |
| * [[Slot|Slot data type (values in the item NBT field)]]
| |
| * [[Entity_metadata#Entity_Metadata_Format|Chat entity metadata type]]
| |
| * [[Entity_metadata#Entity_Metadata_Format|OptChat entity metadata type]]
| |
| <br>
| |
| However, the following are '''NOT''' affected, as to maintain backwards compatibility with older versions:
| |
| * [[Protocol#Disconnect (login)|Disconnect (login)]]
| |
| * [[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
| |
| |- {{added}}
| |
| | <code>minecraft:gust</code>
| |
| | 24
| |
| | None
| |
| |- {{added}}
| |
| | <code>minecraft:gust_emitter</code>
| |
| | 25
| |
| | None
| |
| |-
| |
| | <code>minecraft:sonic_boom</code>
| |
| | {{change|24|26}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:falling_dust</code>
| |
| | {{change|25|27}}
| |
| |
| |
| {| class="wikitable"
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Meaning
| |
| |-
| |
| | BlockState
| |
| | VarInt
| |
| | The ID of the block state.
| |
| |}
| |
| |-
| |
| | <code>minecraft:firework</code>
| |
| | {{change|26|28}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:fishing</code>
| |
| | {{change|27|29}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:flame</code>
| |
| | {{change|28|30}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:cherry_leaves</code>
| |
| | {{change|29|31}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:sculk_soul</code>
| |
| | {{change|30|32}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:sculk_charge</code>
| |
| | {{change|31|33}}
| |
| |
| |
| {| class="wikitable"
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Meaning
| |
| |-
| |
| | Roll
| |
| | Float
| |
| | How much the particle will be rotated when displayed.
| |
| |}
| |
| |-
| |
| | <code>minecraft:sculk_charge_pop</code>
| |
| | {{change|32|34}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:soul_fire_flame</code>
| |
| | {{change|33|35}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:soul</code>
| |
| | {{change|34|36}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:flash</code>
| |
| | {{change|35|37}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:happy_villager</code>
| |
| | {{change|36|38}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:composter</code>
| |
| | {{change|37|39}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:heart</code>
| |
| | {{change|38|40}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:instant_effect</code>
| |
| | {{change|39|41}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:item</code>
| |
| | {{change|40|42}}
| |
| |
| |
| {| class="wikitable"
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Meaning
| |
| |-
| |
| | Item
| |
| | [[Slot]]
| |
| | The item that will be used.
| |
| |}
| |
| |-
| |
| | <code>minecraft:vibration</code>
| |
| | {{change|41|43}}
| |
| |
| |
| {| 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>
| |
| | {{change|42|44}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:item_snowball</code>
| |
| | {{change|43|45}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:large_smoke</code>
| |
| | {{change|44|46}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:lava</code>
| |
| | {{change|45|47}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:mycelium</code>
| |
| | {{change|46|48}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:note</code>
| |
| | {{change|47|49}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:poof</code>
| |
| | {{change|48|50}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:portal</code>
| |
| | {{change|49|51}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:rain</code>
| |
| | {{change|50|52}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:smoke</code>
| |
| | {{change|51|53}}
| |
| | None
| |
| |- {{added}}
| |
| | <code>minecraft:white_smoke</code>
| |
| | 54
| |
| | None
| |
| |-
| |
| | <code>minecraft:sneeze</code>
| |
| | {{change|52|55}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:spit</code>
| |
| | {{change|53|56}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:squid_ink</code>
| |
| | {{change|54|57}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:sweep_attack</code>
| |
| | {{change|55|58}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:totem_of_undying</code>
| |
| | {{change|56|59}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:underwater</code>
| |
| | {{change|57|60}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:splash</code>
| |
| | {{change|58|61}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:witch</code>
| |
| | {{change|59|62}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:bubble_pop</code>
| |
| | {{change|60|63}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:current_down</code>
| |
| | {{change|61|64}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:bubble_column_up</code>
| |
| | {{change|62|65}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:nautilus</code>
| |
| | {{change|63|66}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:dolphin</code>
| |
| | {{change|64|67}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:campfire_cosy_smoke</code>
| |
| | {{change|65|68}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:campfire_signal_smoke</code>
| |
| | {{change|66|69}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:dripping_honey</code>
| |
| | {{change|67|70}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:falling_honey</code>
| |
| | {{change|68|71}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:landing_honey</code>
| |
| | {{change|69|72}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:falling_nectar</code>
| |
| | {{change|70|73}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:falling_spore_blossom</code>
| |
| | {{change|71|74}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:ash</code>
| |
| | {{change|72|75}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:crimson_spore</code>
| |
| | {{change|73|76}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:warped_spore</code>
| |
| | {{change|74|77}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:spore_blossom_air</code>
| |
| | {{change|75|78}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:dripping_obsidian_tear</code>
| |
| | {{change|76|79}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:falling_obsidian_tear</code>
| |
| | {{change|77|80}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:landing_obsidian_tear</code>
| |
| | {{change|78|81}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:reverse_portal</code>
| |
| | {{change|79|82}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:white_ash</code>
| |
| | {{change|80|83}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:small_flame</code>
| |
| | {{change|81|84}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:snowflake</code>
| |
| | {{change|82|85}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:dripping_dripstone_lava</code>
| |
| | {{change|83|86}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:falling_dripstone_lava</code>
| |
| | {{change|84|87}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:dripping_dripstone_water</code>
| |
| | {{change|85|88}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:falling_dripstone_water</code>
| |
| | {{change|86|89}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:glow_squid_ink</code>
| |
| | {{change|87|90}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:glow</code>
| |
| | {{change|88|91}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:wax_on</code>
| |
| | {{change|89|92}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:wax_off</code>
| |
| | {{change|90|93}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:electric_spark</code>
| |
| | {{change|91|94}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:scrape</code>
| |
| | {{change|92|95}}
| |
| | None
| |
| |-
| |
| | <code>minecraft:shriek</code>
| |
| | {{change|93|96}}
| |
| |
| |
| {| 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|97}}
| |
| | None
| |
| |- {{added}}
| |
| | <code>minecraft:dust_plume</code>
| |
| | 98
| |
| | None
| |
| |- {{added}}
| |
| | <code>minecraft:gust_dust</code>
| |
| | 99
| |
| | None
| |
| |- {{added}}
| |
| | <code>minecraft:trial_spawner_detection</code>
| |
| | 100
| |
| | None
| |
| |}
| |
|
| |
|
| === Packets === | | === Packets === |
|
| |
|
| {| class="wikitable"
| | No changes so far. |
| ! ID
| |
| ! Packet name
| |
| !colspan="2"| Documentation
| |
| |-
| |
| !colspan="4"| Configuration clientbound
| |
| {{PacketList|0x06|Resource Pack (configuration)|pre=removed}}
| |
| {{PacketList|0x06|Remove Resource Pack (configuration)|rel=added}}
| |
| {{PacketList|0x07|Add Resource Pack (configuration)|rel=added}}
| |
| {{PacketList|{{change|0x07|0x08}}|Feature Flags}}
| |
| |-
| |
| !colspan="4"| Configuration serverbound
| |
| {{PacketList|0x05|Resource Pack Response (configuration)}}
| |
| |-
| |
| !colspan="4"| Play clientbound
| |
| {{PacketList|0x1E|Explosion}}
| |
| {{PacketList|0x20|Game Event}}
| |
| {{PacketList|0x42|Reset Score|rel=added}}
| |
| {{PacketList|0x42|Resource Pack (play)|pre=removed}}
| |
| {{PacketList|0x43|Remove Resource Pack (play)|rel=added}}
| |
| {{PacketList|0x44|Add Resource Pack (play)|rel=added}}
| |
| {{PacketList|{{change|0x43|0x45}}|Respawn|pre=unchanged}}
| |
| {{PacketList|{{change|0x44|0x46}}|Set Head Rotation|pre=unchanged}}
| |
| {{PacketList|{{change|0x45|0x47}}|Update Section Blocks|pre=unchanged}}
| |
| {{PacketList|{{change|0x46|0x48}}|Select Advancements Tab|pre=unchanged}}
| |
| {{PacketList|{{change|0x47|0x49}}|Server Data|pre=unchanged}}
| |
| {{PacketList|{{change|0x48|0x4A}}|Set Action Bar Text|pre=unchanged}}
| |
| {{PacketList|{{change|0x49|0x4B}}|Set Border Center|pre=unchanged}}
| |
| {{PacketList|{{change|0x4A|0x4C}}|Set Border Lerp Size|pre=unchanged}}
| |
| {{PacketList|{{change|0x4B|0x4D}}|Set Border Size|pre=unchanged}}
| |
| {{PacketList|{{change|0x4C|0x4E}}|Set Border Warning Delay|pre=unchanged}}
| |
| {{PacketList|{{change|0x4D|0x4F}}|Set Border Warning Distance|pre=unchanged}}
| |
| {{PacketList|{{change|0x4E|0x50}}|Set Camera|pre=unchanged}}
| |
| {{PacketList|{{change|0x4F|0x51}}|Set Held Item|pre=unchanged}}
| |
| {{PacketList|{{change|0x50|0x52}}|Set Center Chunk|pre=unchanged}}
| |
| {{PacketList|{{change|0x51|0x53}}|Set Render Distance|pre=unchanged}}
| |
| {{PacketList|{{change|0x52|0x54}}|Set Default Spawn Position|pre=unchanged}}
| |
| {{PacketList|{{change|0x53|0x55}}|Display Objective|pre=unchanged}}
| |
| {{PacketList|{{change|0x54|0x56}}|Set Entity Metadata|pre=unchanged}}
| |
| {{PacketList|{{change|0x55|0x57}}|Link Entities|pre=unchanged}}
| |
| {{PacketList|{{change|0x56|0x58}}|Set Entity Velocity|pre=unchanged}}
| |
| {{PacketList|{{change|0x57|0x59}}|Set Equipment|pre=unchanged}}
| |
| {{PacketList|{{change|0x58|0x5A}}|Set Experience|pre=unchanged}}
| |
| {{PacketList|{{change|0x59|0x5B}}|Set Health|pre=unchanged}}
| |
| {{PacketList|{{change|0x5A|0x5C}}|Update Objectives}}
| |
| {{PacketList|{{change|0x5B|0x5D}}|Set Passengers|pre=unchanged}}
| |
| {{PacketList|{{change|0x5C|0x5E}}|Update Teams|pre=unchanged}}
| |
| {{PacketList|{{change|0x5D|0x5F}}|Update Score}}
| |
| {{PacketList|{{change|0x5E|0x60}}|Set Simulation Distance|pre=unchanged}}
| |
| {{PacketList|{{change|0x5F|0x61}}|Set Subtitle Text|pre=unchanged}}
| |
| {{PacketList|{{change|0x60|0x62}}|Update Time|pre=unchanged}}
| |
| {{PacketList|{{change|0x61|0x63}}|Set Title Text|pre=unchanged}}
| |
| {{PacketList|{{change|0x62|0x64}}|Set Title Animation Times|pre=unchanged}}
| |
| {{PacketList|{{change|0x63|0x65}}|Entity Sound Effect|pre=unchanged}}
| |
| {{PacketList|{{change|0x64|0x66}}|Sound Effect|pre=unchanged}}
| |
| {{PacketList|{{change|0x65|0x67}}|Start Configuration|pre=unchanged}}
| |
| {{PacketList|{{change|0x66|0x68}}|Stop Sound|pre=unchanged}}
| |
| {{PacketList|{{change|0x67|0x69}}|System Chat Message|pre=unchanged}}
| |
| {{PacketList|{{change|0x68|0x6A}}|Set Tab List Header And Footer|pre=unchanged}}
| |
| {{PacketList|{{change|0x69|0x6B}}|Tag Query Response|pre=unchanged}}
| |
| {{PacketList|{{change|0x6A|0x6C}}|Pickup Item|pre=unchanged}}
| |
| {{PacketList|{{change|0x6B|0x6D}}|Teleport Entity|pre=unchanged}}
| |
| {{PacketList|0x6E|Set Ticking State|rel=added}}
| |
| {{PacketList|0x6F|Step Tick|rel=added}}
| |
| {{PacketList|{{change|0x6C|0x70}}|Update Advancements|pre=unchanged}}
| |
| {{PacketList|{{change|0x6D|0x71}}|Update Attributes|pre=unchanged}}
| |
| {{PacketList|{{change|0x6E|0x72}}|Entity Effect|pre=unchanged}}
| |
| {{PacketList|{{change|0x6F|0x73}}|Update Recipes}}
| |
| {{PacketList|{{change|0x70|0x74}}|Update Tags|pre=unchanged}}
| |
| |-
| |
| !colspan="4"| Play serverbound
| |
| {{PacketList|0x0F|Change Container Slot State|rel=added}}
| |
| {{PacketList|{{change|0x0F|0x10}}|Serverbound Plugin Message (play)|pre=unchanged}}
| |
| {{PacketList|{{change|0x10|0x11}}|Edit Book|pre=unchanged}}
| |
| {{PacketList|{{change|0x11|0x12}}|Query Entity Tag|pre=unchanged}}
| |
| {{PacketList|{{change|0x12|0x13}}|Interact|pre=unchanged}}
| |
| {{PacketList|{{change|0x13|0x14}}|Jigsaw Generate|pre=unchanged}}
| |
| {{PacketList|{{change|0x14|0x15}}|Serverbound Keep Alive (play)|pre=unchanged}}
| |
| {{PacketList|{{change|0x15|0x16}}|Lock Difficulty|pre=unchanged}}
| |
| {{PacketList|{{change|0x16|0x17}}|Set Player Position|pre=unchanged}}
| |
| {{PacketList|{{change|0x17|0x18}}|Set Player Position and Rotation|pre=unchanged}}
| |
| {{PacketList|{{change|0x18|0x19}}|Set Player Rotation|pre=unchanged}}
| |
| {{PacketList|{{change|0x19|0x1A}}|Set Player On Ground|pre=unchanged}}
| |
| {{PacketList|{{change|0x1A|0x1B}}|Move Vehicle|pre=unchanged}}
| |
| {{PacketList|{{change|0x1B|0x1C}}|Paddle Boat|pre=unchanged}}
| |
| {{PacketList|{{change|0x1C|0x1D}}|Pick Item|pre=unchanged}}
| |
| {{PacketList|{{change|0x1D|0x1E}}|Ping Request (play)|pre=unchanged}}
| |
| {{PacketList|{{change|0x1E|0x1F}}|Place Recipe|pre=unchanged}}
| |
| {{PacketList|{{change|0x1F|0x20}}|Player Abilities|pre=unchanged}}
| |
| {{PacketList|{{change|0x20|0x21}}|Player Action|pre=unchanged}}
| |
| {{PacketList|{{change|0x21|0x22}}|Player Command|pre=unchanged}}
| |
| {{PacketList|{{change|0x22|0x23}}|Player Input|pre=unchanged}}
| |
| {{PacketList|{{change|0x23|0x24}}|Pong (play)|pre=unchanged}}
| |
| {{PacketList|{{change|0x24|0x25}}|Change Recipe Book Settings|pre=unchanged}}
| |
| {{PacketList|{{change|0x25|0x26}}|Set Seen Recipe|pre=unchanged}}
| |
| {{PacketList|{{change|0x26|0x27}}|Rename Item|pre=unchanged}}
| |
| {{PacketList|{{change|0x27|0x28}}|Resource Pack Response (play)}}
| |
| {{PacketList|{{change|0x28|0x29}}|Seen Advancements|pre=unchanged}}
| |
| {{PacketList|{{change|0x29|0x2A}}|Select Trade|pre=unchanged}}
| |
| {{PacketList|{{change|0x2A|0x2B}}|Set Beacon Effect|pre=unchanged}}
| |
| {{PacketList|{{change|0x2B|0x2C}}|Set Held Item|pre=unchanged}}
| |
| {{PacketList|{{change|0x2C|0x2D}}|Program Command Block|pre=unchanged}}
| |
| {{PacketList|{{change|0x2D|0x2E}}|Program Command Block Minecart|pre=unchanged}}
| |
| {{PacketList|{{change|0x2E|0x2F}}|Set Creative Mode Slot|pre=unchanged}}
| |
| {{PacketList|{{change|0x2F|0x30}}|Program Jigsaw Block}}
| |
| {{PacketList|{{change|0x30|0x31}}|Program Structure Block|pre=unchanged}}
| |
| {{PacketList|{{change|0x31|0x32}}|Update Sign|pre=unchanged}}
| |
| {{PacketList|{{change|0x32|0x33}}|Swing Arm|pre=unchanged}}
| |
| {{PacketList|{{change|0x33|0x34}}|Teleport To Entity|pre=unchanged}}
| |
| {{PacketList|{{change|0x34|0x35}}|Use Item On|pre=unchanged}}
| |
| {{PacketList|{{change|0x35|0x36}}|Use Item|pre=unchanged}}
| |
| |}
| |
|
| |
|
| == New/modified data types == | | == New/modified data types == |
Line 737: |
Line 21: |
| == Entity Metadata == | | == Entity Metadata == |
|
| |
|
| {| class="wikitable"
| | No changes so far. |
| ! Type ([[Data Types#Definitions:varint|VarInt]] Enum)
| |
| ! Value (Varies)
| |
| ! Notes
| |
| |-
| |
| | 0
| |
| | [[Data Types#Definitions:byte|Byte]]
| |
| |
| |
| |-
| |
| | 1
| |
| | [[Data Types#Definitions:varint|VarInt]]
| |
| |
| |
| |-
| |
| | 2
| |
| | [[Data Types#Definitions:varlong|VarLong]]
| |
| |
| |
| |-
| |
| | 3
| |
| | [[Data Types#Definitions:float|Float]]
| |
| |
| |
| |-
| |
| | 4
| |
| | [[Data Types#Definitions:string|String]]
| |
| |
| |
| |-
| |
| | 5
| |
| | [[Data Types#Definitions:chat|Chat]]
| |
| |
| |
| |-
| |
| | 6
| |
| | OptChat (Boolean + [[Data Types#Definitions:chat|Chat]])
| |
| | [[Data Types#Definitions:chat|Chat]] is present if the Boolean is set to true
| |
| |-
| |
| | 7
| |
| | [[Data Types#Definitions:slot|Slot]]
| |
| |
| |
| |-
| |
| | 8
| |
| | [[Data Types#Definitions:boolean|Boolean]]
| |
| |
| |
| |-
| |
| | 9
| |
| | [[Data Types#Definitions:rotation|Rotation]]
| |
| | 3 [[Data Types#Definitions:float|Floats]]: rotation on x, rotation on y, rotation on z
| |
| |-
| |
| | 10
| |
| | [[Data Types#Position|Position]]
| |
| |
| |
| |-
| |
| | 11
| |
| | OptPosition (Boolean + Position)
| |
| | Position is present if the Boolean is set to true
| |
| |-
| |
| | 12
| |
| | Direction ([[Data Types#Definitions:varint|VarInt]])
| |
| | (Down = 0, Up = 1, North = 2, South = 3, West = 4, East = 5)
| |
| |-
| |
| | 13
| |
| | OptUUID (Boolean + UUID)
| |
| | UUID is present if the Boolean is set to true
| |
| |-
| |
| | 14
| |
| | BlockID ([[Data Types#Definitions:varint|VarInt]])
| |
| |-
| |
| | 15
| |
| | OptBlockID ([[Data Types#Definitions:varint|VarInt]])
| |
| | 0 for absent (implies air); otherwise, a block state ID as per the global palette
| |
| |-
| |
| | 16
| |
| | [[Data_types#Definitions:nbt|NBT]]
| |
| |
| |
| |-
| |
| | 17
| |
| | [[Data Types#Particle|Particle]]
| |
| |
| |
| |-
| |
| | 18
| |
| | Villager Data
| |
| | 3 [[Data Types#Definitions:varint|VarInts]]: villager type, villager profession, level
| |
| |-
| |
| | 19
| |
| | OptVarInt
| |
| | 0 for absent; 1 + actual value otherwise. Used for entity IDs.
| |
| |-
| |
| | 20
| |
| | Pose
| |
| | A [[Data Types#Definitions:varint|VarInt]] enum: 0: STANDING, 1: FALL_FLYING, 2: SLEEPING, 3: SWIMMING, 4: SPIN_ATTACK, 5: SNEAKING, 6: LONG_JUMPING, 7: DYING, 8: CROAKING, 9: USING_TONGUE, 10: SITTING, 11: ROARING, 12: SNIFFING, 13: EMERGING, 14: DIGGING{{change||, 15: SLIDING, 16: SHOOTING, 17: INHALING}}
| |
| |-
| |
| | 21
| |
| | Cat Variant
| |
| | A [[Data Types#Definitions:varint|VarInt]] that points towards the CAT_VARIANT registry.
| |
| |-
| |
| | 22
| |
| | Frog Variant
| |
| | A [[Data Types#Definitions:varint|VarInt]] that points towards the FROG_VARIANT registry.
| |
| |-
| |
| | 23
| |
| | OptGlobalPos (Boolean + GlobalPos)
| |
| | GlobalPos consists of a dimension identifier and [[Data Types#Position|Position]].
| |
| |-
| |
| | 24
| |
| | Painting Variant
| |
| | A [[Data Types#Definitions:varint|VarInt]] that points towards the PAINTING_VARIANT registry.
| |
| |-
| |
| | 25
| |
| | Sniffer State
| |
| | A [[Data Types#Definitions:varint|VarInt]] enum: IDLING = 0, FEELING_HAPPY = 1, SCENTING = 2, SNIFFING = 3, SEARCHING = 4, DIGGING = 5, RISING = 6
| |
| |-
| |
| | 26
| |
| | Vector3
| |
| | 3 [[Data Types#Definitions:float|Floats]]: x, y, z
| |
| |-
| |
| | 27
| |
| | Quaternion
| |
| | 4 [[Data Types#Definitions:float|Floats]]: x, y, z, w
| |
| |-
| |
| |}
| |
|
| |
|
| === Abstract Vehicle === | | === Entity === |
|
| |
|
| {{Metadata inherit|Abstract Vehicle|inherits=Entity|start_at=8}}
| | No changes so far. |
| | |
| {| class="wikitable"
| |
| ! Index
| |
| ! Type
| |
| !style="width: 250px;" colspan="2"| Meaning
| |
| ! Default
| |
| |- {{added}}
| |
| | {{Metadata id|}}
| |
| | VarInt
| |
| |colspan="2"| Shaking power
| |
| | 0
| |
| |- {{added}}
| |
| | {{Metadata id|}}
| |
| | VarInt
| |
| |colspan="2"| Shaking direction
| |
| | 1
| |
| |- {{added}}
| |
| | {{Metadata id|}}
| |
| | Float
| |
| |colspan="2"| Shaking multiplier
| |
| | 0.0
| |
| |-
| |
| |}
| |
| | |
| === Abstract Minecart===
| |
| | |
| {{Metadata inherit|Abstract Minecart|inherits=Abstract Vehicle}}
| |
| | |
| {| class="wikitable"
| |
| ! Index
| |
| ! Type
| |
| !style="width: 250px;" colspan="2"| Meaning
| |
| ! Default
| |
| |- {{removed}}
| |
| | 8
| |
| | VarInt
| |
| |colspan="2"| Shaking power
| |
| | 0
| |
| |- {{removed}}
| |
| | 9
| |
| | VarInt
| |
| |colspan="2"| Shaking direction
| |
| | 1
| |
| |- {{removed}}
| |
| | 10
| |
| | Float
| |
| |colspan="2"| Shaking multiplier
| |
| | 0.0
| |
| |-
| |
| | 11
| |
| | VarInt
| |
| |colspan="2"| Custom block ID and damage
| |
| | 0
| |
| |-
| |
| | 12
| |
| | VarInt
| |
| |colspan="2"| Custom block Y position (in 16ths of a block)
| |
| | 6
| |
| |-
| |
| | 13
| |
| | Boolean
| |
| |colspan="2"| Show custom block
| |
| | false
| |
| |}
| |
| | |
| === Boat ===
| |
| | |
| {{Metadata inherit|Boat|inherits=Abstract Vehicle}}
| |
| | |
| {| class="wikitable"
| |
| ! Index
| |
| ! Type
| |
| !style="width: 250px;" colspan="2"| Meaning
| |
| ! Default
| |
| |- {{removed}}
| |
| | 8
| |
| | VarInt
| |
| |colspan="2"| Time since last hit
| |
| | 0
| |
| |- {{removed}}
| |
| | 9
| |
| | VarInt
| |
| |colspan="2"| Forward direction
| |
| | 1
| |
| |- {{removed}}
| |
| | 10
| |
| | Float
| |
| |colspan="2"| Damage taken
| |
| | 0.0
| |
| |-
| |
| | 11
| |
| | VarInt
| |
| |colspan="2"| Type (0=oak, 1=spruce, 2=birch, 3=jungle, 4=acacia, 5=dark oak)
| |
| | 0
| |
| |-
| |
| | 12
| |
| | Boolean
| |
| |colspan="2"| Is left paddle turning
| |
| | false
| |
| |-
| |
| | 13
| |
| | Boolean
| |
| |colspan="2"| Is right paddle turning
| |
| | false
| |
| |-
| |
| | 14
| |
| | VarInt
| |
| |colspan="2"| Splash timer
| |
| | 0
| |
| |}
| |
|
| |
|
| == Block Actions == | | == Block Actions == |
Line 1,005: |
Line 63: |
| === Clientbound === | | === Clientbound === |
|
| |
|
| ==== Remove Resource Pack (configuration) ====
| | No changes so far. |
| | |
| {| class="wikitable" {{added}}
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="2"| 0x06
| |
| | rowspan="2"| Configuration
| |
| | rowspan="2"| Client
| |
| | Has UUID
| |
| | Boolean
| |
| | Whether a specific resource pack should be removed, or all of them.
| |
| |-
| |
| | UUID
| |
| | Optional UUID
| |
| | The UUID of the resource pack to be removed. Only present if the previous field is true.
| |
| |}
| |
| | |
| ==== Add Resource Pack (configuration) ====
| |
| | |
| {| class="wikitable" {{added}}
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="6"| 0x07
| |
| | rowspan="6"| Configuration
| |
| | rowspan="6"| Client
| |
| | UUID
| |
| | UUID
| |
| | The unique identifier of the resource pack.
| |
| |-
| |
| | URL
| |
| | String (32767)
| |
| | The URL to the resource pack.
| |
| |-
| |
| | Hash
| |
| | String (40)
| |
| | A 40 character hexadecimal, case-insensitive [[wikipedia:SHA-1|SHA-1]] hash of the resource pack file.<br />If it's not a 40 character hexadecimal string, the client will not use it for hash verification and likely waste bandwidth.
| |
| |-
| |
| | Forced
| |
| | Boolean
| |
| | The Notchian client will be forced to use the resource pack from the server. If they decline they will be kicked from the server.
| |
| |-
| |
| | Has Prompt Message
| |
| | Boolean
| |
| | Whether a custom message should be used on the resource pack prompt.
| |
| |-
| |
| | Prompt Message
| |
| | Optional [[Chat]]
| |
| | This is shown in the prompt making the client accept or decline the resource pack. Only present if the previous field is true.
| |
| |}
| |
| | |
| ==== Feature Flags ====
| |
| | |
| Used to enable and disable features, generally experimental ones, on the client.
| |
| | |
| {| class="wikitable"
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="2"| {{change|0x07|0x08}}
| |
| | rowspan="2"| Configuration
| |
| | rowspan="2"| Client
| |
| | Total Features
| |
| | VarInt
| |
| | Number of features that appear in the array below.
| |
| |-
| |
| | Feature Flags
| |
| | Identifier Array
| |
| |
| |
| |}
| |
| | |
| As of {{change|1.20.2|1.20.3}}, the following feature flags are available:
| |
| | |
| * minecraft:vanilla - enables vanilla features</li>
| |
| * minecraft:bundle - enables support for the bundle</li>
| |
| * minecraft:trade_rebalance - enables support for the rebalanced villager trades</li>
| |
| * {{change||minecraft:update_1_21 - enables support for 1.21 features}}</li>
| |
|
| |
|
| === Serverbound === | | === Serverbound === |
|
| |
|
| ==== Resource Pack Response (configuration) ====
| | No changes so far. |
| | |
| {| class="wikitable"
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="3" | 0x05
| |
| | rowspan="3" | Configuration
| |
| | rowspan="3" | Server
| |
| |- {{added}}
| |
| | UUID
| |
| | UUID
| |
| | The unique identifier of the resource pack received in the [[#Add_Resource_Pack_(configuration)|Add Resource Pack (configuration)]] request.
| |
| |-
| |
| | Result
| |
| | VarInt Enum
| |
| | {{change|0: successfully loaded, 1: declined, 2: failed download, 3: accepted.|Result ID (see below).}}
| |
| |}
| |
| | |
| Result can be one of the following values:
| |
| | |
| {| class="wikitable" {{added}}
| |
| ! ID
| |
| ! Result
| |
| |-
| |
| | 0
| |
| | Successfully downloaded
| |
| |-
| |
| | 1
| |
| | Declined
| |
| |-
| |
| | 2
| |
| | Failed to download
| |
| |-
| |
| | 3
| |
| | Accepted
| |
| |-
| |
| | 4
| |
| | Downloaded
| |
| |-
| |
| | 5
| |
| | Invalid URL
| |
| |-
| |
| | 6
| |
| | Failed to reload
| |
| |-
| |
| | 7
| |
| | Discarded
| |
| |}
| |
|
| |
|
| == Play == | | == Play == |
Line 1,156: |
Line 73: |
| === Clientbound === | | === Clientbound === |
|
| |
|
| ==== Explosion ====
| | No changes so far. |
| | |
| Sent when an explosion occurs (creepers, TNT, and ghast fireballs).
| |
| | |
| Each block in Records is set to air. Coordinates for each axis in record is int(X) + record.x
| |
| | |
| {| class="wikitable"
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! colspan="2" | Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="17"| 0x1E
| |
| | rowspan="17"| Play
| |
| | rowspan="17"| Client
| |
| | colspan="2" | X
| |
| | Double
| |
| |
| |
| |-
| |
| | colspan="2" | Y
| |
| | Double
| |
| |
| |
| |-
| |
| | colspan="2" | Z
| |
| | Double
| |
| |
| |
| |-
| |
| | colspan="2" | Strength
| |
| | Float
| |
| | {{change|A strength greater than or equal to 2.0 spawns a <code>minecraft:explosion_emitter</code> particle, while a lesser strength spawns a <code>minecraft:explosion</code> particle.}}
| |
| {{change||If the strength is greater or equal to 2.0, or the block interaction is not 0 (keep), large explosion particles are used. Otherwise, small explosion particles are used.}}
| |
| |-
| |
| | colspan="2" | Record Count
| |
| | VarInt
| |
| | Number of elements in the following array.
| |
| |-
| |
| | colspan="2" | Records
| |
| | Array of (Byte, Byte, Byte)
| |
| | Each record is 3 signed bytes long; the 3 bytes are the XYZ (respectively) signed offsets of affected blocks.
| |
| |-
| |
| | colspan="2" | Player Motion X
| |
| | Float
| |
| | X velocity of the player being pushed by the explosion.
| |
| |-
| |
| | colspan="2" | Player Motion Y
| |
| | Float
| |
| | Y velocity of the player being pushed by the explosion.
| |
| |-
| |
| | colspan="2" | Player Motion Z
| |
| | Float
| |
| | Z velocity of the player being pushed by the explosion.
| |
| |- {{added}}
| |
| | colspan="2" | Block Interaction
| |
| | VarInt Enum
| |
| | 0 = keep, 1 = destroy, 2 = destroy_with_decay, 3 = trigger_block.
| |
| |- {{added}}
| |
| | colspan="2" | Small Explosion Particle ID
| |
| | VarInt
| |
| | The particle ID listed in [[#Particle|the particle data type]].
| |
| |- {{added}}
| |
| | colspan="2" | Small Explosion Particle Data
| |
| | Varies
| |
| | The variable data listed in [[#Particle|the particle data type]].
| |
| |- {{added}}
| |
| | colspan="2" | Large Explosion Particle ID
| |
| | VarInt
| |
| | The particle ID listed in [[#Particle|the particle data type]].
| |
| |- {{added}}
| |
| | colspan="2" | Large Explosion Particle Data
| |
| | Varies
| |
| | The variable data listed in [[#Particle|the particle data type]].
| |
| |- {{added}}
| |
| | rowspan="3" | Explosion Sound
| |
| | Sound Name
| |
| | Identifier
| |
| | The name of the sound played.
| |
| |- {{added}}
| |
| | Has Fixed Range
| |
| | Optional Boolean
| |
| | Whether is has fixed range.
| |
| |- {{added}}
| |
| | Range
| |
| | Optional Float
| |
| | The fixed range of the sound. Only present if previous boolean is true.
| |
| |}
| |
| | |
| ==== Game Event ====
| |
| | |
| Used for a wide variety of game events, from weather to bed use to game mode to demo messages.
| |
| | |
| {| class="wikitable"
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="2"| 0x20
| |
| | rowspan="2"| Play
| |
| | rowspan="2"| Client
| |
| | Event
| |
| | Unsigned Byte
| |
| | See below.
| |
| |-
| |
| | Value
| |
| | Float
| |
| | Depends on Event.
| |
| |}
| |
| | |
| ''Events'':
| |
| | |
| {| class="wikitable"
| |
| ! 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.<br>1: Roll the credits and respawn player.<br>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.<br>101: Tell movement controls.<br>102: Tell jump control.<br>103: Tell inventory control.<br>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.<br>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.<br>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.<br>1: Immediately respawn (sent when the <code>doImmediateRespawn</code> gamerule changes).
| |
| |-
| |
| | 12
| |
| | Limited crafting
| |
| | 0: Disable limited crafting.<br>1: Enable limited crafting (sent when the <code>doLimitedCrafting</code> gamerule changes).
| |
| |- {{added}}
| |
| | 13
| |
| | Start waiting for level chunks
| |
| | Instructs the client to begin the waiting process for the level chunks.<br>Sent by the server after the level is cleared on the client and is being re-sent (either during the first, or subsequent reconfigurations).
| |
| |}
| |
| | |
| ==== Reset Score ====
| |
| | |
| This is sent to the client when it should remove a scoreboard item.
| |
| | |
| {| class="wikitable" {{added}}
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="3"| 0x42
| |
| | rowspan="3"| Play
| |
| | rowspan="3"| Client
| |
| | Entity Name
| |
| | String (32767)
| |
| | The entity whose score this is. For players, this is their username; for other entities, it is their UUID.
| |
| |-
| |
| | Has Objective Name
| |
| | Boolean
| |
| | Whether the score should be removed for the specified objective, or for all of them.
| |
| |-
| |
| | Objective Name
| |
| | Optional String (32767)
| |
| | The name of the objective the score belongs to. Only present if the previous field is true.
| |
| |}
| |
| | |
| ==== Remove Resource Pack (play) ====
| |
| | |
| {| class="wikitable" {{added}}
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="2"| 0x43
| |
| | rowspan="2"| Play
| |
| | rowspan="2"| Client
| |
| | Has UUID
| |
| | Boolean
| |
| | Whether a specific resource pack should be removed, or all of them.
| |
| |-
| |
| | UUID
| |
| | Optional UUID
| |
| | The UUID of the resource pack to be removed. Only present if the previous field is true.
| |
| |}
| |
| | |
| ==== Add Resource Pack (play) ====
| |
| | |
| {| class="wikitable" {{added}}
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="6"| 0x44
| |
| | rowspan="6"| Play
| |
| | rowspan="6"| Client
| |
| | UUID
| |
| | UUID
| |
| | The unique identifier of the resource pack.
| |
| |-
| |
| | URL
| |
| | String (32767)
| |
| | The URL to the resource pack.
| |
| |-
| |
| | Hash
| |
| | String (40)
| |
| | A 40 character hexadecimal, case-insensitive [[wikipedia:SHA-1|SHA-1]] hash of the resource pack file.<br />If it's not a 40 character hexadecimal string, the client will not use it for hash verification and likely waste bandwidth.
| |
| |-
| |
| | Forced
| |
| | Boolean
| |
| | The Notchian client will be forced to use the resource pack from the server. If they decline they will be kicked from the server.
| |
| |-
| |
| | Has Prompt Message
| |
| | Boolean
| |
| | Whether a custom message should be used on the resource pack prompt.
| |
| |-
| |
| | Prompt Message
| |
| | Optional [[Chat]]
| |
| | This is shown in the prompt making the client accept or decline the resource pack. Only present if the previous field is true.
| |
| |}
| |
| | |
| ==== Update Objectives ====
| |
| | |
| This is sent to the client when it should create a new {{Minecraft Wiki|scoreboard}} objective or remove one.
| |
| | |
| {| class="wikitable"
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! colspan="2"| Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="10"| {{change|0x5A|0x5C}}
| |
| | rowspan="10"| Play
| |
| | rowspan="10"| Client
| |
| | colspan="2"| Objective Name
| |
| | String (32767)
| |
| | A unique name for the objective.
| |
| |-
| |
| | colspan="2"| Mode
| |
| | Byte
| |
| | 0 to create the scoreboard. 1 to remove the scoreboard. 2 to update the display text.
| |
| |-
| |
| | colspan="2"| Objective Value
| |
| | Optional Chat
| |
| | Only if mode is 0 or 2.The text to be displayed for the score.
| |
| |-
| |
| | colspan="2"| Type
| |
| | Optional VarInt Enum
| |
| | Only if mode is 0 or 2. 0 = "integer", 1 = "hearts".
| |
| |- {{added}}
| |
| | colspan="2"| Has Number Format
| |
| | Optional Boolean
| |
| | Only if mode is 0 or 2. Whether this objective has a set number format for the scores.
| |
| |- {{added}}
| |
| | colspan="2"| Number Format
| |
| | Optional VarInt Enum
| |
| | Only if mode is 0 or 2 and the previous boolean is true. Determines how the score number should be formatted.
| |
| |- {{added}}
| |
| ! Number Format
| |
| ! Field Name
| |
| !
| |
| !
| |
| |- {{added}}
| |
| | 0: blank
| |
| | ''no fields''
| |
| | ''no fields''
| |
| | Show nothing.
| |
| |- {{added}}
| |
| | 1: styled
| |
| | Styling
| |
| | [[NBT#Specification:compound_tag|Compound Tag]]
| |
| | The styling to be used when formatting the score number. This is similar to a [[Chat]], but only the styling fields are present.
| |
| |- {{added}}
| |
| | 2: fixed
| |
| | Content
| |
| | [[Chat]]
| |
| | The text to be used as placeholder.
| |
| |}
| |
| | |
| ==== Update Score ====
| |
| | |
| This is sent to the client when it should update a scoreboard item.
| |
| | |
| {| class="wikitable"
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="12"| {{change|0x5D|0x5F}}
| |
| | rowspan="12"| Play
| |
| | rowspan="12"| Client
| |
| | colspan="2"| Entity Name
| |
| | String (32767)
| |
| | The entity whose score this is. For players, this is their username; for other entities, it is their UUID.
| |
| |- {{removed}}
| |
| | colspan="2"| Action
| |
| | VarInt Enum
| |
| | 0 to create/update an item. 1 to remove an item.
| |
| |-
| |
| | colspan="2"| Objective Name
| |
| | String (32767)
| |
| | The name of the objective the score belongs to.
| |
| |-
| |
| | colspan="2"| Value
| |
| | {{change|Optional|}} VarInt
| |
| | The score to be displayed next to the entry. {{change|Only sent when Action does not equal 1.|}}
| |
| |- {{added}}
| |
| | colspan="2"| Has Display Name
| |
| | Boolean
| |
| | Whether this score has a custom display name.
| |
| |- {{added}}
| |
| | colspan="2"| Display Name
| |
| | Optional Chat
| |
| | The custom display name. Only present if the previous boolean is true.
| |
| |- {{added}}
| |
| | colspan="2"| Has Number Format
| |
| | Boolean
| |
| | Whether this score has a set number format. This overrides the number format set on the objective, if any.
| |
| |- {{added}}
| |
| | colspan="2"| Number Format
| |
| | Optional VarInt Enum
| |
| | Determines how the score number should be formatted. Only present if the previous boolean is true.
| |
| |- {{added}}
| |
| ! Number Format
| |
| ! Field Name
| |
| !
| |
| !
| |
| |- {{added}}
| |
| | 0: blank
| |
| | ''no fields''
| |
| | ''no fields''
| |
| | Show nothing.
| |
| |- {{added}}
| |
| | 1: styled
| |
| | Styling
| |
| | [[NBT#Specification:compound_tag|Compound Tag]]
| |
| | The styling to be used when formatting the score number. This is similar to a [[Chat]], but only the styling fields are present.
| |
| |- {{added}}
| |
| | 2: fixed
| |
| | Content
| |
| | [[Chat]]
| |
| | The text to be used as placeholder.
| |
| |}
| |
| | |
| ==== Set Ticking State ====
| |
| | |
| Used to adjust the ticking rate of the client, and whether it's frozen.
| |
| | |
| {| class="wikitable" {{added}}
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="2" | 0x6E
| |
| | rowspan="2" | Play
| |
| | rowspan="2" | 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.
| |
| | |
| {| class="wikitable" {{added}}
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | 0x6F
| |
| | Play
| |
| | Client
| |
| | Tick steps
| |
| | VarInt
| |
| |
| |
| |}
| |
| | |
| ==== Update Recipes ====
| |
| | |
| {| class="wikitable"
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! colspan="2"| Field Name
| |
| ! colspan="2"| Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="4"| {{change|0x6F|0x73}}
| |
| | rowspan="4"| Play
| |
| | rowspan="4"| Client
| |
| | colspan="2"| Num Recipes
| |
| | colspan="2"| VarInt
| |
| | Number of elements in the following array.
| |
| |-
| |
| | rowspan="3"| Recipe
| |
| | Type
| |
| | rowspan="3"| Array
| |
| | Identifier
| |
| | The recipe type, see below.
| |
| |-
| |
| | Recipe ID
| |
| | Identifier
| |
| |
| |
| |-
| |
| | Data
| |
| | Varies
| |
| | Additional data for the recipe.
| |
| |}
| |
| | |
| Recipe types:
| |
| | |
| {| class="wikitable"
| |
| ! Type
| |
| ! Description
| |
| ! Data
| |
| |-
| |
| | <code>minecraft:crafting_shapeless</code>
| |
| | Shapeless crafting recipe. All items in the ingredient list must be present, but in any order/slot.
| |
| | As follows:
| |
| {| class="wikitable"
| |
| ! Name
| |
| ! Type
| |
| ! Description
| |
| |-
| |
| | Group
| |
| | String (32767)
| |
| | Used to group similar recipes together in the recipe book. Tag is present in recipe JSON.
| |
| |-
| |
| |Category
| |
| |VarInt Enum
| |
| |Building = 0, Redstone = 1, Equipment = 2, Misc = 3
| |
| |-
| |
| | Ingredient count
| |
| | VarInt
| |
| | Number of elements in the following array.
| |
| |-
| |
| | Ingredients
| |
| | Array of Ingredient.
| |
| |
| |
| |-
| |
| | Result
| |
| | [[Slot]]
| |
| |
| |
| |}
| |
| |-
| |
| | <code>minecraft:crafting_shaped</code>
| |
| | Shaped crafting recipe. All items must be present in the same pattern (which may be flipped horizontally or translated).
| |
| | As follows:
| |
| {| class="wikitable"
| |
| ! Name
| |
| ! Type
| |
| ! Description
| |
| |- {{removed}}
| |
| | Width
| |
| | VarInt
| |
| |
| |
| |- {{removed}}
| |
| | Height
| |
| | VarInt
| |
| |
| |
| |-
| |
| | Group
| |
| | String (32767)
| |
| | Used to group similar recipes together in the recipe book. Tag is present in recipe JSON.
| |
| |-
| |
| |Category
| |
| |VarInt Enum
| |
| |Building = 0, Redstone = 1, Equipment = 2, Misc = 3
| |
| |- {{added}}
| |
| | Width
| |
| | VarInt
| |
| |
| |
| |- {{added}}
| |
| | Height
| |
| | VarInt
| |
| |
| |
| |-
| |
| | Ingredients
| |
| | Array of Ingredient
| |
| | Length is <code>width * height</code>. Indexed by <code>x + (y * width)</code>.
| |
| |-
| |
| | Result
| |
| | [[Slot]]
| |
| |-
| |
| | Show notification
| |
| | Boolean
| |
| | Show a toast when the recipe is [[Protocol#Update_Recipe_Book|added]].
| |
| |}
| |
| |-
| |
| | <code>minecraft:crafting_special_armordye</code>
| |
| | Recipe for dying leather armor
| |
| | rowspan="14" | As follows:
| |
| {| class="wikitable"
| |
| ! Name
| |
| ! Type
| |
| ! Description
| |
| |-
| |
| |Category
| |
| |VarInt Enum
| |
| |Building = 0, Redstone = 1, Equipment = 2, Misc = 3
| |
| |}
| |
| |-
| |
| | <code>minecraft:crafting_special_bookcloning</code>
| |
| | Recipe for copying contents of written books
| |
| |-
| |
| | <code>minecraft:crafting_special_mapcloning</code>
| |
| | Recipe for copying maps
| |
| |-
| |
| | <code>minecraft:crafting_special_mapextending</code>
| |
| | Recipe for adding paper to maps
| |
| |-
| |
| | <code>minecraft:crafting_special_firework_rocket</code>
| |
| | Recipe for making firework rockets
| |
| |-
| |
| | <code>minecraft:crafting_special_firework_star</code>
| |
| | Recipe for making firework stars
| |
| |-
| |
| | <code>minecraft:crafting_special_firework_star_fade</code>
| |
| | Recipe for making firework stars fade between multiple colors
| |
| |-
| |
| | <code>minecraft:crafting_special_repairitem</code>
| |
| | Recipe for repairing items via crafting
| |
| |-
| |
| | <code>minecraft:crafting_special_tippedarrow</code>
| |
| | Recipe for crafting tipped arrows
| |
| |-
| |
| | <code>minecraft:crafting_special_bannerduplicate</code>
| |
| | Recipe for copying banner patterns
| |
| |-
| |
| | <code>minecraft:crafting_special_shielddecoration</code>
| |
| | Recipe for applying a banner's pattern to a shield
| |
| |-
| |
| | <code>minecraft:crafting_special_shulkerboxcoloring</code>
| |
| | Recipe for recoloring a shulker box
| |
| |-
| |
| | <code>minecraft:crafting_special_suspiciousstew</code>
| |
| | Recipe for crafting suspicious stews
| |
| |-
| |
| | <code>minecraft:crafting_decorated_pot</code>
| |
| | Recipe for crafting decorated pots
| |
| |-
| |
| | <code>minecraft:smelting</code>
| |
| | Smelting recipe
| |
| | rowspan="4"| As follows:
| |
| {| class="wikitable"
| |
| ! Name
| |
| ! Type
| |
| ! Description
| |
| |-
| |
| | Group
| |
| | String (32767)
| |
| | Used to group similar recipes together in the recipe book.
| |
| |-
| |
| |Category
| |
| |VarInt Enum
| |
| |Food = 0, Blocks = 1, Misc = 2
| |
| |-
| |
| | Ingredient
| |
| | Ingredient
| |
| |
| |
| |-
| |
| | Result
| |
| | [[Slot]]
| |
| |
| |
| |-
| |
| | Experience
| |
| | Float
| |
| |
| |
| |-
| |
| | Cooking time
| |
| | VarInt
| |
| |
| |
| |}
| |
| |-
| |
| | <code>minecraft:blasting</code>
| |
| | Blast furnace recipe
| |
| |-
| |
| | <code>minecraft:smoking</code>
| |
| | Smoker recipe
| |
| |-
| |
| | <code>minecraft:campfire_cooking</code>
| |
| | Campfire recipe
| |
| |-
| |
| | <code>minecraft:stonecutting</code>
| |
| | Stonecutter recipe
| |
| | As follows:
| |
| {| class="wikitable"
| |
| ! Name
| |
| ! Type
| |
| ! Description
| |
| |-
| |
| | Group
| |
| | String (32767)
| |
| | Used to group similar recipes together in the recipe book. Tag is present in recipe JSON.
| |
| |-
| |
| | Ingredient
| |
| | Ingredient
| |
| |
| |
| |-
| |
| | Result
| |
| | [[Slot]]
| |
| |
| |
| |}
| |
| |-
| |
| | <code>minecraft:smithing_transform</code>
| |
| | Recipe for smithing netherite gear
| |
| | As follows:
| |
| {| class="wikitable"
| |
| ! Name
| |
| ! Type
| |
| ! Description
| |
| |-
| |
| | Template
| |
| | Ingredient
| |
| | The smithing template.
| |
| |-
| |
| | Base
| |
| | Ingredient
| |
| | The base item.
| |
| |-
| |
| | Addition
| |
| | Ingredient
| |
| | The additional ingredient.
| |
| |-
| |
| | Result
| |
| | [[Slot]]
| |
| |
| |
| |}
| |
| |-
| |
| | <code>minecraft:smithing_trim</code>
| |
| | Recipe for applying armor trims
| |
| | As follows:
| |
| {| class="wikitable"
| |
| ! Name
| |
| ! Type
| |
| ! Description
| |
| |-
| |
| | Template
| |
| | Ingredient
| |
| | The smithing template.
| |
| |-
| |
| | Base
| |
| | Ingredient
| |
| | The base item.
| |
| |-
| |
| | Addition
| |
| | Ingredient
| |
| | The additional ingredient.
| |
| |}
| |
| |}
| |
| | |
| Ingredient is defined as:
| |
| | |
| {| class="wikitable"
| |
| ! Name
| |
| ! Type
| |
| ! Description
| |
| |-
| |
| | Count
| |
| | VarInt
| |
| | Number of elements in the following array.
| |
| |-
| |
| | Items
| |
| | Array of [[Slot]]
| |
| | Any item in this array may be used for the recipe. The count of each item should be 1.
| |
| |}
| |
|
| |
|
| === Serverbound === | | === Serverbound === |
|
| |
|
| ==== Change Container Slot State ====
| | No changes so far. |
| | |
| This packet is sent by the client when toggling the state of a Crafter.
| |
| | |
| {| class="wikitable" {{added}}
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="3"| 0x0F
| |
| | rowspan="3"| Play
| |
| | rowspan="3"| 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.
| |
| |}
| |
| | |
| ==== Resource Pack Response (play) ====
| |
| | |
| {| class="wikitable"
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="3" | 0x27
| |
| | rowspan="3" | Play
| |
| | rowspan="3" | Server
| |
| |- {{added}}
| |
| | UUID
| |
| | UUID
| |
| | The unique identifier of the resource pack received in the [[#Add_Resource_Pack_(play)|Add Resource Pack (play)]] request.
| |
| |-
| |
| | Result
| |
| | VarInt Enum
| |
| | {{change|0: successfully loaded, 1: declined, 2: failed download, 3: accepted.|Result ID (see below).}}
| |
| |}
| |
| | |
| Result can be one of the following values:
| |
| | |
| {| class="wikitable" {{added}}
| |
| ! ID
| |
| ! Result
| |
| |-
| |
| | 0
| |
| | Successfully downloaded
| |
| |-
| |
| | 1
| |
| | Declined
| |
| |-
| |
| | 2
| |
| | Failed to download
| |
| |-
| |
| | 3
| |
| | Accepted
| |
| |-
| |
| | 4
| |
| | Invalid URL
| |
| |-
| |
| | 5
| |
| | Failed to reload
| |
| |-
| |
| | 6
| |
| | Discarded
| |
| |}
| |
| | |
| ==== Program Jigsaw Block ====
| |
| | |
| Sent when Done is pressed on the {{Minecraft Wiki|Jigsaw Block}} interface.
| |
|
| |
|
| {| class="wikitable"
| |
| ! Packet ID
| |
| ! State
| |
| ! Bound To
| |
| ! Field Name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | rowspan="8"| 0x2F
| |
| | rowspan="8"| Play
| |
| | rowspan="8"| Server
| |
| | Location
| |
| | Position
| |
| | Block entity location
| |
| |-
| |
| | Name
| |
| | Identifier
| |
| |
| |
| |-
| |
| | Target
| |
| | Identifier
| |
| |
| |
| |-
| |
| | Pool
| |
| | Identifier
| |
| |
| |
| |-
| |
| | Final state
| |
| | String (32767)
| |
| | "Turns into" on the GUI, <code>final_state</code> in NBT.
| |
| |-
| |
| | Joint type
| |
| | String (32767)
| |
| | <code>rollable</code> if the attached piece can be rotated, else <code>aligned</code>.
| |
| |- {{added}}
| |
| | Selection priority
| |
| | VarInt
| |
| |
| |
| |- {{added}}
| |
| | Placement priority
| |
| | VarInt
| |
| |
| |
| |}
| |
|
| |
|
| [[Category:Minecraft Modern]] | | [[Category:Minecraft Modern]] |