Skip to main content
Version: 1.21.4

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.

FieldDisplay NameTypeNotes
idEntity IDVarIntUnique identifier for the entity within the world.
uuidEntity UUIDUUIDUniversally unique identifier for the entity, used for tracking across sessions.
typeEntity TypeEntityTypeThe type of entity being added, such as a player, mob, or item.
xX PositionDoubleThe X coordinate of the entity's position in the world.
yY PositionDoubleThe Y coordinate of the entity's position in the world.
zZ PositionDoubleThe Z coordinate of the entity's position in the world.
xaX VelocityShortThe velocity of the entity along the X axis, scaled by 8000.
yaY VelocityShortThe velocity of the entity along the Y axis, scaled by 8000.
zaZ VelocityShortThe velocity of the entity along the Z axis, scaled by 8000.
xRotX RotationByteThe rotation of the entity around the X axis, packed as a byte.
yRotY RotationByteThe rotation of the entity around the Y axis, packed as a byte.
yHeadRotY Head RotationByteThe rotation of the entity's head around the Y axis, packed as a byte.
dataEntity DataVarIntAdditional 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.

FieldDisplay NameTypeNotes
idExperience Orb IDVarIntA unique identifier for the experience orb. This ID is used to track the orb within the game world.
xX CoordinateDoubleThe X coordinate of the experience orb's position in the game world.
yY CoordinateDoubleThe Y coordinate of the experience orb's position in the game world.
zZ CoordinateDoubleThe Z coordinate of the experience orb's position in the game world.
valueExperience ValueShortThe 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.

FieldDisplay NameTypeNotes
idEntity IDVarIntThe unique identifier for the entity performing the animation.
actionAnimation ActionUnsignedByteThe 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.

FieldDisplay NameTypeNotes
statsStatistics MapObject2IntMap<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_CODECStatistics Stream CodecStreamCodec<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_CODECPacket Stream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
sequenceSequence NumberVarIntThis 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.

FieldDisplay NameTypeNotes
idEntity IDVarIntThe 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.
posBlock PositionBlockPosThe coordinates of the block being destroyed. This is used to locate the block in the world.
progressDestruction ProgressUnsignedByteThe 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.

FieldDisplay NameTypeNotes
posBlock PositionBlockPosThe position of the block entity in the world. This is crucial for the client to know where the block entity is located.
typeBlock Entity TypeBlockEntityType<?>The type of block entity being updated. This helps the client understand what kind of block entity it is dealing with.
tagBlock Entity DataCompoundTagAdditional 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.

FieldDisplay NameTypeNotes
posBlock PositionBlockPosThe position of the block in the game world where the event is occurring.
b0Event Parameter 1Unsigned ByteThe first parameter of the block event, typically used to specify the type or state of the event.
b1Event Parameter 2Unsigned ByteThe second parameter of the block event, often used in conjunction with the first parameter to provide additional event details.
blockBlock TypeBlockThe 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.

FieldDisplay NameTypeNotes
posBlock PositionBlockPosThis 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.
blockStateBlock StateBlockStateThis 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.

FieldDisplay NameTypeNotes
idUnique IdentifierUUIDA unique identifier for the boss event.
operationOperation TypeClientboundBossEventPacket.OperationThe specific operation to perform on the boss event, such as add, remove, or update.
writeWrite MethodRegistryFriendlyByteBufWrites 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.

FieldDisplay NameTypeNotes
difficultyGame DifficultyDifficultyRepresents 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.
lockedDifficulty Locked FlagbooleanIndicates 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.

FieldDisplay NameTypeNotes
batchSizeBatch SizeVarIntThis 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.

FieldDisplay NameTypeNotes
INSTANCESingleton InstanceClientboundChunkBatchStartPacketA singleton instance of the packet, used to avoid creating multiple instances since the packet does not carry any data.
STREAM_CODECStream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
chunkBiomeDataChunk Biome DataList<ClientboundChunksBiomesPacket.ChunkBiomeData>A list containing biome data for each chunk.
STREAM_CODECStream CodecStreamCodec<FriendlyByteBuf ClientboundChunksBiomesPacket>Codec for encoding and decoding the packet.
TWO_MEGABYTESTwo MegabytesintConstant 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.

FieldDisplay NameTypeNotes
resetTimesReset Title TimesBooleanIndicates 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.

FieldDisplay NameTypeNotes
idSuggestion IDVarIntA unique identifier for the suggestion request. This ID is used to match the response with the request.
startStart IndexVarIntThe starting index of the command input where suggestions should be applied.
lengthLength of InputVarIntThe length of the command input that is being suggested.
suggestionsList of SuggestionsList<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.

FieldDisplay NameTypeNotes
rootIndexRoot IndexVarIntThe index of the root command node in the entries list.
entriesEntriesList<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.

FieldDisplay NameTypeNotes
containerIdContainer IdentifierintThis 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.

FieldDisplay NameTypeNotes
containerIdContainer IdentifierContainerIdUnique identifier for the container whose contents are being updated.
stateIdState IdentifierVarIntRepresents the current state of the container, used for synchronization purposes.
itemsContainer ItemsItemStack ListA list of items currently in the container. Each item is represented as an ItemStack.
carriedItemCarried ItemItemStackThe 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.

FieldDisplay NameTypeNotes
containerIdContainer IdentifierContainerIdThis 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.
idData IdentifierShortThis 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.
valueData ValueShortThis 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.

FieldDisplay NameTypeNotes
containerIdContainer IdentifierintThe ID of the container being updated. This helps the client identify which container's slot is being modified.
stateIdState IdentifierVarIntA unique identifier for the current state of the container. It is used to ensure that the client and server are synchronized.
slotSlot IndexshortThe index of the slot within the container that is being updated. This tells the client which specific slot to update.
itemStackItem StackItemStackThe item stack to be placed in the specified slot. This includes the item type, count, and any additional data like enchantments or custom names.

This packet is used to request a cookie from the client, identified by a specific resource location key.

FieldDisplay NameTypeNotes
keyResource Location KeyResourceLocationThis 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.

FieldDisplay NameTypeNotes
cooldownGroupCooldown Group IdentifierResourceLocationThis 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.
durationCooldown DurationVarIntThis 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.

FieldDisplay NameTypeNotes
actionAction TypeEnumSpecifies the type of action to be performed on the chat completions. It can be ADD, REMOVE, or SET.
entriesChat Completion EntriesList<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.

FieldDisplay NameTypeNotes
payloadCustom PayloadCustomPacketPayloadThe main data being transmitted in this packet. It can be of various types, such as BrandPayload, BeeDebugPayload, etc.
MAX_PAYLOAD_SIZEMaximum Payload SizeintThe maximum size allowed for the payload, set to 1048576 bytes (1 MB).
GAMEPLAY_STREAM_CODECGameplay Stream CodecStreamCodec<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_CODECConfig Stream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
entityIdEntity IDVarIntThe unique identifier of the entity that received the damage.
sourceTypeSource TypeHolder<DamageType>The type of damage source, encoded using a stream codec.
sourceCauseIdSource Cause IDVarIntThe ID of the entity that caused the damage, if applicable. If no entity caused the damage, this value is -1.
sourceDirectIdSource Direct IDVarIntThe ID of the direct entity involved in the damage, if applicable. If no direct entity is involved, this value is -1.
sourcePositionSource PositionOptional<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.

FieldDisplay NameTypeNotes
sampleSample Datalong[]An array of long values representing the debug sample data.
debugSampleTypeDebug Sample TypeRemoteDebugSampleTypeAn 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.

FieldDisplay NameTypeNotes
messageSignatureMessage SignatureMessageSignature.PackedThis 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.

FieldDisplay NameTypeNotes
reasonDisconnection ReasonComponentThis 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.

FieldDisplay NameTypeNotes
messageChat MessageComponentThe actual chat message content that will be sent to the client. It is serialized using the ComponentSerialization.TRUSTED_STREAM_CODEC.
chatTypeChat TypeChatType.BoundDefines 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.

FieldDisplay NameTypeNotes
entityIdEntity IdentifierintThis 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.
eventIdEvent IdentifierbyteThis 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.

FieldDisplay NameTypeNotes
idEntity IDVarIntThe unique identifier for the entity whose position is being synchronized.
valuesPosition and Movement DataPositionMoveRotationContains the position, movement vector, and rotation angles (yaw and pitch) of the entity.
onGroundOn Ground StatusBoolIndicates 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.

FieldDisplay NameTypeNotes
centerExplosion CenterVec3The central point of the explosion in the game world, represented as a 3D vector.
playerKnockbackPlayer Knockback EffectOptional<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.
explosionParticleExplosion Particle TypeParticleOptionsSpecifies the type of particle effect used to visually represent the explosion.
explosionSoundExplosion Sound EventHolder<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.

FieldDisplay NameTypeNotes
posChunk PositionChunkPosThis 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.

FieldDisplay NameTypeNotes
eventEvent TypeClientboundGameEventPacket.TypeRepresents the type of game event being communicated. It is an instance of the nested Type class, which maps event IDs to their respective types.
paramEvent ParameterfloatA 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 IDUnsignedByteReads 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 ParameterFloatReads the event parameter from the buffer, which provides additional context or data for the event.
friendlybytebuf.writeByte(this.event.id)Write Event Type IDByteWrites the event type ID to the buffer, allowing the client to identify the type of event being communicated.
friendlybytebuf.writeFloat(this.param)Write Event ParameterFloatWrites 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.

FieldDisplay NameTypeNotes
containerIdContainer IDContainerIdThis 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.
inventoryColumnsInventory ColumnsVarIntThis field indicates the number of columns in the horse's inventory. It determines how the inventory slots are arranged on the screen.
entityIdEntity IDIntThis 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.

FieldDisplay NameTypeNotes
idEntity IDVarIntThe unique identifier of the living entity that has been hurt. This ID is used to identify which entity should display the hurt animation.
yawHurt DirectionFloatThe 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.

FieldDisplay NameTypeNotes
newCenterXNew Center X CoordinateDoubleThe X coordinate of the new center of the world border.
newCenterZNew Center Z CoordinateDoubleThe Z coordinate of the new center of the world border.
oldSizeOld Border SizeDoubleThe current size of the world border before any changes.
newSizeNew Border SizeDoubleThe target size of the world border after changes.
lerpTimeLerp TimeVarLongThe time in ticks over which the border will transition from the old size to the new size.
newAbsoluteMaxSizeNew Absolute Maximum SizeVarIntThe new maximum size limit for the world border.
warningBlocksWarning Blocks DistanceVarIntThe distance in blocks from the border at which a warning is triggered.
warningTimeWarning TimeVarIntThe 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.

FieldDisplay NameTypeNotes
idKeep Alive IDlongA 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.

FieldDisplay NameTypeNotes
xChunk X CoordinateintThe X coordinate of the chunk position in the world.
zChunk Z CoordinateintThe Z coordinate of the chunk position in the world.
chunkDataChunk DataClientboundLevelChunkPacketDataContains the data for the chunk, including block states and other relevant information.
lightDataLight DataClientboundLightUpdatePacketDataContains 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.

FieldDisplay NameTypeNotes
typeEvent TypeIntAn integer representing the type of event. This could correspond to various in-game events like sound effects, particle effects, etc.
posEvent PositionBlockPosThe position in the game world where the event is occurring. This is immutable and represents the exact block location.
dataEvent DataIntAdditional data related to the event. The meaning of this data depends on the event type.
globalEventIs Global EventBooleanA 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.

FieldDisplay NameTypeNotes
overrideLimiterOverride Particle LimiterBooleanDetermines if the particle limiter should be overridden, allowing more particles to be displayed than usual.
alwaysShowAlways Show ParticlesBooleanIndicates whether the particles should always be shown, regardless of the player's settings.
xX CoordinateDoubleThe X coordinate where the particles will be displayed.
yY CoordinateDoubleThe Y coordinate where the particles will be displayed.
zZ CoordinateDoubleThe Z coordinate where the particles will be displayed.
xDistX DistanceFloatThe distance along the X axis that the particles can spread.
yDistY DistanceFloatThe distance along the Y axis that the particles can spread.
zDistZ DistanceFloatThe distance along the Z axis that the particles can spread.
maxSpeedMaximum SpeedFloatThe maximum speed at which the particles can move.
countParticle CountIntThe number of particles to be displayed.
particleParticle TypeParticleOptionsThe 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.

FieldDisplay NameTypeNotes
xChunk X CoordinateVarIntThe X coordinate of the chunk for which the lighting update is being sent.
zChunk Z CoordinateVarIntThe Z coordinate of the chunk for which the lighting update is being sent.
lightDataLighting DataClientboundLightUpdatePacketDataContains 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.

FieldDisplay NameTypeNotes
playerIdPlayer IDintUnique identifier for the player.
hardcoreHardcore ModebooleanIndicates if the game is in hardcore mode.
levelsAvailable LevelsSet<ResourceKey<Level>>Set of levels (dimensions) available to the player.
maxPlayersMaximum PlayersVarIntMaximum number of players allowed in the game.
chunkRadiusChunk RadiusVarIntRadius of chunks loaded around the player.
simulationDistanceSimulation DistanceVarIntDistance within which game mechanics are active.
reducedDebugInfoReduced Debug InfobooleanIndicates if the debug screen shows reduced information.
showDeathScreenShow Death ScreenbooleanDetermines if the death screen is shown upon player death.
doLimitedCraftingLimited CraftingbooleanIndicates if crafting is limited to known recipes.
commonPlayerSpawnInfoCommon Player Spawn InfoCommonPlayerSpawnInfoContains information about the player's spawn point.
enforcesSecureChatEnforces Secure ChatbooleanIndicates 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.

FieldDisplay NameTypeNotes
mapIdMap IdentifierMapIdUnique identifier for the map being updated.
scaleMap ScalebyteThe scale of the map, determining the level of detail.
lockedMap Lock StatusbooleanIndicates whether the map is locked and cannot be modified.
decorationsMap DecorationsOptional<List<MapDecoration>>Optional list of decorations to be added to the map, such as markers or icons.
colorPatchMap Color PatchOptional<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.

FieldDisplay NameTypeNotes
containerIdContainer IDContainerIdUnique identifier for the trading interface or container.
offersMerchant OffersMerchantOffersA list of trade offers available from the merchant, encoded using the MerchantOffers codec.
villagerLevelVillager LevelVarIntThe current level of the villager, which affects the types of trades available.
villagerXpVillager ExperienceVarIntThe experience points of the villager, which can influence leveling up.
showProgressShow ProgressBooleanIndicates whether the progress bar should be displayed to show the villager's level progress.
canRestockCan RestockBooleanIndicates 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.

FieldDisplay NameTypeNotes
entityIdEntity IdentifierVarIntUnique identifier for the entity being moved.
xaX-Axis MovementShortChange in position along the X-axis.
yaY-Axis MovementShortChange in position along the Y-axis.
zaZ-Axis MovementShortChange in position along the Z-axis.
yRotYaw RotationByteRotation around the Y-axis (horizontal rotation).
xRotPitch RotationByteRotation around the X-axis (vertical rotation).
onGroundOn Ground StatusBooleanIndicates whether the entity is on the ground.
hasRotHas RotationBooleanIndicates if the packet includes rotation data.
hasPosHas PositionBooleanIndicates 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.

FieldDisplay NameTypeNotes
entityIdEntity IdentifierVarIntUnique identifier for the entity being moved.
xaX-Axis MovementShortChange in position along the X-axis.
yaY-Axis MovementShortChange in position along the Y-axis.
zaZ-Axis MovementShortChange in position along the Z-axis.
yRotYaw RotationByteRotation around the Y-axis (horizontal rotation).
xRotPitch RotationByteRotation around the X-axis (vertical rotation).
onGroundOn Ground StatusBooleanIndicates whether the entity is on the ground.
hasRotHas RotationBooleanIndicates if the packet includes rotation data.
hasPosHas PositionBooleanIndicates 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.

FieldDisplay NameTypeNotes
entityIdEntity IDVarIntThe unique identifier for the minecart entity being moved. This ID is used to reference the specific minecart within the game world.
lerpStepsLerp StepsList<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.

FieldDisplay NameTypeNotes
entityIdEntity IdentifierVarIntUnique identifier for the entity being moved.
xaX-Axis MovementShortChange in position along the X-axis.
yaY-Axis MovementShortChange in position along the Y-axis.
zaZ-Axis MovementShortChange in position along the Z-axis.
yRotYaw RotationByteRotation around the Y-axis (horizontal rotation).
xRotPitch RotationByteRotation around the X-axis (vertical rotation).
onGroundOn Ground StatusBooleanIndicates whether the entity is on the ground.
hasRotHas RotationBooleanIndicates if the packet includes rotation data.
hasPosHas PositionBooleanIndicates 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.

FieldDisplay NameTypeNotes
positionVehicle PositionVec3This field represents the 3D coordinates (x, y, z) of the vehicle's position in the game world.
yRotYaw RotationfloatThis field represents the yaw rotation of the vehicle, which is the rotation around the vertical axis.
xRotPitch RotationfloatThis 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.

FieldDisplay NameTypeNotes
handInteraction HandEnum<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.

FieldDisplay NameTypeNotes
containerIdContainer IDintA unique identifier for the container session. It is used to distinguish between different open screens or GUIs.
typeMenu TypeMenuType<?>Specifies the type of menu or screen to be opened. It is retrieved from the game's registry of menu types.
titleScreen TitleComponentThe 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.

FieldDisplay NameTypeNotes
posBlock PositionBlockPosThe position of the block where the sign editor should be opened. This is a 3D coordinate in the game world.
isFrontTextIs Front TextbooleanA 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.

FieldDisplay NameTypeNotes
idPing IdentifierintThis 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.

FieldDisplay NameTypeNotes
timeTimestamplongThis 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.

FieldDisplay NameTypeNotes
containerIdContainer IdentifierintThis field represents the ID of the container (e.g., crafting table, inventory) where the ghost recipe is to be placed.
recipeDisplayRecipe DisplayRecipeDisplayThis 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.

FieldDisplay NameTypeNotes
invulnerableInvulnerability FlagbyteDetermines if the player is invulnerable. This is represented by the first bit in the byte.
isFlyingFlying Status FlagbyteIndicates if the player is currently flying. This is represented by the second bit in the byte.
canFlyCan Fly FlagbyteIndicates if the player has the ability to fly. This is represented by the third bit in the byte.
instabuildInstant Build FlagbyteIndicates if the player can build instantly. This is represented by the fourth bit in the byte.
flyingSpeedFlying SpeedfloatThe speed at which the player can fly.
walkingSpeedWalking SpeedfloatThe 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.

FieldDisplay NameTypeNotes
senderSender UUIDUUIDThe unique identifier of the player who sent the message.
indexMessage IndexVarIntAn integer representing the order or sequence of the message.
signatureMessage SignatureMessageSignatureOptional cryptographic signature of the message for verification purposes.
bodySigned Message BodySignedMessageBody.PackedThe packed body of the signed message, containing the actual content.
unsignedContentUnsigned Message ContentComponentOptional raw message content without any signature.
filterMaskFilter MaskFilterMaskIndicates which parts of the message are filtered or censored.
chatTypeChat TypeChatType.BoundSpecifies 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.

FieldDisplay NameTypeNotes
durationCombat DurationVarIntRepresents 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.

FieldDisplay NameTypeNotes
INSTANCESingleton InstanceClientboundPlayerCombatEnterPacketA singleton instance of the packet, used to avoid creating multiple instances since the packet does not carry any data.
STREAM_CODECStream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
playerIdPlayer IDVarIntThe unique identifier for the player who was killed. This is used to reference the player within the game.
messageKill MessageComponentA 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.

FieldDisplay NameTypeNotes
profileIdsProfile IdentifiersList<UUID>A list of UUIDs representing the players whose information should be removed from the client.
STREAM_CODECStream CodecStreamCodec<FriendlyByteBuf ClientboundPlayerInfoRemovePacket>A codec used for encoding and decoding the packet data.
friendlybytebuf.readList(UUIDUtil.STREAM_CODEC)Read Profile IDsList<UUID>Reads a list of UUIDs from the buffer using the UUIDUtil codec.
friendlybytebuf.writeCollection(this.profileIds, UUIDUtil.STREAM_CODEC)Write Profile IDsvoidWrites 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.

FieldDisplay NameTypeNotes
actionsActions SetEnumSet<ClientboundPlayerInfoUpdatePacket.Action>A set of actions that describe what information is being updated for the players.
entriesPlayer EntriesList<ClientboundPlayerInfoUpdatePacket.Entry>A list of entries, each representing a player and their updated information.
writeWrite Methodvoid write(RegistryFriendlyByteBuf registryfriendlybytebuf)Writes the packet data to the buffer, including the actions and player entries.
readEnumSetRead Enum SetEnumSet<ClientboundPlayerInfoUpdatePacket.Action> readEnumSet(Class<ClientboundPlayerInfoUpdatePacket.Action> clazz)Reads a set of actions from the buffer.
readListRead ListList<ClientboundPlayerInfoUpdatePacket.Entry> readList(Function<FriendlyByteBuf ClientboundPlayerInfoUpdatePacket.Entry> function)Reads a list of player entries from the buffer.
writeEnumSetWrite Enum Setvoid writeEnumSet(EnumSet<ClientboundPlayerInfoUpdatePacket.Action> actions Class<ClientboundPlayerInfoUpdatePacket.Action> clazz)Writes the set of actions to the buffer.
writeCollectionWrite Collectionvoid 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.

FieldDisplay NameTypeNotes
fromAnchorSource AnchorEntityAnchorArgument.AnchorThe anchor point on the player from which the look direction is calculated.
xTarget X CoordinatedoubleThe X coordinate of the target point in the world.
yTarget Y CoordinatedoubleThe Y coordinate of the target point in the world.
zTarget Z CoordinatedoubleThe Z coordinate of the target point in the world.
entityTarget Entity IDVarIntThe ID of the entity to look at, if applicable.
toAnchorTarget AnchorEntityAnchorArgument.AnchorThe anchor point on the target entity to look at, if applicable.
atEntityIs Target an EntitybooleanIndicates 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.

FieldDisplay NameTypeNotes
idPacket IDVarIntA unique identifier for the packet, used to distinguish it from other packets.
changePosition and Rotation ChangePositionMoveRotationContains the new position and rotation data for the player.
relativesRelative Movement SetSet<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.

FieldDisplay NameTypeNotes
yRotYaw RotationFLOATThe yaw rotation angle of the player, representing the horizontal rotation.
xRotPitch RotationFLOATThe 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.

FieldDisplay NameTypeNotes
entriesList of Recipe EntriesList<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.
replaceReplace Existing Recipes FlagbooleanIndicates 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.

FieldDisplay NameTypeNotes
recipesList of Recipes to RemoveList<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.

FieldDisplay NameTypeNotes
bookSettingsRecipe Book SettingsRecipeBookSettingsContains 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.

FieldDisplay NameTypeNotes
entityIdsEntity IDsIntListA list of entity IDs that are to be removed from the client's world.
writeWrite MethodFriendlyByteBufWrites 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.

FieldDisplay NameTypeNotes
entityIdEntity IdentifierVarIntThe 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.
effectMob Effect HolderHolder<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.

FieldDisplay NameTypeNotes
ownerScore OwnerUtfThe name of the player whose score is being reset. This is a UTF-8 string.
objectiveNameObjective NameNullable<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.

FieldDisplay NameTypeNotes
idResource Pack IdentifierOptional<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.

FieldDisplay NameTypeNotes
idResource Pack IDUUIDA unique identifier for the resource pack, used to track and manage the resource pack download.
urlResource Pack URLStringThe URL from which the client can download the resource pack.
hashResource Pack HashStringA hash of the resource pack file, used to verify the integrity of the downloaded file. The hash must not exceed 40 characters.
requiredIs Resource Pack RequiredbooleanIndicates whether the resource pack is mandatory for the client to use. If true, the client must accept the resource pack to continue.
promptResource Pack PromptOptional<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.

FieldDisplay NameTypeNotes
commonPlayerSpawnInfoCommon Player Spawn InfoCommonPlayerSpawnInfoContains information about the player's spawn state, such as location and dimension.
dataToKeepData to KeepbyteA 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.

FieldDisplay NameTypeNotes
entityIdEntity IdentifierVarIntThe unique identifier for the entity whose head rotation is being updated. This ID is used to locate the entity within the game world.
yHeadRotYaw Head RotationByteThe 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.

FieldDisplay NameTypeNotes
sectionPosSection PositionSectionPosRepresents the position of the section within the world. It is used to determine the exact location of the block updates.
positionsBlock Positionsshort[]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.
statesBlock StatesBlockState[]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.

FieldDisplay NameTypeNotes
tabSelected Advancements TabResourceLocationThis 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.

FieldDisplay NameTypeNotes
motdMessage of the DayComponentThis field contains the message of the day, which is a text component that can be displayed to the client.
iconBytesServer IconOptional<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.

FieldDisplay NameTypeNotes
textAction Bar TextComponentThe 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.

FieldDisplay NameTypeNotes
newCenterXNew Center X CoordinatedoubleThe X coordinate of the new center of the world border.
newCenterZNew Center Z CoordinatedoubleThe 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.

FieldDisplay NameTypeNotes
oldSizeCurrent Border SizeDoubleRepresents the current size of the world border before the transition begins.
newSizeTarget Border SizeDoubleRepresents the new size that the world border will transition to.
lerpTimeTransition DurationVarLongSpecifies 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.

FieldDisplay NameTypeNotes
sizeWorld Border SizedoubleThis 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.

FieldDisplay NameTypeNotes
warningDelayWarning DelayVarIntThis 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.

FieldDisplay NameTypeNotes
warningBlocksWarning BlocksVarIntThis 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.

FieldDisplay NameTypeNotes
cameraIdCamera Entity IDVarIntThis 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.

FieldDisplay NameTypeNotes
xChunk X CoordinateVarIntThe X coordinate of the chunk that is set as the center of the cache.
zChunk Z CoordinateVarIntThe 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.

FieldDisplay NameTypeNotes
radiusChunk Cache RadiusVarIntThis 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.

FieldDisplay NameTypeNotes
contentsCursor Item ContentsItemStackRepresents 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.

FieldDisplay NameTypeNotes
posSpawn PositionBlockPosThe coordinates of the default spawn position in the game world. It is represented as a BlockPos object, which includes x, y, and z coordinates.
angleSpawn AnglefloatThe 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.

FieldDisplay NameTypeNotes
slotDisplay SlotDisplaySlotThis 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.
objectiveNameObjective NameStringThis 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.

FieldDisplay NameTypeNotes
idEntity IDVarIntThe unique identifier for the entity whose data is being updated.
packedItemsPacked Data ValuesList<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.

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.

FieldDisplay NameTypeNotes
sourceIdSource Entity IDintThe unique identifier for the source entity involved in the link. This is the entity that is being linked to another entity.
destIdDestination Entity IDintThe 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.

FieldDisplay NameTypeNotes
idEntity IDVarIntThe 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.
xaX-Axis MotionShortThe 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.
yaY-Axis MotionShortThe 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.
zaZ-Axis MotionShortThe 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.

FieldDisplay NameTypeNotes
entityEntity IDVarIntThe unique identifier of the entity whose equipment is being updated.
slotsEquipment SlotsList<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.

FieldDisplay NameTypeNotes
experienceProgressExperience ProgressFloatRepresents the progress towards the next experience level, ranging from 0.0 to 1.0.
experienceLevelExperience LevelVarIntThe current experience level of the player.
totalExperienceTotal ExperienceVarIntThe 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.

FieldDisplay NameTypeNotes
healthPlayer HealthFloatRepresents 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.
foodFood LevelVarIntIndicates 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.
saturationSaturation LevelFloatRepresents 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.

FieldDisplay NameTypeNotes
slotSelected Slot IndexVarIntThis 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.

FieldDisplay NameTypeNotes
objectiveNameObjective NameUtfThe name of the objective being managed.
methodOperation MethodByteIndicates the operation to perform: 0 for add, 1 for remove, 2 for change.
displayNameDisplay NameComponentThe display name of the objective, used when adding or changing an objective.
renderTypeRender TypeEnum<ObjectiveCriteria.RenderType>Specifies how the objective should be rendered, applicable for add or change methods.
numberFormatNumber FormatOptional<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.

FieldDisplay NameTypeNotes
vehicleVehicle Entity IDVarIntThe ID of the vehicle entity that has passengers.
passengersPassenger Entity IDsVarIntArrayAn 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.

FieldDisplay NameTypeNotes
slotInventory Slot IndexVarIntThis field represents the index of the inventory slot that is being updated. It is encoded as a variable-length integer (VarInt).
contentsItem Stack ContentsItemStackThis 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.

FieldDisplay NameTypeNotes
methodOperation MethodintDetermines the type of operation: add, remove, change, join, or leave a team.
nameTeam NameStringThe name of the team being modified.
playersPlayer ListCollection<String>A list of players affected by the operation.
parametersTeam ParametersOptional<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.

FieldDisplay NameTypeNotes
ownerScore OwnerStringThe name of the player or entity whose score is being updated.
objectiveNameObjective NameStringThe name of the objective to which the score belongs.
scoreScore ValueVarIntThe new score value to be set for the owner in the specified objective.
displayDisplay ComponentOptional<Component>An optional component that may be used to display additional information about the score.
numberFormatNumber FormatOptional<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.

FieldDisplay NameTypeNotes
simulationDistanceSimulation DistanceVarIntThis 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.

FieldDisplay NameTypeNotes
textSubtitle TextComponentThis 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.

FieldDisplay NameTypeNotes
gameTimeGame TimeLONGRepresents 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.
dayTimeDay TimeLONGIndicates the time of day in ticks. This value resets every 24000 ticks, which corresponds to a full day-night cycle in Minecraft.
tickDayTimeTick Day TimeBOOLA 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.

FieldDisplay NameTypeNotes
textTitle TextComponentThis 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.

FieldDisplay NameTypeNotes
fadeInFade In DurationIntThe duration in ticks for the title to fade in.
stayStay DurationIntThe duration in ticks for the title to remain fully visible.
fadeOutFade Out DurationIntThe 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.

FieldDisplay NameTypeNotes
soundSound EventHolder<SoundEvent>The sound event to be played, wrapped in a Holder for registry purposes.
sourceSound SourceSoundSourceThe category of the sound, such as ambient, block, or player.
idEntity IDVarIntThe unique identifier of the entity associated with the sound.
volumeVolumefloatThe volume level of the sound, where 1.0 is the normal volume.
pitchPitchfloatThe pitch of the sound, where 1.0 is the normal pitch.
seedSound SeedlongA 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.

FieldDisplay NameTypeNotes
soundSound EventHolder<SoundEvent>The sound event to be played, represented as a holder of a SoundEvent object.
sourceSound SourceSoundSourceThe source category of the sound, such as music, weather, or player.
xX CoordinateintThe x-coordinate of the sound's location, multiplied by 8 for precision.
yY CoordinateintThe y-coordinate of the sound's location, multiplied by 8 for precision.
zZ CoordinateintThe z-coordinate of the sound's location, multiplied by 8 for precision.
volumeVolumefloatThe volume level of the sound, determining how loud it is.
pitchPitchfloatThe pitch of the sound, affecting how high or low it sounds.
seedSound SeedlongA 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.

FieldDisplay NameTypeNotes
INSTANCESingleton InstanceClientboundStartConfigurationPacketThis is a singleton instance of the packet, ensuring that only one instance is used throughout the application.
STREAM_CODECStream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
nameSound NameResourceLocationThis field holds the ResourceLocation of the sound to be stopped. It is nullable, meaning it can be null if only the source is specified.
sourceSound SourceSoundSourceThis 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.
b0Flags BytebyteThis 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.

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.

FieldDisplay NameTypeNotes
keyResource KeyResourceLocationThis 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.
payloadPayload Databyte[]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.

FieldDisplay NameTypeNotes
contentChat ContentComponentThe actual message content to be displayed to the player. It is serialized using the ComponentSerialization.TRUSTED_STREAM_CODEC.
overlayOverlay FlagbooleanDetermines 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.

FieldDisplay NameTypeNotes
headerTab List HeaderComponentThe header component of the tab list, which can include text and formatting.
footerTab List FooterComponentThe 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.

FieldDisplay NameTypeNotes
transactionIdTransaction IDVarIntA unique identifier for the transaction, used to match requests and responses.
tagTag DataCompoundTagThe 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.

FieldDisplay NameTypeNotes
itemIdItem IDVarIntThe unique identifier for the item entity that is being picked up.
playerIdPlayer IDVarIntThe unique identifier for the player who is picking up the item.
amountAmountVarIntThe 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.

FieldDisplay NameTypeNotes
idEntity IDVarIntThe unique identifier for the entity being teleported.
changePosition and Rotation ChangePositionMoveRotationThe new position and rotation for the entity after teleportation.
relativesRelative Movement SetSet<Relative>A set of relative movement flags indicating which components of the position are relative.
onGroundOn Ground StatusBoolA 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.

FieldDisplay NameTypeNotes
tickRateTick RateFloatRepresents the current tick rate of the server. This value is read from the buffer using readFloat and written using writeFloat.
isFrozenIs FrozenBooleanIndicates 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.

FieldDisplay NameTypeNotes
tickStepsTick StepsVarIntThis 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.

FieldDisplay NameTypeNotes
hostHost AddressUtfThe host address of the server to which the client is being transferred. It is read and written as a UTF-8 string.
portPort NumberVarIntThe 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.

FieldDisplay NameTypeNotes
resetReset FlagBooleanIndicates whether the advancements should be reset.
addedAdded AdvancementsList<AdvancementHolder>A list of advancements that have been added.
removedRemoved AdvancementsSet<ResourceLocation>A set of advancements that have been removed.
progressAdvancement ProgressMap<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.

FieldDisplay NameTypeNotes
entityIdEntity IdentifierVarIntThe unique identifier for the entity whose attributes are being updated.
attributesAttribute SnapshotsList<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.

FieldDisplay NameTypeNotes
entityIdEntity IDVarIntThe unique identifier of the entity that the effect is applied to.
effectEffect TypeMobEffectThe type of mob effect being applied, represented as a Holder of MobEffect.
effectAmplifierEffect AmplifierVarIntThe strength level of the effect, where higher numbers indicate stronger effects.
effectDurationTicksEffect DurationVarIntThe duration of the effect in ticks, determining how long the effect will last.
flagsEffect FlagsByteA 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.

FieldDisplay NameTypeNotes
itemSetsItem SetsMap<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.
stonecutterRecipesStonecutter RecipesSelectableRecipe.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.

FieldDisplay NameTypeNotes
tagsTags MapMap<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_CODECStream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
idProjectile IDVarIntThis field represents the unique identifier for the projectile whose power is being updated. It is used to distinguish between different projectiles in the game.
accelerationPowerAcceleration PowerDoubleThis 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.

FieldDisplay NameTypeNotes
detailsDetails MapMap<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_LENGTHMaximum Detail Key LengthintThe maximum length allowed for each key in the details map. It is set to 128 characters.
MAX_DETAIL_VALUE_LENGTHMaximum Detail Value LengthintThe maximum length allowed for each value in the details map. It is set to 4096 characters.
MAX_DETAIL_COUNTMaximum Detail CountintThe maximum number of key-value pairs allowed in the details map. It is set to 32.
DETAILS_STREAM_CODECDetails Stream CodecStreamCodec<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_CODECPacket Stream CodecStreamCodec<ByteBuf ClientboundCustomReportDetailsPacket>A composite codec that uses the DETAILS_STREAM_CODEC to encode and decode the entire packet, including the details map.

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.

FieldDisplay NameTypeNotes
linksUntrusted Server LinksList<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.

FieldDisplay NameTypeNotes
idTeleportation IDVarIntThis 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.

FieldDisplay NameTypeNotes
transactionIdTransaction IDVarIntA unique identifier for the transaction, used to match the request with the response.
posBlock PositionBlockPosThe 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.

FieldDisplay NameTypeNotes
slotIdSlot IDVarIntThe ID of the slot where the bundle is located. This identifies which slot in the player's inventory is being interacted with.
selectedItemIndexSelected Item IndexVarIntThe 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.

FieldDisplay NameTypeNotes
difficultyGame DifficultyDifficultyRepresents the difficulty level the client wants to set. It is an enum value of type Difficulty.
STREAM_CODECStream CodecStreamCodec<FriendlyByteBuf ServerboundChangeDifficultyPacket>Handles the encoding and decoding of the packet data.
friendlybytebuf.readUnsignedByte()Read Difficulty IDUnsignedByteReads the difficulty ID from the buffer, which is used to determine the difficulty level.
friendlybytebuf.writeByte(this.difficulty.getId())Write Difficulty IDByteWrites 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.

FieldDisplay NameTypeNotes
offsetChat Message OffsetVarIntThis 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.

FieldDisplay NameTypeNotes
commandCommand StringUtfThis 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.

FieldDisplay NameTypeNotes
commandCommandUtfThe chat command that the player wants to execute. It is sent as a UTF-8 string.
timeStampTimestampInstantThe exact time when the command was issued, used for ensuring the command's validity and order.
saltSaltLongA random value used to ensure the uniqueness and security of the command signature.
argumentSignaturesArgument SignaturesArgumentSignaturesContains the signatures of the command arguments, ensuring they have not been tampered with.
lastSeenMessagesLast Seen Messages UpdateLastSeenMessages.UpdateUpdates 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.

FieldDisplay NameTypeNotes
messageChat MessageUtfThe actual text of the chat message being sent. It is read and written using UTF encoding with a maximum length of 256 characters.
timeStampTimestampInstantThe time at which the message was sent. It is read and written as an Instant object.
saltSaltLongA long value used for security purposes, typically to prevent replay attacks.
signatureMessage SignatureNullable<MessageSignature>An optional signature of the message, used for verifying the authenticity of the message. It is nullable, meaning it can be absent.
lastSeenMessagesLast Seen Messages UpdateLastSeenMessages.UpdateAn 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.

FieldDisplay NameTypeNotes
chatSessionChat Session DataRemoteChatSession.DataThis field contains the data related to the chat session that needs to be updated on the server.
STREAM_CODECStream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
desiredChunksPerTickDesired Chunks Per TickfloatThis 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.

FieldDisplay NameTypeNotes
actionActionEnumThis 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.

FieldDisplay NameTypeNotes
INSTANCESingleton InstanceServerboundClientTickEndPacketA static instance of the packet used for efficient packet handling.
STREAM_CODECStream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
informationClient InformationClientInformationThis field contains the client's settings and preferences, encapsulated in a ClientInformation object.
STREAM_CODECStream CodecStreamCodec<FriendlyByteBuf ServerboundClientInformationPacket>This codec is used to encode and decode the packet data to and from the byte buffer.
friendlybytebufByte BufferFriendlyByteBufThis 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.

FieldDisplay NameTypeNotes
idRequest IDVarIntA unique identifier for the command suggestion request. This ID is used to match the request with the corresponding response from the server.
commandCommand InputUtfThe 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.

FieldDisplay NameTypeNotes
INSTANCESingleton InstanceServerboundConfigurationAcknowledgedPacketA singleton instance of the packet, used to avoid creating multiple instances.
STREAM_CODECStream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
containerIdContainer IdentifierCONTAINER_IDThis 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.
buttonIdButton IdentifierVarIntThis 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.

FieldDisplay NameTypeNotes
containerIdContainer IDContainerIdThe unique identifier for the container being interacted with.
stateIdState IDVarIntThe current state ID of the container, used for synchronization.
slotNumSlot NumberShortThe slot number in the container that was clicked.
buttonNumButton NumberByteThe mouse button number used for the click action.
clickTypeClick TypeEnum<ClickType>The type of click action performed (e.g., left click, right click).
carriedItemCarried ItemItemStackThe item stack currently being carried by the player.
changedSlotsChanged SlotsInt2ObjectMap<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.

FieldDisplay NameTypeNotes
containerIdContainer IDintThis 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.

FieldDisplay NameTypeNotes
slotIdSlot IdentifierVarIntThe unique identifier for the slot within the container that has changed.
containerIdContainer IdentifierContainerIdThe unique identifier for the container that contains the slot.
newStateNew StateBooleanThe new state of the slot, indicating whether it is active or inactive.

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.

FieldDisplay NameTypeNotes
keyCookie KeyResourceLocationThis field represents the unique identifier for the cookie. It is read from the buffer using the readResourceLocation method and written using the writeResourceLocation method.
payloadCookie Payloadbyte[]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.

FieldDisplay NameTypeNotes
payloadPayloadCustomPacketPayloadThe main data being transmitted in this packet. It is a custom payload defined by the server and client.
MAX_PAYLOAD_SIZEMaximum Payload SizeintThe maximum size of the payload that can be sent in this packet. It is set to 32767 bytes.
STREAM_CODECStream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
sampleTypeSample TypeRemoteDebugSampleTypeThis 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.

FieldDisplay NameTypeNotes
slotBook SlotVarIntThe inventory slot where the book is located. This is an integer value that identifies the position of the book in the player's inventory.
pagesBook PagesList<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.
titleBook TitleOptional<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.

FieldDisplay NameTypeNotes
transactionIdTransaction IDVarIntA unique identifier for the transaction, used to match the request with the response.
entityIdEntity IDVarIntThe 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.

FieldDisplay NameTypeNotes
entityIdEntity IdentifierVarIntThe unique identifier for the entity that the player is interacting with.
actionInteraction ActionServerboundInteractPacket.ActionThe specific action being performed, such as attack or interact.
usingSecondaryActionUsing Secondary ActionBooleanIndicates 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.

FieldDisplay NameTypeNotes
posPositionBlockPosThe position in the world where the jigsaw structure generation should start.
levelsNumber of LevelsVarIntThe number of levels to generate for the jigsaw structure.
keepJigsawsKeep Existing JigsawsBooleanA 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.

FieldDisplay NameTypeNotes
idKeep Alive IDlongA 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.

FieldDisplay NameTypeNotes
lockedLocked FlagBooleanIndicates 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.

FieldDisplay NameTypeNotes
xX CoordinatedoubleThe X coordinate of the player's position.
yY CoordinatedoubleThe Y coordinate of the player's position.
zZ CoordinatedoubleThe Z coordinate of the player's position.
yRotYaw RotationfloatThe yaw rotation of the player.
xRotPitch RotationfloatThe pitch rotation of the player.
onGroundOn Ground FlagbooleanIndicates if the player is on the ground.
horizontalCollisionHorizontal Collision FlagbooleanIndicates if the player has collided horizontally.
hasPosHas Position FlagbooleanIndicates if the packet contains position data.
hasRotHas Rotation FlagbooleanIndicates if the packet contains rotation data.
packFlagsPack Flags MethodintCombines onGround and horizontalCollision flags into a single integer.
unpackOnGroundUnpack On Ground MethodbooleanExtracts the onGround flag from the packed flags integer.
unpackHorizontalCollisionUnpack Horizontal Collision MethodbooleanExtracts the horizontalCollision flag from the packed flags integer.
StatusOnly.readRead StatusOnly PacketServerboundMovePlayerPacket.StatusOnlyReads the StatusOnly packet data from the buffer.
StatusOnly.writeWrite StatusOnly PacketvoidWrites the StatusOnly packet data to the buffer.
Rot.readRead Rot PacketServerboundMovePlayerPacket.RotReads the Rot packet data from the buffer.
Rot.writeWrite Rot PacketvoidWrites the Rot packet data to the buffer.
Pos.readRead Pos PacketServerboundMovePlayerPacket.PosReads the Pos packet data from the buffer.
Pos.writeWrite Pos PacketvoidWrites the Pos packet data to the buffer.
PosRot.readRead PosRot PacketServerboundMovePlayerPacket.PosRotReads the PosRot packet data from the buffer.
PosRot.writeWrite PosRot PacketvoidWrites 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.

FieldDisplay NameTypeNotes
xX CoordinatedoubleThe X coordinate of the player's position.
yY CoordinatedoubleThe Y coordinate of the player's position.
zZ CoordinatedoubleThe Z coordinate of the player's position.
yRotYaw RotationfloatThe yaw rotation of the player.
xRotPitch RotationfloatThe pitch rotation of the player.
onGroundOn Ground FlagbooleanIndicates if the player is on the ground.
horizontalCollisionHorizontal Collision FlagbooleanIndicates if the player has collided horizontally.
hasPosHas Position FlagbooleanIndicates if the packet contains position data.
hasRotHas Rotation FlagbooleanIndicates 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.

FieldDisplay NameTypeNotes
xX CoordinatedoubleThe X coordinate of the player's position.
yY CoordinatedoubleThe Y coordinate of the player's position.
zZ CoordinatedoubleThe Z coordinate of the player's position.
yRotYaw RotationfloatThe yaw rotation of the player.
xRotPitch RotationfloatThe pitch rotation of the player.
onGroundOn Ground FlagbooleanIndicates if the player is on the ground.
horizontalCollisionHorizontal Collision FlagbooleanIndicates if the player has collided horizontally.
hasPosHas Position FlagbooleanIndicates if the packet contains position data.
hasRotHas Rotation FlagbooleanIndicates if the packet contains rotation data.
packFlagsPack Flags MethodintCombines onGround and horizontalCollision flags into a single integer.
unpackOnGroundUnpack On Ground MethodbooleanExtracts the onGround flag from the packed flags.
unpackHorizontalCollisionUnpack Horizontal Collision MethodbooleanExtracts 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.

FieldDisplay NameTypeNotes
xX CoordinatedoubleThe X coordinate of the player's position.
yY CoordinatedoubleThe Y coordinate of the player's position.
zZ CoordinatedoubleThe Z coordinate of the player's position.
yRotYaw RotationfloatThe yaw rotation of the player, representing the horizontal rotation.
xRotPitch RotationfloatThe pitch rotation of the player, representing the vertical rotation.
onGroundOn Ground FlagbooleanIndicates whether the player is on the ground.
horizontalCollisionHorizontal Collision FlagbooleanIndicates whether the player has collided horizontally.
hasPosHas Position FlagbooleanIndicates whether the packet contains position data.
hasRotHas Rotation FlagbooleanIndicates 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.

FieldDisplay NameTypeNotes
positionVehicle PositionVec3Represents the 3D coordinates (x, y, z) of the vehicle's position in the game world.
yRotYaw RotationFloatThe rotation around the vertical axis (yaw) of the vehicle.
xRotPitch RotationFloatThe rotation around the horizontal axis (pitch) of the vehicle.
onGroundOn Ground StatusBoolIndicates 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.

FieldDisplay NameTypeNotes
leftLeft Paddle ActiveBooleanIndicates if the left paddle is being used. True if active, false otherwise.
rightRight Paddle ActiveBooleanIndicates 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.

FieldDisplay NameTypeNotes
posBlock PositionBlockPosThe 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.
includeDataInclude Additional DatabooleanA 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.

FieldDisplay NameTypeNotes
idEntity IDVarIntThe unique identifier for the entity from which the item is to be picked.
includeDataInclude Additional DataBoolA 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.

FieldDisplay NameTypeNotes
timeTimestamplongThis 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.

FieldDisplay NameTypeNotes
containerIdContainer IDVarIntThe ID of the container where the recipe is to be placed. This helps the server identify which crafting interface the player is interacting with.
recipeRecipe Display IDRecipeDisplayIdThe 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.
useMaxItemsUse Max ItemsBooleanA 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.

FieldDisplay NameTypeNotes
isFlyingIs FlyingbooleanIndicates whether the player is currently flying. This is determined by checking if the second bit of the byte is set.
FLAG_FLYINGFlying FlagintA constant representing the bit flag for flying, used to check or set the flying state in the byte.
STREAM_CODECStream CodecStreamCodec<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.

FieldDisplay NameTypeNotes
actionPlayer ActionEnumRepresents the type of action the player is performing, such as START_DESTROY_BLOCK or DROP_ITEM.
posBlock PositionBlockPosThe position of the block that the action is being performed on.
directionBlock Face DirectionDirectionThe face of the block that the action is targeting, represented as a direction.
sequenceAction Sequence NumberVarIntA 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.

FieldDisplay NameTypeNotes
idEntity IDVarIntThe unique identifier for the entity that the command is associated with.
actionPlayer ActionEnumThe specific action the player is performing, such as starting to sprint or opening the inventory.
dataAdditional DataVarIntAdditional 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.

FieldDisplay NameTypeNotes
inputPlayer InputInputThis 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.

FieldDisplay NameTypeNotes
STREAM_CODECStream CodecStreamCodec<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.
typePacket TypePacketType<ServerboundPlayerLoadedPacket>This method returns the specific type of the packet, which is used to identify it within the protocol.
handlePacket HandlerServerGamePacketListenerThis 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.

FieldDisplay NameTypeNotes
idPacket IdentifierintThis 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.

FieldDisplay NameTypeNotes
bookTypeType of Recipe BookEnum<RecipeBookType>Indicates the type of recipe book being modified, such as crafting or smelting.
isOpenRecipe Book Open StatusBooleanDetermines if the recipe book is currently open.
isFilteringRecipe Book Filtering StatusBooleanIndicates 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.

FieldDisplay NameTypeNotes
recipeRecipe Display IDRecipeDisplayIdThis 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.

FieldDisplay NameTypeNotes
nameItem NameUtfThe 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.

FieldDisplay NameTypeNotes
idResource Pack IDUUIDA unique identifier for the resource pack, used to track which resource pack the client is responding to.
actionClient ActionEnumThe 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.

FieldDisplay NameTypeNotes
actionAction TypeEnumIndicates the type of action performed by the player. It can be either OPENED_TAB or CLOSED_SCREEN.
tabAdvancement TabResourceLocationSpecifies 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.

FieldDisplay NameTypeNotes
itemSelected Trade IndexVarIntThis 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.

FieldDisplay NameTypeNotes
primaryPrimary EffectOptional<Holder<MobEffect>>Represents the primary effect chosen for the beacon. It is optional, meaning the player may choose not to set a primary effect.
secondarySecondary EffectOptional<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.

FieldDisplay NameTypeNotes
slotSelected SlotShortThis 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.

FieldDisplay NameTypeNotes
posBlock PositionBlockPosThe position of the command block in the world.
commandCommand StringStringThe command to be executed by the command block.
modeCommand Block ModeCommandBlockEntity.ModeThe mode of the command block, which can be one of several predefined modes.
trackOutputTrack Output FlagbooleanIndicates whether the command block should track its output.
conditionalConditional FlagbooleanIndicates whether the command block is conditional.
automaticAutomatic FlagbooleanIndicates 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.

FieldDisplay NameTypeNotes
entityEntity IDVarIntThe unique identifier for the minecart entity that contains the command block.
commandCommand StringUtfThe command to be executed by the command block in the minecart.
trackOutputTrack Output FlagBooleanA 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.

FieldDisplay NameTypeNotes
slotNumSlot NumbershortThe slot number in the player's inventory that is being updated. It is a short value representing the index of the slot.
itemStackItem Stacknet.minecraft.world.item.ItemStackThe 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.

FieldDisplay NameTypeNotes
posBlock PositionBlockPosThe position of the jigsaw block in the world.
nameName Resource LocationResourceLocationThe name of the jigsaw block, represented as a resource location.
targetTarget Resource LocationResourceLocationThe target structure or block that the jigsaw block is pointing to, represented as a resource location.
poolPool Resource LocationResourceLocationThe pool of structures or blocks that the jigsaw block can choose from, represented as a resource location.
finalStateFinal StateStringThe final state of the jigsaw block, typically a string representation of block states.
jointJoint TypeJigsawBlockEntity.JointTypeThe type of joint used by the jigsaw block, determining how it connects to other blocks.
selectionPrioritySelection PriorityVarIntThe priority for selecting this jigsaw block during structure generation.
placementPriorityPlacement PriorityVarIntThe 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.

FieldDisplay NameTypeNotes
posPositionBlockPosThe position of the structure block in the world.
updateTypeUpdate TypeStructureBlockEntity.UpdateTypeThe type of update to perform on the structure block.
modeModeStructureModeThe mode of the structure block, such as SAVE, LOAD, CORNER, or DATA.
nameStructure NameStringThe name of the structure associated with the block.
offsetOffsetBlockPosThe offset of the structure from the block's position.
sizeSizeVec3iThe size of the structure.
mirrorMirrorMirrorThe mirror setting of the structure block.
rotationRotationRotationThe rotation setting of the structure block.
dataDataStringAdditional data associated with the structure block.
ignoreEntitiesIgnore EntitiesbooleanWhether entities should be ignored when the structure is loaded.
showAirShow AirbooleanWhether air blocks should be shown when the structure is loaded.
showBoundingBoxShow Bounding BoxbooleanWhether the bounding box of the structure should be shown.
integrityIntegrityfloatThe integrity of the structure, affecting how complete it is when loaded.
seedSeedlongThe 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.

FieldDisplay NameTypeNotes
posSign PositionBlockPosThe position of the sign block in the game world. This is used to identify which sign is being updated.
isFrontTextIs Front TextBooleanA boolean flag indicating whether the text being updated is on the front side of the sign.
linesSign Text LinesString[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.

FieldDisplay NameTypeNotes
handInteraction HandEnum<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.

FieldDisplay NameTypeNotes
uuidEntity UUIDUUIDThe 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.

FieldDisplay NameTypeNotes
handInteraction HandEnum<InteractionHand>Indicates which hand (main or offhand) the player used to interact with the block.
blockHitBlock Hit ResultBlockHitResultContains details about the block that was interacted with, including the position and face of the block.
sequenceSequence NumberVarIntA 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.

FieldDisplay NameTypeNotes
handHand UsedEnum<InteractionHand>Indicates which hand (main or offhand) the player is using to perform the action.
sequenceAction Sequence NumberVarIntA unique identifier for the action sequence, used to ensure actions are processed in the correct order.
yRotPlayer's Y RotationFloatThe player's rotation around the Y-axis, representing the horizontal direction they are facing.
xRotPlayer's X RotationFloatThe player's rotation around the X-axis, representing the vertical direction they are looking.