Difference between revisions of "Slot Data"

From wiki.vg
Jump to navigation Jump to search
m
m (More consistent formatting for omitted message)
Line 14: Line 14:
 
  | Item ID
 
  | Item ID
 
  | Optional VarInt
 
  | Optional VarInt
  | The {{Minecraft Wiki|Java Edition data values#Blocks|item ID}}. Omitted if present is false. Item IDs are distinct from block IDs; see [[Data Generators]] for more information
+
  | Omitted if present is false. The {{Minecraft Wiki|Java Edition data values#Blocks|item ID}}. Item IDs are distinct from block IDs; see [[Data Generators]] for more information
 
  |-
 
  |-
 
  | Item Count
 
  | Item Count

Revision as of 13:59, 18 January 2023

The Slot data structure is how Minecraft represents an item and its associated data in the Minecraft Protocol.

Slot

Name Type Meaning
Present Boolean True if there is an item in this position; false if it is empty.
Item ID Optional VarInt Omitted if present is false. The item ID. Item IDs are distinct from block IDs; see Data Generators for more information
Item Count Optional Byte Omitted if present is false.
NBT Optional NBT Omitted if present is false. If 0 (TAG_End), there is no NBT data, and no further data follows. Otherwise the byte is the start of an NBT blob as shown below:
  COMPOUND ''
    LIST 'StoredEnchantments'
      COMPOUND
        STRING 'id'
        SHORT 'lvl'
      END
      COMPOUND
        ...
      END
      ...
    END
    INT 'Unbreakable'
    ...
  END

Note that on old versions, the enchantment id was sent as a SHORT, and not as a STRING.

See NBT for more information about the NBT format, and here for the contained information and its format. Note that tool durability is included in NBT, among other things.

Examples

  00                            | empty slot
  01 01 01 00                   | a stone block
  01 01 01 03 00 00 12 34 56 78 | a stone block with (made-up) NBT data