MCBE
OverviewPackets

Packet index

236 game packets in 1.26.51 (protocol 2193) — ID, direction and who sends it.

Connection

0x01 · 1Client → Server

Login

Carries the player's identity: an Xbox-authenticated JWT chain (or a PlayFab multiplayer token on 1.26.x clients) plus a client-data JWT with skin, device and locale claims.

0x02 · 2Server → Client

PlayStatus

Tells the client the result of login, or that it may spawn into the world. Sent unencrypted after ServerToClientHandshake is answered, then once more when chunks are ready.

0x03 · 3Server → Client

ServerToClientHandshake

Starts encryption. Carries a single ES384-signed JWT whose header holds the server's public key and whose payload holds the salt used to derive the shared AES key.

0x04 · 4Client → Server

ClientToServerHandshake

Empty packet confirming the client enabled encryption — the first encrypted packet on the wire.

0x05 · 5Server → Client

Disconnect

Ends the connection. The reason code drives the Ore UI disconnect screen; unless the screen is skipped, an optional message is shown with it.

0x5E · 94Client → Server

SubClientLogin

Split-screen: a second player joining over the main client's connection sends the same connection request blob the LoginPacket carries.

0x5F · 95Server → Client

AutomationClientConnect

Tells the client to open a websocket connection to the given server, which may then run commands on the client's behalf and listen for the events it fires.

0x73 · 115Both

NetworkStackLatency

Deprecated round-trip probe over the whole network stack. Fed the in-game debug graph's ping and Realms latency telemetry; sent by both sides.

0x81 · 129Client → Server

ClientCacheStatus

Tells the server whether the client supports the chunk blob cache. Sent once during login, before StartGame.

0x87 · 135Client → Server

ClientCacheBlobStatus

Periodic cache update from the client: which blob hashes it has (found) and which it lacks (missing).

0x88 · 136Server → Client

ClientCacheMissResponse

Any missing blob should just be thrown into one of these packet ASAP and sent. This is actually how chunk data gets to the client the first time.

0x8F · 143Server → Client

NetworkSettings

Server response to RequestNetworkSettings. It fixes the compression algorithm and threshold for every following batch, plus the render-distance throttle the client applies to other players.

0x9C · 156Client → Server

PacketViolationWarning

Sent when a packet fails to parse: names the offending packet id, the violation type/severity and a context string. Mostly produced by the client's deserializer.

0xC0 · 192Server → Client

ServerStats

Server-side timing statistics the server reports to the client.

0xC1 · 193Client → Server

RequestNetworkSettings

The very first game packet a client sends, uncompressed and unencrypted. It announces the protocol version the client speaks so the server can reply with compression settings — or reject it with a PlayStatus version-mismatch code.

Resource Packs

UI

0x09 · 9Both

Text

Chat, system messages, popups, tips, whispers and translations. Since the 1.26.40 cereal migration the per-type body is a tagged variant instead of a flat type byte + conditionals.

0x4A · 74Both

BossEvent

Controls the boss health bar: bind it to an entity, set its percentage, color, overlay or remove it. Also used for the raid bar.

0x4C · 76Server → Client

AvailableCommands

The command tree the client renders for autocomplete: enums, soft enums, constraints and per-command overloads with argument types.

0x4D · 77Client → Server

CommandRequest

Player or server origin request to run a slash command; the command line includes the leading slash.

0x4E · 78Client → Server

CommandBlockUpdate

Sent when you close the command block screen on the client.

0x4F · 79Server → Client

CommandOutput

Result of a CommandRequest: success flag, output type (toast/chat/box/modal) and formatted message lines with parameters.

0x58 · 88Server → Client

SetTitle

Title/subtitle/actionbar text with fade-in, stay and fade-out times and an XUID for filtering.

0x64 · 100Server → Client

ModalFormRequest

Opens a JSON-defined UI form: simple buttons, modal (OK/cancel) or a custom form with inputs.

0x65 · 101Client → Server

ModalFormResponse

Client's answer to a ModalFormRequest: form id plus button index, toggle/float/slider values or raw input JSON.

0x66 · 102Client → Server

ServerSettingsRequest

It is also an empty packet. There is no handler for this packet, should be removed.

0x67 · 103Server → Client

ServerSettingsResponse

The server's answer to a settings request: the JSON describing a settings tab to draw for this server, and the form id the client echoes back when the player submits it.

0x6A · 106Server → Client

RemoveObjective

This is just the name of the objective.

0x6B · 107Server → Client

SetDisplayObjective

0x6C · 108Server → Client

SetScore

Sets the scoreboard which is used for 3rd party content.

0x70 · 112Server → Client

SetScoreboardIdentity

Send an update packet for a player identity definition iff a tracked player has logged in with a different display name.

0x72 · 114Server → Client

UpdateSoftEnum

This allows someone to sync between server and client tags and enums on mobs or on the level.

0x82 · 130Server → Client

OnScreenTextureAnimation

Sent from the player (and in one case from the village) to make those really cool animated effects for the hero of the village and the totem saving you. Just an id (unsigned int). At least thats what the code suggests. May be obsolete / deprecated.

0x8C · 140Client → Server

SettingsCommand

Used when the player changes the world settings like doDayNightCycle or WeatherCycle via the world settings menu

0xA3 · 163Both

FilterText

Client sends text for server-side profanity filtering; the server answers with the filtered version.

0xBA · 186Server → Client

ToastRequest

Shows a notification toast with title and body strings.

0x134 · 308Server → Client

SetHud

This packet will toggle the HUD visibility.

0x136 · 310Server → Client

ClientboundCloseForm

This will only have an affect if the client currently has a server form on the UI stack.

0x138 · 312Client → Server

ServerboundLoadingScreen

In order for the client to send a packet with StartLoadingScreen, the server needs to anticipate that this packet is coming. If the server doesn't expect that we are about to start a loading screen, the server will disconnect the client. EndLoadingScreen is sent by the client when the loading screen closes. The Loading Screen Id field will be empty if the loading screen is triggered by the initial loading into of a world. The Loading Screen Id field will have a value if sent by the server. This currently happens as part of ChangeDimensionPacket if the player is alive.

0x14D · 333Server → Client

ClientboundDataDrivenUIShowScreen

0x14E · 334Server → Client

ClientboundDataDrivenUICloseScreen

0x14F · 335Server → Client

ClientboundDataDrivenUIReload

0x150 · 336Server → Client

ClientboundTextureShift

0x155 · 341Server → Client

LocatorBar

0x157 · 343Client → Server

ServerboundDataDrivenScreenClosed

World

0x0A · 10Server → Client

SetTime

Every so often (and at login) the server sends the current time to the client, and additionally the client can set the server time through 2 commands: DayLockCommand and TimeCommand

0x15 · 21Both

UpdateBlock

Changes a single block in the world, with the block's runtime (hash) ID and the update flags.

0x19 · 25Server → Client

LevelEvent

Generic world event: particles, sound-less effects, door/chest state changes, block breaking progress and more.

0x1A · 26Server → Client

BlockEvent

0x22 · 34Client → Server

BlockPickRequest

0x38 · 56Client → Server

BlockActorData

0x3A · 58Server → Client

LevelChunk

Sends a full chunk column: serialized sub-chunks, biome palettes, border blocks and block entity NBT in one payload blob.

0x3D · 61Server → Client

ChangeDimension

0x43 · 67Server → Client

ClientboundMapItemData

0x44 · 68Client → Server

MapInfoRequest

If the server finds the map, it sends the data back. If it can't find the map, it creates it and sends the map and data back. (the map creation data packet and the map data packet are separate packets). The response from the server potentially has to load from disk, just an fyi. This packet is fired via map item tick, if the map data we have is invalid, or if the map is placed in an item frame. For Client Side Generation when we re-sample pixels from the Client's ChunkSource we need to inform the Server's map about these new pixels so that it can save them to LevelStorage. Use this packet to send to the Server the extra pixels

0x45 · 69Client → Server

RequestChunkRadius

Client asks for a render distance in chunks; the server answers ChunkRadiusUpdated with what it will actually send.

0x46 · 70Server → Client

ChunkRadiusUpdated

0x5A · 90Both

StructureBlockUpdate

0x63 · 99Server → Client

PhotoTransfer

When the player uses the camera item or adds a photo to the scrapbook it sends the photo to the server, then the server sends a response back on whether that was successful or not. Either uploads a photo to the server's photoStorage or request one from it to be stored in client's photoStorage. If no mPhotoData is provided it is a request for the given filename.

0x6E · 110Server → Client

UpdateBlockSynced

Variation of UpdateBlockSyncedPacket that includes information to sync entities with renderchunk generation. Occasionally when blocks change a sync message is sent and during the change on the dimension, this packet is sent to the client to alert the update flags and sync info at a specific position.

0x76 · 118Server → Client

SpawnParticleEffect

This is not used for much anymore, only the Particle command (spawn particle by name at a location) and for ScriptServerSpawnParticleAttachedToActor and ScriptServerSpawnParticleInWorldEvent.

0x79 · 121Server → Client

NetworkChunkPublisherUpdate

Tells the client the position from which chunk publishing is driven (the subscribing player's viewpoint).

0x7A · 122Server → Client

BiomeDefinitionList

- mBiomeData: map of biome string indices to biome definition data. - mStringList: list of biome name strings.

0x7C · 124Server → Client

LevelEventGeneric

0x7D · 125Client → Server

LecternUpdate

It is a request from the client to either turn the page in the lectern or drop the book.

0x83 · 131Client → Server

MapCreateLockedCopy

It sends the original map id and the new map id. On the server it follows a similar process to creating a new map, sends the data and the map info to the client.

0x84 · 132Client → Server

StructureTemplateDataRequest

This is used to kick off the process of loading and returning a structure in a Tag from the server back to the client. Currently this functionality is completely disabled and does nothing.

0x85 · 133Server → Client

StructureTemplateDataResponse

The client sends a packet to the server, from there the structure is built and then put into a Tag where it is sent back to the client, from there you can view the structure in the Structure Block Screen. Currently this functionality is completely disabled and does nothing. Used to reply to a request for structure information.

0x8D · 141Client → Server

AnvilDamage

Only used when Item Stack Net Manager is disabled on the server. Sends the position of the anvil that is requesting to be damaged from the client.

0x99 · 153Server → Client

PositionTrackingDBServerBroadcast

0x9A · 154Client → Server

PositionTrackingDBClientRequest

Client to server packet for server authoratative runtime database (with persistent LevelStorage backup) designed primarily to track lodestone stuff. See Position Tracking DB Notes.md in bedrock-docs. see PositionTrackingDBServerBroadcastPacket

0xA6 · 166Server → Client

AddVolumeEntity

0xA7 · 167Server → Client

RemoveVolumeEntity

0xAB · 171Client → Server

CreatePhoto

0xAC · 172Server → Client

UpdateSubChunkBlocks

0xAD · 173Client → Server

PhotoInfoRequest

Requests information about a photo taken with the camera.

0xAE · 174Server → Client

SubChunk

Sub-chunk terrain response: per-entry serialized paletted storage, render heightmaps and blob cache IDs.

0xAF · 175Client → Server

SubChunkRequest

Client asks for specific sub-chunks around a center position — part of the limited sub-chunk request system.

0xB3 · 179Server → Client

TickingAreasLoadStatus

0xB4 · 180Server → Client

DimensionData

Contains dimension definition data including height bounds and generator type for each dimension.

0xBF · 191Server → Client

FeatureRegistry

0xC2 · 194Server → Client

GameTestRequest

0xC3 · 195Client → Server

GameTestResults

Internal Text Packet

0x12F · 303Both

OpenSign

0x139 · 313Server → Client

JigsawStructureData

Sends the serialized jigsaw rule JSON to the client as it's needed on both the client and server.

0x13A · 314Server → Client

CurrentStructureFeature

Sends the name of the Structure Feature the player is currently occupying to the client. If the player is not in a structure, this packet contains an empty string.

0x144 · 324Server → Client

PlayerVideoCapture

Internal

0x151 · 337Server → Client

VoxelShapes

Sends the serializable voxel shapes data to the client as it's needed on both the client and server. This packet should always be sent before StartGamePacket.

0x158 · 344Server → Client

SyncWorldClocks

Sent from the server when a client joins to initialize all world clocks for the client and periodically to all clients to keep them in sync. It is also sent to all clients when a world clock's paused state changes or when time markers are added or removed.

Gameplay

0x0B · 11Server → Client

StartGame

The largest packet of the login: player IDs, spawn position, the full level settings blob (seed, dimension, difficulty, game rules, experiments), block palette, permissions and the movement authority mode.

0x3B · 59Server → Client

SetCommandsEnabled

see SimpleEventPacket

0x3C · 60Server → Client

SetDifficulty

Used for when a client changes difficulty through the menu or when the server changes the difficulty.

0x3E · 62Both

SetPlayerGameType

The client handles the change of the UI element (the gametype dropdown, although this can be avoided by changing via command or on the server), then the client sends a packet to the server, then the server changes the player's gametype and sends a packet back (UpdatePlayerGameTypePacket) to make sure it matches on the client.

0x48 · 72Server → Client

GameRulesChanged

Informs client about any changes to the game rules.

0x4B · 75Both

ShowCredits

That packet is sent to the client. When the credits have concluded, a packet is sent back to the server to let it know to reinstate the player watching the credits.

0x69 · 105Client → Server

SetDefaultGameType

0x8B · 139Both

MultiplayerSettings

This is used by EDU for joining players and removing players from your session, the settings (there is only one) is an enum for enabling/disabling/refreshing multiplayer join codes. Starts on the client, and a response to the client is issued from the server.

0x97 · 151Both

UpdatePlayerGameType

0xA8 · 168Server → Client

SimulationType

- mSimType: an enum representing the simulation type to switch to.

Player

0x0C · 12Server → Client

AddPlayer

Spawns another player's entity in the world, with game mode, held item, metadata, abilities and riding links.

0x21 · 33Client → Server

Interact

Used for inventory button press and in _updateInteraction() for a variety of purposes. From the client.

0x26 · 38Server → Client

HurtArmor

Sends the damage taken after armor is taken into account. This looks like it is trying to be phased out, this is not sent while the ItemStackNetManagerServer is active. From the server.

0x2A · 42Server → Client

SetHealth

Sets the local player's health directly. Largely superseded by UpdateAttributes for the health attribute.

0x2B · 43Server → Client

SetSpawnPosition

Sets the world or player spawn point used by compasses and respawns.

0x2D · 45Both

Respawn

Coordinates the respawn flow: the server searches for a spawn, the client readies, the server confirms the final position.

0x37 · 55Both

AdventureSettings

Legacy permissions packet: adventure flags, command permission level, action permissions and permission level for one player.

0x3F · 63Server → Client

PlayerList

Adds or removes entries from the tab list / player registry, each with UUID, name, XUID, platform and skin.

0x5D · 93Both

PlayerSkin

Client skin update: full SerializedSkin with geometry, animations, persona pieces and tint colors.

0x71 · 113Client → Server

SetLocalPlayerAsInitialized

Client tells the server that the client is ready to roll.

0x8A · 138Both

Emote

Sent in both directions; by client to request that an emote is played and then from the server to the clients to indicate which player needs to now emote.

0x95 · 149Server → Client

PlayerArmorDamage

0x98 · 152Both

EmoteList

0xA0 · 160Server → Client

PlayerFog

This is the packet that tracks the active fog stack from the server so the local players can apply different fog settings.

0xC5 · 197Client → Server

ClientCheatAbility

Functions the same as UpdateAbilities; the reason these two were separated is unclear.

0x135 · 309Server → Client

AwardAchievement

0x143 · 323Both

UpdateClientOptions

The values in this packet are originally synced through the Connection Request and then updated via this packet.

0x145 · 325Server → Client

PlayerUpdateEntityOverrides

Updates client entity property override data. Sets/removes an override for the indicated property for a specific entity on a client or clears all overrides for that entity.

0x146 · 326Server → Client

PlayerLocation

Sent by PlayerLocationSender when a player position changes beyond a certain angle.

Entities

0x0D · 13Server → Client

AddActor

Spawns a non-player entity (mob, projectile, item-less actor) with type identifier, attributes, metadata and links.

0x0E · 14Server → Client

RemoveActor

Despawns an entity by its unique ID (not the runtime ID).

0x0F · 15Server → Client

AddItemActor

0x11 · 17Server → Client

TakeItemActor

Item pickup: the taker (player/runtime) grabs an item actor, decrementing its count.

0x12 · 18Server → Client

MoveActorAbsolute

0x16 · 22Server → Client

AddPainting

0x1B · 27Both

ActorEvent

Triggers an entity animation or state event such as hurt, death, eating or taming.

0x1C · 28Server → Client

MobEffect

Adds, modifies or removes a potion effect on an entity, with duration, amplifier, particles and ambient flags.

0x1D · 29Server → Client

UpdateAttributes

Updates entity attributes (health, movement speed, hunger, ...) with min/max/current/default values and modifiers.

0x23 · 35Client → Server

ActorPickRequest

0x27 · 39Server → Client

SetActorData

Updates an entity's synchronized data: flags (on fire, sneaking, ...), byte/short/int/float/long variants and component data like bounding box.

0x28 · 40Server → Client

SetActorMotion

Sets an entity's velocity. For the local player with server-auth movement the client predicts and corrects instead.

0x29 · 41Both

SetActorLink

Sent when the player starts riding something. Two are sent at a time for some reason.

0x2C · 44Both

Animate

Plays a player animation: arm swing, critical hit, wake up or rowing.

0x42 · 66Server → Client

SpawnExperienceOrb

Note: This can be seen as "ContainerWantSetSlotPacket" when sent from client to server. Currently, the client handles side-effects relating to it's own inventory, regardless of the success of the operation.

0x59 · 89Server → Client

AddBehaviorTree

For automation

0x60 · 96Server → Client

SetLastHurtBy

0x62 · 98Client → Server

NpcRequest

A request is made from the client during an interaction with an NPC then the request is processed by the server. Actor MUST have the NPCComponent to be handled. We currently only use this for EDU, but the goal was to expose the NPC Component to creators.

0x77 · 119Server → Client

AvailableActorIdentifiers

0x9D · 157Server → Client

MotionPredictionHints

This is from the server when spatial optimizations are enabled and the server does not send a spatial update.

0x9E · 158Server → Client

AnimateEntity

Several properties can be specified in the following order:</br> - The name of the animation (a string) that the specified entities are to play.</br> - The next state to transition to (a string) once the specified animation is finished playing.</br> - The stop expression (a string), the condition that determines when to transition to the next state.</br> - The name of an animation controller (a string) that you would like to use.</br> - The blend out time (a float), the amount of time to blend out of this animation.</br> - A vector of ActorRuntimeIds of the entities that will play the specified animation.

0xA5 · 165Server → Client

SyncActorProperty

Intended to one day replace SynchedActorData.

0xA9 · 169Server → Client

NpcDialogue

0xB6 · 182Server → Client

ChangeMobProperty

0xB8 · 184Client → Server

RequestAbility

Client request to toggle an ability (e.g. stop flying). The server validates permissions before applying it.

0xB9 · 185Client → Server

RequestPermissions

Client → server command-permission and player-permission request (custom operator levels), answered by UpdateAdventureSettings/UpdateAbilities.

0xBB · 187Server → Client

UpdateAbilities

Full ability layers sync: per-layer permission values and ability toggles (fly, fly speed, walk speed, may build, ...).

0xBC · 188Server → Client

UpdateAdventureSettings

Sent by the server to update the state of AdventureSettings. Replaces the AdventureSettingsPacket for updating AdventureSettings from server to client.

0xBD · 189Server → Client

DeathInfo

mDeathCauseMessage: is untranslated cause of death string vector returned from ActorDamageSource

0x13E · 318Server → Client

MovementEffect

These MovementEffects can be client-predicted. Ex: Fireworks Rockets used while gliding send this packet to the client so they know the exact duration of the GLIDE_BOOST MovementEffect.

Movement

0x10 · 16Server → Client

ServerPlayerPostMovePosition

Debug-draw hook for server-side post-move player positions; only sent when debug rendering is enabled.

0x13 · 19Both

MovePlayer

Teleports or hard-sets a player's position. With server-authoritative movement the client only sends it to acknowledge teleports; regular movement rides on PlayerAuthInput.

0x24 · 36Client → Server

PlayerAction

The expected actions change depending on the ServerAuthMovementMode specified in the StartGamePacket. See the PlayerActionType enum for details on which have differing behavior. See also PlayerAuthInputPacket and InventoryTransactionPacket for similar types of player actions.

0x6F · 111Server → Client

MoveActorDelta

Each position, rotation and head-rotation component is sent as an independent optional, accompanied by flags indicating whether the actor is on the ground and whether this is a teleport.

0x90 · 144Client → Server

PlayerAuthInput

Sent every tick with server-authoritative movement: position, rotation, input flags, pending item/block actions and vehicle state. Replaces client-bound MovePlayer as the client's movement packet.

0xA1 · 161Server → Client

CorrectPlayerMovePrediction

Used only in server authoritative movement mode, see ServerAuthMovementMode documentation.<br> Since it is sent to the specified client the target player is implied to be the receiver.<br> It is an optional part of the server authoritative protocol. A server could choose to never send this or do all corrections through MovePlayerPacket, although doing so would likely provide less smooth results.

0xC4 · 196Server → Client

UpdateClientInputLocks

Used to update the players input permissions. Sends the full permission set and the server position of the player at the time the permission was modified.

0x142 · 322Client → Server

ClientMovementPredictionSync

Only used in Server-Authoritative Movement. Sent periodically if the client has received corrections from the server. Contains information about client-predictions that are relevant to movement.

Inventory

0x1E · 30Both

InventoryTransaction

Legacy use-item/placement packet. Inventory and crafting moves went through ItemStackRequest long ago; only the UseItem transaction family still carries meaningful traffic.

0x1F · 31Client → Server

MobEquipment

Held item sync per slot (hotbar selected slot + equipment window/slot).

0x20 · 32Server → Client

MobArmorEquipment

Armor sync: head/chest/legs/feet/offhand item stacks in one packet.

0x2E · 46Both

ContainerOpen

Opens a container UI (chest, furnace, horse, ...), positioning it and binding entity containers.

0x2F · 47Both

ContainerClose

Closes a container window; the server echoes the client's close with the same window id.

0x30 · 48Server → Client

PlayerHotbar

0x31 · 49Server → Client

InventoryContent

0x32 · 50Server → Client

InventorySlot

0x33 · 51Server → Client

ContainerSetData

0x34 · 52Server → Client

CraftingData

The crafting registry: recipes (shaped, shapeless, furnace, potion mixes, container, material reducer) with network ids the client uses in ItemStackRequest.

0x36 · 54Server → Client

GuiDataPickItem

This is only used when players use pick block, a command is used, tests, and some 3rd party content.

0x50 · 80Server → Client

UpdateTrade

0x51 · 81Server → Client

UpdateEquip

0x61 · 97Client → Server

BookEdit

0x6D · 109Client → Server

LabTable

The packet can be fired from the client through the UI or from the server during updates.

0x8E · 142Server → Client

CompletedUsingItem

0x91 · 145Server → Client

CreativeContent

The creative inventory: grouped entries of item stacks, sent after spawn.

0x92 · 146Server → Client

PlayerEnchantOptions

0x93 · 147Client → Server

ItemStackRequest

The client's authoritative request stream for every inventory/crafting/trade operation: each request has an id, a list of filtered stack operations and string filters.

0x94 · 148Server → Client

ItemStackResponse

Server's per-request result for ItemStackRequest: ok with modified slots, or an error with a reason.

0xA2 · 162Server → Client

ItemRegistry

This packet needs to be sent immediately after the StartGamePacket for primary clients.

0xB0 · 176Server → Client

PlayerStartItemCooldown

Packet sent by the player to start the cooldown on an item.

0xC7 · 199Server → Client

UnlockedRecipes

0x12E · 302Server → Client

TrimData

- mTrimPatterns: vector of TrimPattern - mTrimMaterials: vector of TrimMaterial

0x132 · 306Client → Server

PlayerToggleCrafterSlotRequest

0x133 · 307Both

SetPlayerInventoryOptions

0x13D · 317Server → Client

ContainerRegistryCleanup

Whenever the serverside ContainerRegistry does a clean, identifiers for the removed containers are gathered in a ContainerRegistryCleanUp packet and sent to the client so that the clientside container registry can remove those same containers.

0x15F · 351Client → Server

SetPlayerFurnaceOptions

The player's screen options for one kind of furnace: which left-hand tab is open, whether the recipe list is filtered, and the layout it draws with.

Scripting

Telemetry

Graphics

Presence

Audio

Store

Education

Accessibility