Network packets

The messages that shape Minecraft Bedrock network traffic, ordered by packet identifier.

Packets

Ordered by network identifier
1
LoginPacket
2
PlayStatusPacket Used after the Server handles a Login or (Sub)Client Authentication Packet If everything is good, then it sends this packet to the client to finish the handshake. If everything is not good, it terminates the connection.
3
ServerToClientHandshakePacketSent from the server at the end of the login packet
4
ClientToServerHandshakePacket
5
DisconnectPacket
6
ResourcePacksInfoPacketSends resource pack information to the client including pack IDs, versions, sizes, and content keys.
7
ResourcePackStackPacketSent to client in response to ResourcePackClientResponsePacket with info on current resource pack stack.
8
ResourcePackClientResponsePacketSent to MinecraftGame to complete the resource pack loading process.
9
TextPacketUsed for commands, messages, and other info printed to the screen. Most of which are server->client or server broadcasted to all clients, but some cases have a client to other client via the server
10
SetTimePacketEvery 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
11
StartGamePacketThe player movement mode is also specified here, see ServerAuthMovementMode enum documentation for details on the modes.
12
AddPlayerPacketA new player joins the game; the server sends this packet to the other players.
13
AddActorPacketNewly created entities on server use AddActorPacket to notify clients that they exist.
14
RemoveActorPacketThis is sent to the client to confirm which entity is being removed. This is done by sending an ActorUniqueID
15
AddItemActorPacket
16
ServerPlayerPostMovePositionPacketIs currently only used for debug draw. Packets will not be sent if debug draw is not available.
17
TakeItemActorPacketFrom this the item and count is turned into an item and the transaction is handled afterwards.
18
MoveActorAbsolutePacket
19
MovePlayerPacket
21
UpdateBlockPacketThis happens often. Luckily, the packets are small.
22
AddPaintingPacket
25
LevelEventPacket
26
BlockEventPacket
27
ActorEventPacketRanges from a crossbow being ready to fire to taming animals..., some of which may be obsolete (frex, ADD_PLAYER_LEVELS)
28
MobEffectPacketAt the start of the game the server sends any mob effects with _sendAdditionalLevelData() if the joining player saved out with them, and then anytime a mob effect is added, removed, or updated this packet is sent.<br> It is important for player movement simulation to ensure that the following effects are sent for the player or any client predicted vehicle they are in control of:<br> - levitation<br> - slow_falling<br> - jump<br> - movement_speed<br> - movement_slowdown<br> - weaving
29
UpdateAttributesPacketOccasionally updating player attributes (buffs/debuffs, health, etc)
30
InventoryTransactionPacket
31
MobEquipmentPacket
32
MobArmorEquipmentPacketThis is related to MobEquipmentPackets, but armor specifically and passes ALL equipment changes at once instead of one slot at a time.
33
InteractPacketUsed for inventory button press and in _updateInteraction() for a variety of purposes. From the client.
34
BlockPickRequestPacket
35
ActorPickRequestPacket
36
PlayerActionPacketThe 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.
38
HurtArmorPacketSends 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.
39
SetActorDataPacket
40
SetActorMotionPacket It is primarily relevant for client predicted entities like the player or a boat or horse they are in control of. For most other actor types it does nothing.<br> This is one of the packets that can directly affect player motion, for others, see:<br> - MovePlayerPacket<br> - CorrectPlayerMovePredictionPacket
41
SetActorLinkPacketSent when the player starts riding something. Two are sent at a time for some reason.
42
SetHealthPacket
43
SetSpawnPositionPacketsee RespawnPacket
44
AnimatePacketCombination of server bound and client bound packets to trigger animations.
45
RespawnPacketFor some reason each respawn 1 packet is sent from the client and 3 are sent from the server.
46
ContainerOpenPacket
47
ContainerClosePacket
48
PlayerHotbarPacket
49
InventoryContentPacket
50
InventorySlotPacket
51
ContainerSetDataPacket
52
CraftingDataPacketSent from the server on level startup to send all recipes to the client.
54
GuiDataPickItemPacketThis is only used when players use pick block, a command is used, tests, and some 3rd party content.
56
BlockActorDataPacket
58
LevelChunkPacketUsed to start a chunk transaction.
59
SetCommandsEnabledPacketsee SimpleEventPacket
60
SetDifficultyPacketUsed for when a client changes difficulty through the menu or when the server changes the difficulty.
61
ChangeDimensionPacket
62
SetPlayerGameTypePacketThe 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.
63
PlayerListPacketSent from the Server at the start of the game or when a player is added to all clients. Lists the players.
64
SimpleEventPacketThis is fired from the client to the server and a SetCommandsEnabledPacket is sent back when enabling commands.
65
LegacyTelemetryEventPacket
66
SpawnExperienceOrbPacketNote: 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.
67
ClientboundMapItemDataPacket
68
MapInfoRequestPacket 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
69
RequestChunkRadiusPacketThis packet is to make sure that the server expands/shrinks first. Additionally for ClientSide Chunk Generation we can send a byte, based on client's hardware capabilities what is the max chunk radius client can handle.
70
ChunkRadiusUpdatedPacket
72
GameRulesChangedPacketInforms client about any changes to the game rules.
73
CameraPacket
74
BossEventPacket
75
ShowCreditsPacketThat 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.
76
AvailableCommandsPacket
77
CommandRequestPacket
78
CommandBlockUpdatePacketSent when you close the command block screen on the client.
79
CommandOutputPacket
80
UpdateTradePacket
81
UpdateEquipPacket
82
ResourcePackDataInfoPacketSent from the serverFileChunkUploader during the initialization of the file uploader. This packet is sent to the primary client.
83
ResourcePackChunkDataPacket(only one marked for uncompressed) realms resource pack download
84
ResourcePackChunkRequestPacket
85
TransferPacket
86
PlaySoundPacket
87
StopSoundPacket
88
SetTitlePacketThere are 2 commands associated with it: title and titleraw. Both of which have functionality to change fade in/out time for titles, sub titles, and action bar text. titleraw is using json to format so it will be bigger (i don't have an example)
89
AddBehaviorTreePacketFor automation
90
StructureBlockUpdatePacket
91
ShowStoreOfferPacketThe server can redirect the user to a 3rd party server page, to a marketplace offer description page, or to a dressing room page containing desired offer.
92
PurchaseReceiptPacketSent from the client after we make a purchase in the store OR if we login and our entitlements are verified. It sends a vector of purchase receipts(string).There is a handler and a multiple senders.
93
PlayerSkinPacketSent from the client to server, then processed and broadcasted to all clients. This is used by third-party(3P) servers to send custom geometry.
94
SubClientLoginPacket
95
AutomationClientConnectPacketOnly used though command to connect to server URLs. This is primarily used by EDU for connecting to their companion apps and other external applications through web sockets. Some mods/3rd party packs use it as well.
96
SetLastHurtByPacket
97
BookEditPacket
98
NpcRequestPacketA 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.
99
PhotoTransferPacket 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.
100
ModalFormRequestPacketNot sent from vanilla. The feature is meant for third-party servers to be able to drive dynamic ui forms. The request comes with some JSON that describes a custom UI screen thirdparty uses.Server->client.
101
ModalFormResponsePacketsee ModalFormRequestPacket
102
ServerSettingsRequestPacketIt is also an empty packet. There is no handler for this packet, should be removed.
103
ServerSettingsResponsePacket
104
ShowProfilePacketThe only use in vanilla is a test command called ProfileCommand. It makes the user's xbox profile popup.
105
SetDefaultGameTypePacket
106
RemoveObjectivePacketThis is just the name of the objective.
107
SetDisplayObjectivePacket
108
SetScorePacketSets the scoreboard which is used for 3rd party content.
109
LabTablePacketThe packet can be fired from the client through the UI or from the server during updates.
110
UpdateBlockSyncedPacketVariation 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.
111
MoveActorDeltaPacketEach 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.
112
SetScoreboardIdentityPacketSend an update packet for a player identity definition iff a tracked player has logged in with a different display name.
113
SetLocalPlayerAsInitializedPacketClient tells the server that the client is ready to roll.
114
UpdateSoftEnumPacketThis allows someone to sync between server and client tags and enums on mobs or on the level.
115
NetworkStackLatencyPacketDEPRECATED. Was for testing/debug/telemetry: Used to provide ping time to in game debug graph, also for realms telemetry of actual in game latency. Sent from both client & server.
118
SpawnParticleEffectPacketThis is not used for much anymore, only the Particle command (spawn particle by name at a location) and for ScriptServerSpawnParticleAttachedToActor and ScriptServerSpawnParticleInWorldEvent.
119
AvailableActorIdentifiersPacket
121
NetworkChunkPublisherUpdatePacketUsed (from the server) when a user's Chunk View moves, I.e. the area that determines what chunks exist. For ClientSideGeneration we also send the client a list of ChunkPos that the Server will fully build.
122
BiomeDefinitionListPacket- mBiomeData: map of biome string indices to biome definition data. - mStringList: list of biome name strings.
123
LevelSoundEventPacket Most sounds get launched on server and replicated to clients, but a handful of player initiated sounds are launched on their client and replicated through the network. (In most of the codebase 'Event' means telemetry events; this is not the case here, this is how sounds get replicated across the network in vanilla.) With support for custom entities. Entity Id is a string and Event Id is an integer.
124
LevelEventGenericPacket
125
LecternUpdatePacketIt is a request from the client to either turn the page in the lectern or drop the book.
129
ClientCacheStatusPacketSent by the Client once, at login, to communicate if it supports the client blob cache protocol or not. <br> Documented in <a href=https://github.com/Mojang/bedrock-docs/blob/master/GameplaySystems/ClientBlobCacheProtocol.md>https://github.com/Mojang/bedrock-docs/blob/master/GameplaySystems/ClientBlobCacheProtocol.md</a>
130
OnScreenTextureAnimationPacketSent 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.
131
MapCreateLockedCopyPacket 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.
132
StructureTemplateDataRequestPacketThis 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.
133
StructureTemplateDataResponsePacketThe 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.
135
ClientCacheBlobStatusPacketSent periodically by the client to update the server on which blob it has (ACK) and which blobs it is lacking (MISS).
136
ClientCacheMissResponsePacketAny 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.
137
EducationSettingsPacketCurrently transmits EducationLevelSettings to all clients when the game is starting.
138
EmotePacketSent 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.
139
MultiplayerSettingsPacket 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.
140
SettingsCommandPacketUsed when the player changes the world settings like doDayNightCycle or WeatherCycle via the world settings menu
141
AnvilDamagePacket 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.
142
CompletedUsingItemPacket
143
NetworkSettingsPacket
144
PlayerAuthInputPacketThese are for Server Authoritative Movement to sync all player input with the server.
145
CreativeContentPacketSent once by the server on startup to tell clients all of the items that can show up in the creative menu and recipe book.
146
PlayerEnchantOptionsPacket
147
ItemStackRequestPacket
148
ItemStackResponsePacket
149
PlayerArmorDamagePacket
150
CodeBuilderPacketThis is EDU exclusively.It is sent once from _sendLevelData() in the start of a game from the server, and once per CodeBuilderCommand
151
UpdatePlayerGameTypePacket
152
EmoteListPacket
153
PositionTrackingDBServerBroadcastPacket
154
PositionTrackingDBClientRequestPacketClient 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
155
DebugInfoPacket
156
PacketViolationWarningPacket
157
MotionPredictionHintsPacketThis is from the server when spatial optimizations are enabled and the server does not send a spatial update.
158
AnimateEntityPacketSeveral 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.
159
CameraShakePacketIt may be used to queue or stop a camera shake
160
PlayerFogPacketThis is the packet that tracks the active fog stack from the server so the local players can apply different fog settings.
161
CorrectPlayerMovePredictionPacketUsed 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.
162
ItemRegistryPacketThis packet needs to be sent immediately after the StartGamePacket for primary clients.
164
ClientboundDebugRendererPacket
165
SyncActorPropertyPacketIntended to one day replace SynchedActorData.
166
AddVolumeEntityPacket
167
RemoveVolumeEntityPacket
168
SimulationTypePacket- mSimType: an enum representing the simulation type to switch to.
169
NpcDialoguePacket
170
EduUriResourcePacket
171
CreatePhotoPacket
172
UpdateSubChunkBlocksPacket
174
SubChunkPacketContains subchunk terrain data, heightmaps, and optional blob cache IDs.
175
SubChunkRequestPacket
176
PlayerStartItemCooldownPacketPacket sent by the player to start the cooldown on an item.
177
ScriptMessagePacket
178
CodeBuilderSourcePacket
179
TickingAreasLoadStatusPacket
180
DimensionDataPacketContains dimension definition data including height bounds and generator type for each dimension.
181
AgentActionEventPacket
182
ChangeMobPropertyPacket
183
LessonProgressPacket
184
RequestAbilityPacketOnce changed, the server will broadcast the updated state of abilities for that player. If the request is rejected, the caller will receive their reverted state of Abilities. Can only be used to modify the calling player. - mVariable: Info about this variable
185
RequestPermissionsPacketCan only be used by Operators or Hosts.
186
ToastRequestPacket
187
UpdateAbilitiesPacket
188
UpdateAdventureSettingsPacketSent by the server to update the state of AdventureSettings. Replaces the AdventureSettingsPacket for updating AdventureSettings from server to client.
189
DeathInfoPacketmDeathCauseMessage: is untranslated cause of death string vector returned from ActorDamageSource
190
EditorNetworkPacket
191
FeatureRegistryPacket
192
ServerStatsPacketSent from server.
193
RequestNetworkSettingsPacketThis is the initial packet sent from the client to initiate a connection. NOTE: this packet should not contain anything other than the client version, don't add new data here.
194
GameTestRequestPacket
195
GameTestResultsPacketInternal Text Packet
196
UpdateClientInputLocksPacketUsed 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.
198
CameraPresetsPacket
199
UnlockedRecipesPacket
300
CameraInstructionPacket
302
TrimDataPacket- mTrimPatterns: vector of TrimPattern - mTrimMaterials: vector of TrimMaterial
303
OpenSignPacket
304
AgentAnimationPacket
305
RefreshEntitlementsPacket
306
PlayerToggleCrafterSlotRequestPacket
307
SetPlayerInventoryOptionsPacket
308
SetHudPacketThis packet will toggle the HUD visibility.
309
AwardAchievementPacket
310
ClientboundCloseFormPacketThis will only have an affect if the client currently has a server form on the UI stack.
312
ServerboundLoadingScreenPacketIn 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.
313
JigsawStructureDataPacketSends the serialized jigsaw rule JSON to the client as it's needed on both the client and server.
314
CurrentStructureFeaturePacketSends 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.
315
ServerboundDiagnosticsPacket
316
CameraAimAssistPacket
317
ContainerRegistryCleanupPacket 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.
318
MovementEffectPacket 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.
320
CameraAimAssistPresetsPacket Sent by the server to clients for initializing and updating the client aim-assist registry. AddToExisting operations are sent by the server when new presets/categories are added to the registry through creator facing APIs.
321
ClientCameraAimAssistPacket Sent by clients to the server for activating/deactivating aim-assist. Activation uses the CameraPreset Id for server-side lookup and uses its aim_assist field for aim-assist activation settings.
322
ClientMovementPredictionSyncPacketOnly 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.
323
UpdateClientOptionsPacketThe values in this packet are originally synced through the Connection Request and then updated via this packet.
324
PlayerVideoCapturePacketInternal
325
PlayerUpdateEntityOverridesPacketUpdates 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.
326
PlayerLocationPacketSent by PlayerLocationSender when a player position changes beyond a certain angle.
327
ClientboundControlSchemeSetPacket
328
PrimitiveShapesPacket
329
ServerboundPackSettingChangePacket
330
ClientboundDataStorePacket
331
GraphicsOverrideParameterPacket
332
ServerboundDataStorePacket
333
ClientboundDataDrivenUIShowScreenPacket
334
ClientboundDataDrivenUICloseScreenPacket
335
ClientboundDataDrivenUIReloadPacket
336
ClientboundTextureShiftPacket
337
VoxelShapesPacketSends 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.
338
CameraSplinePacket Sent by the server to clients for initializing custom spline data that can be played later through the camera command.
339
CameraAimAssistActorPriorityPacket Sent by the server to clients for updating the actor priority for client aim-assist systems.
340
ResourcePacksReadyForValidationPacket
341
LocatorBarPacket
342
PartyChangedPacket
343
ServerboundDataDrivenScreenClosedPacket
344
SyncWorldClocksPacket 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.
345
ClientboundAttributeLayerSyncPacket
346
ServerStoreInfoPacket
347
ServerPresenceInfoPacket
348
ClientboundUpdateSoundDataPacket
349
SendPartyDestinationCookiePacket
350
PartyDestinationCookieResponsePacket
351
SetPlayerFurnaceOptionsPacket