Minecraft:Java Edition protocol/Development version: Difference between revisions
More actions
Sync: new page from Minecraft |
Sync: updated from Minecraft |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 302: | Line 302: | ||
{{packet list|Program Command Block Minecart|set_command_minecart}} | {{packet list|Program Command Block Minecart|set_command_minecart}} | ||
{{packet list|Set Creative Mode Slot|set_creative_mode_slot}} | {{packet list|Set Creative Mode Slot|set_creative_mode_slot}} | ||
{{packet list|Set Game | {{packet list|Set Game Rules|set_game_rule|change=added}} | ||
{{packet list|Program Jigsaw Block|set_jigsaw_block}} | {{packet list|Program Jigsaw Block|set_jigsaw_block}} | ||
{{packet list|Program Structure Block|set_structure_block}} | {{packet list|Program Structure Block|set_structure_block}} | ||
| Line 317: | Line 317: | ||
</div> | </div> | ||
</div> | </div> | ||
== Slot data == | |||
{| class="wikitable" | |||
! Name | |||
! Description | |||
! style="width: 50%" | Data | |||
|- {{added}} | |||
| <code>minecraft:use_effects</code> | |||
| | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Can Sprint | |||
| {{Type|Boolean}} | |||
| | |||
|- | |||
| Interact Vibrations | |||
| {{Type|Boolean}} | |||
| | |||
|- | |||
| Speed Multiplier | |||
| {{Type|Float}} | |||
| | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:minimum_attack_charge</code> | |||
| | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Minimum Attack Change | |||
| {{Type|Float}} | |||
| | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:damage_type</code> | |||
| Type of damage dealt by the item in melee. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Damage Type | |||
| {{Type|VarInt}} | |||
| ID in the <code>minecraft:damage_type</code> | |||
|} | |||
|- | |||
| <code>minecraft:damage_resistant</code> | |||
| Marks this item as damage resistant.<br>The client won't render the item as being on-fire if this component is present. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Types | |||
| {{change|{{Type|Identifier}}|{{Type|ID Set}}}} | |||
| {{change|Tag specifying d|D}}amage types the item is immune to.{{change| Not prefixed by '#'!.|}} | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:attack_range</code> | |||
| | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Min Reach | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Max Reach | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Min Creative Reach | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Max Creative Reach | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Hitbox Margin | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Mob Factor | |||
| {{Type|Float}} | |||
| | |||
|} | |||
|- | |||
| <code>minecraft:blocks_attacks</code> | |||
| Makes the item act like a shield. | |||
| As follows: | |||
{| class="wikitable" | |||
! colspan="2"| Name | |||
! colspan="2"| Type | |||
! Description | |||
|- | |||
| colspan="2"| Block delay seconds | |||
| colspan="2"| {{Type|Float}} | |||
| | |||
|- | |||
| colspan="2"| Disable cooldown scale | |||
| colspan="2"| {{Type|Float}} | |||
| | |||
|- | |||
| rowspan="4"| Damage reductions | |||
| Horizontal blocking angle | |||
| rowspan="4"| {{Type|Prefixed Array}} | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Type | |||
| {{Type|Prefixed Optional}} {{Type|ID Set}} | |||
| IDs in the <code>minecraft:damage_type</code> registry. | |||
|- | |||
| Base | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Factor | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| colspan="2"| Item damage threshold | |||
| colspan="2"| {{Type|Float}} | |||
| | |||
|- | |||
| colspan="2"| Item damage base | |||
| colspan="2"| {{Type|Float}} | |||
| | |||
|- | |||
| colspan="2"| Item damage factor | |||
| colspan="2"| {{Type|Float}} | |||
| | |||
|- | |||
| colspan="2"| Bypassed by | |||
| colspan="2"| {{Type|Prefixed Optional}} {{change|{{Type|Identifier}}|{{Type|ID Set}}}} | |||
| {{change||IDs in the <code>minecraft:damage_type</code> registry.}} | |||
|- | |||
| colspan="2"| Block sound | |||
| colspan="2"| {{Type|Prefixed Optional}} {{Type|ID Or}} {{Type|Sound Event}} | |||
| | |||
|- | |||
| colspan="2"| Disable sound | |||
| colspan="2"| {{Type|Prefixed Optional}} {{Type|ID Or}} {{Type|Sound Event}} | |||
| | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:piercing_weapon</code> | |||
| | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Deals Knockback | |||
| {{Type|Boolean}} | |||
| | |||
|- | |||
| Dismounts | |||
| {{Type|Boolean}} | |||
| | |||
|- | |||
| Sound | |||
| {{Type|Optional}} {{Type|Sound Event}} | |||
| | |||
|- | |||
| Hit Sound | |||
| {{Type|Optional}} {{Type|Sound Event}} | |||
| | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:kinetic_weapon</code> | |||
| | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Contact Cooldown Ticks | |||
| {{Type|VarInt}} | |||
| | |||
|- | |||
| Delay Ticks | |||
| {{Type|VarInt}} | |||
| | |||
|- | |||
| Dismount Conditions | |||
| {{Type|Optional}} [[#Kinetic Weapon Conditions|Kinetic Weapon Conditions]] | |||
| | |||
|- | |||
| Knockback Conditions | |||
| {{Type|Optional}} [[#Kinetic Weapon Conditions|Kinetic Weapon Conditions]] | |||
| | |||
|- | |||
| Damage Conditions | |||
| {{Type|Optional}} [[#Kinetic Weapon Conditions|Kinetic Weapon Conditions]] | |||
| | |||
|- | |||
| Forward Movement | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Damage Multiplier | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Sound | |||
| {{Type|Optional}} {{Type|Sound Event}} | |||
| | |||
|- | |||
| Hit Sound | |||
| {{Type|Optional}} {{Type|Sound Event}} | |||
| | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:swing_animation</code> | |||
| | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Type | |||
| {{Type|VarInt}} {{Type|Enum}} | |||
| 0: none, 1: whack, 2: stab | |||
|- | |||
| Duration | |||
| {{Type|VarInt}} | |||
| | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:additional_trade_cost</code> | |||
| | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Additional Trade Cost | |||
| {{Type|VarInt}} | |||
| | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:dye</code> | |||
| Makes the item act like a dye in some contexts. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Color | |||
| [[#Dye_Color|Dye Color]] | |||
|} | |||
|- | |||
| <code>minecraft:provides_trim_material</code> | |||
| Used to make an item into a valid armor trim material. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- {{deleted}} | |||
| Mode | |||
| {{Type|Byte}} {{Type|Enum}} | |||
| Defines how the following field is read, either referenced or direct. | |||
|- {{deleted}} | |||
| Material | |||
| Varies | |||
| | |||
{| class="wikitable" | |||
! Mode | |||
! Data | |||
! Description | |||
|- | |||
| 0 | |||
| {{Type|Identifier}} | |||
| The name of a material. | |||
|- | |||
| 1 | |||
| {{Type|ID or}} [[#Trim Material|Trim Material]] | |||
| An ID in the <code>minecraft:trim_material</code> registry or a direct trim material definition. | |||
|} | |||
|- {{added}} | |||
| Material | |||
| {{Type|ID or}} [[#Trim Material|Trim Material]] | |||
| An ID in the <code>minecraft:trim_material</code> registry or a direct trim material definition. | |||
|} | |||
|- | |||
| <code>minecraft:provides_banner_patterns</code> | |||
| Used to make an item into a valid banner pattern material. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Key | |||
| {{change|{{Type|Identifier}}|{{Type|ID Set}}}} | |||
| {{change|A pattern identifier like <code>#minecraft:pattern_item/globe</code>.|IDs in the <code>minecraft:banner_pattern</code> registry.}} | |||
|} | |||
|- | |||
| <code>minecraft:jukebox_playable</code> | |||
| The song this item will play when inserted into a jukebox.<br>{{warning|The Notchian client assumes that the server will always represent the jukebox song either by name, or reference an entry on its respective registry. Trying to directly specify a jukebox song (when <code>Jukebox Song Type</code> is 0) will cause the client to fail to parse it and subsequently disconnect, which is likely an unintended bug.}} | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- {{deleted}} | |||
| Mode | |||
| {{Type|Byte}} {{Type|Enum}} | |||
| Whether the jukebox song is specified directly, or just referenced by name. This defines how the following field is read. | |||
|- {{deleted}} | |||
| Jukebox Song | |||
| Varies | |||
| | |||
{| class="wikitable" | |||
! Mode | |||
! Data | |||
! Description | |||
|- | |||
| 0 | |||
| {{Type|Identifier}} | |||
| The name of a jukebox song in its respective registry. | |||
|- | |||
| 1 | |||
| {{Type|ID or}} [[#Jukebox Song|Jukebox Song]] | |||
| ID in the <code>minecraft:jukebox_song</code> registry or a direct jukebox song. | |||
|} | |||
|- {{added}} | |||
| Jukebox Song | |||
| {{Type|ID or}} [[#Jukebox Song|Jukebox Song]] | |||
| ID in the <code>minecraft:jukebox_song</code> registry or a direct jukebox song. | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:sulfur_cube_content</code> | |||
| The item contained in a sulfur cube. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Content | |||
| {{Type|Slot}} | |||
| | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:pig/sound_variant</code> | |||
| The type of sounds that a pig makes. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Variant | |||
| {{Type|VarInt}} | |||
| An ID in the <code>minecraft:pig_sound_variant</code> registry. | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:cow/sound_variant</code> | |||
| The type of sounds that a cow makes. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Variant | |||
| {{Type|VarInt}} | |||
| An ID in the <code>minecraft:cow_sound_variant</code> registry. | |||
|} | |||
|- | |||
| <code>minecraft:chicken/variant</code> | |||
| The variant of a chicken. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- {{deleted}} | |||
| Mode | |||
| {{Type|Byte}} {{Type|Enum}} | |||
| Defines how the following field is read. | |||
|- {{deleted}} | |||
| Variant | |||
| Varies | |||
| | |||
{| class="wikitable" | |||
! Mode | |||
! Data | |||
! Description | |||
|- | |||
| 0 | |||
| {{Type|Identifier}} | |||
| The name of a chicken variant. | |||
|- | |||
| 1 | |||
| {{Type|VarInt}} | |||
| An ID in the <code>minecraft:chicken_variant</code> registry. | |||
|} | |||
|- {{added}} | |||
| Variant | |||
| {{Type|VarInt}} | |||
| An ID in the <code>minecraft:chicken_variant</code> registry. | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:chicken/sound_variant</code> | |||
| The type of sounds that a chicken makes. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Variant | |||
| {{Type|VarInt}} | |||
| An ID in the <code>minecraft:chicken_sound_variant</code> registry. | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:zombie_nautilus/variant</code> | |||
| The variant of a zombie nautilus. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Variant | |||
| {{Type|VarInt}} | |||
| An ID in the <code>minecraft:zombie_nautilus_variant</code> registry. | |||
|} | |||
|- {{added}} | |||
| <code>minecraft:cat/sound_variant</code> | |||
| The type of sounds that a cat makes. | |||
| As follows: | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Variant | |||
| {{Type|VarInt}} | |||
| An ID in the <code>minecraft:cat_sound_variant</code> registry. | |||
|} | |||
|} | |||
=== Kinetic Weapon Conditions === | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Max Duration Ticks | |||
| {{Type|VarInt}} | |||
| | |||
|- | |||
| Min Speed | |||
| {{Type|Float}} | |||
| | |||
|- | |||
| Min Relative Speed | |||
| {{Type|Float}} | |||
| | |||
|} | |||
== Login == | |||
=== Clientbound === | |||
==== Login Success ==== | |||
{| class="wikitable" | |||
! colspan="3"| {{packet header|clientbound|Login Success}} | |||
|- | |||
! Field Name | |||
! Field Type | |||
! Notes | |||
|- | |||
| Profile | |||
| {{Type|Game Profile}} | |||
| | |||
|- {{added}} | |||
| Session ID | |||
| {{Type|UUID}} | |||
| | |||
|} | |||
== Recipes == | |||
=== Slot Display structure === | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Slot Display Type | |||
| {{Type|VarInt}} | |||
| ID in the <code>minecraft:slot_display</code> registry. | |||
|- | |||
| Data | |||
| Varies | |||
| See [[#Slot Display types]] below. | |||
|} | |||
==== Slot Display types ==== | |||
{| class="wikitable" | |||
! Name | |||
! Data | |||
|- | |||
| <code>minecraft:empty</code> | |||
| no data | |||
|- | |||
| <code>minecraft:any_fuel</code> | |||
| no data | |||
|- {{added}} | |||
| <code>minecraft:with_any_potion</code> | |||
| [[#minecraft:with_any_potion|data]] | |||
|- {{added}} | |||
| <code>minecraft:only_with_component</code> | |||
| [[#minecraft:only_with_component|data]] | |||
|- | |||
| <code>minecraft:item</code> | |||
| [[#minecraft:item|data]] | |||
|- | |||
| <code>minecraft:item_stack</code> | |||
| [[#minecraft:item_stack|data]] | |||
|- | |||
| <code>minecraft:tag</code> | |||
| [[#minecraft:tag|data]] | |||
|- {{added}} | |||
| <code>minecraft:dyed</code> | |||
| [[#minecraft:dye|data]] | |||
|- | |||
| <code>minecraft:smithing_trim</code> | |||
| [[#minecraft:smithing_trim|data]] | |||
|- | |||
| <code>minecraft:with_remainder</code> | |||
| [[#minecraft:with_remainder|data]] | |||
|- | |||
| <code>minecraft:composite</code> | |||
| [[#minecraft:composite|data]] | |||
|} | |||
==== <code>minecraft:with_any_potion</code> ==== | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Base | |||
| {{Type|Slot Display}} | |||
| | |||
|} | |||
==== <code>minecraft:only_with_component</code> ==== | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Base | |||
| {{Type|Slot Display}} | |||
| | |||
|- | |||
| Component Type ID | |||
| {{Type|VarInt}} | |||
| | |||
|} | |||
==== <code>minecraft:dyed</code> ==== | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Description | |||
|- | |||
| Dye | |||
| {{Type|Slot Display}} | |||
| | |||
|- | |||
| Target | |||
| {{Type|Slot Display}} | |||
| | |||
|} | |||
== Play == | == Play == | ||
=== Clientbound === | === Clientbound === | ||
==== Game Rule Values ==== | |||
{| class="wikitable" | |||
! colspan="5"| {{packet header|clientbound|Game Rule Values}} | |||
|- | |||
! colspan="2"| Field Name | |||
! colspan="2"| Field Type | |||
! Notes | |||
|- | |||
| rowspan="2"| Rules | |||
| Name | |||
| rowspan="2"| {{Type|Prefixed Array}} | |||
| {{Type|Identifier}} | |||
| | |||
|- | |||
| Value | |||
| {{Type|String}} (32767) | |||
| | |||
|} | |||
==== Login (play) ==== | ==== Login (play) ==== | ||
| Line 424: | Line 1,054: | ||
| {{Type|Boolean}} | | {{Type|Boolean}} | ||
| | | | ||
|} | |||
==== Low Disk Space Warning ==== | |||
{| class="wikitable" | |||
! colspan="3"| {{packet header|clientbound|Low Disk Space Warning}} | |||
|- | |||
! Field Name | |||
! Field Type | |||
! Notes | |||
|- | |||
| colspan="3"| ''no fields'' | |||
|} | |} | ||
| Line 575: | Line 1,217: | ||
|} | |} | ||
==== Update Time ==== | |||
Time is based on ticks, where 20 ticks happen every second. There are 24000 ticks in a day, making Minecraft days exactly 20 minutes long. | |||
The time of day is based on the timestamp modulo 24000. 0 is sunrise, 6000 is noon, 12000 is sunset, and 18000 is midnight. | |||
The default SMP server increments the time by <code>20</code> every second. | |||
{| class="wikitable" | |||
! colspan="5"| {{packet header|clientbound|Update Time}} | |||
|- | |||
! colspan="2"| Field Name | |||
! colspan="2"| Field Type | |||
! Notes | |||
|- | |||
| colspan="2"| World Age | |||
| colspan="2"| {{Type|Long}} | |||
| In ticks; not changed by server commands. | |||
|- {{deleted}} | |||
| colspan="2"| Time of day | |||
| colspan="2"| {{Type|Long}} | |||
| The world (or region) time, in ticks. | |||
|- {{deleted}} | |||
| colspan="2"| Time of day increasing | |||
| colspan="2"| {{Type|Boolean}} | |||
| If true, the client should automatically advance the time of day according to its ticking rate. | |||
|- {{added}} | |||
| rowspan="4"| Clocks | |||
| Clock ID | |||
| rowspan="4"| {{Type|Prefixed Array}} | |||
| {{Type|VarInt}} | |||
| ID in the <code>minecraft:world_clock</code> registry. | |||
|- {{added}} | |||
| Time | |||
| {{Type|Long}} | |||
| Current time of the clock, in ticks. | |||
|- {{added}} | |||
| Fractional time | |||
| {{Type|Float}} | |||
| Fractional part of the time in ticks, normally a nonnegative number less than 1. | |||
|- {{added}} | |||
| Rate | |||
| {{Type|Float}} | |||
| Rate at which the client should automatically advance the time of the clock, in clock ticks per client tick. | |||
|} | |||
=== Serverbound === | |||
==== Attack ==== | |||
This packet is sent from the client to the server when the client attacks another entity (a player, minecart, etc). | |||
A vanilla server only accepts this packet if the entity being attacked is visible without obstruction and within a 4-unit radius of the player's position. | |||
{| class="wikitable" | |||
! colspan="3"| {{packet header|serverbound|Attack}} | |||
|- | |||
! Field Name | |||
! Field Type | |||
! Notes | |||
|- | |||
| Entity ID | |||
| {{Type|VarInt}} | |||
| The ID of the attacked entity. Note the special case of the ender dragon described on the {{packet|Interact}} packet. | |||
|} | |||
==== Client Status ==== | |||
{| class="wikitable" | |||
! colspan="3"| {{packet header|serverbound|Client Status}} | |||
|- | |||
! Field Name | |||
! Field Type | |||
! Notes | |||
|- | |||
| Action ID | |||
| {{Type|VarInt}} {{Type|Enum}} | |||
| See below | |||
|} | |||
''Action ID'' values: | |||
{| class="wikitable" | |||
|- | |||
! Action ID | |||
! Action | |||
! Notes | |||
|- | |||
| 0 | |||
| Perform respawn | |||
| Sent when the client is ready to respawn after death. | |||
|- | |||
| 1 | |||
| Request stats | |||
| Sent when the client opens the Statistics menu. | |||
|- {{added}} | |||
| 2 | |||
| Request game rule values | |||
| Sent when the client opens the Edit Game Rules menu. | |||
|} | |||
==== Interact ==== | |||
This packet is sent from the client to the server when the client {{change|attacks or |}}right-clicks another entity (a player, minecart, etc). | |||
A vanilla server only accepts this packet if the entity being {{change|attacked/|}}used is visible without obstruction and within a 4-unit radius of the player's position. | |||
The target {{change|X, Y, and Z fields|offset field}} represent{{change||s}} the difference between the vector location of the cursor at the time of the packet and the entity's position. | |||
Note that middle-click in creative mode is interpreted by the client and sent as a {{packet|Set Creative Mode Slot}} packet instead. | |||
{| class="wikitable" | |||
! colspan="3"| {{packet header|serverbound|Interact}} | |||
|- | |||
! Field Name | |||
! Field Type | |||
! Notes | |||
|- | |||
| Entity ID | |||
| {{Type|VarInt}} | |||
| The ID of the entity to interact. Note the special case described below. | |||
|- {{deleted}} | |||
| Type | |||
| {{Type|VarInt}} {{Type|Enum}} | |||
| 0: interact, 1: attack, 2: interact at. | |||
|- {{deleted}} | |||
| Target X | |||
| {{Type|Optional}} {{Type|Float}} | |||
| Only if Type is interact at. | |||
|- {{deleted}} | |||
| Target Y | |||
| {{Type|Optional}} {{Type|Float}} | |||
| Only if Type is interact at. | |||
|- {{deleted}} | |||
| Target Z | |||
| {{Type|Optional}} {{Type|Float}} | |||
| Only if Type is interact at. | |||
|- | |||
| Hand | |||
| {{change|{{Type|Optional}}|}} {{Type|VarInt}} {{Type|Enum}} | |||
| Only if Type is interact or interact at; 0: main hand, 1: off hand. | |||
|- {{added}} | |||
| Target offset | |||
| {{Type|LpVec3}} | |||
| | |||
|- | |||
| Sneak Key Pressed | |||
| {{Type|Boolean}} | |||
| If the client is pressing the sneak key. Has the same effect as a Player Command Press/Release sneak key preceding the interaction, and the state is permanently changed. | |||
|} | |||
Interaction with the ender dragon is an odd special case characteristic of release deadline–driven design. 8 consecutive entity IDs following the dragon's ID (<var>id</var> + 1, <var>id</var> + 2, ..., <var>id</var> + 8) are reserved for the 8 hitboxes that make up the dragon: | |||
{| class="wikitable" | |||
! ID offset | |||
! Description | |||
|- | |||
| 0 | |||
| The dragon itself (never used in this packet) | |||
|- | |||
| 1 | |||
| Head | |||
|- | |||
| 2 | |||
| Neck | |||
|- | |||
| 3 | |||
| Body | |||
|- | |||
| 4 | |||
| Tail 1 | |||
|- | |||
| 5 | |||
| Tail 2 | |||
|- | |||
| 6 | |||
| Tail 3 | |||
|- | |||
| 7 | |||
| Wing 1 | |||
|- | |||
| 8 | |||
| Wing 2 | |||
|} | |||
==== Player Action ==== | |||
Sent when the player mines a block. A vanilla server only accepts digging packets with coordinates within a 6-unit radius between the center of the block and the player's eyes. | |||
{| class="wikitable" | |||
! colspan="3"| {{packet header|serverbound|Player Action}} | |||
|- | |||
! Field Name | |||
! Field Type | |||
! Notes | |||
|- | |||
| Status | |||
| {{Type|VarInt}} {{Type|Enum}} | |||
| The action the player is taking against the block (see below). | |||
|- | |||
| Location | |||
| {{Type|Position}} | |||
| Block position. | |||
|- | |||
| Face | |||
| {{Type|Byte}} {{Type|Enum}} | |||
| The face being hit (see below). | |||
|- | |||
| Sequence | |||
| {{Type|VarInt}} | |||
| Block change sequence number (see [[#Acknowledge Block Change]]). | |||
|} | |||
Status can be one of seven values: | |||
{| class="wikitable" | |||
! Value | |||
! Meaning | |||
! Notes | |||
|- | |||
| 0 | |||
| Started digging | |||
| Sent when the player starts digging a block. If the block was instamined or the player is in creative mode, the client will ''not'' send Status = Finished digging, and will assume the server completed the destruction. To detect this, it is necessary to [[Minecraft:Breaking#Speed|calculate the block destruction speed]] server-side. | |||
|- | |||
| 1 | |||
| Cancelled digging | |||
| Sent when the player lets go of the Mine Block key (default: left click). Face is always set to -Y. | |||
|- | |||
| 2 | |||
| Finished digging | |||
| Sent when the client thinks it is finished. | |||
|- | |||
| 3 | |||
| Drop item stack | |||
| Triggered by using the Drop Item key (default: Q) with the modifier to drop the entire selected stack (default: Control or Command, depending on OS). Location is always set to 0/0/0, Face is always set to -Y. Sequence is always set to 0. | |||
|- | |||
| 4 | |||
| Drop item | |||
| Triggered by using the Drop Item key (default: Q). Location is always set to 0/0/0, Face is always set to -Y. Sequence is always set to 0. | |||
|- | |||
| 5 | |||
| Shoot arrow / finish eating | |||
| Indicates that the currently held item should have its state updated, such as eating food, pulling back bows, using buckets, etc. Location is always set to 0/0/0, Face is always set to -Y. Sequence is always set to 0. | |||
|- | |||
| 6 | |||
| Swap item in hand | |||
| Used to swap or assign an item to the second hand. Location is always set to 0/0/0, Face is always set to -Y. Sequence is always set to 0. | |||
|- {{added}} | |||
| 7 | |||
| Stab | |||
| | |||
|} | |||
The Face field can be one of the following values, representing the face being hit: | |||
{| class="wikitable" | |||
|- | |||
! Value | |||
! Offset | |||
! Face | |||
|- | |||
| 0 | |||
| -Y | |||
| Bottom | |||
|- | |||
| 1 | |||
| +Y | |||
| Top | |||
|- | |||
| 2 | |||
| -Z | |||
| North | |||
|- | |||
| 3 | |||
| +Z | |||
| South | |||
|- | |||
| 4 | |||
| -X | |||
| West | |||
|- | |||
| 5 | |||
| +X | |||
| East | |||
|} | |||
==== Set Game Rules ==== | |||
{| class="wikitable" | |||
! colspan="5"| {{packet header|serverbound|Set Game Rules}} | |||
|- | |||
! colspan="2"| Field Name | |||
! colspan="2"| Field Type | |||
! Notes | |||
|- | |||
| rowspan="2"| Rules | |||
| Name | |||
| rowspan="2"| {{Type|Prefixed Array}} | |||
| {{Type|Identifier}} | |||
| | |||
|- | |||
| Value | |||
| {{Type|String}} (32767) | |||
| | |||
|} | |||
==== Spectator Action ==== | |||
Sent when the player left-clicks in spectator mode. | |||
{| class="wikitable" | |||
! colspan="3"| {{packet header|serverbound|Spectator Action}} | |||
|- | |||
! Field Name | |||
! Field Type | |||
! Notes | |||
|- | |||
| Entity ID | |||
| {{Type|VarInt}} | |||
| If 0, the player was not targeting an entity. Otherwise the ID of the targeted entity plus 1. | |||
|} | |||
[[Category:Java Edition protocol]] | [[Category:Java Edition protocol]] | ||
{{license wiki.vg}} | {{license wiki.vg}} | ||
Latest revision as of 11:08, 22 June 2026
This page documents the changes from release 1.21.10 (protocol 773) to the current release (26.2, protocol 776). The stable protocol documentation is currently lagging behind, and the changes documented here will be merged soon, once they are complete. For previous development version pages, see the Protocol version numbers page.
One who wishes to commandeer the merging of this into the Java Edition protocol pages when an update is made must be sure to respect any changes that may have occurred to the respective packets there.
Contents
Data types
No changes so far.
Packets
Handshaking
Template:Packet list/begin Template:Packet list
|}
Status
Login
Configuration
Template:Packet list/begin Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list
|}
Play
Template:Packet list/begin Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list
|}
Template:Packet list/begin Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list Template:Packet list
|}
Slot data
| Name | Description | Data | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
minecraft:use_effects
|
As follows:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:minimum_attack_charge
|
As follows:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:damage_type
|
Type of damage dealt by the item in melee. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:damage_resistant
|
Marks this item as damage resistant. The client won't render the item as being on-fire if this component is present. |
As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:attack_range
|
As follows:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:blocks_attacks
|
Makes the item act like a shield. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:piercing_weapon
|
As follows:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:kinetic_weapon
|
As follows:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:swing_animation
|
As follows:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:additional_trade_cost
|
As follows:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:dye
|
Makes the item act like a dye in some contexts. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:provides_trim_material
|
Used to make an item into a valid armor trim material. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:provides_banner_patterns
|
Used to make an item into a valid banner pattern material. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:jukebox_playable
|
The song this item will play when inserted into a jukebox. Template:Warning |
As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:sulfur_cube_content
|
The item contained in a sulfur cube. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:pig/sound_variant
|
The type of sounds that a pig makes. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:cow/sound_variant
|
The type of sounds that a cow makes. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:chicken/variant
|
The variant of a chicken. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:chicken/sound_variant
|
The type of sounds that a chicken makes. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:zombie_nautilus/variant
|
The variant of a zombie nautilus. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minecraft:cat/sound_variant
|
The type of sounds that a cat makes. | As follows:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kinetic Weapon Conditions
| Name | Type | Description |
|---|---|---|
| Max Duration Ticks | Template:Type | |
| Min Speed | Template:Type | |
| Min Relative Speed | Template:Type |
Login
Clientbound
Login Success
| Template:Packet header | ||
|---|---|---|
| Field Name | Field Type | Notes |
| Profile | Template:Type | |
| Session ID | Template:Type | |
Recipes
Slot Display structure
| Name | Type | Description |
|---|---|---|
| Slot Display Type | Template:Type | ID in the minecraft:slot_display registry.
|
| Data | Varies | See #Slot Display types below. |
Slot Display types
| Name | Data |
|---|---|
minecraft:empty
|
no data |
minecraft:any_fuel
|
no data |
minecraft:with_any_potion
|
data |
minecraft:only_with_component
|
data |
minecraft:item
|
data |
minecraft:item_stack
|
data |
minecraft:tag
|
data |
minecraft:dyed
|
data |
minecraft:smithing_trim
|
data |
minecraft:with_remainder
|
data |
minecraft:composite
|
data |
minecraft:with_any_potion
| Name | Type | Description |
|---|---|---|
| Base | Template:Type |
minecraft:only_with_component
| Name | Type | Description |
|---|---|---|
| Base | Template:Type | |
| Component Type ID | Template:Type |
minecraft:dyed
| Name | Type | Description |
|---|---|---|
| Dye | Template:Type | |
| Target | Template:Type |
Play
Clientbound
Game Rule Values
| Template:Packet header | ||||
|---|---|---|---|---|
| Field Name | Field Type | Notes | ||
| Rules | Name | Template:Type | Template:Type | |
| Value | Template:Type (32767) | |||
Login (play)
See Minecraft:protocol encryption for information on logging in.
| Template:Packet header | ||
|---|---|---|
| Field Name | Field Type | Notes |
| Entity ID | Template:Type | The player's Entity ID (EID). |
| Is hardcore | Template:Type | |
| Dimension Names | Template:Type of Template:Type | Identifiers for all dimensions on the server. |
| Max Players | Template:Type | Was once used by the client to draw the tab list, but now it is ignored. |
| View Distance | Template:Type | Render distance (2-32). |
| Simulation Distance | Template:Type | Server simulation distance. See Template:Packet. |
| Reduced Debug Info | Template:Type | If true, a vanilla client shows reduced information on the Minecraft:debug screen. For servers in development, this should almost always be false. |
| Enable respawn screen | Template:Type | Set to false when the doImmediateRespawn gamerule is true. |
| Do limited crafting | Template:Type | Whether players can only craft recipes they have already unlocked. Currently unused by the client. |
| Dimension Type | Template:Type | The ID of the type of dimension in the minecraft:dimension_type registry, defined by the Registry Data packet.
|
| Dimension Name | Template:Type | Name of the dimension being spawned into. |
| Hashed seed | Template:Type | First 8 bytes of the SHA-256 hash of the world's seed. Used client-side for biome noise |
| Game mode | Template:Type | 0: Survival, 1: Creative, 2: Adventure, 3: Spectator. |
| Previous Game mode | Template:Type | -1: Undefined (null), 0: Survival, 1: Creative, 2: Adventure, 3: Spectator. The previous game mode. Vanilla client uses this for the debug (F3 + N & F3 + F4) game mode switch. (More information needed) |
| Is Debug | Template:Type | True if the world is a Minecraft:debug mode world; debug mode worlds cannot be modified and have predefined blocks. |
| Is Flat | Template:Type | True if the world is a Minecraft:superflat world; flat worlds have different void fog and a horizon at y=0 instead of y=63. |
| Has death location | Template:Type | If true, then the next two fields are present. |
| Death dimension name | Template:Type Template:Type | Name of the dimension the player died in. |
| Death location | Template:Type Template:Type | The location that the player died at. |
| Portal cooldown | Template:Type | The number of ticks until the player can use the last used portal again. Looks like it's an attempt to fix MC-180. |
| Sea level | Template:Type | |
| Online mode | Template:Type | |
| Enforces Secure Chat | Template:Type | |
Low Disk Space Warning
| Template:Packet header | ||
|---|---|---|
| Field Name | Field Type | Notes |
| no fields | ||
Update Teams
Creates and updates teams.
| Template:Packet header | ||||
|---|---|---|---|---|
| Field Name | Field Type | Notes | ||
| Team Name | Template:Type (32767) | A unique name for the team. (Shared with scoreboard). | ||
| Method | Template:Type | Determines the layout of the remaining packet. | ||
| 0: create team | Team Display Name | Template:Type | ||
| Friendly Flags | Template:Type | Bit mask. 0x01: Allow friendly fire, 0x02: can see invisible players on the same team. | ||
| Team Prefix | Template:Type | Displayed before the names of players that are part of this team. | ||
| Team Suffix | Template:Type | Displayed after the names of players that are part of this team. | ||
| Name Tag Visibility | Template:Type Template:Type | 0 = ALWAYS, 1 = NEVER, 2 = HIDE_FOR_OTHER_TEAMS, 3 = HIDE_FOR_OWN_TEAMS | ||
| Collision Rule | Template:Type Template:Type | 0 = ALWAYS, 1 = NEVER, 2 = PUSH_OTHER_TEAMS, 3 = PUSH_OWN_TEAM | ||
| Team Color | Template:Type Template:Type | Used to color the names of players on the team; see below. | ||
| Friendly Flags | Template:Type | Bit mask. 0x01: Allow friendly fire, 0x02: can see invisible players on the same team. | ||
| Team Prefix | Template:Type | Displayed before the names of players that are part of this team. | ||
| Team Suffix | Template:Type | Displayed after the names of players that are part of this team. | ||
| Entities | Template:Type of Template:Type (32767) | Identifiers for the entities in this team. For players, this is their username; for other entities, it is their UUID. | ||
| 1: remove team | no fields | no fields | ||
| 2: update team info | Team Display Name | Template:Type | ||
| Friendly Flags | Template:Type | Bit mask. 0x01: Allow friendly fire, 0x02: can see invisible entities on the same team. | ||
| Team Prefix | Template:Type | Displayed before the names of players that are part of this team. | ||
| Team Suffix | Template:Type | Displayed after the names of players that are part of this team. | ||
| Name Tag Visibility | Template:Type Template:Type | 0 = ALWAYS, 1 = NEVER, 2 = HIDE_FOR_OTHER_TEAMS, 3 = HIDE_FOR_OWN_TEAMS | ||
| Collision Rule | Template:Type Template:Type | 0 = ALWAYS, 1 = NEVER, 2 = PUSH_OTHER_TEAMS, 3 = PUSH_OWN_TEAM | ||
| Team Color | Template:Type Template:Type | Used to color the names of players on the team; see below. | ||
| Friendly Flags | Template:Type | Bit mask. 0x01: Allow friendly fire, 0x02: can see invisible players on the same team. | ||
| Team Prefix | Template:Type | Displayed before the names of players that are part of this team. | ||
| Team Suffix | Template:Type | Displayed after the names of players that are part of this team. | ||
| 3: add entities to team | Entities | Template:Type of Template:Type (32767) | Identifiers for the added entities. For players, this is their username; for other entities, it is their UUID. | |
| 4: remove entities from team | Entities | Template:Type of Template:Type (32767) | Identifiers for the removed entities. For players, this is their username; for other entities, it is their UUID. | |
Team Color: The color of a team defines how the names of the team members are visualized; any formatting code can be used. The following table lists all the possible values.
| ID | Formatting |
|---|---|
| 0-15 | Color formatting, same values as in Minecraft:Formatting codes#Color codes. |
| 16 | Obfuscated |
| 17 | Bold |
| 18 | Strikethrough |
| 19 | Underlined |
| 20 | Italic |
| 21 | Reset |
Update Time
Time is based on ticks, where 20 ticks happen every second. There are 24000 ticks in a day, making Minecraft days exactly 20 minutes long.
The time of day is based on the timestamp modulo 24000. 0 is sunrise, 6000 is noon, 12000 is sunset, and 18000 is midnight.
The default SMP server increments the time by 20 every second.
| Template:Packet header | ||||
|---|---|---|---|---|
| Field Name | Field Type | Notes | ||
| World Age | Template:Type | In ticks; not changed by server commands. | ||
| Time of day | Template:Type | The world (or region) time, in ticks. | ||
| Time of day increasing | Template:Type | If true, the client should automatically advance the time of day according to its ticking rate. | ||
| Clocks | Clock ID | Template:Type | Template:Type | ID in the minecraft:world_clock registry.
|
| Time | Template:Type | Current time of the clock, in ticks. | ||
| Fractional time | Template:Type | Fractional part of the time in ticks, normally a nonnegative number less than 1. | ||
| Rate | Template:Type | Rate at which the client should automatically advance the time of the clock, in clock ticks per client tick. | ||
Serverbound
Attack
This packet is sent from the client to the server when the client attacks another entity (a player, minecart, etc).
A vanilla server only accepts this packet if the entity being attacked is visible without obstruction and within a 4-unit radius of the player's position.
| Template:Packet header | ||
|---|---|---|
| Field Name | Field Type | Notes |
| Entity ID | Template:Type | The ID of the attacked entity. Note the special case of the ender dragon described on the Template:Packet packet. |
Client Status
| Template:Packet header | ||
|---|---|---|
| Field Name | Field Type | Notes |
| Action ID | Template:Type Template:Type | See below |
Action ID values:
| Action ID | Action | Notes |
|---|---|---|
| 0 | Perform respawn | Sent when the client is ready to respawn after death. |
| 1 | Request stats | Sent when the client opens the Statistics menu. |
| 2 | Request game rule values | Sent when the client opens the Edit Game Rules menu. |
Interact
This packet is sent from the client to the server when the client Template:Changeright-clicks another entity (a player, minecart, etc).
A vanilla server only accepts this packet if the entity being Template:Changeused is visible without obstruction and within a 4-unit radius of the player's position.
The target Template:Change representTemplate:Change the difference between the vector location of the cursor at the time of the packet and the entity's position.
Note that middle-click in creative mode is interpreted by the client and sent as a Template:Packet packet instead.
| Template:Packet header | ||
|---|---|---|
| Field Name | Field Type | Notes |
| Entity ID | Template:Type | The ID of the entity to interact. Note the special case described below. |
| Type | Template:Type Template:Type | 0: interact, 1: attack, 2: interact at. |
| Target X | Template:Type Template:Type | Only if Type is interact at. |
| Target Y | Template:Type Template:Type | Only if Type is interact at. |
| Target Z | Template:Type Template:Type | Only if Type is interact at. |
| Hand | Template:Change Template:Type Template:Type | Only if Type is interact or interact at; 0: main hand, 1: off hand. |
| Target offset | Template:Type | |
| Sneak Key Pressed | Template:Type | If the client is pressing the sneak key. Has the same effect as a Player Command Press/Release sneak key preceding the interaction, and the state is permanently changed. |
Interaction with the ender dragon is an odd special case characteristic of release deadline–driven design. 8 consecutive entity IDs following the dragon's ID (id + 1, id + 2, ..., id + 8) are reserved for the 8 hitboxes that make up the dragon:
| ID offset | Description |
|---|---|
| 0 | The dragon itself (never used in this packet) |
| 1 | Head |
| 2 | Neck |
| 3 | Body |
| 4 | Tail 1 |
| 5 | Tail 2 |
| 6 | Tail 3 |
| 7 | Wing 1 |
| 8 | Wing 2 |
Player Action
Sent when the player mines a block. A vanilla server only accepts digging packets with coordinates within a 6-unit radius between the center of the block and the player's eyes.
| Template:Packet header | ||
|---|---|---|
| Field Name | Field Type | Notes |
| Status | Template:Type Template:Type | The action the player is taking against the block (see below). |
| Location | Template:Type | Block position. |
| Face | Template:Type Template:Type | The face being hit (see below). |
| Sequence | Template:Type | Block change sequence number (see #Acknowledge Block Change). |
Status can be one of seven values:
| Value | Meaning | Notes |
|---|---|---|
| 0 | Started digging | Sent when the player starts digging a block. If the block was instamined or the player is in creative mode, the client will not send Status = Finished digging, and will assume the server completed the destruction. To detect this, it is necessary to calculate the block destruction speed server-side. |
| 1 | Cancelled digging | Sent when the player lets go of the Mine Block key (default: left click). Face is always set to -Y. |
| 2 | Finished digging | Sent when the client thinks it is finished. |
| 3 | Drop item stack | Triggered by using the Drop Item key (default: Q) with the modifier to drop the entire selected stack (default: Control or Command, depending on OS). Location is always set to 0/0/0, Face is always set to -Y. Sequence is always set to 0. |
| 4 | Drop item | Triggered by using the Drop Item key (default: Q). Location is always set to 0/0/0, Face is always set to -Y. Sequence is always set to 0. |
| 5 | Shoot arrow / finish eating | Indicates that the currently held item should have its state updated, such as eating food, pulling back bows, using buckets, etc. Location is always set to 0/0/0, Face is always set to -Y. Sequence is always set to 0. |
| 6 | Swap item in hand | Used to swap or assign an item to the second hand. Location is always set to 0/0/0, Face is always set to -Y. Sequence is always set to 0. |
| 7 | Stab |
The Face field can be one of the following values, representing the face being hit:
| Value | Offset | Face |
|---|---|---|
| 0 | -Y | Bottom |
| 1 | +Y | Top |
| 2 | -Z | North |
| 3 | +Z | South |
| 4 | -X | West |
| 5 | +X | East |
Set Game Rules
| Template:Packet header | ||||
|---|---|---|---|---|
| Field Name | Field Type | Notes | ||
| Rules | Name | Template:Type | Template:Type | |
| Value | Template:Type (32767) | |||
Spectator Action
Sent when the player left-clicks in spectator mode.
| Template:Packet header | ||
|---|---|---|
| Field Name | Field Type | Notes |
| Entity ID | Template:Type | If 0, the player was not targeting an entity. Otherwise the ID of the targeted entity plus 1. |