Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x48 | Play | Client | Collected Entity ID | VarInt | |
Collector Entity ID | VarInt |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x04 | Play | Client | Entity ID | VarInt | |
Entity UUID | UUID | ||||
Title | String | Name of the painting. Max length 13 | |||
Location | Position | Center coordinates (see below) | |||
Direction | Byte Enum | Direction the painting faces (North = 2, South = 0, West = 1, East = 3) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0E | Play | Client | Count | VarInt | Number of elements in the following array |
Matches | Array of String | One eligible command, note that each command is sent separately instead of in a single string, hence the need for Count |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x34 | Play | Client | Entity ID | VarInt | |
Head Yaw | Angle | New angle, not a delta |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1C | Play | Server | Location | Position | Block position |
Face | VarInt Enum | The face on which the block is placed (as documented at Player Digging) | |||
Hand | VarInt Enum | The hand from which the block is placed; 0: main hand, 1: off hand | |||
Cursor Position X | Unsigned Byte | The position of the crosshair on the block, from 0 to 15 increasing from west to east | |||
Cursor Position Y | Unsigned Byte | The position of the crosshair on the block, from 0 to 15 increasing from bottom to top | |||
Cursor Position Z | Unsigned Byte | The position of the crosshair on the block, from 0 to 15 increasing from north to south |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x01 | Status | Client | Payload | Long | Should be the same as sent by the client |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x3A | Play | Client | Attached Entity ID | Int | Attached entity's EID |
Holding Entity ID | Int | ID of the entity holding the lead. Set to -1 to detach. |
Field Name | Field Type | Notes |
---|---|---|
UUID | UUID | |
Amount | Double | May be positive or negative |
Operation | Byte | See below |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x31 | Play | Client | Entity ID | VarInt | |
Effect ID | Byte | See this table |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x27 | Play | Client | Entity ID | VarInt | |
Yaw | Angle | New angle, not a delta | |||
Pitch | Angle | New angle, not a delta | |||
On Ground | Boolean |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x49 | Play | Client | Entity ID | VarInt | |
X | Double | ||||
Y | Double | ||||
Z | Double | ||||
Yaw | Angle | New angle, not a delta | |||
Pitch | Angle | New angle, not a delta | |||
On Ground | Boolean |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x29 | Play | Client | X | Double | Absolute position (X coordinate) |
Y | Double | Absolute position (Y coordinate) | |||
Z | Double | Absolute position (Z coordinate) | |||
Yaw | Float | Absolute rotation on the vertical axis, in degrees | |||
Pitch | Float | Absolute rotation on the horizontal axis, in degrees |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x02 | Login | Client | UUID | String | Unlike in other packets, this field contains the UUID as a string with hyphens. |
Username | String |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1C | Play | Client | X | Float | |
Y | Float | ||||
Z | Float | ||||
Radius | Float | Currently unused in the client | |||
Record Count | Int | Number of elements in the following array | |||
Records | Array of (Byte, Byte, Byte) | Each record is 3 signed bytes long, each bytes are the XYZ (respectively) offsets of affected blocks. | |||
Player Motion X | Float | X velocity of the player being pushed by the explosion | |||
Player Motion Y | Float | Y velocity of the player being pushed by the explosion | |||
Player Motion Z | Float | Z velocity of the player being pushed by the explosion |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x28 | Play | Client | Entity ID | VarInt |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x2B | Play | Client | Flags | Byte | Bit field, see below |
Flying Speed | Float | ||||
Field of View Modifier | Float | Modifies the field of view, like a speed potion. A Notchian server will use the same value as the movement speed (send in the Entity Properties packet). |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x10 | Play | Server | X | Double | Absolute position (X coordinate) |
Y | Double | Absolute position (Y coordinate) | |||
Z | Double | Absolute position (Z coordinate) | |||
Yaw | Float | Absolute rotation on the vertical axis, in degrees | |||
Pitch | Float | Absolute rotation on the horizontal axis, in degrees |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x17 | Play | Server | Slot | Short | The slot which the player has selected (0–8) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0A | Play | Client | Location | Position | Block coordinates |
Action ID (Byte 1) | Unsigned Byte | Varies depending on block — see Block Actions | |||
Action Param (Byte 2) | Unsigned Byte | Varies depending on block — see Block Actions | |||
Block Type | VarInt | The block type ID for the block, not including metadata/damage value. This must match the block at the given coordinates. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x18 | Play | Server | Slot | Short | Inventory slot |
Clicked Item | Slot |
Packet ID | State | Bound To | Field Name | Field Type | Notes | ||
---|---|---|---|---|---|---|---|
0x10 | Play | Client | Chunk X | Int | Chunk X coordinate | ||
Chunk Z | Int | Chunk Z coordinate | |||||
Record Count | VarInt | Number of elements in the following array, i.e. the number of blocks affected | |||||
Record | Horizontal Position | Array | Unsigned Byte | The 4 most significant bits (0xF0 ) encode the X coordinate, relative to the chunk. The 4 least significant bits (0x0F ) encode the Z coordinate, relative to the chunk. |
|||
Y Coordinate | Unsigned Byte | Y coordinate of the block | |||||
Block ID | VarInt | The new block state ID for the block as given in the global palette (When reading data: type = id >> 4 , meta = id & 15 , when writing data: id = type << 4 | (meta & 15) ) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x2E | Play | Client | X | Double | Absolute or relative position, depending on Flags |
Y | Double | Absolute or relative position, depending on Flags | |||
Z | Double | Absolute or relative position, depending on Flags | |||
Yaw | Float | Absolute or relative rotation on the X axis, in degrees | |||
Pitch | Float | Absolute or relative rotation on the Y axis, in degrees | |||
Flags | Byte | Bit field, see below | |||
Teleport ID | VarInt | Client should confirm this packet with Teleport Confirm containing the same Teleport ID |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x00 | Login | Client | Reason | Chat |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x38 | Play | Client | Position | Byte | The position of the scoreboard. 0: list, 1: sidebar, 2: below name. |
Score Name | String | The unique name for the scoreboard to be displayed. |
Packet ID | State | Bound To | Field Name | Field Type | Notes | ||
---|---|---|---|---|---|---|---|
0x4A | Play | Client | Entity ID | VarInt | |||
Number Of Properties | Int | Number of elements in the following array | |||||
Property | Key | Array | String | See below | |||
Value | Double | See below | |||||
Number Of Modifiers | VarInt | Number of elements in the following array | |||||
Modifiers | Array of Modifier Data | See Attribute#Modifiers. Modifier Data defined below. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x06 | Play | Server | Window ID | Byte | The ID of the enchantment table window sent by Open Window |
Enchantment | Byte | The position of the enchantment on the enchantment table window, starting with 0 as the topmost one |
Packet ID | State | Bound To | Field Name | Field Type | Notes | ||
---|---|---|---|---|---|---|---|
0x24 | Play | Client | Item Damage | VarInt | The damage value (map ID) of the map being modified | ||
Scale | Byte | From 0 for a fully zoomed-in map (1 block per pixel) to 4 for a fully zoomed-out map (16 blocks per pixel) | |||||
Tracking Position | Boolean | Specifies whether the icons are shown | |||||
Icon Count | VarInt | Number of elements in the following array | |||||
Icon | Direction And Type | Array | Byte | 0xF0 = Direction, 0x0F = Type | |||
X | Byte | ||||||
Z | Byte | ||||||
Columns | Byte | Number of columns updated | |||||
Rows | Optional Byte | Only if Columns is more than 0; number of rows updated | |||||
X | Optional Byte | Only if Columns is more than 0; x offset of the westernmost column | |||||
Z | Optional Byte | Only if Columns is more than 0; z offset of the northernmost row | |||||
Length | Optional VarInt | Only if Columns is more than 0; length of the following array | |||||
Data | Optional Array of Unsigned Byte | Only if Columns is more than 0; see Map item format |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1B | Play | Server | Target Player | UUID | UUID of the player to teleport to (can also be an entity UUID) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0xFE | Handshaking | Server | Payload | Unsigned Byte | always 1 (0x01 ) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x36 | Play | Client | Camera ID | VarInt | ID of the entity to set the client's camera to |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x13 | Play | Client | Window ID | Unsigned Byte | A unique id number for the window to be displayed. Notchian server implementation is a counter, starting at 1. |
Window Type | String | The window type to use for display. See Inventory for a list. | |||
Window Title | Chat | The title of the window | |||
Number Of Slots | Unsigned Byte | Number of slots in the window (excluding the number of slots in the player inventory) | |||
Entity ID | Optional Int | EntityHorse's EID. Only sent when Window Type is “EntityHorse” |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x3F | Play | Client | Objective Name | String | An unique name for the objective |
Mode | Byte | 0 to create the scoreboard. 1 to remove the scoreboard. 2 to update the display text. | |||
Objective Value | Optional String | Only if mode is 0 or 2. The text to be displayed for the score | |||
Type | Optional String | Only if mode is 0 or 2. “integer” or “hearts” |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x00 | Status | Server | no fields |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x08 | Play | Server | Window ID | Unsigned Byte | This is the ID of the window that was closed. 0 for player inventory. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x00 | Play | Client | Entity ID | VarInt | EID of the object |
Object UUID | UUID | ||||
Type | Byte | The type of object (see Entities#Objects) | |||
X | Double | ||||
Y | Double | ||||
Z | Double | ||||
Pitch | Angle | ||||
Yaw | Angle | ||||
Data | Int | Meaning dependent on the value of the Type field, see Object Data for details. | |||
Velocity X | Short | Same units as Entity Velocity. | |||
Velocity Y | Short | Same units as Entity Velocity. | |||
Velocity Z | Short | Same units as Entity Velocity. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x09 | Play | Server | Channel | String | Name of the plugin channel used to send the data |
Data | Byte Array | Any data, depending on the channel. MC| channels are documented here. The length of this array must be inferred from the packet length. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1A | Play | Client | Reason | Chat | Displayed to the client when the connection terminates. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x30 | Play | Client | Count | VarInt | Number of elements in the following array |
Entity IDs | Array of VarInt | The list of entities of destroy |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x39 | Play | Client | Entity ID | VarInt | |
Metadata | Entity Metadata |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x12 | Play | Server | Flags | Byte | Bit mask. 0x08: damage disabled (god mode), 0x04: can fly, 0x02: is flying, 0x01: is Creative |
Flying Speed | Float | ||||
Walking Speed | Float |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x16 | Play | Client | Window ID | Byte | The window which is being updated. 0 for player inventory. Note that all known window types include the player inventory. This packet will only be sent for the currently opened window while the player is performing actions, even if it affects the player inventory. After the window is closed, a number of these packets are sent to update the player's inventory window (0). |
Slot | Short | The slot that should be updated | |||
Slot Data | Slot |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x03 | Play | Server | Action ID | VarInt Enum | See below |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x42 | Play | Client | Score Name | String | The name of the score to be updated or removed |
Action | Byte | 0 to create/update an item. 1 to remove an item. | |||
Objective Name | String | The name of the objective the score belongs to | |||
Value | Optional VarInt | The score to be displayed next to the entry. Only sent when Action does not equal 1. |
Packet ID | State | Bound To | Field Name | Field Type | Notes | |
---|---|---|---|---|---|---|
0x2C | Play | Client | Event | VarInt Enum | Determines the layout of the remaining packet | |
Event | Field Name | |||||
0: enter combat | no fields | no fields | ||||
1: end combat | Duration | VarInt | ||||
Entity ID | Int | |||||
2: entity dead | Player ID | VarInt | ||||
Entity ID | Int | |||||
Message | Chat |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x32 | Play | Client | URL | String | The URL to the resource pack. |
Hash | String | A 40 character hexadecimal and lowercase SHA-1 hash of the resource pack file. (must be lower case in order to work) If it's not a 40 character hexadecimal string, the client will not use it for hash verification and likely waste bandwidth — but it will still treat it as a unique id |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0B | Play | Client | Location | Position | Block Coordinates |
Block ID | VarInt | The new block state ID for the block as given in the global palette (When reading data: type = id >> 4 , meta = id & 15 , when writing data: id = type << 4 | (meta & 15) ) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x3C | Play | Client | Entity ID | VarInt | Entity's EID |
Slot | VarInt Enum | Equipment slot. 0: main hand, 1: off hand, 2–5: armor slot (2: boots, 3: leggings, 4: chestplate, 5: helmet) | |||
Item | Slot |
Field Name | Field Type | Notes |
---|---|---|
Length | VarInt | Length of packet data + length of the packet ID |
Packet ID | VarInt | |
Data | Byte Array | Depends on the connection state and packet ID, see the sections below |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x25 | Play | Client | Entity ID | VarInt | |
Delta X | Short | Change in X position as (currentX * 32 - prevX * 32) * 128 |
|||
Delta Y | Short | Change in Y position as (currentY * 32 - prevY * 32) * 128 |
|||
Delta Z | Short | Change in Z position as (currentZ * 32 - prevZ * 32) * 128 |
|||
On Ground | Boolean |
Packet ID | State | Bound To | Field Name | Field Type | Notes | |||||
---|---|---|---|---|---|---|---|---|---|---|
0x2D | Play | Client | Action | VarInt | Determines the rest of the Player format after the UUID | |||||
Number Of Players | VarInt | Number of elements in the following array | ||||||||
Player | UUID | Array | UUID | |||||||
Action | Field Name | |||||||||
0: add player | Name | String | ||||||||
Number Of Properties | VarInt | Number of elements in the following array | ||||||||
Property | Name | Array | String | |||||||
Value | String | |||||||||
Is Signed | Boolean | |||||||||
Signature | Optional String | Only if Is Signed is true | ||||||||
Gamemode | VarInt | |||||||||
Ping | VarInt | |||||||||
Has Display Name | Boolean | |||||||||
Display Name | Optional Chat | Only if Has Display Name is true | ||||||||
1: update gamemode | Gamemode | VarInt | ||||||||
2: update latency | Ping | VarInt | ||||||||
3: update display name | Has Display Name | Boolean | ||||||||
Display Name | Optional Chat | Only send if Has Display Name is true | ||||||||
4: remove player | no fields | no fields |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x05 | Play | Client | Entity ID | VarInt | Player's EID |
Player UUID | UUID | See below for notes on offline mode and NPCs | |||
X | Double | ||||
Y | Double | ||||
Z | Double | ||||
Yaw | Angle | ||||
Pitch | Angle | ||||
Metadata | Entity Metadata |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x23 | Play | Client | Entity ID | Int | The player's Entity ID (EID) |
Gamemode | Unsigned Byte | 0: Survival, 1: Creative, 2: Adventure, 3: Spectator. Bit 3 (0x8) is the hardcore flag. | |||
Dimension | Int Enum | -1: Nether, 0: Overworld, 1: End; also, note that this is not a VarInt but instead a regular int. | |||
Difficulty | Unsigned Byte | 0: peaceful, 1: easy, 2: normal, 3: hard | |||
Max Players | Unsigned Byte | Was once used by the client to draw the player list, but now is ignored | |||
Level Type | String | default, flat, largeBiomes, amplified, default_1_1 | |||
Reduced Debug Info | Boolean | If true, a Notchian client shows reduced information on the debug screen. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x4B | Play | Client | Entity ID | VarInt | |
Effect ID | Byte | See this table | |||
Amplifier | Byte | Notchian client displays effect level as Amplifier + 1 | |||
Duration | VarInt | Seconds | |||
Flags | Byte | Bit field, see below. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x19 | Play | Server | Location | Position | Block Coordinates |
Line 1 | String | First line of text in the sign | |||
Line 2 | String | Second line of text in the sign | |||
Line 3 | String | Third line of text in the sign | |||
Line 4 | String | Fourth line of text in the sign |
Packet ID | State | Bound To | Field Name | Field Type | Notes | ||
---|---|---|---|---|---|---|---|
0x07 | Play | Client | Count | VarInt | Number of elements in the following array | ||
Statistic | Name | Array | String | https://gist.github.com/thinkofname/a1842c21a0cf2e1fb5e0 | |||
Value | VarInt | The amount to set it to |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0D | Play | Server | X | Double | Absolute position |
Feet Y | Double | Absolute feet position, normally Head Y - 1.62 | |||
Z | Double | Absolute position | |||
Yaw | Float | Absolute rotation on the X Axis, in degrees | |||
Pitch | Float | Absolute rotation on the Y Axis, in degrees | |||
On Ground | Boolean | True if the client is on the ground, false otherwise |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x15 | Play | Client | Window ID | Unsigned Byte | |
Property | Short | The property to be updated, see below | |||
Value | Short | The new value for the property, see below |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x11 | Play | Server | Right paddle turning | Boolean | |
Left paddle turning | Boolean |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x01 | Login | Client | Server ID | String | Appears to be empty |
Public Key Length | VarInt | Length of Public Key | |||
Public Key | Byte Array | ||||
Verify Token Length | VarInt | Length of Verify Token. Always 4 for Notchian servers. | |||
Verify Token | Byte Array | A sequence of random bytes generated by the server |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x37 | Play | Client | Slot | Byte | The slot which the player has selected (0–8) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1F | Play | Client | Keep Alive ID | VarInt |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x20 | Play | Client | Chunk X | Int | Block coordinate divided by 16, rounded down |
Chunk Z | Int | Block coordinate divided by 16, rounded down | |||
Ground-Up Continuous | Boolean | This is true if the packet represents all chunk sections in this vertical chunk column, where the Primary Bit Mask specifies exactly which chunk sections are included, and which are air. | |||
Primary Bit Mask | VarInt | Bitmask with bits set to 1 for every 16×16×16 chunk section whose data is included in Data. The least significant bit represents the chunk section at the bottom of the chunk column (from y=0 to y=15). | |||
Size | VarInt | Size of Data in bytes, plus size of Biomes in bytes if present | |||
Data | Array of Chunk Section | The length of the array is equal to the number of bits set in Primary Bit Mask. Chunks are sent bottom-to-top, i.e. the first chunk, if sent, extends from Y=0 to Y=15. | |||
Biomes | Optional Byte Array | Only if Ground-Up Continuous: biome array, byte per XZ coordinate, 256 bytes total. | |||
Number of block entities | VarInt | Length of the following array | |||
Block entities | Array of NBT Tag | All block entities in the chunk. Use the x, y, and z tags in the NBT to determine their positions. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x18 | Play | Client | Channel | String | Name of the plugin channel used to send the data |
Data | Byte Array | Any data, depending on the channel. MC| channels are documented here. The length of this array must be inferred from the packet length. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x43 | Play | Client | Location | Position | Spawn location |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x16 | Play | Server | Result | VarInt Enum | 0: successfully loaded, 1: declined, 2: failed download, 3: accepted |
Packet ID | State | Bound To | Field Name | Field Type | Notes | |
---|---|---|---|---|---|---|
0x45 | Play | Client | Action | VarInt Enum | ||
Action | Field Name | |||||
0: set title | Title Text | Chat | ||||
1: set subtitle | Subtitle Text | Chat | ||||
2: set times and display | Fade In | Int | Ticks to spend fading in | |||
Stay | Int | Ticks to keep the title displayed | ||||
Fade Out | Int | Ticks to spend out, not when to start fading out | ||||
3: hide | no fields | no fields | ||||
4: reset | no fields | no fields |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x2A | Play | Client | Location | Position |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x00 | Login | Server | Name | String | Seems to be Player's Username |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1A | Play | Server | Hand | VarInt Enum | Hand used for the animation. 0: main hand, 1: off hand. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1D | Play | Client | Chunk X | Int | Block coordinate divided by 16, rounded down |
Chunk Z | Int | Block coordinate divided by 16, rounded down |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x40 | Play | Client | Entity ID | VarInt | Vehicle's EID |
Passenger Count | VarInt | Number of elements in the following array | |||
Passengers | Array of VarInt | EIDs of entity's passengers |
Packet ID | State | Bound To | Field Name | Field Type | Notes | |
---|---|---|---|---|---|---|
0x0C | Play | Client | UUID | UUID | Unique ID for this bar | |
Action | VarInt Enum | Determines the layout of the remaining packet | ||||
Action | Field Name | |||||
0: add | Title | Chat | ||||
Health | Float | From 0 to 1. Values greater than 1 do not crash a Notchian client, and start rendering part of a second health bar at around 1.5. | ||||
Color | VarInt Enum | Color ID (see below) | ||||
Division | VarInt Enum | Type of division (see below) | ||||
Flags | Unsigned Byte | Bit mask. 0x1: should darken sky, 0x2: is dragon bar (used to play end music) | ||||
1: remove | no fields | no fields | Removes this boss bar | |||
2: update health | Health | Float | as above | |||
3: update title | Title | Chat | ||||
4: update style | Color | VarInt Enum | Color ID (see below) | |||
Dividers | VarInt Enum | as above | ||||
5: update flags | Flags | Unsigned Byte | as above |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x47 | Play | Client | Header | Chat | To remove the header, send a empty translatable component: {"translate":""} |
Footer | Chat | To remove the footer, send a empty translatable component: {"translate":""} |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1B | Play | Client | Entity ID | Int | |
Entity Status | Byte Enum | See below |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x14 | Play | Server | Entity ID | VarInt | Player ID |
Action ID | VarInt Enum | The ID of the action, see below | |||
Jump Boost | VarInt | Only used by the “start jump with horse” action, in which case it ranges from 0 to 100. In all other cases it is 0. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x00 | Status | Client | JSON Response | String | See Server List Ping#Response |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x19 | Play | Client | Sound Name | String | All sound effect names as of 1.10.0 can be seen here. |
Sound Category | VarInt Enum | The category that this sound will be played from (current categories) | |||
Effect Position X | Int | Effect X multiplied by 8 (fixed-point number with only 3 bits dedicated to the fractional part) | |||
Effect Position Y | Int | Effect Y multiplied by 8 (fixed-point number with only 3 bits dedicated to the fractional part) | |||
Effect Position Z | Int | Effect Z multiplied by 8 (fixed-point number with only 3 bits dedicated to the fractional part) | |||
Volume | Float | 1 is 100%, can be more | |||
Pitch | Float | Float between 0.5 and 2.0 by Notchian clients |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x26 | Play | Client | Entity ID | VarInt | |
Delta X | Short | Change in X position as (currentX * 32 - prevX * 32) * 128 |
|||
Delta Y | Short | Change in Y position as (currentY * 32 - prevY * 32) * 128 |
|||
Delta Z | Short | Change in Z position as (currentZ * 32 - prevZ * 32) * 128 |
|||
Yaw | Angle | New angle, not a delta | |||
Pitch | Angle | New angle, not a delta | |||
On Ground | Boolean |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x00 | Play | Server | Teleport ID | VarInt | The ID given by the Player Position And Look packet |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x02 | Play | Client | Entity ID | VarInt | The EID of the thunderbolt |
Type | Byte Enum | The global entity type, currently always 1 for thunderbolt | |||
X | Double | ||||
Y | Double | ||||
Z | Double |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x03 | Play | Client | Entity ID | VarInt | |
Entity UUID | UUID | ||||
Type | Unsigned Byte | The type of mob. See Entities#Mobs | |||
X | Double | ||||
Y | Double | ||||
Z | Double | ||||
Yaw | Angle | ||||
Pitch | Angle | ||||
Head Pitch | Angle | ||||
Velocity X | Short | Same units as Entity Velocity | |||
Velocity Y | Short | Same units as Entity Velocity | |||
Velocity Z | Short | Same units as Entity Velocity | |||
Metadata | Entity Metadata |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0D | Play | Client | Difficulty | Unsigned Byte | 0: peaceful, 1: easy, 2: normal, 3: hard |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1D | Play | Server | Hand | VarInt Enum | Hand used for the animation. 0: main hand, 1: off hand. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0A | Play | Server | Target | VarInt | |
Type | VarInt Enum | 0: interact, 1: attack, 2: interact at | |||
Target X | Optional Float | Only if Type is interact at | |||
Target Y | Optional Float | Only if Type is interact at | |||
Target Z | Optional Float | Only if Type is interact at | |||
Hand | Optional VarInt Enum | Only if Type is interact or interact at; 0: main hand, 1: off hand |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x13 | Play | Server | Status | VarInt Enum | The action the player is taking against the block (see below) |
Location | Position | Block position | |||
Face | Byte Enum | The face being hit (see below) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x3B | Play | Client | Entity ID | VarInt | |
Velocity X | Short | Velocity on the X axis | |||
Velocity Y | Short | Velocity on the Y axis | |||
Velocity Z | Short | Velocity on the Z axis |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x44 | Play | Client | World Age | Long | In ticks; not changed by server commands |
Time of day | Long | The world (or region) time, in ticks. If negative the sun will stop moving at the Math.abs of the time |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x05 | Play | Server | Window ID | Byte | The ID of the window that the action occurred in |
Action Number | Short | Every action that is to be accepted has a unique number. This field corresponds to that number. | |||
Accepted | Boolean | Whether the action was accepted |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x11 | Play | Client | Window ID | Byte | The ID of the window that the action occurred in |
Action Number | Short | Every action that is to be accepted has a unique number. This field corresponds to that number. | |||
Accepted | Boolean | Whether the action was accepted |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x01 | Status | Server | Payload | Long | May be any number. Notchian clients use a system-dependent time value which is counted in milliseconds. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0E | Play | Server | Yaw | Float | Absolute rotation on the X Axis, in degrees |
Pitch | Float | Absolute rotation on the Y Axis, in degrees | |||
On Ground | Boolean | True if the client is on the ground, False otherwise |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x21 | Play | Client | Effect ID | Int | The ID of the effect, see below |
Location | Position | The location of the effect | |||
Data | Int | Extra data for certain effects, see below | |||
Disable Relative Volume | Boolean | See above |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x01 | Play | Client | Entity ID | VarInt | |
X | Double | ||||
Y | Double | ||||
Z | Double | ||||
Count | Short | The amount of experience this orb will reward once collected |
Packet ID | State | Bound To | Field Name | Field Type | Notes | |
---|---|---|---|---|---|---|
0x41 | Play | Client | Team Name | String | A unique name for the team. (Shared with scoreboard). | |
Mode | Byte | Determines the layout of the remaining packet | ||||
0: create team | Team Display Name | String | ||||
Team Prefix | String | Displayed before the names of players that are part of this team | ||||
Team Suffix | String | Displayed after the names of players that are part of this team | ||||
Friendly Flags | Byte | Bit mask. 0x01: Allow friendly fire, 0x02: can see invisible players on same team | ||||
Name Tag Visibility | String Enum | always , hideForOtherTeams , hideForOwnTeam , never |
||||
Collision Rule | String Enum | always , pushOtherTeams , pushOwnTeam , never |
||||
Color | Byte | Same as Chat colors | ||||
Player Count | VarInt | Number of elements in the following array | ||||
Players | Array of String | Usernames of the players in this team. Maximum 40 characters per entry. | ||||
1: remove team | no fields | no fields | ||||
2: update team info | Team Display Name | String | ||||
Team Prefix | String | Displayed before the names of players that are part of this team | ||||
Team Suffix | String | Displayed after the names of players that are part of this team | ||||
Friendly Flags | Byte | Bit mask. 0x01: Allow friendly fire, 0x02: can see invisible players on same team | ||||
Name Tag Visibility | String Enum | always , hideForOtherTeams , hideForOwnTeam , never |
||||
Collision Rule | String Enum | always , pushOtherTeams , pushOwnTeam , never |
||||
Color | Byte | Same as Chat colors | ||||
3: add players to team | Player Count | VarInt | Number of elements in the following array | |||
Players | Array of String | Usernames of the added players. Maximum 40 characters per entry. | ||||
4: remove players from team | Player Count | VarInt | Number of elements in the following array | |||
Players | Array of String | Usernames of the removed players. Maximum 40 characters per entry. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x15 | Play | Server | Sideways | Float | Positive to the left of the player |
Forward | Float | Positive forward | |||
Flags | Unsigned Byte | Bit mask. 0x1: jump, 0x2: unmount |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x06 | Play | Client | Entity ID | VarInt | Player ID |
Animation | Unsigned Byte | Animation ID (see below) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x03 | Login | Client | Threshold | VarInt | Maximum size of a packet before it is compressed |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x00 | Handshaking | Server | Protocol Version | VarInt | See protocol version numbers (currently 210 in Minecraft 1.10.2) |
Server Address | String | Hostname or IP, e.g. localhost or 127.0.0.1, that was used to connect. The Notchian server does not use this information. | |||
Server Port | Unsigned Short | Default is 25565. The Notchian server does not use this information. | |||
Next State | VarInt Enum | 1 for status, 2 for login |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x12 | Play | Client | Window ID | Unsigned Byte | This is the ID of the window that was closed. 0 for inventory. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x01 | Login | Server | Shared Secret Length | VarInt | Length of Shared Secret |
Shared Secret | Byte Array | ||||
Verify Token Length | VarInt | Length of Verify Token | |||
Verify Token | Byte Array |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x14 | Play | Client | Window ID | Unsigned Byte | The ID of window which items are being sent for. 0 for player inventory. |
Count | Short | Number of elements in the following array | |||
Slot Data | Array of Slot |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0C | Play | Server | X | Double | Absolute position |
Feet Y | Double | Absolute feet position, normally Head Y - 1.62 | |||
Z | Double | Absolute position | |||
On Ground | Boolean | True if the client is on the ground, false otherwise |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x2F | Play | Client | Entity ID | VarInt | Sleeping player's EID |
Location | Position | Block location of the head part of the bed |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x3D | Play | Client | Experience bar | Float | Between 0 and 1 |
Level | VarInt | ||||
Total Experience | VarInt | See Experience#Leveling up on the Minecraft Wiki for Total Experience to Level conversion |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x01 | Play | Server | Text | String | All text behind the cursor (e.g. to the left of the cursor in left-to-right languages like English) |
Assume Command | Boolean | If true, the server will parse Text as a command even if it doesn't start with a / . Used in the command block GUI. |
|||
Has Position | Boolean | ||||
Looked At Block | Optional Position | The position of the block being looked at. Only sent if Has Position is true. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0F | Play | Server | On Ground | Boolean | True if the client is on the ground, false otherwise |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x07 | Play | Server | Window ID | Unsigned Byte | The ID of the window which was clicked. 0 for player inventory. |
Slot | Short | The clicked slot number, see below | |||
Button | Byte | The button used in the click, see below | |||
Action Number | Short | A unique number for the action, implemented by Notchian as a counter, starting at 1. Used by the server to send back a Confirm Transaction (clientbound). | |||
Mode | VarInt Enum | Inventory operation mode, see below | |||
Clicked item | Slot | The clicked slot. Has to be empty (item ID = -1) for drop mode. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x46 | Play | Client | Sound ID | VarInt | ID of hardcoded sound event (events as of 1.10.0) |
Sound Category | VarInt Enum | The category that this sound will be played from (current categories) | |||
Effect Position X | Int | Effect X multiplied by 8 (fixed-point number with only 3 bits dedicated to the fractional part) | |||
Effect Position Y | Int | Effect Y multiplied by 8 (fixed-point number with only 3 bits dedicated to the fractional part) | |||
Effect Position Z | Int | Effect Z multiplied by 8 (fixed-point number with only 3 bits dedicated to the fractional part) | |||
Volume | Float | 1.0 is 100%, capped between 0.0 and 1.0 by Notchian clients | |||
Pitch | Float | Float between 0.5 and 2.0 by Notchian clients |
Packet ID | State | Bound To | Field Name | Field Type | Notes | |
---|---|---|---|---|---|---|
0x35 | Play | Client | Action | VarInt Enum | Determines the format of the rest of the packet | |
Action | Field Name | |||||
0: set size | Diameter | Double | Length of a single side of the world border, in meters | |||
1: lerp size | Old Diameter | Double | Current length of a single side of the world border, in meters | |||
New Diameter | Double | Target length of a single side of the world border, in meters | ||||
Speed | VarLong | Number of real-time milliseconds until New Diameter is reached. It appears that Notchian server does not sync world border speed to game ticks, so it gets out of sync with server lag. If the world border is not moving, this is set to 0. | ||||
2: set center | X | Double | ||||
Z | Double | |||||
3: initialize | X | Double | ||||
Z | Double | |||||
Old Diameter | Double | Current length of a single side of the world border, in meters | ||||
New Diameter | Double | Target length of a single side of the world border, in meters | ||||
Speed | VarLong | Number of real-time milliseconds until New Diameter is reached. It appears that Notchian server does not sync world border speed to game ticks, so it gets out of sync with server lag. If the world border is not moving, this is set to 0. | ||||
Portal Teleport Boundary | VarInt | Resulting coordinates from a portal teleport are limited to ±value. Usually 29999984. | ||||
Warning Time | VarInt | In seconds as set by /worldborder warning time |
||||
Warning Blocks | VarInt | In meters | ||||
4: set warning time | Warning Time | VarInt | In seconds as set by /worldborder warning time |
|||
5: set warning blocks | Warning Blocks | VarInt | In meters |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x09 | Play | Client | Location | Position | |
Action | Unsigned Byte | The type of update to perform, see below | |||
NBT Data | NBT Tag | Data to set. May be a TAG_END (0), in which case the block entity at the given location is removed (though this is not required since the client will remove the block entity automatically on chunk unload or block removal) |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0F | Play | Client | JSON Data | Chat | Limited to 32767 bytes |
Position | Byte | 0: chat (chat box), 1: system message (chat box), 2: above hotbar |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x17 | Play | Client | Item ID | VarInt | Numeric ID of the item to apply a cooldown to. |
Cooldown Ticks | VarInt | Number of ticks to apply a cooldown for, or 0 to clear the cooldown. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x33 | Play | Client | Dimension | Int Enum | -1: The Nether, 0: The Overworld, 1: The End |
Difficulty | Unsigned Byte | 0: Peaceful, 1: Easy, 2: Normal, 3: Hard | |||
Gamemode | Unsigned Byte | 0: survival, 1: creative, 2: adventure, 3: spectator. The hardcore flag is not included | |||
Level Type | String | Same as Join Game |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x3E | Play | Client | Health | Float | 0 or less = dead, 20 = full HP |
Food | VarInt | 0–20 | |||
Food Saturation | Float | Seems to vary from 0.0 to 5.0 in integer increments |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x04 | Play | Server | Locale | String | e.g. en_GB |
View Distance | Byte | Client-side render distance, in chunks | |||
Chat Mode | VarInt Enum | 0: enabled, 1: commands only, 2: hidden | |||
Chat Colors | Boolean | “Colors” multiplayer setting | |||
Displayed Skin Parts | Unsigned Byte | Bit mask, see below | |||
Main Hand | VarInt Enum | 0: Left, 1: Right |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x02 | Play | Server | Message | String | The client sends the raw input, not a Chat component |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x0B | Play | Server | Keep Alive ID | VarInt |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x08 | Play | Client | Entity ID | VarInt | Entity ID of the entity breaking the block |
Location | Position | Block Position | |||
Destroy Stage | Byte | 0–9 to set it, any other value to remove it |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x22 | Play | Client | Particle ID | Int | See below |
Long Distance | Boolean | If true, particle distance increases from 256 to 65536 | |||
X | Float | X position of the particle | |||
Y | Float | Y position of the particle | |||
Z | Float | Z position of the particle | |||
Offset X | Float | This is added to the X position after being multiplied by random.nextGaussian() | |||
Offset Y | Float | This is added to the Y position after being multiplied by random.nextGaussian() | |||
Offset Z | Float | This is added to the Z position after being multiplied by random.nextGaussian() | |||
Particle Data | Float | The data of each particle | |||
Particle Count | Int | The number of particles to create | |||
Data | Array of VarInt | Length depends on particle. "iconcrack" has length of 2, "blockcrack", and "blockdust" have lengths of 1, the rest have 0. |
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x1E | Play | Client | Reason | Unsigned Byte | See below |
Value | Float | Depends on Reason |