Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Java Edition protocol/Development version

From SAS Gaming Wiki

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

|}

Login

Configuration

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:
Name Type Description
Can Sprint Template:Type
Interact Vibrations Template:Type
Speed Multiplier Template:Type
minecraft:minimum_attack_charge As follows:
Name Type Description
Minimum Attack Change Template:Type
minecraft:damage_type Type of damage dealt by the item in melee. As follows:
Name Type Description
Damage Type Template:Type ID in the minecraft:damage_type
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:
Name Type Description
Types Template:Change Template:Changeamage types the item is immune to.Template:Change
minecraft:attack_range As follows:
Name Type Description
Min Reach Template:Type
Max Reach Template:Type
Min Creative Reach Template:Type
Max Creative Reach Template:Type
Hitbox Margin Template:Type
Mob Factor Template:Type
minecraft:blocks_attacks Makes the item act like a shield. As follows:
Name Type Description
Block delay seconds Template:Type
Disable cooldown scale Template:Type
Damage reductions Horizontal blocking angle Template:Type Template:Type
Type Template:Type Template:Type IDs in the minecraft:damage_type registry.
Base Template:Type
Factor Template:Type
Item damage threshold Template:Type
Item damage base Template:Type
Item damage factor Template:Type
Bypassed by Template:Type Template:Change Template:Change
Block sound Template:Type Template:Type Template:Type
Disable sound Template:Type Template:Type Template:Type
minecraft:piercing_weapon As follows:
Name Type Description
Deals Knockback Template:Type
Dismounts Template:Type
Sound Template:Type Template:Type
Hit Sound Template:Type Template:Type
minecraft:kinetic_weapon As follows:
Name Type Description
Contact Cooldown Ticks Template:Type
Delay Ticks Template:Type
Dismount Conditions Template:Type Kinetic Weapon Conditions
Knockback Conditions Template:Type Kinetic Weapon Conditions
Damage Conditions Template:Type Kinetic Weapon Conditions
Forward Movement Template:Type
Damage Multiplier Template:Type
Sound Template:Type Template:Type
Hit Sound Template:Type Template:Type
minecraft:swing_animation As follows:
Name Type Description
Type Template:Type Template:Type 0: none, 1: whack, 2: stab
Duration Template:Type
minecraft:additional_trade_cost As follows:
Name Type Description
Additional Trade Cost Template:Type
minecraft:dye Makes the item act like a dye in some contexts. As follows:
Name Type Description
Color Dye Color
minecraft:provides_trim_material Used to make an item into a valid armor trim material. As follows:
Name Type Description
Mode Template:Type Template:Type Defines how the following field is read, either referenced or direct.
Material Varies
Mode Data Description
0 Template:Type The name of a material.
1 Template:Type Trim Material An ID in the minecraft:trim_material registry or a direct trim material definition.
Material Template:Type Trim Material An ID in the minecraft:trim_material registry or a direct trim material definition.
minecraft:provides_banner_patterns Used to make an item into a valid banner pattern material. As follows:
Name Type Description
Key Template:Change Template:Change
minecraft:jukebox_playable The song this item will play when inserted into a jukebox.
Template:Warning
As follows:
Name Type Description
Mode Template:Type Template:Type Whether the jukebox song is specified directly, or just referenced by name. This defines how the following field is read.
Jukebox Song Varies
Mode Data Description
0 Template:Type The name of a jukebox song in its respective registry.
1 Template:Type Jukebox Song ID in the minecraft:jukebox_song registry or a direct jukebox song.
Jukebox Song Template:Type Jukebox Song ID in the minecraft:jukebox_song registry or a direct jukebox song.
minecraft:sulfur_cube_content The item contained in a sulfur cube. As follows:
Name Type Description
Content Template:Type
minecraft:pig/sound_variant The type of sounds that a pig makes. As follows:
Name Type Description
Variant Template:Type An ID in the minecraft:pig_sound_variant registry.
minecraft:cow/sound_variant The type of sounds that a cow makes. As follows:
Name Type Description
Variant Template:Type An ID in the minecraft:cow_sound_variant registry.
minecraft:chicken/variant The variant of a chicken. As follows:
Name Type Description
Mode Template:Type Template:Type Defines how the following field is read.
Variant Varies
Mode Data Description
0 Template:Type The name of a chicken variant.
1 Template:Type An ID in the minecraft:chicken_variant registry.
Variant Template:Type An ID in the minecraft:chicken_variant registry.
minecraft:chicken/sound_variant The type of sounds that a chicken makes. As follows:
Name Type Description
Variant Template:Type An ID in the minecraft:chicken_sound_variant registry.
minecraft:zombie_nautilus/variant The variant of a zombie nautilus. As follows:
Name Type Description
Variant Template:Type An ID in the minecraft:zombie_nautilus_variant registry.
minecraft:cat/sound_variant The type of sounds that a cat makes. As follows:
Name Type Description
Variant Template:Type An ID in the minecraft:cat_sound_variant registry.

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.

Template:License wiki.vg