0x2D S2DPacketOpenWindow

Opens an inventory GUI window (chest, crafting table, furnace, enchantment table, etc.) with window ID, type, title, and slot count.

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

Fields

FieldTypeDescription
windowIdunsigned byteServer-assigned window ID
inventoryTypeStringGUI type identifier (minecraft:chest, minecraft:crafting_table, etc.)
windowTitleIChatComponent (JSON)Window title displayed in GUI
slotCountunsigned byteNumber of slots in the window
entityIdintEntity ID for EntityHorse type (only present for horse GUIs)

Wire Encoding

FieldTypeNotes
Window IDUnsigned Byte
Inventory TypeStringminecraft:chest, etc.
Window TitleChat Component (JSON)Displayed as window title
Slot CountUnsigned Byte
Entity ID (if horse)intOnly for EntityHorse type

MCP References

MCPNetHandlerPlayClient.handleOpenWindow()

Handler Interface

HNDINetHandlerPlayClient

Notes

Inventory types: minecraft:chest, crafting_table, furnace, dispenser, enchanting_table, brewing_stand, villager, beacon, anvil, hopper, dropper, EntityHorse. RektSky B5 ChestStealer intercepts this packet for silent chest handling — it cancels the vanilla open, stores the window data, and manages the chest entirely via packet-level manipulation.

implementation Implementation Cases

ChestStealer (Gugustus, Tenacity 6.0)

Detect window opening (chest, crafting table, etc.). ChestStealer triggers on GuiChest open.

Vanilla hook: EventReceivePacket
InvManager (Gugustus, Tenacity 6.0)

Detect window opening (chest, crafting table, etc.). ChestStealer triggers on GuiChest open.

Vanilla hook: EventReceivePacket
AutoArmor (Gugustus, Tenacity 6.0)

Detect window opening (chest, crafting table, etc.). ChestStealer triggers on GuiChest open.

Vanilla hook: EventReceivePacket
← Back to all packets