0x2F S2FPacketSetSlot

Sets a single slot in an inventory window. Used for cursor updates, specific slot changes, and armor slot updates.

Clientbound (Server → Client) · PLAY · net/minecraft/network/play/server/S2FPacketSetSlot.java
inventoryitemcontainer

Fields

FieldTypeDescription
windowIdbyteWindow ID (-1 = cursor, 0 = player inv)
slotshortSlot index (-1 = cursor)
itemSlot (ItemStack)ItemStack to place in slot (null = clear)

Wire Encoding

FieldTypeNotes
Window IDbyte-1=cursor, 0=player inventory
SlotshortSlot index
Slot DataSlotItemStack or null

MCP References

MCPNetHandlerPlayClient.handleSetSlot()

Handler Interface

HNDINetHandlerPlayClient

Notes

windowId=-1 special case: updates the cursor item (the item held by the mouse cursor). windowId=0: updates player inventory. S2F is sent for EVERY slot change — armor equips, hotbar changes, cursor picks up/drops. Inventory modules track S2F to detect armor swaps and item pickups.

implementation Implementation Cases

ChestStealer

Track individual slot updates for inventory management.

Vanilla hook: EventReceivePacket
InvManager

Track individual slot updates for inventory management.

Vanilla hook: EventReceivePacket
AutoArmor

Track individual slot updates for inventory management.

Vanilla hook: EventReceivePacket
← Back to all packets