This page is the authoritative serverbound specification for the Play state of Minecraft Java Edition protocol 26.1.2 (1.21.10). It enumerates every packet the client may send while in the Play protocol — both the packets defined in the dedicated game namespace and the shared common / cookie / ping packets that are also valid in Play. Packet identifiers are assigned by registration index in the Play protocol builder, sorted in the order shown below.
Field types referenced here (VarInt, VarLong, Identifier, BlockPos, Vec3, Slot, etc.) are defined in ./data-types.
Packet ID: 0x00 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Teleport ID | VarInt | Echo of the Teleport ID from the most recent clientbound Player Position (Synchronize Player Position) packet. |
Semantics. Sent by the client immediately after applying a clientbound Player Position. Until the server receives an acknowledgement matching the latest pending teleport ID, all subsequent movement packets are ignored.
Packet ID: 0x01 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Entity ID | VarInt | Network ID of the entity being attacked. |
Semantics. Compact convenience form of the more general Interact packet specifically for left-click attacks. Sent in addition to a Swing Arm packet.
NOTE: This packet is a recent split from the legacy combined Interact packet; the older form (with attack/use/interact-at variants) has been replaced by this packet plus Interact.
Packet ID: 0x02 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Transaction ID | VarInt | Client-chosen identifier the server echoes in the Tag Query Response reply. |
| Location | BlockPos | Position of the block entity to query. |
Semantics. Issued by debug clients (F3+I) to request the full NBT of a block entity. Requires operator permission level on the server.
Packet ID: 0x03 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Slot of Bundle | VarInt | Container slot containing the bundle whose selection is being changed. |
| Selected Item Index | VarInt | Index of the item selected inside the bundle, or -1 to clear the selection. Negative values other than -1 are rejected. |
Semantics. Sent when the player scrolls to choose which item is currently surfaced by a bundle.
Packet ID: 0x04 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| New Difficulty | Byte (enum) | 0=Peaceful, 1=Easy, 2=Normal, 3=Hard. |
Semantics. Single-player only. Servers ignore the packet unless the sender is OP and the difficulty is unlocked.
Packet ID: 0x05 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Game Mode | VarInt (enum) | 0=Survival, 1=Creative, 2=Adventure, 3=Spectator. |
Semantics. Single-player only; sent by the host when toggling game mode via the F3+F4 menu. Vanilla servers reject this from regular clients.
Packet ID: 0x06 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Message Count | VarInt | Number of entries to advance the client's "last seen" message tracker by. |
Semantics. Periodic acknowledgement that the client has consumed signed chat messages, advancing the windowed message-validation counter used by the secure chat system.
Packet ID: 0x07 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Command | String (≤256) | The command text without the leading /. |
Semantics. Sent when the client executes a slash command that has no signable argument components. Command-argument signatures, if any, are sent via Signed Chat Command.
Packet ID: 0x08 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Command | String (≤256) | Command text without the leading /. |
| Timestamp | Long | Client-side instant the command was issued, in epoch milliseconds. |
| Salt | Long | Random salt used in the signature digest. |
| Argument Signatures | Array of (String name, 256-byte Signature) | One entry per signed command argument. See ./chat. |
| Message Count | VarInt | Total messages observed by the client at send time. |
| Acknowledged | BitSet (20 bits, 3 bytes) | Bitset over the most recent 20 entries of the client's last-seen window. |
Semantics. Sent for commands that contain at least one argument requiring a chat signature (e.g. /msg, /me).
Packet ID: 0x09 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Message | String (≤256) | The chat message text. |
| Timestamp | Long | Epoch milliseconds at which the client issued the message. |
| Salt | Long | Random salt used in the signature digest. |
| Signature | Optional 256-byte Signature | Present only if the player has a chat session and signed the message. |
| Message Count | VarInt | Total messages observed by the client at send time. |
| Acknowledged | BitSet (20 bits, 3 bytes) | Window of recently seen messages used by the secure-chat algorithm. |
Semantics. Player-typed chat. The signature, when present, is verified against the player's chat session public key.
Packet ID: 0x0A · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Session ID | UUID | Identifier of the new chat session. |
| Public Key Expires At | Long | Mojang-issued expiry time of the public key, in epoch milliseconds. |
| Public Key | Byte Array (≤512) | DER-encoded RSA public key. |
| Key Signature | Byte Array (≤4096) | Mojang's signature over the public-key blob, proving the key was issued for this player. |
Semantics. Establishes or renews the per-player signing session used by secure chat. Sent right after login and whenever the chat key rotates.
Packet ID: 0x0B · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Desired Chunks Per Tick | Float | Throttle hint computed by the client based on observed batch latency. |
Semantics. Acknowledges the most recent Chunk Batch Finished and informs the server of the client's measured chunk-streaming throughput so the server can adapt batch size.
Packet ID: 0x0C · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Action ID | VarInt (enum) | 0=Perform Respawn, 1=Request Stats, 2=Request Game Rule Values. |
Semantics. Multi-purpose client lifecycle command. Perform Respawn is sent when the player clicks the death-screen respawn button.
Packet ID: 0x0D · State: Play · Bound To: Server
(empty)
Semantics. Marks the end of a client game tick. Sent every tick to let the server align tick-bound work (e.g. movement coalescing). Carries no fields.
Packet ID: 0x0E · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Locale | String (≤16) | Client locale, e.g. en_us. |
| View Distance | Byte | Client-side render distance in chunks. |
| Chat Mode | VarInt (enum) | 0=Enabled, 1=Commands Only, 2=Hidden. |
| Chat Colors | Boolean | Whether chat colours are honoured by the client. |
| Displayed Skin Parts | Unsigned Byte | Bitmask of cape/jacket/sleeve/pants/hat layers to render. |
| Main Hand | VarInt (enum) | 0=Left, 1=Right. |
| Enable Text Filtering | Boolean | If true, the client opted in to server-side profanity filtering. |
| Allow Server Listings | Boolean | Whether the player consents to appearing in the public player list. |
| Particle Status | VarInt (enum) | 0=All, 1=Decreased, 2=Minimal. |
Semantics. Sent immediately after entering Play and re-sent whenever the client's settings change. Defined in the shared common namespace; identical to the configuration-state packet of the same name.
Packet ID: 0x0F · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Transaction ID | VarInt | Echoed back in the matching Command Suggestions Response. |
| Text | String (≤2048) | Current contents of the chat input, including the leading /. |
Semantics. Asks the server to brigadier-parse the partial command text and return tab-completion candidates.
Packet ID: 0x10 · State: Play · Bound To: Server
(empty)
Semantics. Sent by the client in response to a clientbound Start Configuration packet. After sending, the client transitions to the Configuration state. This packet is terminal: no further Play packets may follow it on the wire.
Packet ID: 0x11 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Container ID | VarInt | Identifier of the open container window. |
| Button ID | VarInt | Container-specific button index (e.g. enchantment slot 0/1/2, lectern page-turn buttons). |
Semantics. Used by containers that expose explicit buttons rather than slot interactions.
Packet ID: 0x12 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Container ID | VarInt | Identifier of the open container. |
| State ID | VarInt | Server-issued state counter from the most recent Container Set Content/Slot; used to detect desync. |
| Slot | Short | Slot number that was clicked, or -999 for outside the window. |
| Button | Byte | Mouse button or click-variant byte; semantics depend on Mode. |
| Mode | VarInt (enum) | Click mode: 0=normal click, 1=shift-click, 2=number-key, 3=middle-click, 4=drop, 5=drag, 6=double-click. |
| Changed Slots | Map(Short → HashedStack) | Up to 128 entries. Client's prediction of post-click slot contents, encoded as compact hashes. |
| Carried Item | HashedStack | Client's prediction of the cursor stack after the click. |
Semantics. Container interaction. The server recomputes the click and, if the client's predicted hashes diverge, replies with corrective Container Set Slot / Container Set Content packets. See ./slot for the hashed-slot encoding.
Packet ID: 0x13 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Container ID | VarInt | Identifier of the container being closed. |
Semantics. Notifies the server that the player closed an inventory screen. Servers may also close the window from their side via the clientbound counterpart.
Packet ID: 0x14 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Slot ID | VarInt | Slot whose enabled-state is toggling. |
| Container ID | VarInt | Identifier of the open container. |
| State | Boolean | Whether the slot is now enabled. |
Semantics. Used by the crafter (3×3 auto-crafter) UI to enable or disable individual ingredient slots.
Packet ID: 0x15 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Key | Identifier | Identifier of the cookie being returned. |
| Payload | Optional Byte Array (≤5120) | Stored cookie contents, or absent if the client holds no cookie under that key. |
Semantics. Reply to a clientbound Cookie Request. Cookies are small opaque blobs persisted on the client across server transfers (Transfer packet).
Packet ID: 0x16 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Channel | Identifier | Channel namespace, e.g. minecraft:brand. |
| Data | Byte Array (≤32767) | Channel-specific payload, length-implied (consume to end of packet). |
Semantics. Generic transport for mod/plugin extension channels. The vanilla client sends minecraft:brand carrying its brand string immediately after entering Play.
Packet ID: 0x17 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Subscriptions | Array of VarInt (registry IDs) | Set of minecraft:debug_subscription registry entries the client wants to receive samples for. |
Semantics. Subscribes the client to one or more debug feeds (e.g. tick-time samples). Operator-only.
Packet ID: 0x18 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Slot | VarInt | Inventory slot containing the writable book. |
| Pages | Array of String (≤100 entries, each ≤1024 chars) | New page contents. |
| Title | Optional String (≤32) | Present only when signing the book. |
Semantics. Saves an in-progress writable book or signs it into a written book.
Packet ID: 0x19 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Transaction ID | VarInt | Echoed in the Tag Query Response. |
| Entity ID | VarInt | Network ID of the target entity. |
Semantics. Operator/debug request for the full NBT of an entity (F3+I on an entity).
Packet ID: 0x1A · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Entity ID | VarInt | Target entity. |
| Hand | VarInt (enum) | 0=Main Hand, 1=Off Hand. |
| Target | Vec3 of three Floats | Local hit position relative to the entity, used by interact-at hitboxes. |
| Using Secondary Action | Boolean | True if the player was sneaking when the interaction occurred. |
Semantics. Right-click / interact-at action against an entity. Pure left-click attacks use the dedicated Attack packet.
NOTE: The single Java packet encodes interact-at semantics. The presence of three floats is unconditional; the previous "type" discriminator was removed when Attack was split out.
Packet ID: 0x1B · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Location | BlockPos | Position of the jigsaw block requesting generation. |
| Levels | VarInt | Number of recursive jigsaw layers to generate. |
| Keep Jigsaws | Boolean | If true, leftover jigsaw blocks are not removed after generation. |
Semantics. Sent by the jigsaw block UI to trigger structure generation. Operator-only.
Packet ID: 0x1C · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Keep Alive ID | Long | Echo of the value from the most recent clientbound Keep Alive. |
Semantics. Liveness response. The server disconnects clients that fail to respond within the configured keep-alive window.
Packet ID: 0x1D · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Locked | Boolean | New locked state. |
Semantics. Single-player only; sent by the host to lock or unlock the world's difficulty.
Packet ID: 0x1E · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| X | Double | New player X. |
| Feet Y | Double | New player Y at the feet. |
| Z | Double | New player Z. |
| Flags | Unsigned Byte | Bit 0 = on ground, bit 1 = horizontal collision. |
Semantics. Sent each tick the player's position changed but rotation did not.
Packet ID: 0x1F · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| X | Double | New X. |
| Feet Y | Double | New feet Y. |
| Z | Double | New Z. |
| Yaw | Float | Absolute yaw in degrees. |
| Pitch | Float | Absolute pitch in degrees. |
| Flags | Unsigned Byte | Bit 0 = on ground, bit 1 = horizontal collision. |
Semantics. Sent each tick when both position and rotation changed.
Packet ID: 0x20 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Yaw | Float | Absolute yaw in degrees. |
| Pitch | Float | Absolute pitch in degrees. |
| Flags | Unsigned Byte | Bit 0 = on ground, bit 1 = horizontal collision. |
Semantics. Sent each tick when only rotation changed.
Packet ID: 0x21 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Flags | Unsigned Byte | Bit 0 = on ground, bit 1 = horizontal collision. |
Semantics. Sent each tick when neither position nor rotation changed but the on-ground / horizontal-collision status must still be reported. Corresponds to the Move Player Status Only Java class.
Packet ID: 0x22 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Position | Vec3 (3 Doubles) | New vehicle position. |
| Yaw | Float | New vehicle yaw. |
| Pitch | Float | New vehicle pitch. |
| On Ground | Boolean | Vehicle's on-ground flag. |
Semantics. Sent while the player drives a controllable vehicle (boats, certain minecarts) to authoritatively report its position.
Packet ID: 0x23 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Left Paddle Turning | Boolean | Whether the left paddle is currently being rowed. |
| Right Paddle Turning | Boolean | Whether the right paddle is currently being rowed. |
Semantics. Drives boat-paddle animation when the player controls a boat.
Packet ID: 0x24 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Position | BlockPos | Block targeted by middle-click. |
| Include Data | Boolean | If true, the resulting picked item should preserve the block entity's data components. |
Semantics. Sent when the player middle-clicks a block in creative mode to obtain its item form.
Packet ID: 0x25 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Entity ID | VarInt | Network ID of the entity targeted by middle-click. |
| Include Data | Boolean | If true, preserve the entity's data components on the picked item (e.g. spawn-egg variant). |
Semantics. Creative middle-click on an entity.
Packet ID: 0x26 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Payload | Long | Arbitrary value the server echoes back in Pong Response. |
Semantics. Out-of-band latency probe. Distinct from Keep Alive in that the client chooses both the timing and the payload.
Packet ID: 0x27 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Container ID | VarInt | Identifier of the open crafting/recipe-book container. |
| Recipe | RecipeDisplayId (VarInt) | Recipe-display identifier from the recipe book. |
| Use Max Items | Boolean | If true (shift-click), distribute items to fill the recipe to its maximum. |
Semantics. Sent when the player clicks a recipe in the recipe book to lay it out into the crafting grid.
Packet ID: 0x28 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Flags | Byte | Bit 1 (0x02) set = flying. All other bits are reserved/ignored on the serverbound side. |
Semantics. Reports a change to the player's flying state (toggling creative/spectator flight). The server uses this to keep its abilities snapshot in sync.
Packet ID: 0x29 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Status | VarInt (enum) | 0=Start digging, 1=Cancel digging, 2=Finish digging, 3=Drop full stack, 4=Drop one item, 5=Release use item (e.g. shoot bow), 6=Swap held with off-hand, 7=Stab. |
| Location | BlockPos | Block being affected. Zero for non-block actions. |
| Face | Unsigned Byte | Block face (Direction.from3DDataValue): 0=Down, 1=Up, 2=North, 3=South, 4=West, 5=East. |
| Sequence | VarInt | Client prediction sequence id, echoed via Block Changed Ack to commit/rollback the predicted block change. |
Semantics. Catch-all for non-movement player actions tied to the world. The STAB action was added alongside the bundled Attack split.
Packet ID: 0x2A · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Entity ID | VarInt | Acting entity, normally the player itself. |
| Action ID | VarInt (enum) | 0=Stop sleeping, 1=Start sprinting, 2=Stop sprinting, 3=Start jump (horse), 4=Stop jump (horse), 5=Open horse/llama inventory, 6=Start fall flying (elytra). |
| Jump Boost | VarInt | Horse jump charge 0..100; 0 for non-jump actions. |
Semantics. Player state-machine transitions that don't fit the movement packets.
Packet ID: 0x2B · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Inputs | Unsigned Byte (bitfield) | Bit 0 = forward, 1 = back, 2 = left, 3 = right, 4 = jump, 5 = sneak, 6 = sprint. |
Semantics. Reports the raw movement input keys the player is holding. Used by vehicles and by the server-side "anti-cheat" movement validator.
Packet ID: 0x2C · State: Play · Bound To: Server
(empty)
Semantics. Sent once after the player's surroundings have been fully received (initial chunk load complete or post-respawn). Marks the moment the server may resume sending world events that depend on the player being "ready".
Packet ID: 0x2D · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| ID | Int (32-bit, big-endian, not a VarInt) | Echo of the integer payload from the most recent clientbound Ping. |
Semantics. Reply to the common-state Ping packet. Distinct from Ping Request — that one is client-initiated, this one is server-initiated.
Packet ID: 0x2E · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Book ID | VarInt (enum) | 0=Crafting, 1=Furnace, 2=Blast Furnace, 3=Smoker. |
| Book Open | Boolean | Whether the recipe book pane is currently open. |
| Filter Active | Boolean | Whether the "show only craftable" filter is enabled. |
Semantics. Persists the player's per-book recipe-book UI state to the server.
Packet ID: 0x2F · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Recipe | RecipeDisplayId (VarInt) | Recipe the player has clicked on (clearing its "new" highlight). |
Semantics. Marks a recipe-book entry as no longer requiring the "new!" badge.
Packet ID: 0x30 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Item Name | String | New name typed into the anvil text field. |
Semantics. Sent live as the player edits the anvil's name field, so the server can update the output preview and XP cost.
Packet ID: 0x31 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| UUID | UUID | Identifier of the pack the response refers to (matches the push). |
| Result | VarInt (enum) | 0=Successfully Loaded, 1=Declined, 2=Failed Download, 3=Accepted, 4=Downloaded, 5=Invalid URL, 6=Failed Reload, 7=Discarded. |
Semantics. Reports progress for a resource pack offered via clientbound Resource Pack Push. ACCEPTED and DOWNLOADED are intermediate; all other values are terminal for the given UUID.
Packet ID: 0x32 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Action | VarInt (enum) | 0=Opened tab, 1=Closed screen. |
| Tab ID | Optional Identifier | Present iff Action=0. Identifier of the advancement tab now in focus. |
Semantics. Reports advancement-screen UI state so the server can stream advancement progress only for the currently visible tab.
Packet ID: 0x33 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Selected Slot | VarInt | Index of the villager trade the player chose. |
Semantics. Sent when the player picks an offer from the merchant UI; the server then prefills the trade input slots.
Packet ID: 0x34 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Primary Effect | Optional VarInt (registry ID into minecraft:mob_effect) |
The chosen primary effect, or absent for "none". |
| Secondary Effect | Optional VarInt (registry ID into minecraft:mob_effect) |
The chosen secondary effect, or absent for "none". |
Semantics. Sent when the player confirms a beacon's effect selection. Consumes the iron ingot (or equivalent payment) on the server side.
Packet ID: 0x35 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Slot | Short | Hotbar slot index 0..8. |
Semantics. Notifies the server of a hotbar selection change.
Packet ID: 0x36 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Position | BlockPos | Command block being edited. |
| Command | String | New command text. |
| Mode | VarInt (enum) | 0=Sequence, 1=Auto, 2=Redstone. |
| Flags | Byte | Bit 0 = Track Output, bit 1 = Conditional, bit 2 = Automatic. |
Semantics. Saves changes from the command block UI. Operator + creative mode required.
Packet ID: 0x37 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Entity ID | VarInt | The command-block minecart being edited. |
| Command | String | New command text. |
| Track Output | Boolean | If true, the last output line is stored on the entity. |
Semantics. Saves changes from the command-block minecart UI.
Packet ID: 0x38 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Slot | Short | Inventory slot index. |
| Item | Slot | New item stack (optional, untrusted variant). |
Semantics. Creative-mode "place this stack into that slot" operation. The server rejects this packet entirely if the player is not in a game mode with infinite materials.
Packet ID: 0x39 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Entries | Array of (Game-Rule Key, String value) | Each entry: a ResourceKey into the minecraft:game_rule registry, plus the textual new value. |
Semantics. Single-player only. Sent from the in-game rule-tweak menu.
Packet ID: 0x3A · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Position | BlockPos | Jigsaw block being edited. |
| Name | Identifier | Jigsaw "name" tag. |
| Target | Identifier | Target jigsaw name to align against. |
| Pool | Identifier | Template pool to draw from. |
| Final State | String | Block-state string written into the world after generation. |
| Joint Type | String (enum: aligned/rollable) |
Default aligned if unrecognised. |
| Selection Priority | VarInt | Higher priorities are processed first. |
| Placement Priority | VarInt | Tiebreaker between equal selection priorities. |
Semantics. Saves changes from the jigsaw block UI. Operator-only.
Packet ID: 0x3B · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Position | BlockPos | Structure block being edited. |
| Action | VarInt (enum) | 0=Update Data, 1=Save, 2=Load, 3=Detect Size. |
| Mode | VarInt (enum) | 0=Save, 1=Load, 2=Corner, 3=Data. |
| Name | String | Structure name. |
| Offset X / Y / Z | Byte each | Each clamped to [-48, 48]. |
| Size X / Y / Z | Byte each | Each clamped to [0, 48]. |
| Mirror | VarInt (enum) | 0=None, 1=Left-Right, 2=Front-Back. |
| Rotation | VarInt (enum) | 0=None, 1=90 CW, 2=180, 3=270 CW. |
| Metadata | String (≤128) | Mode-dependent metadata. |
| Integrity | Float | Clamped to [0.0, 1.0]. Probability that any given block is included. |
| Seed | VarLong | RNG seed for the integrity sampling. |
| Flags | Byte | Bit 0 = Ignore Entities, bit 1 = Show Air, bit 2 = Show Bounding Box, bit 3 = Strict. |
Semantics. Saves changes from the structure block UI. Operator + creative mode required.
Packet ID: 0x3C · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Position | BlockPos | Test block being edited. |
| Mode | VarInt (enum) | Test-block mode (START, LOG, FAIL, ACCEPT). |
| Message | String | Free-form message displayed/logged by the test block. |
Semantics. Saves changes from the test-block UI used by the in-game test framework.
Packet ID: 0x3D · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Location | BlockPos | Sign being edited. |
| Is Front Text | Boolean | True for the front face, false for the back face. |
| Line 1..4 | Four Strings (≤384 each) | New text for each of the four lines. |
Semantics. Sent when the player closes the sign edit screen.
Packet ID: 0x3E · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Target | UUID | Entity the spectator wants to teleport to / attach to. |
Semantics. Spectator-mode only. Server resolves the UUID into an entity in the player's current world; otherwise the packet is ignored.
Packet ID: 0x3F · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Hand | VarInt (enum) | 0=Main Hand, 1=Off Hand. |
Semantics. Plays the arm-swing animation. Sent on left-click and on most use-item actions; the server rebroadcasts via Entity Animation to other clients.
Packet ID: 0x40 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Target Player | UUID | UUID of the entity to teleport to. |
Semantics. Spectator-mode shortcut to jump to another entity by UUID.
Packet ID: 0x41 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Position | BlockPos | Test-instance block being acted on. |
| Action | VarInt (enum, by id) | 0=Init, 1=Query, 2=Set, 3=Reset, 4=Save, 5=Export, 6=Run. Out-of-range values fall back to Init. |
| Test | Optional ResourceKey into minecraft:test_instance |
Currently selected test, or absent. |
| Size | Vec3i (3 VarInts) | Bounding-box size. |
| Rotation | VarInt (enum) | Rotation enum: NONE, CLOCKWISE_90, CLOCKWISE_180, COUNTERCLOCKWISE_90. |
| Ignore Entities | Boolean | If true, entities are excluded from save/run. |
Semantics. Saves changes to or executes a test-instance block (the more general successor to the legacy structure-test block).
Packet ID: 0x42 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Hand | VarInt (enum) | 0=Main Hand, 1=Off Hand. |
| Block Hit Result | BlockHitResult | Encoded as: BlockPos (Long), Face (VarInt 0..5), three Floats giving the cursor position relative to the block (0..1 per axis), Boolean "inside block", Boolean "world border hit". |
| Sequence | VarInt | Client prediction sequence id; echoed via Block Changed Ack. |
Semantics. Right-click on a block. Most block placements, opens, and item-on-block uses go through this packet.
Packet ID: 0x43 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| Hand | VarInt (enum) | 0=Main Hand, 1=Off Hand. |
| Sequence | VarInt | Client prediction sequence id. |
| Yaw | Float | Player yaw at the moment of use. |
| Pitch | Float | Player pitch at the moment of use. |
Semantics. Right-click in the air or on a non-block target (e.g. drinking a potion, throwing a snowball). Yaw/pitch are sent so the server can use the same view direction the client did when computing projectile trajectories.
Packet ID: 0x44 · State: Play · Bound To: Server
| Field | Type | Notes |
|---|---|---|
| ID | Identifier | Identifier of the custom click action declared by the server (e.g. via a dialog or system message). |
| Payload | Optional NBT Tag | Untrusted tag (≤32 KiB, depth ≤16, length-prefixed ≤64 KiB). |
Semantics. Sent in response to a custom-type click event embedded in chat components or in a Show Dialog packet. Lets the server dispatch UI-driven actions without round-tripping through commands.
Source: net/minecraft/network/protocol/game/GameProtocols.java and the corresponding Serverbound*Packet.java files in the same directory.