Game
Clientbound (Client → Server)
0x00 Add Entity to Client
This packet is used to inform the client about a new entity that has been added to the game world. It contains all necessary information about the entity, such as its ID, type, position, and movement data.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | Unique identifier for the entity within the world. |
| uuid | Entity UUID | UUID | Universally unique identifier for the entity, used for tracking across sessions. |
| type | Entity Type | EntityType | The type of entity being added, such as a player, mob, or item. |
| x | X Position | Double | The X coordinate of the entity's position in the world. |
| y | Y Position | Double | The Y coordinate of the entity's position in the world. |
| z | Z Position | Double | The Z coordinate of the entity's position in the world. |
| xa | X Velocity | Short | The velocity of the entity along the X axis, scaled by 8000. |
| ya | Y Velocity | Short | The velocity of the entity along the Y axis, scaled by 8000. |
| za | Z Velocity | Short | The velocity of the entity along the Z axis, scaled by 8000. |
| xRot | X Rotation | Byte | The rotation of the entity around the X axis, packed as a byte. |
| yRot | Y Rotation | Byte | The rotation of the entity around the Y axis, packed as a byte. |
| yHeadRot | Y Head Rotation | Byte | The rotation of the entity's head around the Y axis, packed as a byte. |
| data | Entity Data | VarInt | Additional data specific to the entity type, such as variant or state information. |
0x01 Add Experience Orb Packet
This packet is sent from the server to the client to inform the client about the addition of an experience orb in the game world. It contains information about the orb's unique identifier, its position in the world, and the amount of experience it holds.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Experience Orb ID | VarInt | A unique identifier for the experience orb. This ID is used to track the orb within the game world. |
| x | X Coordinate | Double | The X coordinate of the experience orb's position in the game world. |
| y | Y Coordinate | Double | The Y coordinate of the experience orb's position in the game world. |
| z | Z Coordinate | Double | The Z coordinate of the experience orb's position in the game world. |
| value | Experience Value | Short | The amount of experience points the orb contains. This value is used to determine how much experience a player gains when collecting the orb. |
0x02 Animation Packet for Client
This packet is used to communicate animation actions from the server to the client, such as swinging an arm or performing a critical hit.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | The unique identifier for the entity performing the animation. |
| action | Animation Action | UnsignedByte | The specific animation action to be performed, represented by an integer constant (e.g., SWING_MAIN_HAND, WAKE_UP). |
0x03 Award Statistics to Client
This packet is sent from the server to the client to update the client with the current statistics that have been awarded to the player. It contains a map of statistics and their corresponding values.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| stats | Statistics Map | Object2IntMap<Stat<?>> | This field contains a map where each key is a statistic and the value is the integer count of that statistic. It uses a fastutil Object2IntMap for efficient storage and retrieval. |
| STAT_VALUES_STREAM_CODEC | Statistics Stream Codec | StreamCodec<RegistryFriendlyByteBuf Object2IntMap<Stat<?>>> | This codec is used to encode and decode the statistics map to and from the byte buffer. It utilizes a map codec with a custom constructor and the Stat stream codec. |
| STREAM_CODEC | Packet Stream Codec | StreamCodec<RegistryFriendlyByteBuf ClientboundAwardStatsPacket> | This codec is used to encode and decode the entire packet, mapping the statistics stream codec to the packet constructor and stats method. |
0x04 Acknowledgment of Block Change
This packet is sent from the server to the client to acknowledge that a block change has been processed. It ensures that the client is aware of the sequence of block changes that have occurred.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| sequence | Sequence Number | VarInt | This field represents the sequence number of the block change acknowledgment. It is used to track the order of block changes and ensure that they are processed in the correct sequence. |
0x05 Block Destruction Notification
This packet is sent from the server to the client to notify about the progress of block destruction at a specific position. It is used to update the client on the current state of block breaking, such as when a player is mining a block.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | The unique identifier for the entity that is causing the block destruction. This helps in associating the destruction progress with a specific entity, such as a player. |
| pos | Block Position | BlockPos | The coordinates of the block being destroyed. This is used to locate the block in the world. |
| progress | Destruction Progress | UnsignedByte | The current progress of the block destruction, typically represented as a percentage (0-9). This indicates how much of the block has been destroyed. |
0x06 Block Entity Data Transmission
This packet is used to send data about a block entity from the server to the client. It includes the position of the block, its type, and any additional data stored in a CompoundTag.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Block Position | BlockPos | The position of the block entity in the world. This is crucial for the client to know where the block entity is located. |
| type | Block Entity Type | BlockEntityType<?> | The type of block entity being updated. This helps the client understand what kind of block entity it is dealing with. |
| tag | Block Entity Data | CompoundTag | Additional data for the block entity, stored in a CompoundTag. This can include custom data specific to the block entity's functionality. |
0x07 Block Event Notification Packet
This packet is sent from the server to the client to notify about a block event occurring at a specific position in the game world. It includes information about the block's position, the block type, and two additional parameters that define the event.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Block Position | BlockPos | The position of the block in the game world where the event is occurring. |
| b0 | Event Parameter 1 | Unsigned Byte | The first parameter of the block event, typically used to specify the type or state of the event. |
| b1 | Event Parameter 2 | Unsigned Byte | The second parameter of the block event, often used in conjunction with the first parameter to provide additional event details. |
| block | Block Type | Block | The type of block that is involved in the event, identified using the block registry. |
0x08 Block Update Notification
This packet is sent from the server to the client to inform about a change in the block state at a specific position in the world. It updates the client with the new block state at the given position.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Block Position | BlockPos | This field represents the position of the block in the world that has been updated. It is crucial for the client to know where the block change has occurred. |
| blockState | Block State | BlockState | This field contains the new state of the block at the specified position. It includes information about the type of block and its properties. |
0x09 Boss Event Packet
This packet is used to manage boss events in the game, such as adding, removing, or updating boss bars.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Unique Identifier | UUID | A unique identifier for the boss event. |
| operation | Operation Type | ClientboundBossEventPacket.Operation | The specific operation to perform on the boss event, such as add, remove, or update. |
| write | Write Method | RegistryFriendlyByteBuf | Writes the packet data to the buffer, including the UUID and operation type. |
0x0a Change Difficulty Packet
This packet is sent from the server to the client to inform about a change in the game's difficulty level. It also indicates whether the difficulty is locked, preventing further changes.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| difficulty | Game Difficulty | Difficulty | Represents the difficulty level of the game. It is read from the buffer as an unsigned byte and corresponds to a specific difficulty level using the Difficulty.byId method. |
| locked | Difficulty Locked Flag | boolean | Indicates whether the difficulty setting is locked. If true, the difficulty cannot be changed by the player. It is read from the buffer as a boolean value. |
0x0b Notify client of completed chunk batch processing
This packet is sent from the server to the client to indicate that a batch of chunks has been processed and is ready for the client to handle. It helps in managing the flow of chunk data to the client, ensuring that the client is aware of the completion of a batch of chunks.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| batchSize | Batch Size | VarInt | This field represents the number of chunks that were processed in the batch. It is read from the buffer using readVarInt and written using writeVarInt. |
0x0c Chunk Batch Start Packet
This packet is sent from the server to the client to indicate the start of a batch of chunk data being sent. It is used to optimize the transmission of multiple chunks by grouping them together.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| INSTANCE | Singleton Instance | ClientboundChunkBatchStartPacket | A singleton instance of the packet, used to avoid creating multiple instances since the packet does not carry any data. |
| STREAM_CODEC | Stream Codec | StreamCodec<ByteBuf ClientboundChunkBatchStartPacket> | A codec for encoding and decoding the packet, using a unit codec since the packet has no data. |
0x0d Clientbound Chunks Biomes Packet
This packet is used to send biome data for multiple chunks from the server to the client. It includes the position and biome data for each chunk.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| chunkBiomeData | Chunk Biome Data | List<ClientboundChunksBiomesPacket.ChunkBiomeData> | A list containing biome data for each chunk. |
| STREAM_CODEC | Stream Codec | StreamCodec<FriendlyByteBuf ClientboundChunksBiomesPacket> | Codec for encoding and decoding the packet. |
| TWO_MEGABYTES | Two Megabytes | int | Constant representing the maximum size of the byte array for chunk data. |
0x0e Clear Titles Packet
This packet is used to clear titles from the player's screen in the game. It can also reset the title display times if specified.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| resetTimes | Reset Title Times | Boolean | Indicates whether the title display times should be reset. If true, the title times are reset; otherwise, they are not. |
0x0f Command Suggestions Packet
This packet is used to send command suggestions from the server to the client. It provides a list of possible completions for a command that the player is typing.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Suggestion ID | VarInt | A unique identifier for the suggestion request. This ID is used to match the response with the request. |
| start | Start Index | VarInt | The starting index of the command input where suggestions should be applied. |
| length | Length of Input | VarInt | The length of the command input that is being suggested. |
| suggestions | List of Suggestions | List<ClientboundCommandSuggestionsPacket.Entry> | A list of possible command completions, each with optional tooltips. |
0x10 Clientbound Commands Packet
This packet is responsible for synchronizing command trees from the server to the client. It allows the client to understand the available commands and their structure, enabling features like command suggestions and validation.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| rootIndex | Root Index | VarInt | The index of the root command node in the entries list. |
| entries | Entries | List<ClientboundCommandsPacket.Entry> | A list of command entries representing the nodes in the command tree. |
0x11 Close Container Packet
This packet is sent from the server to the client to indicate that a container (such as a chest or crafting table) should be closed.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container Identifier | int | This field represents the unique identifier of the container that is being closed. It is used to specify which container should be closed on the client side. |
0x12 Container Content Update Packet
This packet is sent from the server to the client to update the contents of a container, such as a chest or inventory, including the item being carried by the player.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container Identifier | ContainerId | Unique identifier for the container whose contents are being updated. |
| stateId | State Identifier | VarInt | Represents the current state of the container, used for synchronization purposes. |
| items | Container Items | ItemStack List | A list of items currently in the container. Each item is represented as an ItemStack. |
| carriedItem | Carried Item | ItemStack | The item currently being carried by the player, represented as an ItemStack. |
0x13 Container Data Update Packet
This packet is sent from the server to the client to update data in a container, such as a chest or a furnace. It informs the client about changes in the container's data, like progress bars or other state information.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container Identifier | ContainerId | This field represents the unique identifier for the container whose data is being updated. It is used to specify which container the data update is for. |
| id | Data Identifier | Short | This field specifies the particular data point within the container that is being updated. It acts as an index or key for the data being modified. |
| value | Data Value | Short | This field contains the new value for the data point specified by the 'id' field. It represents the updated state or value for that data point. |
0x14 Update Container Slot
This packet is sent from the server to the client to update the item in a specific slot of a container. It informs the client about changes in the inventory or container slots, ensuring the client has the correct item data.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container Identifier | int | The ID of the container being updated. This helps the client identify which container's slot is being modified. |
| stateId | State Identifier | VarInt | A unique identifier for the current state of the container. It is used to ensure that the client and server are synchronized. |
| slot | Slot Index | short | The index of the slot within the container that is being updated. This tells the client which specific slot to update. |
| itemStack | Item Stack | ItemStack | The item stack to be placed in the specified slot. This includes the item type, count, and any additional data like enchantments or custom names. |
0x15 Clientbound Cookie Request Packet
This packet is used to request a cookie from the client, identified by a specific resource location key.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| key | Resource Location Key | ResourceLocation | This field represents the unique identifier for the cookie being requested. It is read from the buffer when the packet is constructed and written to the buffer when the packet is sent. |
0x16 Cooldown Notification Packet
This packet is sent from the server to the client to notify about the cooldown period for a specific item or action. It informs the client about the duration for which a particular item or action is on cooldown, preventing its use until the cooldown expires.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| cooldownGroup | Cooldown Group Identifier | ResourceLocation | This field represents the unique identifier for the group of items or actions that are on cooldown. It uses the ResourceLocation type to ensure uniqueness across different namespaces. |
| duration | Cooldown Duration | VarInt | This field specifies the duration of the cooldown in ticks. The client uses this information to display the cooldown timer to the player. |
0x17 Custom Chat Completions Packet
This packet is used to manage custom chat completions on the client side. It allows the server to add, remove, or set specific chat completions that the client can use.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| action | Action Type | Enum | Specifies the type of action to be performed on the chat completions. It can be ADD, REMOVE, or SET. |
| entries | Chat Completion Entries | List<String> | A list of chat completion entries that are affected by the action. These are UTF-8 encoded strings. |
0x18 Custom Payload Packet
This packet is used to send custom payloads from the server to the client. It allows for the transmission of various types of data that are not covered by standard packets, enabling custom features and debugging information to be communicated.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| payload | Custom Payload | CustomPacketPayload | The main data being transmitted in this packet. It can be of various types, such as BrandPayload, BeeDebugPayload, etc. |
| MAX_PAYLOAD_SIZE | Maximum Payload Size | int | The maximum size allowed for the payload, set to 1048576 bytes (1 MB). |
| GAMEPLAY_STREAM_CODEC | Gameplay Stream Codec | StreamCodec<RegistryFriendlyByteBuf ClientboundCustomPayloadPacket> | Codec used for encoding and decoding gameplay-related custom payloads. It supports a variety of payload types for different debugging and gameplay features. |
| CONFIG_STREAM_CODEC | Config Stream Codec | StreamCodec<FriendlyByteBuf ClientboundCustomPayloadPacket> | Codec used for encoding and decoding configuration-related custom payloads, primarily focused on BrandPayload. |
0x19 Clientbound Damage Event Packet
This packet is used to communicate damage events from the server to the client, detailing the source and cause of the damage inflicted on an entity.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity ID | VarInt | The unique identifier of the entity that received the damage. |
| sourceType | Source Type | Holder<DamageType> | The type of damage source, encoded using a stream codec. |
| sourceCauseId | Source Cause ID | VarInt | The ID of the entity that caused the damage, if applicable. If no entity caused the damage, this value is -1. |
| sourceDirectId | Source Direct ID | VarInt | The ID of the direct entity involved in the damage, if applicable. If no direct entity is involved, this value is -1. |
| sourcePosition | Source Position | Optional<Vec3> | The position from which the damage originated, if applicable. This is optional and may not be present. |
0x1a Debug Sample Packet
This packet is used to send debug sample data from the server to the client. It includes a series of long values representing the sample data and an enumeration indicating the type of debug sample.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| sample | Sample Data | long[] | An array of long values representing the debug sample data. |
| debugSampleType | Debug Sample Type | RemoteDebugSampleType | An enumeration indicating the type of debug sample being sent. |
0x1b Delete Chat Message Packet
This packet is used to delete a specific chat message on the client side. It is sent from the server to the client to instruct the client to remove a chat message identified by its signature.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| messageSignature | Message Signature | MessageSignature.Packed | This field contains the packed signature of the message that needs to be deleted. It uniquely identifies the chat message to be removed. |
0x1c Client Disconnect Packet
This packet is sent from the server to the client to indicate that the client is being disconnected from the server. The reason for the disconnection is provided as a message component.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| reason | Disconnection Reason | Component | This field contains the reason for the disconnection, represented as a Component. It is serialized and deserialized using the ComponentSerialization.TRUSTED_CONTEXT_FREE_STREAM_CODEC. |
0x1d Disguised Chat Packet
This packet is used to send a chat message to the client with a specific chat type, allowing for disguised or formatted chat messages.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| message | Chat Message | Component | The actual chat message content that will be sent to the client. It is serialized using the ComponentSerialization.TRUSTED_STREAM_CODEC. |
| chatType | Chat Type | ChatType.Bound | Defines the type of chat message, such as system or player chat, and is serialized using ChatType.Bound.STREAM_CODEC. |
0x1e Entity Event Notification Packet
This packet is used to notify the client about an event related to a specific entity in the game world. It carries information about the entity and the type of event that occurred.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity Identifier | int | This field holds the unique identifier for the entity that the event is related to. It is used to locate the entity within the game world. |
| eventId | Event Identifier | byte | This field specifies the type of event that has occurred. Different values correspond to different events, such as entity actions or state changes. |
0x1f Entity Position Synchronization Packet
This packet is used to synchronize the position and movement of an entity with the client. It ensures that the client has the correct position, movement, and rotation data for an entity, as well as whether the entity is on the ground.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | The unique identifier for the entity whose position is being synchronized. |
| values | Position and Movement Data | PositionMoveRotation | Contains the position, movement vector, and rotation angles (yaw and pitch) of the entity. |
| onGround | On Ground Status | Bool | Indicates whether the entity is currently on the ground. |
0x20 Explosion Event Packet
This packet is sent from the server to the client to notify about an explosion event in the game world. It contains information about the explosion's location, the effect on the player, the type of particle used for the explosion, and the sound associated with it.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| center | Explosion Center | Vec3 | The central point of the explosion in the game world, represented as a 3D vector. |
| playerKnockback | Player Knockback Effect | Optional<Vec3> | An optional 3D vector indicating the knockback effect on the player due to the explosion. If present, it specifies the direction and magnitude of the knockback. |
| explosionParticle | Explosion Particle Type | ParticleOptions | Specifies the type of particle effect used to visually represent the explosion. |
| explosionSound | Explosion Sound Event | Holder<SoundEvent> | The sound event associated with the explosion, providing an auditory cue for the explosion event. |
0x21 Forget Level Chunk Packet
This packet is sent from the server to the client to indicate that a specific chunk should be forgotten or unloaded by the client. This is typically used when the client moves away from a chunk and no longer needs to keep it in memory.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Chunk Position | ChunkPos | This field represents the position of the chunk that should be forgotten. It is read from the buffer using the readChunkPos method and written using the writeChunkPos method. |
0x22 Clientbound Game Event Packet
This packet is used to communicate various game events from the server to the client, such as changes in weather, game mode, or other significant game state changes.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| event | Event Type | ClientboundGameEventPacket.Type | Represents the type of game event being communicated. It is an instance of the nested Type class, which maps event IDs to their respective types. |
| param | Event Parameter | float | A parameter associated with the event, which can vary depending on the event type. For example, it might represent the intensity of rain or the specific demo hint being shown. |
| friendlybytebuf.readUnsignedByte() | Read Event Type ID | UnsignedByte | Reads the event type ID from the buffer, which is then used to retrieve the corresponding event type from the TYPES map. |
| friendlybytebuf.readFloat() | Read Event Parameter | Float | Reads the event parameter from the buffer, which provides additional context or data for the event. |
| friendlybytebuf.writeByte(this.event.id) | Write Event Type ID | Byte | Writes the event type ID to the buffer, allowing the client to identify the type of event being communicated. |
| friendlybytebuf.writeFloat(this.param) | Write Event Parameter | Float | Writes the event parameter to the buffer, providing the client with additional data related to the event. |
0x23 Open Horse Inventory Screen
This packet is sent from the server to the client to open the horse inventory screen. It provides the necessary information to display the horse's inventory interface, including the container ID, the number of inventory columns, and the entity ID of the horse.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container ID | ContainerId | This field represents the unique identifier for the container that is being opened. It is used to track the specific inventory interface on the client side. |
| inventoryColumns | Inventory Columns | VarInt | This field indicates the number of columns in the horse's inventory. It determines how the inventory slots are arranged on the screen. |
| entityId | Entity ID | Int | This field specifies the unique identifier of the horse entity whose inventory is being accessed. It is used to link the inventory interface to the correct horse entity in the game world. |
0x24 Hurt Animation Packet
This packet is sent from the server to the client to indicate that a living entity has been hurt, triggering a hurt animation on the client side.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | The unique identifier of the living entity that has been hurt. This ID is used to identify which entity should display the hurt animation. |
| yaw | Hurt Direction | Float | The direction from which the entity was hurt, represented as a yaw angle. This helps in determining the animation direction. |
0x25 Initialize World Border Packet
This packet is used to initialize or update the world border settings for a client. It communicates the current and target states of the world border, including its size, position, and warning settings.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| newCenterX | New Center X Coordinate | Double | The X coordinate of the new center of the world border. |
| newCenterZ | New Center Z Coordinate | Double | The Z coordinate of the new center of the world border. |
| oldSize | Old Border Size | Double | The current size of the world border before any changes. |
| newSize | New Border Size | Double | The target size of the world border after changes. |
| lerpTime | Lerp Time | VarLong | The time in ticks over which the border will transition from the old size to the new size. |
| newAbsoluteMaxSize | New Absolute Maximum Size | VarInt | The new maximum size limit for the world border. |
| warningBlocks | Warning Blocks Distance | VarInt | The distance in blocks from the border at which a warning is triggered. |
| warningTime | Warning Time | VarInt | The time in seconds before a player reaches the border when a warning is triggered. |
0x26 Keep Alive Packet
This packet is used to ensure that the connection between the client and server is still active. It is sent periodically to check if the client is still responsive.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Keep Alive ID | long | A unique identifier for the keep alive packet. This ID is used to match the keep alive request with the response. |
0x27 Chunk and Light Data Transmission
This packet is responsible for sending chunk data along with lighting information from the server to the client. It is used to update the client with the current state of a chunk, including its blocks and lighting conditions.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| x | Chunk X Coordinate | int | The X coordinate of the chunk position in the world. |
| z | Chunk Z Coordinate | int | The Z coordinate of the chunk position in the world. |
| chunkData | Chunk Data | ClientboundLevelChunkPacketData | Contains the data for the chunk, including block states and other relevant information. |
| lightData | Light Data | ClientboundLightUpdatePacketData | Contains the lighting data for the chunk, including sky and block light levels. |
0x28 Client Level Event Packet
This packet is used to notify the client about a level event occurring at a specific position in the game world. It can be a global event or localized to a specific position.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| type | Event Type | Int | An integer representing the type of event. This could correspond to various in-game events like sound effects, particle effects, etc. |
| pos | Event Position | BlockPos | The position in the game world where the event is occurring. This is immutable and represents the exact block location. |
| data | Event Data | Int | Additional data related to the event. The meaning of this data depends on the event type. |
| globalEvent | Is Global Event | Boolean | A boolean indicating whether the event is global (affecting all players) or localized to a specific area. |
0x29 Packet for Sending Particle Effects to Client
This packet is used to send particle effect data from the server to the client, allowing the client to render particle effects at specified coordinates with given properties.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| overrideLimiter | Override Particle Limiter | Boolean | Determines if the particle limiter should be overridden, allowing more particles to be displayed than usual. |
| alwaysShow | Always Show Particles | Boolean | Indicates whether the particles should always be shown, regardless of the player's settings. |
| x | X Coordinate | Double | The X coordinate where the particles will be displayed. |
| y | Y Coordinate | Double | The Y coordinate where the particles will be displayed. |
| z | Z Coordinate | Double | The Z coordinate where the particles will be displayed. |
| xDist | X Distance | Float | The distance along the X axis that the particles can spread. |
| yDist | Y Distance | Float | The distance along the Y axis that the particles can spread. |
| zDist | Z Distance | Float | The distance along the Z axis that the particles can spread. |
| maxSpeed | Maximum Speed | Float | The maximum speed at which the particles can move. |
| count | Particle Count | Int | The number of particles to be displayed. |
| particle | Particle Type | ParticleOptions | The type of particle to be displayed, defined by the ParticleOptions interface. |
0x2a Light Update Packet
This packet is sent from the server to the client to update the lighting information for a specific chunk in the game world. It ensures that the client has the correct lighting data for rendering purposes.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| x | Chunk X Coordinate | VarInt | The X coordinate of the chunk for which the lighting update is being sent. |
| z | Chunk Z Coordinate | VarInt | The Z coordinate of the chunk for which the lighting update is being sent. |
| lightData | Lighting Data | ClientboundLightUpdatePacketData | Contains the detailed lighting information for the specified chunk, including any changes in light levels. |
0x2b Client Login Packet
This packet is sent from the server to the client during the login process. It contains essential information about the player's session and the game environment.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| playerId | Player ID | int | Unique identifier for the player. |
| hardcore | Hardcore Mode | boolean | Indicates if the game is in hardcore mode. |
| levels | Available Levels | Set<ResourceKey<Level>> | Set of levels (dimensions) available to the player. |
| maxPlayers | Maximum Players | VarInt | Maximum number of players allowed in the game. |
| chunkRadius | Chunk Radius | VarInt | Radius of chunks loaded around the player. |
| simulationDistance | Simulation Distance | VarInt | Distance within which game mechanics are active. |
| reducedDebugInfo | Reduced Debug Info | boolean | Indicates if the debug screen shows reduced information. |
| showDeathScreen | Show Death Screen | boolean | Determines if the death screen is shown upon player death. |
| doLimitedCrafting | Limited Crafting | boolean | Indicates if crafting is limited to known recipes. |
| commonPlayerSpawnInfo | Common Player Spawn Info | CommonPlayerSpawnInfo | Contains information about the player's spawn point. |
| enforcesSecureChat | Enforces Secure Chat | boolean | Indicates if secure chat is enforced. |
0x2c Map Item Data Packet
This packet is used to send map data from the server to the client, including map ID, scale, lock status, decorations, and color patches.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| mapId | Map Identifier | MapId | Unique identifier for the map being updated. |
| scale | Map Scale | byte | The scale of the map, determining the level of detail. |
| locked | Map Lock Status | boolean | Indicates whether the map is locked and cannot be modified. |
| decorations | Map Decorations | Optional<List<MapDecoration>> | Optional list of decorations to be added to the map, such as markers or icons. |
| colorPatch | Map Color Patch | Optional<MapItemSavedData.MapPatch> | Optional color patch data to be applied to the map, altering its appearance. |
0x2d Merchant Offers Packet
This packet is sent from the server to the client to provide information about the trading offers available from a villager or merchant. It includes details about the offers, the villager's level, experience, and other relevant trading information.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container ID | ContainerId | Unique identifier for the trading interface or container. |
| offers | Merchant Offers | MerchantOffers | A list of trade offers available from the merchant, encoded using the MerchantOffers codec. |
| villagerLevel | Villager Level | VarInt | The current level of the villager, which affects the types of trades available. |
| villagerXp | Villager Experience | VarInt | The experience points of the villager, which can influence leveling up. |
| showProgress | Show Progress | Boolean | Indicates whether the progress bar should be displayed to show the villager's level progress. |
| canRestock | Can Restock | Boolean | Indicates whether the villager can restock their trades. |
0x2e Entity Movement Packet
This packet is used to update the position and/or rotation of an entity on the client side. It is sent from the server to the client to synchronize entity movements.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity Identifier | VarInt | Unique identifier for the entity being moved. |
| xa | X-Axis Movement | Short | Change in position along the X-axis. |
| ya | Y-Axis Movement | Short | Change in position along the Y-axis. |
| za | Z-Axis Movement | Short | Change in position along the Z-axis. |
| yRot | Yaw Rotation | Byte | Rotation around the Y-axis (horizontal rotation). |
| xRot | Pitch Rotation | Byte | Rotation around the X-axis (vertical rotation). |
| onGround | On Ground Status | Boolean | Indicates whether the entity is on the ground. |
| hasRot | Has Rotation | Boolean | Indicates if the packet includes rotation data. |
| hasPos | Has Position | Boolean | Indicates if the packet includes position data. |
0x2f Entity Movement Packet
This packet is used to update the position and/or rotation of an entity on the client side. It is sent from the server to the client to synchronize entity movements.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity Identifier | VarInt | Unique identifier for the entity being moved. |
| xa | X-Axis Movement | Short | Change in position along the X-axis. |
| ya | Y-Axis Movement | Short | Change in position along the Y-axis. |
| za | Z-Axis Movement | Short | Change in position along the Z-axis. |
| yRot | Yaw Rotation | Byte | Rotation around the Y-axis (horizontal rotation). |
| xRot | Pitch Rotation | Byte | Rotation around the X-axis (vertical rotation). |
| onGround | On Ground Status | Boolean | Indicates whether the entity is on the ground. |
| hasRot | Has Rotation | Boolean | Indicates if the packet includes rotation data. |
| hasPos | Has Position | Boolean | Indicates if the packet includes position data. |
0x30 Move Minecart Packet
This packet is used to update the client about the movement of a minecart along a track. It provides the necessary data to interpolate the minecart's position smoothly on the client side.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity ID | VarInt | The unique identifier for the minecart entity being moved. This ID is used to reference the specific minecart within the game world. |
| lerpSteps | Lerp Steps | List<NewMinecartBehavior.MinecartStep> | A list of steps that define the interpolation (lerp) behavior for the minecart's movement. This allows for smooth transitions between positions on the client side. |
0x31 Entity Movement Packet
This packet is used to update the position and/or rotation of an entity on the client side. It is sent from the server to the client to synchronize entity movements.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity Identifier | VarInt | Unique identifier for the entity being moved. |
| xa | X-Axis Movement | Short | Change in position along the X-axis. |
| ya | Y-Axis Movement | Short | Change in position along the Y-axis. |
| za | Z-Axis Movement | Short | Change in position along the Z-axis. |
| yRot | Yaw Rotation | Byte | Rotation around the Y-axis (horizontal rotation). |
| xRot | Pitch Rotation | Byte | Rotation around the X-axis (vertical rotation). |
| onGround | On Ground Status | Boolean | Indicates whether the entity is on the ground. |
| hasRot | Has Rotation | Boolean | Indicates if the packet includes rotation data. |
| hasPos | Has Position | Boolean | Indicates if the packet includes position data. |
0x32 Vehicle Movement Update Packet
This packet is sent from the server to the client to update the position and rotation of a vehicle entity that the player is controlling. It ensures that the client has the correct position and orientation of the vehicle in the game world.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| position | Vehicle Position | Vec3 | This field represents the 3D coordinates (x, y, z) of the vehicle's position in the game world. |
| yRot | Yaw Rotation | float | This field represents the yaw rotation of the vehicle, which is the rotation around the vertical axis. |
| xRot | Pitch Rotation | float | This field represents the pitch rotation of the vehicle, which is the rotation around the horizontal axis. |
0x33 Open Book Packet
This packet is sent from the server to the client to instruct the client to open a book in the player's hand.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| hand | Interaction Hand | Enum<InteractionHand> | Indicates which hand (main or offhand) is holding the book to be opened. |
0x34 Open Screen Packet
This packet is sent from the server to the client to open a new screen or GUI (Graphical User Interface) for the player. It specifies the type of screen to open, the title of the screen, and a unique container ID for the session.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container ID | int | A unique identifier for the container session. It is used to distinguish between different open screens or GUIs. |
| type | Menu Type | MenuType<?> | Specifies the type of menu or screen to be opened. It is retrieved from the game's registry of menu types. |
| title | Screen Title | Component | The title of the screen or GUI, which is displayed to the player. It is serialized using the ComponentSerialization.TRUSTED_STREAM_CODEC. |
0x35 Open Sign Editor Packet
This packet is sent from the server to the client to open the sign editor interface at a specific block position. It indicates whether the text being edited is on the front of the sign.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Block Position | BlockPos | The position of the block where the sign editor should be opened. This is a 3D coordinate in the game world. |
| isFrontText | Is Front Text | boolean | A boolean flag indicating whether the text being edited is on the front side of the sign. |
0x36 Ping Packet from Server to Client
This packet is used to send a ping request from the server to the client. It is part of the network protocol to measure latency or ensure connectivity between the client and server.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Ping Identifier | int | This is an integer value that uniquely identifies the ping request. It is used to match the ping response with the request. |
0x37 Pong Response Packet
This packet is sent from the server to the client as a response to a ping request. It is used to measure the latency between the client and the server.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| time | Timestamp | long | This field contains the timestamp that was sent by the client in the ping request. It is used to calculate the round-trip time. |
0x38 Packet for Placing Ghost Recipe
This packet is sent from the server to the client to place a ghost recipe in the crafting interface. It is used to visually display a recipe without actually crafting the items.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container Identifier | int | This field represents the ID of the container (e.g., crafting table, inventory) where the ghost recipe is to be placed. |
| recipeDisplay | Recipe Display | RecipeDisplay | This field contains the recipe information to be displayed as a ghost recipe. It includes details about the items and their arrangement. |
0x39 Player Abilities Update Packet
This packet is used to update the player's abilities on the client side, such as invulnerability, flying capability, and movement speeds.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| invulnerable | Invulnerability Flag | byte | Determines if the player is invulnerable. This is represented by the first bit in the byte. |
| isFlying | Flying Status Flag | byte | Indicates if the player is currently flying. This is represented by the second bit in the byte. |
| canFly | Can Fly Flag | byte | Indicates if the player has the ability to fly. This is represented by the third bit in the byte. |
| instabuild | Instant Build Flag | byte | Indicates if the player can build instantly. This is represented by the fourth bit in the byte. |
| flyingSpeed | Flying Speed | float | The speed at which the player can fly. |
| walkingSpeed | Walking Speed | float | The speed at which the player can walk. |
0x3a Player Chat Packet
This packet is used to send chat messages from the server to the client, including information about the sender, message content, and any applicable filters or signatures.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| sender | Sender UUID | UUID | The unique identifier of the player who sent the message. |
| index | Message Index | VarInt | An integer representing the order or sequence of the message. |
| signature | Message Signature | MessageSignature | Optional cryptographic signature of the message for verification purposes. |
| body | Signed Message Body | SignedMessageBody.Packed | The packed body of the signed message, containing the actual content. |
| unsignedContent | Unsigned Message Content | Component | Optional raw message content without any signature. |
| filterMask | Filter Mask | FilterMask | Indicates which parts of the message are filtered or censored. |
| chatType | Chat Type | ChatType.Bound | Specifies the type of chat (e.g., system, game, etc.) and its context. |
0x3b Player Combat End Notification
This packet is sent from the server to the client to notify that a player's combat session has ended. It includes the duration of the combat session.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| duration | Combat Duration | VarInt | Represents the length of the combat session in ticks. This value is read from the buffer using readVarInt and written using writeVarInt. |
0x3c Player Combat Enter Notification
This packet is sent from the server to the client to notify that the player has entered combat mode. It is used to trigger any client-side effects or UI changes related to combat.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| INSTANCE | Singleton Instance | ClientboundPlayerCombatEnterPacket | A singleton instance of the packet, used to avoid creating multiple instances since the packet does not carry any data. |
| STREAM_CODEC | Stream Codec | StreamCodec<ByteBuf ClientboundPlayerCombatEnterPacket> | A codec for encoding and decoding the packet, using a unit codec since the packet has no data fields. |
0x3d Player Combat Kill Notification
This packet is sent from the server to the client to notify that a player has been killed in combat. It includes the player's ID and a message component that can contain additional information about the kill.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| playerId | Player ID | VarInt | The unique identifier for the player who was killed. This is used to reference the player within the game. |
| message | Kill Message | Component | A chat component that contains the message related to the player's death. This can include details such as who killed the player or the method of death. |
0x3e Player Info Removal Packet
This packet is used to remove player information from the client, typically when a player leaves the game or is no longer relevant to the client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| profileIds | Profile Identifiers | List<UUID> | A list of UUIDs representing the players whose information should be removed from the client. |
| STREAM_CODEC | Stream Codec | StreamCodec<FriendlyByteBuf ClientboundPlayerInfoRemovePacket> | A codec used for encoding and decoding the packet data. |
| friendlybytebuf.readList(UUIDUtil.STREAM_CODEC) | Read Profile IDs | List<UUID> | Reads a list of UUIDs from the buffer using the UUIDUtil codec. |
| friendlybytebuf.writeCollection(this.profileIds, UUIDUtil.STREAM_CODEC) | Write Profile IDs | void | Writes the list of UUIDs to the buffer using the UUIDUtil codec. |
0x3f Player Information Update Packet
This packet is used to update the client with information about players, such as their game mode, latency, display name, and other attributes. It is typically sent when a player joins, leaves, or changes state in the game.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| actions | Actions Set | EnumSet<ClientboundPlayerInfoUpdatePacket.Action> | A set of actions that describe what information is being updated for the players. |
| entries | Player Entries | List<ClientboundPlayerInfoUpdatePacket.Entry> | A list of entries, each representing a player and their updated information. |
| write | Write Method | void write(RegistryFriendlyByteBuf registryfriendlybytebuf) | Writes the packet data to the buffer, including the actions and player entries. |
| readEnumSet | Read Enum Set | EnumSet<ClientboundPlayerInfoUpdatePacket.Action> readEnumSet(Class<ClientboundPlayerInfoUpdatePacket.Action> clazz) | Reads a set of actions from the buffer. |
| readList | Read List | List<ClientboundPlayerInfoUpdatePacket.Entry> readList(Function<FriendlyByteBuf ClientboundPlayerInfoUpdatePacket.Entry> function) | Reads a list of player entries from the buffer. |
| writeEnumSet | Write Enum Set | void writeEnumSet(EnumSet<ClientboundPlayerInfoUpdatePacket.Action> actions Class<ClientboundPlayerInfoUpdatePacket.Action> clazz) | Writes the set of actions to the buffer. |
| writeCollection | Write Collection | void writeCollection(Collection<ClientboundPlayerInfoUpdatePacket.Entry> entries BiConsumer<FriendlyByteBuf ClientboundPlayerInfoUpdatePacket.Entry> consumer) | Writes the collection of player entries to the buffer. |
0x40 Player Look At Packet
This packet is used to instruct the client to make the player's camera look at a specific point in the world or at a specific entity.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| fromAnchor | Source Anchor | EntityAnchorArgument.Anchor | The anchor point on the player from which the look direction is calculated. |
| x | Target X Coordinate | double | The X coordinate of the target point in the world. |
| y | Target Y Coordinate | double | The Y coordinate of the target point in the world. |
| z | Target Z Coordinate | double | The Z coordinate of the target point in the world. |
| entity | Target Entity ID | VarInt | The ID of the entity to look at, if applicable. |
| toAnchor | Target Anchor | EntityAnchorArgument.Anchor | The anchor point on the target entity to look at, if applicable. |
| atEntity | Is Target an Entity | boolean | Indicates whether the target is an entity or a point in the world. |
0x41 Player Position Update Packet
This packet is sent from the server to the client to update the player's position and rotation in the game world. It includes information about the player's new position, rotation, and any relative movement changes.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Packet ID | VarInt | A unique identifier for the packet, used to distinguish it from other packets. |
| change | Position and Rotation Change | PositionMoveRotation | Contains the new position and rotation data for the player. |
| relatives | Relative Movement Set | Set<Relative> | A set of relative movement flags indicating which components of the player's position or rotation have changed. |
0x42 Player Rotation Update Packet
This packet is sent from the server to the client to update the player's rotation in the game world. It informs the client of the new yaw and pitch angles for the player's view.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| yRot | Yaw Rotation | FLOAT | The yaw rotation angle of the player, representing the horizontal rotation. |
| xRot | Pitch Rotation | FLOAT | The pitch rotation angle of the player, representing the vertical rotation. |
0x43 Add Recipes to Client's Recipe Book
This packet is sent from the server to the client to add new recipes to the client's recipe book. It can either add new entries or replace existing ones based on the 'replace' flag.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entries | List of Recipe Entries | List<ClientboundRecipeBookAddPacket.Entry> | Contains the recipes to be added to the client's recipe book. Each entry includes the recipe details and flags for notification and highlight. |
| replace | Replace Existing Recipes Flag | boolean | Indicates whether the existing recipes should be replaced with the new entries. |
0x44 Remove Recipes from Recipe Book
This packet is sent from the server to the client to remove specific recipes from the client's recipe book.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| recipes | List of Recipes to Remove | List<RecipeDisplayId> | This field contains a list of RecipeDisplayId objects representing the recipes to be removed from the client's recipe book. |
0x45 Recipe Book Settings Update Packet
This packet is used to update the client's recipe book settings, such as toggling the visibility of certain recipes or changing the filtering options.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| bookSettings | Recipe Book Settings | RecipeBookSettings | Contains the settings for the recipe book, such as whether to show all recipes or only craftable ones. |
0x46 Remove Entities Packet
This packet is sent from the server to the client to inform the client that certain entities should be removed from the world.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityIds | Entity IDs | IntList | A list of entity IDs that are to be removed from the client's world. |
| write | Write Method | FriendlyByteBuf | Writes the list of entity IDs to the buffer, which will be sent to the client. |
0x47 Remove Mob Effect Packet
This packet is sent from the server to the client to inform the client that a specific mob effect has been removed from an entity.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity Identifier | VarInt | The unique identifier for the entity from which the mob effect is being removed. This ID is used to locate the entity within the game world. |
| effect | Mob Effect Holder | Holder<MobEffect> | The specific mob effect that is being removed. This is a holder object that references the type of effect being removed from the entity. |
0x48 Reset Score Packet
This packet is used to reset the score of a player in a specific objective. It is sent from the server to the client to indicate that the score for a particular player should be reset.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| owner | Score Owner | Utf | The name of the player whose score is being reset. This is a UTF-8 string. |
| objectiveName | Objective Name | Nullable<Utf> | The name of the objective for which the score is being reset. This is a nullable UTF-8 string, meaning it can be null if no specific objective is targeted. |
0x49 Resource Pack Pop Notification
This packet is sent from the server to the client to notify about a resource pack pop event, which may involve the removal or change of a resource pack.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Resource Pack Identifier | Optional<UUID> | This field contains an optional UUID that uniquely identifies the resource pack. If present, it specifies the resource pack that is being popped. |
0x4a Resource Pack Push Packet
This packet is sent from the server to the client to prompt the client to download and apply a resource pack. It includes details such as the resource pack's URL, a hash for verification, and whether the resource pack is required.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Resource Pack ID | UUID | A unique identifier for the resource pack, used to track and manage the resource pack download. |
| url | Resource Pack URL | String | The URL from which the client can download the resource pack. |
| hash | Resource Pack Hash | String | A hash of the resource pack file, used to verify the integrity of the downloaded file. The hash must not exceed 40 characters. |
| required | Is Resource Pack Required | boolean | Indicates whether the resource pack is mandatory for the client to use. If true, the client must accept the resource pack to continue. |
| prompt | Resource Pack Prompt | Optional<Component> | An optional message to display to the client when prompting them to download the resource pack. This can be used to provide additional context or instructions. |
0x4b Clientbound Respawn Packet
This packet is sent from the server to the client to handle the respawn of a player. It includes information about the player's spawn state and what data should be retained during the respawn process.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| commonPlayerSpawnInfo | Common Player Spawn Info | CommonPlayerSpawnInfo | Contains information about the player's spawn state, such as location and dimension. |
| dataToKeep | Data to Keep | byte | A byte flag indicating which data should be retained during the respawn. Possible values are KEEP_ATTRIBUTE_MODIFIERS, KEEP_ENTITY_DATA, and KEEP_ALL_DATA. |
0x4c Packet for Rotating Entity Head
This packet is used to update the client with the new head rotation of an entity. It informs the client about the change in the direction the entity's head is facing.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity Identifier | VarInt | The unique identifier for the entity whose head rotation is being updated. This ID is used to locate the entity within the game world. |
| yHeadRot | Yaw Head Rotation | Byte | The new head rotation angle for the entity, represented as a byte. This value is used to determine the direction the entity's head is facing. |
0x4d Section Blocks Update Packet
This packet is used to update multiple block states within a specific section of a chunk on the client side. It is sent from the server to the client to inform about changes in block states within a section.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| sectionPos | Section Position | SectionPos | Represents the position of the section within the world. It is used to determine the exact location of the block updates. |
| positions | Block Positions | short[] | An array of short values representing the relative positions of the blocks within the section. Each short value encodes the x, y, and z coordinates of a block within the section. |
| states | Block States | BlockState[] | An array of BlockState objects representing the new states of the blocks at the corresponding positions. |
0x4e Select Advancements Tab Packet
This packet is sent from the server to the client to select a specific advancements tab in the player's GUI. It allows the server to control which advancements tab is currently being displayed to the player.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| tab | Selected Advancements Tab | ResourceLocation | This field holds the ResourceLocation of the advancements tab that should be selected. It can be null, indicating that no specific tab should be selected. |
0x4f Server Data Packet
This packet is sent from the server to the client to provide server-related data, such as the message of the day (MOTD) and an optional server icon.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| motd | Message of the Day | Component | This field contains the message of the day, which is a text component that can be displayed to the client. |
| iconBytes | Server Icon | Optional<byte[]> | This field contains the server icon in byte array form, if available. It is optional and may not be present. |
0x50 Set Action Bar Text Packet
This packet is used to set the text displayed in the action bar for the client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| text | Action Bar Text | Component | The text to be displayed in the action bar. It is serialized using the ComponentSerialization.TRUSTED_STREAM_CODEC. |
0x51 Set World Border Center
This packet is used to update the center position of the world border on the client side. It informs the client about the new coordinates of the world border's center.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| newCenterX | New Center X Coordinate | double | The X coordinate of the new center of the world border. |
| newCenterZ | New Center Z Coordinate | double | The Z coordinate of the new center of the world border. |
0x52 Packet to Adjust World Border Size Over Time
This packet is used to adjust the size of the world border over a specified period of time. It communicates the transition from the current size to a new target size, along with the duration of this transition.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| oldSize | Current Border Size | Double | Represents the current size of the world border before the transition begins. |
| newSize | Target Border Size | Double | Represents the new size that the world border will transition to. |
| lerpTime | Transition Duration | VarLong | Specifies the time in milliseconds over which the border size transition will occur. |
0x53 Set World Border Size Packet
This packet is used to set the size of the world border on the client side. It communicates the new size of the world border to the client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| size | World Border Size | double | This field represents the target size of the world border. It is a double value that specifies the new size to which the world border should be set. |
0x54 Set Border Warning Delay Packet
This packet is used to set the warning delay for the world border in the game. It informs the client about the time delay before the world border starts to shrink or expand.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| warningDelay | Warning Delay | VarInt | This field represents the delay time in seconds before the world border warning is triggered. It is read from the buffer using readVarInt and written using writeVarInt. |
0x55 Set Border Warning Distance Packet
This packet is used to set the warning distance for the world border in the game. It informs the client about how many blocks away from the world border the warning should start.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| warningBlocks | Warning Blocks | VarInt | This field represents the number of blocks from the world border where the warning will be triggered. It is read from the buffer using readVarInt and written using writeVarInt. |
0x56 Set Camera Packet
This packet is used to set the player's camera to a specific entity, allowing the player to view the game world from the perspective of that entity.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| cameraId | Camera Entity ID | VarInt | This field stores the ID of the entity that the camera should focus on. It is used to identify the entity within the game world. |
0x57 Set Chunk Cache Center Packet
This packet is used to set the center of the chunk cache for the client. It informs the client about the new center chunk coordinates, which helps in managing the rendering and loading of chunks around the player.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| x | Chunk X Coordinate | VarInt | The X coordinate of the chunk that is set as the center of the cache. |
| z | Chunk Z Coordinate | VarInt | The Z coordinate of the chunk that is set as the center of the cache. |
0x58 Set Chunk Cache Radius Packet
This packet is sent from the server to the client to update the chunk cache radius, which determines how many chunks around the player are loaded and sent to the client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| radius | Chunk Cache Radius | VarInt | This field represents the radius of chunks around the player that should be loaded. It is read from the buffer using readVarInt and written using writeVarInt. |
0x59 Set Cursor Item Packet
This packet is used to update the item currently held by the player's cursor in the inventory interface.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| contents | Cursor Item Contents | ItemStack | Represents the item stack that is being set to the player's cursor. This can be an optional value, meaning it might be empty if no item is being held. |
0x5a Set Default Spawn Position Packet
This packet is used to set the default spawn position for a player in the game. It communicates the coordinates and orientation angle of the spawn point to the client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Spawn Position | BlockPos | The coordinates of the default spawn position in the game world. It is represented as a BlockPos object, which includes x, y, and z coordinates. |
| angle | Spawn Angle | float | The orientation angle at which the player will face when they spawn. It is a float value representing the yaw angle. |
0x5b Set Display Objective Packet
This packet is used to set the display objective for a specific display slot in the game. It communicates which objective should be displayed in a particular slot on the client side.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| slot | Display Slot | DisplaySlot | This field represents the display slot where the objective will be shown. It is read from the buffer using the readById method and written using the writeById method. |
| objectiveName | Objective Name | String | This field contains the name of the objective to be displayed. If no objective is provided, it defaults to an empty string. It is read from the buffer using the readUtf method and written using the writeUtf method. |
0x5c Entity Data Update Packet
This packet is used to update the data of an entity on the client side. It sends a list of data values associated with a specific entity ID, allowing the client to synchronize its state with the server.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | The unique identifier for the entity whose data is being updated. |
| packedItems | Packed Data Values | List<SynchedEntityData.DataValue<?>> | A list of data values that represent the updated state of the entity. Each data value is packed and sent to the client. |
0x5d Entity Link Update Packet
This packet is used to update the client about the linking or unlinking of two entities in the game world. It communicates the relationship between a source entity and a destination entity, which can be used for actions like mounting or dismounting.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| sourceId | Source Entity ID | int | The unique identifier for the source entity involved in the link. This is the entity that is being linked to another entity. |
| destId | Destination Entity ID | int | The unique identifier for the destination entity involved in the link. If the destination entity is null, this ID is set to 0, indicating that the source entity is not linked to any other entity. |
0x5e Set Entity Motion Packet
This packet is used to update the motion of an entity on the client side. It communicates the velocity of an entity in the game world to the client, allowing for synchronized movement across the network.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | The unique identifier for the entity whose motion is being updated. This ID is used to match the motion data to the correct entity on the client side. |
| xa | X-Axis Motion | Short | The motion of the entity along the X-axis, scaled by a factor of 8000. This value is clamped between -3.9 and 3.9 before scaling. |
| ya | Y-Axis Motion | Short | The motion of the entity along the Y-axis, scaled by a factor of 8000. This value is clamped between -3.9 and 3.9 before scaling. |
| za | Z-Axis Motion | Short | The motion of the entity along the Z-axis, scaled by a factor of 8000. This value is clamped between -3.9 and 3.9 before scaling. |
0x5f Set Equipment Packet
This packet is sent from the server to the client to update the equipment of a specific entity. It informs the client about changes in the equipment slots of an entity, such as when an item is equipped or unequipped.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entity | Entity ID | VarInt | The unique identifier of the entity whose equipment is being updated. |
| slots | Equipment Slots | List<Pair<EquipmentSlot ItemStack>> | A list of pairs, each containing an equipment slot and the corresponding item stack. This represents the equipment changes for the entity. |
0x60 Packet for setting player experience
This packet is sent from the server to the client to update the player's experience bar, total experience, and experience level.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| experienceProgress | Experience Progress | Float | Represents the progress towards the next experience level, ranging from 0.0 to 1.0. |
| experienceLevel | Experience Level | VarInt | The current experience level of the player. |
| totalExperience | Total Experience | VarInt | The total amount of experience points the player has accumulated. |
0x61 Update Player Health Status
This packet is sent from the server to the client to update the player's health, food level, and saturation. It ensures that the client has the correct information about the player's current health status.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| health | Player Health | Float | Represents the player's current health level. It is a floating-point number that typically ranges from 0.0 to 20.0, where 20.0 is full health. |
| food | Food Level | VarInt | Indicates the player's current food level. This is an integer value that usually ranges from 0 to 20, where 20 is a full food bar. |
| saturation | Saturation Level | Float | Represents the player's saturation level, which affects how quickly the food level depletes. It is a floating-point number that can vary based on the player's actions and food consumption. |
0x62 Set Held Slot Packet
This packet is sent from the server to the client to update the currently selected hotbar slot for the player.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| slot | Selected Slot Index | VarInt | This field represents the index of the hotbar slot that the player has selected. It is an integer value that corresponds to the position in the player's hotbar. |
0x63 Objective Management Packet
This packet is used to manage objectives in the game, allowing for adding, removing, or changing objectives.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| objectiveName | Objective Name | Utf | The name of the objective being managed. |
| method | Operation Method | Byte | Indicates the operation to perform: 0 for add, 1 for remove, 2 for change. |
| displayName | Display Name | Component | The display name of the objective, used when adding or changing an objective. |
| renderType | Render Type | Enum<ObjectiveCriteria.RenderType> | Specifies how the objective should be rendered, applicable for add or change methods. |
| numberFormat | Number Format | Optional<NumberFormat> | Optional formatting for numbers associated with the objective, used when adding or changing. |
0x64 Packet to Set Entity Passengers
This packet is used to update the client with the current passengers of a vehicle entity. It informs the client about which entities are riding a particular vehicle entity.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| vehicle | Vehicle Entity ID | VarInt | The ID of the vehicle entity that has passengers. |
| passengers | Passenger Entity IDs | VarIntArray | An array of entity IDs representing the passengers riding the vehicle. |
0x65 Update Player Inventory Slot
This packet is used to update the contents of a specific inventory slot for a player on the client side. It informs the client about changes in the player's inventory, such as when an item is added, removed, or modified in a particular slot.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| slot | Inventory Slot Index | VarInt | This field represents the index of the inventory slot that is being updated. It is encoded as a variable-length integer (VarInt). |
| contents | Item Stack Contents | ItemStack | This field contains the item stack that is to be placed in the specified inventory slot. It uses the ItemStack's optional stream codec for serialization. |
0x66 Manage Player Team Packet
This packet is used to manage player teams in the game. It can add, remove, or modify teams and their members.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| method | Operation Method | int | Determines the type of operation: add, remove, change, join, or leave a team. |
| name | Team Name | String | The name of the team being modified. |
| players | Player List | Collection<String> | A list of players affected by the operation. |
| parameters | Team Parameters | Optional<ClientboundSetPlayerTeamPacket.Parameters> | Optional parameters for the team, such as display name, prefix, suffix, etc. |
0x67 Set Score Packet
This packet is used to update the score of a player or entity in a specific objective.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| owner | Score Owner | String | The name of the player or entity whose score is being updated. |
| objectiveName | Objective Name | String | The name of the objective to which the score belongs. |
| score | Score Value | VarInt | The new score value to be set for the owner in the specified objective. |
| display | Display Component | Optional<Component> | An optional component that may be used to display additional information about the score. |
| numberFormat | Number Format | Optional<NumberFormat> | An optional number format that specifies how the score should be displayed. |
0x68 Set Simulation Distance Packet
This packet is used to set the simulation distance for the client, which determines how far the game world is simulated around the player.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| simulationDistance | Simulation Distance | VarInt | This field represents the distance in chunks that the server will simulate around the player. It is read from the buffer using readVarInt and written using writeVarInt. |
0x69 Set Subtitle Text Packet
This packet is used to set the subtitle text on the client's screen. It is sent from the server to the client to update the subtitle text displayed in the game.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| text | Subtitle Text | Component | This field contains the text component that represents the subtitle to be displayed on the client's screen. It is serialized and deserialized using the ComponentSerialization.TRUSTED_STREAM_CODEC. |
0x6a Set Time Packet
This packet is used to synchronize the game time and day time with the client. It informs the client about the current game time and day time, and whether the day time should be incremented with each tick.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| gameTime | Game Time | LONG | Represents the total time in ticks since the start of the world. This value is used to keep track of the overall progression of time in the game. |
| dayTime | Day Time | LONG | Indicates the time of day in ticks. This value resets every 24000 ticks, which corresponds to a full day-night cycle in Minecraft. |
| tickDayTime | Tick Day Time | BOOL | A boolean flag that determines whether the day time should be incremented with each tick. If true, the day time will progress normally; if false, it will remain static. |
0x6b Set Title Text Packet
This packet is used to set the title text displayed to the player in the game. It sends a text component to the client, which is then displayed as a title on the player's screen.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| text | Title Text | Component | This field contains the text component that will be displayed as the title. It is serialized and deserialized using the ComponentSerialization.TRUSTED_STREAM_CODEC. |
0x6c Set Titles Animation Packet
This packet is used to set the animation timings for titles displayed to the client. It specifies the duration for fade-in, stay, and fade-out animations of titles.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| fadeIn | Fade In Duration | Int | The duration in ticks for the title to fade in. |
| stay | Stay Duration | Int | The duration in ticks for the title to remain fully visible. |
| fadeOut | Fade Out Duration | Int | The duration in ticks for the title to fade out. |
0x6d Sound Entity Packet
This packet is used to send sound events associated with entities to the client. It allows the client to play sounds that are tied to specific entities in the game world.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| sound | Sound Event | Holder<SoundEvent> | The sound event to be played, wrapped in a Holder for registry purposes. |
| source | Sound Source | SoundSource | The category of the sound, such as ambient, block, or player. |
| id | Entity ID | VarInt | The unique identifier of the entity associated with the sound. |
| volume | Volume | float | The volume level of the sound, where 1.0 is the normal volume. |
| pitch | Pitch | float | The pitch of the sound, where 1.0 is the normal pitch. |
| seed | Sound Seed | long | A random seed used for sound variation, ensuring that the same sound can have slight differences each time it is played. |
0x6e Sound Event Packet
This packet is used to send sound events from the server to the client, allowing the client to play sounds at specific locations with given properties such as volume and pitch.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| sound | Sound Event | Holder<SoundEvent> | The sound event to be played, represented as a holder of a SoundEvent object. |
| source | Sound Source | SoundSource | The source category of the sound, such as music, weather, or player. |
| x | X Coordinate | int | The x-coordinate of the sound's location, multiplied by 8 for precision. |
| y | Y Coordinate | int | The y-coordinate of the sound's location, multiplied by 8 for precision. |
| z | Z Coordinate | int | The z-coordinate of the sound's location, multiplied by 8 for precision. |
| volume | Volume | float | The volume level of the sound, determining how loud it is. |
| pitch | Pitch | float | The pitch of the sound, affecting how high or low it sounds. |
| seed | Sound Seed | long | A seed value used for randomization purposes, ensuring sound variations. |
0x6f Initiate Configuration Process
This packet is sent from the server to the client to signal the start of a configuration process. It is a part of the game protocol and is used to initiate specific configuration settings or processes on the client side.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| INSTANCE | Singleton Instance | ClientboundStartConfigurationPacket | This is a singleton instance of the packet, ensuring that only one instance is used throughout the application. |
| STREAM_CODEC | Stream Codec | StreamCodec<ByteBuf ClientboundStartConfigurationPacket> | This codec is used for encoding and decoding the packet data to and from a ByteBuf stream. |
0x70 Stop Sound Packet
This packet is used to stop a sound that is currently playing on the client. It can specify either a sound source, a sound name, or both to identify which sound to stop.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| name | Sound Name | ResourceLocation | This field holds the ResourceLocation of the sound to be stopped. It is nullable, meaning it can be null if only the source is specified. |
| source | Sound Source | SoundSource | This field specifies the source of the sound to be stopped, such as a block or entity. It is nullable, meaning it can be null if only the sound name is specified. |
| b0 | Flags Byte | byte | This byte is used to determine which fields are present in the packet. Bit 0 indicates the presence of the source, and bit 1 indicates the presence of the sound name. |
0x71 Store Cookie Packet
This packet is used to store a cookie on the client side. It contains a key and a payload, which is a byte array, to be stored.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| key | Resource Key | ResourceLocation | This field represents the unique identifier for the cookie being stored. It is read from the buffer using the readResourceLocation method and written using the writeResourceLocation method. |
| payload | Payload Data | byte[] | This field contains the data to be stored as a cookie. It is a byte array with a maximum size of 5120 bytes. The data is encoded and decoded using the PAYLOAD_STREAM_CODEC. |
0x72 System Chat Message Packet
This packet is used to send system chat messages to the client. These messages can be displayed either in the chat window or as an overlay on the screen.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| content | Chat Content | Component | The actual message content to be displayed to the player. It is serialized using the ComponentSerialization.TRUSTED_STREAM_CODEC. |
| overlay | Overlay Flag | boolean | Determines whether the message should be displayed as an overlay (true) or in the chat window (false). |
0x73 Tab List Customization Packet
This packet is used to customize the tab list header and footer for the client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| header | Tab List Header | Component | The header component of the tab list, which can include text and formatting. |
| footer | Tab List Footer | Component | The footer component of the tab list, which can include text and formatting. |
0x74 Clientbound Tag Query Packet
This packet is used to send a query from the server to the client regarding a specific tag, identified by a transaction ID. It allows the server to request information about a tag from the client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| transactionId | Transaction ID | VarInt | A unique identifier for the transaction, used to match requests and responses. |
| tag | Tag Data | CompoundTag | The tag data being queried, which may be null if no tag is associated with the transaction. |
0x75 Packet for Item Pickup Notification
This packet is sent from the server to the client to notify that a player has picked up an item entity in the game world. It contains information about the item, the player who picked it up, and the amount of the item taken.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| itemId | Item ID | VarInt | The unique identifier for the item entity that is being picked up. |
| playerId | Player ID | VarInt | The unique identifier for the player who is picking up the item. |
| amount | Amount | VarInt | The quantity of the item that is being picked up by the player. |
0x76 Entity Teleportation Packet
This packet is used to teleport an entity to a new position with specified movement and rotation changes. It also indicates whether the entity is on the ground after teleportation.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | The unique identifier for the entity being teleported. |
| change | Position and Rotation Change | PositionMoveRotation | The new position and rotation for the entity after teleportation. |
| relatives | Relative Movement Set | Set<Relative> | A set of relative movement flags indicating which components of the position are relative. |
| onGround | On Ground Status | Bool | A boolean indicating if the entity is on the ground after teleportation. |
0x77 Clientbound Ticking State Packet
This packet is used to communicate the current tick rate and frozen state of the game to the client. It informs the client about the server's tick rate and whether the game is currently frozen, allowing the client to adjust its behavior accordingly.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| tickRate | Tick Rate | Float | Represents the current tick rate of the server. This value is read from the buffer using readFloat and written using writeFloat. |
| isFrozen | Is Frozen | Boolean | Indicates whether the game is currently frozen. This value is read from the buffer using readBoolean and written using writeBoolean. |
0x78 Clientbound Ticking Step Packet
This packet is used to communicate the number of tick steps that the client should process. It is typically used to synchronize the client's tick rate with the server's tick rate, especially when the server is running at a different speed than the default.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| tickSteps | Tick Steps | VarInt | This field represents the number of tick steps that the client should process. It is read from the buffer using the readVarInt method and written using the writeVarInt method. |
0x79 Clientbound Transfer Packet
This packet is used to transfer the client to a different server by specifying a new host and port.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| host | Host Address | Utf | The host address of the server to which the client is being transferred. It is read and written as a UTF-8 string. |
| port | Port Number | VarInt | The port number of the server to which the client is being transferred. It is read and written as a VarInt. |
0x7a Update Advancements Packet
This packet is used to update the client with the current state of advancements. It can reset the advancements, add new ones, remove existing ones, and update the progress of current advancements.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| reset | Reset Flag | Boolean | Indicates whether the advancements should be reset. |
| added | Added Advancements | List<AdvancementHolder> | A list of advancements that have been added. |
| removed | Removed Advancements | Set<ResourceLocation> | A set of advancements that have been removed. |
| progress | Advancement Progress | Map<ResourceLocation AdvancementProgress> | A map containing the progress of each advancement. |
0x7b Update Entity Attributes
This packet is sent from the server to the client to update the attributes of a specific entity. Attributes can include things like health, speed, and other entity-specific properties.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity Identifier | VarInt | The unique identifier for the entity whose attributes are being updated. |
| attributes | Attribute Snapshots | List<ClientboundUpdateAttributesPacket.AttributeSnapshot> | A list of attribute snapshots that contain the attribute details for the entity. |
0x7c Update Mob Effect Packet
This packet is sent from the server to the client to update the status of a mob effect on an entity. It includes information about the effect type, its amplifier, duration, and various flags indicating how the effect should be displayed.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity ID | VarInt | The unique identifier of the entity that the effect is applied to. |
| effect | Effect Type | MobEffect | The type of mob effect being applied, represented as a Holder of MobEffect. |
| effectAmplifier | Effect Amplifier | VarInt | The strength level of the effect, where higher numbers indicate stronger effects. |
| effectDurationTicks | Effect Duration | VarInt | The duration of the effect in ticks, determining how long the effect will last. |
| flags | Effect Flags | Byte | A byte representing various flags for the effect: ambient, visible, show icon, and blend. |
0x7d Update Recipes Packet
This packet is sent from the server to the client to update the list of available recipes, including item sets and stonecutter recipes.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| itemSets | Item Sets | Map<ResourceKey<RecipePropertySet> RecipePropertySet> | A map containing the recipe property sets, identified by their resource keys. This is used to update the client with new or modified recipe properties. |
| stonecutterRecipes | Stonecutter Recipes | SelectableRecipe.SingleInputSet<StonecutterRecipe> | A set of stonecutter recipes that can be selected by the client. This updates the client with the available stonecutter recipes. |
0x7e Update Tags Packet
This packet is sent from the server to the client to update the tags associated with various registries. Tags are used to group similar items or blocks together, allowing for more flexible game mechanics.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| tags | Tags Map | Map<ResourceKey<? extends Registry<?>> TagNetworkSerialization.NetworkPayload> | A map containing the tags to be updated, where each entry consists of a registry key and its corresponding network payload. |
| STREAM_CODEC | Stream Codec | StreamCodec<FriendlyByteBuf ClientboundUpdateTagsPacket> | A codec used for encoding and decoding the packet data. |
0x7f Projectile Power Update Packet
This packet is sent from the server to the client to update the power of a projectile, such as an arrow or a fireball, in the game. It informs the client about the projectile's unique identifier and its acceleration power, which affects its speed and trajectory.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Projectile ID | VarInt | This field represents the unique identifier for the projectile whose power is being updated. It is used to distinguish between different projectiles in the game. |
| accelerationPower | Acceleration Power | Double | This field indicates the acceleration power of the projectile. It affects how fast the projectile moves and its trajectory in the game world. |
0x80 Custom Report Details Packet
This packet is used to send custom report details from the server to the client. It contains a map of key-value pairs where each key and value is a string. This is typically used for sending detailed information about a specific report or event.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| details | Details Map | Map<String String> | A map containing the details of the report. Each entry in the map consists of a key and a value, both of which are strings. The maximum number of entries is 32, with each key having a maximum length of 128 characters and each value having a maximum length of 4096 characters. |
| MAX_DETAIL_KEY_LENGTH | Maximum Detail Key Length | int | The maximum length allowed for each key in the details map. It is set to 128 characters. |
| MAX_DETAIL_VALUE_LENGTH | Maximum Detail Value Length | int | The maximum length allowed for each value in the details map. It is set to 4096 characters. |
| MAX_DETAIL_COUNT | Maximum Detail Count | int | The maximum number of key-value pairs allowed in the details map. It is set to 32. |
| DETAILS_STREAM_CODEC | Details Stream Codec | StreamCodec<ByteBuf Map<String String>> | A codec used for encoding and decoding the details map to and from a ByteBuf. It ensures that the map adheres to the specified constraints on key length, value length, and entry count. |
| STREAM_CODEC | Packet Stream Codec | StreamCodec<ByteBuf ClientboundCustomReportDetailsPacket> | A composite codec that uses the DETAILS_STREAM_CODEC to encode and decode the entire packet, including the details map. |
0x81 Server Links Packet
This packet is used to send a list of untrusted server links from the server to the client. It is part of the clientbound communication, meaning it is sent from the server to the client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| links | Untrusted Server Links | List<ServerLinks.UntrustedEntry> | This field contains a list of untrusted server links that the client should be aware of. Each entry in the list is an instance of ServerLinks.UntrustedEntry, which represents a single untrusted link. |
Serverbound (Server → Client)
0x00 Accept Teleportation Request Packet
This packet is sent by the client to the server to confirm that a teleportation request has been accepted. It ensures that the client acknowledges the teleportation event initiated by the server.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Teleportation ID | VarInt | This field represents the unique identifier for the teleportation event. It is used to match the teleportation request with the server's record. |
0x01 Block Entity Tag Query Request
This packet is sent from the client to the server to request information about a block entity at a specific position. It includes a transaction ID to track the request.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| transactionId | Transaction ID | VarInt | A unique identifier for the transaction, used to match the request with the response. |
| pos | Block Position | BlockPos | The position of the block entity in the world for which the tag information is being requested. |
0x02 Select Bundle Item Packet
This packet is sent from the client to the server to indicate the selection of an item within a bundle. It specifies the slot and the index of the selected item.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| slotId | Slot ID | VarInt | The ID of the slot where the bundle is located. This identifies which slot in the player's inventory is being interacted with. |
| selectedItemIndex | Selected Item Index | VarInt | The index of the item within the bundle that has been selected. This specifies which item in the bundle is being chosen by the player. |
0x03 Change Difficulty Request Packet
This packet is sent from the client to the server to request a change in the game's difficulty setting.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| difficulty | Game Difficulty | Difficulty | Represents the difficulty level the client wants to set. It is an enum value of type Difficulty. |
| STREAM_CODEC | Stream Codec | StreamCodec<FriendlyByteBuf ServerboundChangeDifficultyPacket> | Handles the encoding and decoding of the packet data. |
| friendlybytebuf.readUnsignedByte() | Read Difficulty ID | UnsignedByte | Reads the difficulty ID from the buffer, which is used to determine the difficulty level. |
| friendlybytebuf.writeByte(this.difficulty.getId()) | Write Difficulty ID | Byte | Writes the difficulty ID to the buffer, representing the desired difficulty level. |
0x04 Acknowledgment of Chat Message
This packet is sent from the client to the server to acknowledge the receipt of a chat message. It helps in synchronizing chat messages between the client and server, ensuring that the server knows the client has received a particular message.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| offset | Chat Message Offset | VarInt | This field represents the offset or identifier of the chat message that the client is acknowledging. It is used to track which messages have been successfully received by the client. |
0x05 Chat Command Packet
This packet is used to send a chat command from the client to the server. It encapsulates a command string that the player wants to execute.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| command | Command String | Utf | This field contains the command string that the player has entered. It is read from the buffer using the readUtf method and written using the writeUtf method. |
0x06 Signed Chat Command Packet
This packet is used to send a signed chat command from the client to the server. It includes the command, a timestamp, a salt for security, argument signatures, and updates on last seen messages.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| command | Command | Utf | The chat command that the player wants to execute. It is sent as a UTF-8 string. |
| timeStamp | Timestamp | Instant | The exact time when the command was issued, used for ensuring the command's validity and order. |
| salt | Salt | Long | A random value used to ensure the uniqueness and security of the command signature. |
| argumentSignatures | Argument Signatures | ArgumentSignatures | Contains the signatures of the command arguments, ensuring they have not been tampered with. |
| lastSeenMessages | Last Seen Messages Update | LastSeenMessages.Update | Updates the server with the last seen messages to maintain chat consistency and integrity. |
0x07 Chat Message Packet
This packet is used to send a chat message from the client to the server. It includes the message content, a timestamp, a salt for security, an optional message signature, and an update of the last seen messages.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| message | Chat Message | Utf | The actual text of the chat message being sent. It is read and written using UTF encoding with a maximum length of 256 characters. |
| timeStamp | Timestamp | Instant | The time at which the message was sent. It is read and written as an Instant object. |
| salt | Salt | Long | A long value used for security purposes, typically to prevent replay attacks. |
| signature | Message Signature | Nullable<MessageSignature> | An optional signature of the message, used for verifying the authenticity of the message. It is nullable, meaning it can be absent. |
| lastSeenMessages | Last Seen Messages Update | LastSeenMessages.Update | An update of the last seen messages, used to synchronize the chat state between client and server. |
0x08 Update Chat Session Packet
This packet is used to update the chat session data on the server. It sends the updated chat session information from the client to the server.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| chatSession | Chat Session Data | RemoteChatSession.Data | This field contains the data related to the chat session that needs to be updated on the server. |
| STREAM_CODEC | Stream Codec | StreamCodec<FriendlyByteBuf ServerboundChatSessionUpdatePacket> | This codec is used to encode and decode the packet data for transmission over the network. |
0x09 Serverbound Chunk Batch Received Packet
This packet is sent from the client to the server to indicate the desired number of chunks the client wants to receive per tick. It helps in managing the flow of chunk data from the server to the client, optimizing performance based on client capabilities.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| desiredChunksPerTick | Desired Chunks Per Tick | float | This field represents the number of chunks the client wishes to receive per tick. It is a floating-point number, allowing for precise control over the chunk loading rate. |
0x0a Client Command Packet
This packet is sent from the client to the server to perform specific actions such as respawning or requesting statistics.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| action | Action | Enum | This field represents the action the client wants to perform. It can be either PERFORM_RESPAWN or REQUEST_STATS. |
0x0b Client Tick End Notification
This packet is sent from the client to the server to indicate the end of a client tick. It is used to synchronize the client's state with the server.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| INSTANCE | Singleton Instance | ServerboundClientTickEndPacket | A static instance of the packet used for efficient packet handling. |
| STREAM_CODEC | Stream Codec | StreamCodec<ByteBuf ServerboundClientTickEndPacket> | A codec for encoding and decoding the packet, using a unit codec for the singleton instance. |
0x0c Client Information Packet
This packet is used to send client-specific information from the client to the server. It contains details about the client's settings and preferences.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| information | Client Information | ClientInformation | This field contains the client's settings and preferences, encapsulated in a ClientInformation object. |
| STREAM_CODEC | Stream Codec | StreamCodec<FriendlyByteBuf ServerboundClientInformationPacket> | This codec is used to encode and decode the packet data to and from the byte buffer. |
| friendlybytebuf | Byte Buffer | FriendlyByteBuf | This buffer is used to read from and write to the network stream. |
0x0d Command Suggestion Request Packet
This packet is sent from the client to the server to request command suggestions. It is typically used when a player is typing a command and needs auto-completion suggestions.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Request ID | VarInt | A unique identifier for the command suggestion request. This ID is used to match the request with the corresponding response from the server. |
| command | Command Input | Utf | The current command input from the player. This string is sent to the server to generate relevant command suggestions. The maximum length is 32,500 characters. |
0x0e Acknowledgement of Configuration
This packet is sent from the client to the server to acknowledge that the client has received and accepted the server's configuration settings.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| INSTANCE | Singleton Instance | ServerboundConfigurationAcknowledgedPacket | A singleton instance of the packet, used to avoid creating multiple instances. |
| STREAM_CODEC | Stream Codec | StreamCodec<ByteBuf ServerboundConfigurationAcknowledgedPacket> | A codec for encoding and decoding the packet, using a unit codec for the singleton instance. |
0x0f Container Button Click Packet
This packet is sent from the client to the server when a player clicks a button in a container GUI. It informs the server about the specific container and button that was interacted with.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container Identifier | CONTAINER_ID | This field represents the unique identifier for the container that the player is interacting with. It helps the server identify which container's button was clicked. |
| buttonId | Button Identifier | VarInt | This field represents the identifier for the specific button that was clicked within the container. It allows the server to determine the action to be taken based on the button interaction. |
0x10 Container Click Packet
This packet is sent from the client to the server to indicate that a player has clicked on a slot in a container (e.g., a chest or inventory). It includes details about the click action, such as the slot number, button pressed, and the type of click.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container ID | ContainerId | The unique identifier for the container being interacted with. |
| stateId | State ID | VarInt | The current state ID of the container, used for synchronization. |
| slotNum | Slot Number | Short | The slot number in the container that was clicked. |
| buttonNum | Button Number | Byte | The mouse button number used for the click action. |
| clickType | Click Type | Enum<ClickType> | The type of click action performed (e.g., left click, right click). |
| carriedItem | Carried Item | ItemStack | The item stack currently being carried by the player. |
| changedSlots | Changed Slots | Int2ObjectMap<ItemStack> | A map of slot numbers to item stacks representing the slots that have changed as a result of the click. |
0x11 Close Container Packet
This packet is sent from the client to the server to indicate that a container (such as a chest or crafting table) has been closed by the player.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container ID | int | This field represents the unique identifier for the container that is being closed. It is used by the server to identify which container the player is interacting with. |
0x12 Container Slot State Change Notification
This packet is sent from the client to the server to notify about a change in the state of a specific slot within a container. It indicates which slot has changed, the container it belongs to, and the new state of the slot.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| slotId | Slot Identifier | VarInt | The unique identifier for the slot within the container that has changed. |
| containerId | Container Identifier | ContainerId | The unique identifier for the container that contains the slot. |
| newState | New State | Boolean | The new state of the slot, indicating whether it is active or inactive. |
0x13 Serverbound Cookie Response Packet
This packet is used to send a response from the client to the server regarding a cookie operation. It includes a key identifying the cookie and an optional payload containing the cookie data.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| key | Cookie Key | ResourceLocation | This field represents the unique identifier for the cookie. It is read from the buffer using the readResourceLocation method and written using the writeResourceLocation method. |
| payload | Cookie Payload | byte[] | This is an optional field that contains the data associated with the cookie. It is read and written using the readNullable and writeNullable methods, respectively, with the ClientboundStoreCookiePacket.PAYLOAD_STREAM_CODEC as the codec. |
0x14 Serverbound Custom Payload Packet
This packet is used to send custom payload data from the client to the server. It allows for the transmission of custom data types defined by the server and client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| payload | Payload | CustomPacketPayload | The main data being transmitted in this packet. It is a custom payload defined by the server and client. |
| MAX_PAYLOAD_SIZE | Maximum Payload Size | int | The maximum size of the payload that can be sent in this packet. It is set to 32767 bytes. |
| STREAM_CODEC | Stream Codec | StreamCodec<FriendlyByteBuf ServerboundCustomPayloadPacket> | A codec used to encode and decode the payload data for transmission. It supports different types of custom payloads, including the BrandPayload. |
0x15 Debug Sample Subscription Packet
This packet is used to subscribe to a specific type of debug sample on the server. It allows the client to request data related to a particular debug sample type, which the server will then provide.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| sampleType | Sample Type | RemoteDebugSampleType | This field specifies the type of debug sample the client is subscribing to. It is an enumeration of possible debug sample types. |
0x16 Edit Book Packet
This packet is sent from the client to the server to edit a book in the player's inventory. It includes the slot of the book, the pages to be written, and an optional title.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| slot | Book Slot | VarInt | The inventory slot where the book is located. This is an integer value that identifies the position of the book in the player's inventory. |
| pages | Book Pages | List<String> | A list of strings representing the content of each page in the book. The list can contain up to 100 pages, each with a maximum length of 1024 characters. |
| title | Book Title | Optional<String> | An optional string representing the title of the book. The title can be up to 32 characters long. If no title is provided, the book remains untitled. |
0x17 Entity Tag Query Request
This packet is sent from the client to the server to request information about a specific entity's tags. It includes a transaction ID for tracking the request and the entity ID for which the tag information is being requested.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| transactionId | Transaction ID | VarInt | A unique identifier for the transaction, used to match the request with the response. |
| entityId | Entity ID | VarInt | The ID of the entity for which the tag information is being requested. |
0x18 Serverbound Interact Packet
This packet is used to handle interactions between the player and entities in the game world. It can represent different types of interactions such as attacking an entity, interacting with an entity using a hand, or interacting at a specific location on the entity.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entityId | Entity Identifier | VarInt | The unique identifier for the entity that the player is interacting with. |
| action | Interaction Action | ServerboundInteractPacket.Action | The specific action being performed, such as attack or interact. |
| usingSecondaryAction | Using Secondary Action | Boolean | Indicates whether the secondary action (e.g., off-hand interaction) is being used. |
0x19 Jigsaw Structure Generation Request
This packet is sent from the client to the server to request the generation of a jigsaw structure at a specified location. It includes details about the position, the number of levels to generate, and whether to keep existing jigsaws.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Position | BlockPos | The position in the world where the jigsaw structure generation should start. |
| levels | Number of Levels | VarInt | The number of levels to generate for the jigsaw structure. |
| keepJigsaws | Keep Existing Jigsaws | Boolean | A flag indicating whether existing jigsaws should be retained during the generation process. |
0x1a Serverbound Keep Alive Packet
This packet is used by the client to confirm to the server that it is still connected and responsive. It helps in maintaining the connection alive by sending a keep-alive signal.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Keep Alive ID | long | A unique identifier for the keep-alive packet. This ID is used to match the keep-alive request with the response. |
0x1b Lock Difficulty Packet
This packet is used to lock or unlock the difficulty setting on the server. It is sent from the client to the server to indicate whether the difficulty should be locked.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| locked | Locked Flag | Boolean | Indicates whether the difficulty is locked (true) or unlocked (false). This is the main data being transmitted in this packet. |
0x1c Player Movement Packet
This packet is used to communicate player movement data from the client to the server. It includes information about the player's position, rotation, and status flags such as whether the player is on the ground or has collided horizontally.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| x | X Coordinate | double | The X coordinate of the player's position. |
| y | Y Coordinate | double | The Y coordinate of the player's position. |
| z | Z Coordinate | double | The Z coordinate of the player's position. |
| yRot | Yaw Rotation | float | The yaw rotation of the player. |
| xRot | Pitch Rotation | float | The pitch rotation of the player. |
| onGround | On Ground Flag | boolean | Indicates if the player is on the ground. |
| horizontalCollision | Horizontal Collision Flag | boolean | Indicates if the player has collided horizontally. |
| hasPos | Has Position Flag | boolean | Indicates if the packet contains position data. |
| hasRot | Has Rotation Flag | boolean | Indicates if the packet contains rotation data. |
| packFlags | Pack Flags Method | int | Combines onGround and horizontalCollision flags into a single integer. |
| unpackOnGround | Unpack On Ground Method | boolean | Extracts the onGround flag from the packed flags integer. |
| unpackHorizontalCollision | Unpack Horizontal Collision Method | boolean | Extracts the horizontalCollision flag from the packed flags integer. |
| StatusOnly.read | Read StatusOnly Packet | ServerboundMovePlayerPacket.StatusOnly | Reads the StatusOnly packet data from the buffer. |
| StatusOnly.write | Write StatusOnly Packet | void | Writes the StatusOnly packet data to the buffer. |
| Rot.read | Read Rot Packet | ServerboundMovePlayerPacket.Rot | Reads the Rot packet data from the buffer. |
| Rot.write | Write Rot Packet | void | Writes the Rot packet data to the buffer. |
| Pos.read | Read Pos Packet | ServerboundMovePlayerPacket.Pos | Reads the Pos packet data from the buffer. |
| Pos.write | Write Pos Packet | void | Writes the Pos packet data to the buffer. |
| PosRot.read | Read PosRot Packet | ServerboundMovePlayerPacket.PosRot | Reads the PosRot packet data from the buffer. |
| PosRot.write | Write PosRot Packet | void | Writes the PosRot packet data to the buffer. |
0x1d Player Movement Packet
This packet is used to communicate player movement data from the client to the server. It includes information about the player's position, rotation, and status flags such as whether the player is on the ground or has collided horizontally.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| x | X Coordinate | double | The X coordinate of the player's position. |
| y | Y Coordinate | double | The Y coordinate of the player's position. |
| z | Z Coordinate | double | The Z coordinate of the player's position. |
| yRot | Yaw Rotation | float | The yaw rotation of the player. |
| xRot | Pitch Rotation | float | The pitch rotation of the player. |
| onGround | On Ground Flag | boolean | Indicates if the player is on the ground. |
| horizontalCollision | Horizontal Collision Flag | boolean | Indicates if the player has collided horizontally. |
| hasPos | Has Position Flag | boolean | Indicates if the packet contains position data. |
| hasRot | Has Rotation Flag | boolean | Indicates if the packet contains rotation data. |
0x1e Player Movement Packet
This packet is used to communicate player movement data from the client to the server. It includes information about the player's position, rotation, and status flags such as whether the player is on the ground or has collided horizontally.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| x | X Coordinate | double | The X coordinate of the player's position. |
| y | Y Coordinate | double | The Y coordinate of the player's position. |
| z | Z Coordinate | double | The Z coordinate of the player's position. |
| yRot | Yaw Rotation | float | The yaw rotation of the player. |
| xRot | Pitch Rotation | float | The pitch rotation of the player. |
| onGround | On Ground Flag | boolean | Indicates if the player is on the ground. |
| horizontalCollision | Horizontal Collision Flag | boolean | Indicates if the player has collided horizontally. |
| hasPos | Has Position Flag | boolean | Indicates if the packet contains position data. |
| hasRot | Has Rotation Flag | boolean | Indicates if the packet contains rotation data. |
| packFlags | Pack Flags Method | int | Combines onGround and horizontalCollision flags into a single integer. |
| unpackOnGround | Unpack On Ground Method | boolean | Extracts the onGround flag from the packed flags. |
| unpackHorizontalCollision | Unpack Horizontal Collision Method | boolean | Extracts the horizontalCollision flag from the packed flags. |
0x1f Player Movement Packet
This packet is used to communicate player movement data from the client to the server. It includes information about the player's position, rotation, and status flags such as whether the player is on the ground or has collided horizontally.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| x | X Coordinate | double | The X coordinate of the player's position. |
| y | Y Coordinate | double | The Y coordinate of the player's position. |
| z | Z Coordinate | double | The Z coordinate of the player's position. |
| yRot | Yaw Rotation | float | The yaw rotation of the player, representing the horizontal rotation. |
| xRot | Pitch Rotation | float | The pitch rotation of the player, representing the vertical rotation. |
| onGround | On Ground Flag | boolean | Indicates whether the player is on the ground. |
| horizontalCollision | Horizontal Collision Flag | boolean | Indicates whether the player has collided horizontally. |
| hasPos | Has Position Flag | boolean | Indicates whether the packet contains position data. |
| hasRot | Has Rotation Flag | boolean | Indicates whether the packet contains rotation data. |
0x20 Vehicle Movement Packet
This packet is sent from the client to the server to update the position and rotation of a vehicle entity that the player is controlling. It informs the server about the vehicle's new position, rotation, and whether it is on the ground.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| position | Vehicle Position | Vec3 | Represents the 3D coordinates (x, y, z) of the vehicle's position in the game world. |
| yRot | Yaw Rotation | Float | The rotation around the vertical axis (yaw) of the vehicle. |
| xRot | Pitch Rotation | Float | The rotation around the horizontal axis (pitch) of the vehicle. |
| onGround | On Ground Status | Bool | Indicates whether the vehicle is currently on the ground or in the air. |
0x21 Paddle Boat Control Packet
This packet is used to communicate the player's paddle actions in a boat to the server. It indicates whether the left or right paddle is being used, allowing the server to update the boat's movement accordingly.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| left | Left Paddle Active | Boolean | Indicates if the left paddle is being used. True if active, false otherwise. |
| right | Right Paddle Active | Boolean | Indicates if the right paddle is being used. True if active, false otherwise. |
0x22 Packet for Picking Item from Block
This packet is sent from the client to the server to request picking an item from a specific block position in the game world. It includes information about whether additional data should be included in the request.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Block Position | BlockPos | The position of the block from which the item is to be picked. This is represented by the BlockPos class, which encodes the x, y, and z coordinates of the block in the game world. |
| includeData | Include Additional Data | boolean | A boolean flag indicating whether additional data should be included in the request. This could be used to specify if metadata or other block-specific information is needed. |
0x23 Serverbound Pick Item From Entity Packet
This packet is sent from the client to the server to request picking an item from an entity. It includes the entity's ID and whether additional data should be included.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | The unique identifier for the entity from which the item is to be picked. |
| includeData | Include Additional Data | Bool | A boolean flag indicating whether additional data should be included in the request. |
0x24 Ping Request Packet
This packet is sent from the client to the server to measure the latency or 'ping' between the two. It contains a timestamp that the server will use to calculate the round-trip time.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| time | Timestamp | long | This field holds the timestamp when the packet was created. It is used to calculate the latency by comparing it with the server's current time when the packet is received. |
0x25 Serverbound Place Recipe Packet
This packet is sent from the client to the server to indicate that a player wants to place a recipe in a crafting container. It includes the container ID, the recipe to be placed, and whether to use the maximum number of items available.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| containerId | Container ID | VarInt | The ID of the container where the recipe is to be placed. This helps the server identify which crafting interface the player is interacting with. |
| recipe | Recipe Display ID | RecipeDisplayId | The unique identifier for the recipe that the player wants to place. This ID is used to fetch the recipe details from the server's recipe registry. |
| useMaxItems | Use Max Items | Boolean | A flag indicating whether the player wants to use the maximum number of items available for crafting the recipe. If true, the server will attempt to use as many items as possible. |
0x26 Player Abilities Update Packet
This packet is sent from the client to the server to update the player's abilities, specifically whether the player is flying or not.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| isFlying | Is Flying | boolean | Indicates whether the player is currently flying. This is determined by checking if the second bit of the byte is set. |
| FLAG_FLYING | Flying Flag | int | A constant representing the bit flag for flying, used to check or set the flying state in the byte. |
| STREAM_CODEC | Stream Codec | StreamCodec<FriendlyByteBuf ServerboundPlayerAbilitiesPacket> | Defines the codec for encoding and decoding the packet data. |
0x27 Player Action Packet
This packet is sent from the client to the server to indicate a player's action, such as starting or stopping block destruction, dropping items, or swapping items with the offhand.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| action | Player Action | Enum | Represents the type of action the player is performing, such as START_DESTROY_BLOCK or DROP_ITEM. |
| pos | Block Position | BlockPos | The position of the block that the action is being performed on. |
| direction | Block Face Direction | Direction | The face of the block that the action is targeting, represented as a direction. |
| sequence | Action Sequence Number | VarInt | A sequence number to ensure actions are processed in the correct order. |
0x28 Player Command Packet
This packet is used to send player command actions from the client to the server. It includes actions like starting or stopping sprinting, pressing or releasing the shift key, and other player-related commands.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Entity ID | VarInt | The unique identifier for the entity that the command is associated with. |
| action | Player Action | Enum | The specific action the player is performing, such as starting to sprint or opening the inventory. |
| data | Additional Data | VarInt | Additional data related to the action, often used for actions that require extra information. |
0x29 Player Input Packet
This packet is sent from the client to the server to convey the player's input actions, such as movement or interaction commands.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| input | Player Input | Input | This field contains the player's input data, encapsulated in the Input class, which includes movement and interaction commands. |
0x2a Player Loaded Notification Packet
This packet is sent from the client to the server to notify that the player has successfully loaded into the game world.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| STREAM_CODEC | Stream Codec | StreamCodec<ByteBuf ServerboundPlayerLoadedPacket> | This field defines the codec used for encoding and decoding the packet data. It uses a unit codec for this packet, indicating no additional data is transmitted. |
| type | Packet Type | PacketType<ServerboundPlayerLoadedPacket> | This method returns the specific type of the packet, which is used to identify it within the protocol. |
| handle | Packet Handler | ServerGamePacketListener | This method is called to handle the packet once it is received by the server. It triggers the server's logic to process the player load notification. |
0x2b Server Pong Packet
This packet is sent from the client to the server as a response to a ping request, typically used to measure latency or ensure the connection is still active.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Packet Identifier | int | This field holds the unique identifier for the pong packet, which corresponds to the ping packet's ID. |
0x2c Packet for changing recipe book settings
This packet is sent from the client to the server to update the settings of the recipe book, such as whether it is open and if it is filtering recipes.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| bookType | Type of Recipe Book | Enum<RecipeBookType> | Indicates the type of recipe book being modified, such as crafting or smelting. |
| isOpen | Recipe Book Open Status | Boolean | Determines if the recipe book is currently open. |
| isFiltering | Recipe Book Filtering Status | Boolean | Indicates whether the recipe book is filtering recipes based on available ingredients. |
0x2d Notify server of a recipe being viewed
This packet is sent from the client to the server to notify that a specific recipe has been viewed by the player in the recipe book.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| recipe | Recipe Display ID | RecipeDisplayId | This field contains the unique identifier for the recipe that has been viewed. It is used to inform the server which recipe the player has seen. |
0x2e Rename Item Packet
This packet is sent from the client to the server to rename an item in the player's inventory.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| name | Item Name | Utf | The new name for the item, encoded as a UTF-8 string. |
0x2f Resource Pack Response Packet
This packet is sent from the client to the server to communicate the client's response to a resource pack request. It includes the unique identifier of the resource pack and the action taken by the client, such as accepting or declining the resource pack.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| id | Resource Pack ID | UUID | A unique identifier for the resource pack, used to track which resource pack the client is responding to. |
| action | Client Action | Enum | The action taken by the client regarding the resource pack. This can be one of several states, such as ACCEPTED, DECLINED, or FAILED_DOWNLOAD. |
0x30 Advancement Tab Interaction Packet
This packet is used to communicate the player's interaction with the advancements tab, either by opening a specific tab or closing the advancements screen.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| action | Action Type | Enum | Indicates the type of action performed by the player. It can be either OPENED_TAB or CLOSED_SCREEN. |
| tab | Advancement Tab | ResourceLocation | Specifies the advancement tab that was opened. This field is only relevant if the action is OPENED_TAB. |
0x31 Select Trade Packet
This packet is sent from the client to the server to select a trade option when interacting with a villager or a similar trading entity.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| item | Selected Trade Index | VarInt | This field represents the index of the trade option that the player has selected. It is sent as a VarInt to efficiently encode the integer value. |
0x32 Set Beacon Effects Packet
This packet is sent from the client to the server to set the primary and secondary effects of a beacon.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| primary | Primary Effect | Optional<Holder<MobEffect>> | Represents the primary effect chosen for the beacon. It is optional, meaning the player may choose not to set a primary effect. |
| secondary | Secondary Effect | Optional<Holder<MobEffect>> | Represents the secondary effect chosen for the beacon. It is optional, meaning the player may choose not to set a secondary effect. |
0x33 Set Carried Item Packet
This packet is sent from the client to the server to update the currently selected hotbar slot. It informs the server which item slot the player has selected in their inventory.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| slot | Selected Slot | Short | This field represents the index of the hotbar slot that the player has selected. It is a short integer value. |
0x34 Set Command Block Packet
This packet is used to update the properties of a command block in the game. It allows the client to send information about the command block's position, command, mode, and various flags to the server.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Block Position | BlockPos | The position of the command block in the world. |
| command | Command String | String | The command to be executed by the command block. |
| mode | Command Block Mode | CommandBlockEntity.Mode | The mode of the command block, which can be one of several predefined modes. |
| trackOutput | Track Output Flag | boolean | Indicates whether the command block should track its output. |
| conditional | Conditional Flag | boolean | Indicates whether the command block is conditional. |
| automatic | Automatic Flag | boolean | Indicates whether the command block should execute automatically. |
0x35 Set Command for Minecart Packet
This packet is used to set a command in a command block minecart. It includes the entity ID of the minecart, the command to be executed, and whether the output of the command should be tracked.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| entity | Entity ID | VarInt | The unique identifier for the minecart entity that contains the command block. |
| command | Command String | Utf | The command to be executed by the command block in the minecart. |
| trackOutput | Track Output Flag | Boolean | A boolean flag indicating whether the output of the command should be tracked and displayed. |
0x36 Set Creative Mode Slot Packet
This packet is sent from the client to the server to update the item in a specific slot while in creative mode. It allows the player to set or change the item in a particular inventory slot.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| slotNum | Slot Number | short | The slot number in the player's inventory that is being updated. It is a short value representing the index of the slot. |
| itemStack | Item Stack | net.minecraft.world.item.ItemStack | The item stack to be placed in the specified slot. It contains information about the item type, quantity, and any additional data like enchantments or custom names. |
0x37 Set Jigsaw Block Packet
This packet is used to set the properties of a jigsaw block in the game. It is sent from the client to the server to update the jigsaw block's configuration, including its position, name, target, pool, final state, joint type, and priorities.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Block Position | BlockPos | The position of the jigsaw block in the world. |
| name | Name Resource Location | ResourceLocation | The name of the jigsaw block, represented as a resource location. |
| target | Target Resource Location | ResourceLocation | The target structure or block that the jigsaw block is pointing to, represented as a resource location. |
| pool | Pool Resource Location | ResourceLocation | The pool of structures or blocks that the jigsaw block can choose from, represented as a resource location. |
| finalState | Final State | String | The final state of the jigsaw block, typically a string representation of block states. |
| joint | Joint Type | JigsawBlockEntity.JointType | The type of joint used by the jigsaw block, determining how it connects to other blocks. |
| selectionPriority | Selection Priority | VarInt | The priority for selecting this jigsaw block during structure generation. |
| placementPriority | Placement Priority | VarInt | The priority for placing this jigsaw block during structure generation. |
0x38 Set Structure Block Packet
This packet is used to update the properties of a structure block in the game. It allows the server to receive information about the structure block's position, mode, and other settings from the client.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Position | BlockPos | The position of the structure block in the world. |
| updateType | Update Type | StructureBlockEntity.UpdateType | The type of update to perform on the structure block. |
| mode | Mode | StructureMode | The mode of the structure block, such as SAVE, LOAD, CORNER, or DATA. |
| name | Structure Name | String | The name of the structure associated with the block. |
| offset | Offset | BlockPos | The offset of the structure from the block's position. |
| size | Size | Vec3i | The size of the structure. |
| mirror | Mirror | Mirror | The mirror setting of the structure block. |
| rotation | Rotation | Rotation | The rotation setting of the structure block. |
| data | Data | String | Additional data associated with the structure block. |
| ignoreEntities | Ignore Entities | boolean | Whether entities should be ignored when the structure is loaded. |
| showAir | Show Air | boolean | Whether air blocks should be shown when the structure is loaded. |
| showBoundingBox | Show Bounding Box | boolean | Whether the bounding box of the structure should be shown. |
| integrity | Integrity | float | The integrity of the structure, affecting how complete it is when loaded. |
| seed | Seed | long | The seed used for randomization when loading the structure. |
0x39 Sign Update Packet
This packet is sent from the client to the server to update the text on a sign block in the game world. It includes the position of the sign, the text to be displayed, and whether the text is on the front side of the sign.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| pos | Sign Position | BlockPos | The position of the sign block in the game world. This is used to identify which sign is being updated. |
| isFrontText | Is Front Text | Boolean | A boolean flag indicating whether the text being updated is on the front side of the sign. |
| lines | Sign Text Lines | String[4] | An array of strings representing the four lines of text on the sign. Each line can have a maximum length of 384 characters. |
0x3a Player Swing Action Packet
This packet is sent from the client to the server to indicate that the player has performed a swing action, typically with a hand-held item.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| hand | Interaction Hand | Enum<InteractionHand> | Specifies which hand (main or offhand) the player used to perform the swing action. |
0x3b Teleport to Entity Request Packet
This packet is sent from the client to the server to request a teleportation to a specific entity identified by its UUID.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| uuid | Entity UUID | UUID | The unique identifier of the entity to which the player wants to teleport. |
0x3c Serverbound Use Item On Packet
This packet is sent from the client to the server when a player uses an item on a block. It contains information about the hand used, the block hit, and a sequence number for tracking.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| hand | Interaction Hand | Enum<InteractionHand> | Indicates which hand (main or offhand) the player used to interact with the block. |
| blockHit | Block Hit Result | BlockHitResult | Contains details about the block that was interacted with, including the position and face of the block. |
| sequence | Sequence Number | VarInt | A sequence number used to track the order of interactions, ensuring they are processed in the correct order. |
0x3d Packet for Using an Item
This packet is sent from the client to the server when a player uses an item. It contains information about which hand is used, the sequence number of the action, and the player's rotation angles.
| Field | Display Name | Type | Notes |
|---|---|---|---|
| hand | Hand Used | Enum<InteractionHand> | Indicates which hand (main or offhand) the player is using to perform the action. |
| sequence | Action Sequence Number | VarInt | A unique identifier for the action sequence, used to ensure actions are processed in the correct order. |
| yRot | Player's Y Rotation | Float | The player's rotation around the Y-axis, representing the horizontal direction they are facing. |
| xRot | Player's X Rotation | Float | The player's rotation around the X-axis, representing the vertical direction they are looking. |