User:WinX64/Slot Data: Difference between revisions

From wiki.vg
Jump to navigation Jump to search
imported>WinX64
(→‎Other types: Extracted Block Set into its own header)
imported>WinX64
Line 627: Line 627:
  | Blocks
  | Blocks
  | {{Type|Optional}} [[#Block_Set|Block Set]]
  | {{Type|Optional}} [[#Block_Set|Block Set]]
  | See Blocks structure below. Only present if Has Blocks is true.
  | See [[#Block_Set|Block Set]]. Only present if Has Blocks is true.
  |-
  |-
  | Has Properties
  | Has Properties

Revision as of 17:05, 13 June 2024

The Slot data structure defines how an item is represented when inside an inventory window of any kind, such as a chest or furnace.

This page presents the new Slot data structure, using structured components. You can find the documentation of the old structure, that utilizes raw NBT data, here.

Format

Some description does here.

Name Type Meaning
Item Count {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
The item count. Every following field is only present if this value is greater than zero.
Item ID {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       VarInt
#default =
       VarInt
   }}
The item ID. Item IDs are distinct from block IDs; see Data Generators for more information.
Number of components to add {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       VarInt
#default =
       VarInt
   }}
Number of elements present in the first data component array
Number of components to remove {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       VarInt
#default =
       VarInt
   }}
Number of elements present in the second data component array. This serve as a way to remove the default component values that are present on some items.
Components to add Component type {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Array
#default =
       Array
   }}
{{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Enum
#default =
       Enum
   }}
The type of component. See Structured components for more detail.
Component data {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} Varies
The component-dependent data. See Structured components for more detail.
Components to remove Component type {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Array
#default =
       Array
   }}
{{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Enum
#default =
       Enum
   }}
The type of component. See Structured components for more detail.

Structured components

The complete list of available components is described below. Items marked in blue cause no noticeable impact on the client, and mainly concern server-side operations.

For a more in-depth description, and information on how the items below are encoded with the NBT format, check here.

Type Name Description Data
0 minecraft:custom_data Customizable data that doesn't fit any specific component. As follows:
Name Type Description
Data {{#switch: User:WinX64/Slot Data Data types =
       NBT
#default =
       NBT
   }}
Always a Compound Tag.
1 minecraft:max_stack_size Maximum stack size for the item. As follows:
Name Type Description
Max stack size {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Ranges from 1 to 99.
2 minecraft:max_damage The maximum damage the item can take before breaking. As follows:
Name Type Description
Max damage {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
3 minecraft:damage The current damage of the item. As follows:
Name Type Description
Damage {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
4 minecraft:unbreakable Marks the item as unbrekable. As follows:
Name Type Description
Show in tooltip {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether the Unbreakable indicator should be shown on the item's tooltip.
5 minecraft:custom_name Item's custom name.
Normally shown in italic, and changeable at an anvil.
As follows:
Name Type Description
Name {{#switch: User:WinX64/Slot Data Data types =
       Text Component
#default =
       Text Component
   }}
6 minecraft:item_name Override for the item's default name.
Shown when the item has no custom name.
As follows:
Name Type Description
Name {{#switch: User:WinX64/Slot Data Data types =
       Text Component
#default =
       Text Component
   }}
7 minecraft:lore Item's lore. As follows:
Name Type Description
Number of lines {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Number of elements in the following array.
Lines {{#switch: User:WinX64/Slot Data Data types =
       Array
#default =
       Array
   }} of {{#switch: User:WinX64/Slot Data
Data types =
       Text Component
#default =
       Text Component
   }}
8 minecraft:rarity Item's rarity.
This affects the default color of the item's name.
As follows:
Name Type Description
Rarity {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Enum
#default =
       Enum
   }}
Can be one of the following:
  • 0 - Common (white)
  • 1 - Uncommon (yellow)
  • 2 - Rare (aqua)
  • 3 - Epic (pink)
9 minecraft:enchantments The enchantments of the item. As follows:
Name Type Description
Number of enchantments {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Number of elements in the following array.
Enchantment Type ID {{#switch: User:WinX64/Slot Data Data types =
       Array
#default =
       Array
   }}
{{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Enum
#default =
       Enum
   }}
The ID of the enchantment in the enchantment registry.
Level {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
The level of the enchantment.
Show in tooltip {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether the list of enchantments should be shown on the item's tooltip.
10 minecraft:can_place_on List of blocks this block can be placed on when in adventure mode. As follows:
Name Type Description
Number of predicates {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Number of elements in the following array.
Block predicates {{#switch: User:WinX64/Slot Data Data types =
       Array
#default =
       Array
   }} of Block Predicate
See Block Predicate.
Show in tooltip {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether the list of blocks should be shown on the item's tooltip.
11 minecraft:can_break List of blocks this item can break when in adventure mode. As follows:
Name Type Description
Number of predicates {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Number of elements in the following array.
Block predicates {{#switch: User:WinX64/Slot Data Data types =
       Array
#default =
       Array
   }} of Block Predicate
See Block Predicate.
Show in tooltip {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether the list of blocks should be shown on the item's tooltip.
12 minecraft:attribute_modifiers The attribute modifiers of the item. As follows:
Name Type Description
Number of attributes {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Number of elements in the following array.
Attribute Type ID {{#switch: User:WinX64/Slot Data Data types =
       Array
#default =
       Array
   }}
{{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Enum
#default =
       Enum
   }}
The ID of the attribute.
Unique ID {{#switch: User:WinX64/Slot Data Data types =
       UUID
#default =
       UUID
   }}
The attribute's unique ID.
Name {{#switch: User:WinX64/Slot Data Data types =
       String
#default =
       String
   }}
The attribute's name.
Value {{#switch: User:WinX64/Slot Data Data types =
       Double
#default =
       Double
   }}
The attribute's value.
Operation {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Enum
#default =
       Enum
   }}
The operation to be applied upon the value. Can be one of the following:
  • 0 - Add
  • 1 - Multiply base
  • 2 - Multiply total
Slot {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Enum
#default =
       Enum
   }}
The item slot placement required for the attribute to have effect.
Can be one of the following:
  • 0 - Any
  • 1 - Main hand
  • 2 - Off hand
  • 3 - Hand
  • 4 - Feet
  • 5 - Legs
  • 6 - Chest
  • 7 - Head
  • 8 - Armor
  • 9 - Body
Show in tooltip {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether the list of attributes should be shown on the item's tooltip.
13 minecraft:custom_model_data Value for the item predicate when using custom item models.
More info can be found here.
As follows:
Name Type Description
Value {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
14 minecraft:hide_additional_tooltip
The following information needs to be added to this page:
What is considered as "additional"? What exact items does this hide?
None.
15 minecraft:hide_tooltip Hides the item's tooltip altogether. None.
16 minecraft:repair_cost Accumulated anvil usage cost. The client displays "Too Expensive" if the value is greater than 40 and the player is not in creative mode (more specifically, if they don't have the insta-build flag enabled).
This behavior can be overridden by setting the level with the Set Container Property packet.
As follows:
Name Type Description
Cost {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
17 minecraft:creative_slot_lock Marks the item as non-interactive on the creative inventory (the first 5 rows of items).
This is used internally by the client on the paper icon in the saved hot-bars tab.
None.
18 minecraft:enchantment_glint_override Overrides the item glint resulted from enchantments As follows:
Name Type Description
Has Glint {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
19 minecraft:intangible_projectile Marks the projectile as intangible (cannot be picked-up).

The Notchian client utilizes the codec meant for chat parsing (and NBT in general) when handling this component, even though it contains no data. This causes an empty Compound Tag to be written, which is likely an unintended bug.

As follows:
Name Type Description
Value {{#switch: User:WinX64/Slot Data Data types =
       NBT
#default =
       NBT
   }}
Always a Compound Tag, and always empty.
20 minecraft:food Makes the item consumable. As follows:
Name Type Description
Nutrition {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Non-negative
Saturation {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Can Always Eat {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether the item can always be eaten, even at full hunger.
Seconds To Eat {{#switch: User:WinX64/Slot Data Data types =
       Float
#default =
       Float
   }}
How long it takes to consume the item.
Number of effects {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Number of elements in the following array.
Effect Type ID {{#switch: User:WinX64/Slot Data Data types =
       Array
#default =
       Array
   }}
Potion Effect The potion effect. See Potion Effect.
Probability {{#switch: User:WinX64/Slot Data Data types =
       Float
#default =
       Float
   }}
The probability for this effect to be chosen.
21 minecraft:fire_resistant Description here. None.
22 minecraft:tool Description here. Data here.
23 minecraft:stored_enchantments Description here. Data here.
24 minecraft:dyed_color Description here. Data here.
25 minecraft:map_color Description here. Data here.
26 minecraft:map_id Description here. Data here.
27 minecraft:map_decorations Description here. Data here.
28 minecraft:map_post_processing Description here. Data here.
29 minecraft:charged_projectiles Description here. Data here.
30 minecraft:bundle_contents Description here. Data here.
31 minecraft:potion_contents Description here. Data here.
32 minecraft:suspicious_stew_effects Description here. Data here.
33 minecraft:writable_book_content Description here. Data here.
34 minecraft:written_book_content Description here. Data here.
35 minecraft:trim Description here. Data here.
36 minecraft:debug_stick_state Description here. Data here.
37 minecraft:entity_data Description here. Data here.
38 minecraft:bucket_entity_data Description here. Data here.
39 minecraft:block_entity_data Description here. Data here.
40 minecraft:instrument Description here. Data here.
41 minecraft:ominous_bottle_amplifier Description here. Data here.
42 minecraft:recipes Description here. Data here.
43 minecraft:lodestone_tracker Description here. Data here.
44 minecraft:firework_explosion Description here. Data here.
45 minecraft:fireworks Description here. Data here.
46 minecraft:profile Description here. Data here.
47 minecraft:note_block_sound Description here. Data here.
48 minecraft:banner_patterns Description here. Data here.
49 minecraft:base_color Description here. Data here.
50 minecraft:pot_decorations Description here. Data here.
51 minecraft:container Description here. Data here.
52 minecraft:block_state Description here. Data here.
53 minecraft:bees Description here. Data here.
54 minecraft:lock Description here. Data here.
55 minecraft:container_loot Description here. Data here.

Other types

Common types used in multiple components are described below.

Block Predicate

Describes a predicate used when block filtering is necessary. It can be parameterized to account for the type of block, the values of specific block state properties, NBT data related to block entities, or any combination of the three.

Name Type Description
Has Blocks {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether this predicate is tied to specific types of blocks.
Blocks {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} Block Set
See Block Set. Only present if Has Blocks is true.
Has Properties {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether this predicate is tied to specific properties of a block.
Number of Properties {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       VarInt
#default =
       VarInt
   }}
Number of elements in the following array. Only present if Has Properties is true.
Properties {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Array
#default =
       Array
   }} of Property
See Property structure below. Only present if Has Properties is true.
Has NBT {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether this predicate is tied to specific block entity data.
NBT {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       NBT
#default =
       NBT
   }}
Only present is Has NBT is true.

The Property structure is defined as follows:

Name Type Description
Name {{#switch: User:WinX64/Slot Data Data types =
       String
#default =
       String
   }}
Name of the block state property.
Is Exact Match {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Whether this is an exact value match, as opposed to ranged.
Exact Value {{#switch: User:WinX64/Slot Data Data types =
       Optional 
#default =
       Optional 
   }} {{#switch: User:WinX64/Slot Data
Data types =
       String
#default =
       String
   }}
Value of the block state property. Only present in exact match mode.
Min Value {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       String
#default =
       String
   }}
Minimum value of the block state property range. Only present in ranged match mode.
Max Value {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       String
#default =
       String
   }}
Maximum value of the block state property range. Only present in ranged match mode.

Block Set

Represents a list of block types, either directly (enumerated IDs) or indirectly (block tag).

Name Type Description
Type {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Identifier used to determine the data that follows. It can be either:
  • 0 - Represents a named set of blocks, defined by a tag.
  • Anything else - Represents an enumerated set of blocks, defined by block IDs.
Tag name {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Identifier
#default =
       Identifier
   }}
A tag representing a set of blocks. Only present if Type is 0.
Block IDs {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Array
#default =
       Array
   }} of {{#switch: User:WinX64/Slot Data
Data types =
       VarInt
#default =
       VarInt
   }}
An array of block IDs. Only present if Type is not 0.
The size of the array is equal to Type - 1.

Potion Effect

Describes all the aspects of a potion effect.

Name Type Description
Type ID {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }} {{#switch: User:WinX64/Slot Data
Data types =
       Enum
#default =
       Enum
   }}
The ID of the effect in the potion effect type registry.
Details Detail See Detail structure below.

The Detail structure is defined as follows:

Name Type Description
Amplifier {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
Duration {{#switch: User:WinX64/Slot Data Data types =
       VarInt
#default =
       VarInt
   }}
-1 for infinite.
Ambient {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Produces more translucent particle effects if true.
Show Particles {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Completely hides effect particles if false.
Show Icon {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Shows the potion icon in the inventory screen if true.
Has Hidden Effect {{#switch: User:WinX64/Slot Data Data types =
       Boolean
#default =
       Boolean
   }}
Used to store the state of the previous potion effect when a stronger one is applied. This guarantees that the weaker one will persist, in case it lasts longer.
The following information needs to be added to this page:
This behavior seems to be entirely server-sided. Does the presence of this field actually has any noticeable impact on the client?
Hidden Effect {{#switch: User:WinX64/Slot Data Data types =
       Optional
#default =
       Optional
   }} Detail
Only present if Has Hidden Effect is true.