Inventory Slot Minecraft
Minecraft displays the player inventory differently, according to how the window was opened. Ranges of slot indices vary in meaning between different “windows”. The Open Window packet indicates which window is being opened according to:
- 2Chest
- 4Furnace
Inventory: '&7This slot is locked, you can not move that!' Drop: '&7This slot is locked, you can not drop that!' Offhand: '&7This slot is locked, you can not put that in youre offhand!' # No permission message to /slotslock & /slotslock reload. # It does not include the Prefix! Add a Hidden Slot in the players inventory So, what I mean by hidden is a slot, you can't access in your inventory BUT you can access it via /data, /loot and /replaceitem. Also, you should be able to add modifiers. This would make it possible so you don't have to use an armor or weapon slot to e.g. Give a player extra health.
Window Type | Description |
---|---|
minecraft:generic_9x1 | A 1-row inventory, not used by the notchian server. |
minecraft:generic_9x2 | A 2-row inventory, not used by the notchian server. |
minecraft:generic_9x3 | General-purpose 3-row inventory. Used by Chest, minecart with chest, ender chest, and barrel |
minecraft:generic_9x4 | A 4-row inventory, not used by the notchian server. |
minecraft:generic_9x5 | A 5-row inventory, not used by the notchian server. |
minecraft:generic_9x6 | General-purpose 6-row inventory, used by large chests. |
minecraft:generic_3x3 | General-purpose 3-by-3 square inventory, used by Dispenser and Dropper |
minecraft:anvil | Anvil |
minecraft:beacon | Beacon |
minecraft:blast_furnace | Blast Furnace |
minecraft:brewing_stand | Brewing stand |
minecraft:crafting | Crafting table |
minecraft:enchantment | Enchantment table |
minecraft:furnace | Furnace |
minecraft:grindstone | Grindstone |
minecraft:hopper | Hopper or minecart with hopper |
minecraft:lectern | Lectern |
minecraft:loom | Loom |
minecraft:merchant | Villager, Wandering Trader |
minecraft:shulker_box | Shulker box |
minecraft:smoker | Smoker |
minecraft:cartography | Cartography Table |
minecraft:stonecutter | Stonecutter |
The following information needs to be added to this page: |
Most of the inventories new to 1.14 have buttons, which are probably implemented using Protocol#Click Window Button. This needs to be confirmed and the button IDs should be checked. |
The slot number is calculated starting at 0, counting up through the window's unique slots, and then counting through the players inventory.
For all windows, the slot in the upper-left corner of the player's inventory is slot n where n is the number of unique slots, and slot number -999 is always used for clicking outside the window.
The default inventory window, which is never explicitly opened by the server, has 10 unique slots.
Rectangular regions are always indexed starting with the upper-left corner and scanning across rows. If a window has a crafting region, the output slot is always slot 0 followed immediately by the input region.
Each window type is described in the following sections. All slot index ranges are inclusive and reflect the indices observed in the Minecraft protocol.
For the window properties (additional data in each window, e.g. smelting progress or enchantments), refer to the table in the Window Property packet.
Using -1 as slot index and as window id will set the cursor item (the stack dragged with the mouse).
Player Inventory
This is the inventory window that the player can always open, typically by pressing E since Beta 1.4. Before, you had to press I.
Slot range | Description |
---|---|
0 | crafting output |
1–4 | 2×2 crafting input (1 + x + 2 * y) |
5–8 | armor (head, chest, legs, feet) |
9–35 | main inventory |
36–44 | hotbar |
45 | Offhand slot |
Note that this is different from inventory items stored in a player.dat file. This may help: https://gist.github.com/459a1691c3dd751db160
Chest
This is the window that is opened when the player right-clicks on a single chest block.
Slot range | Description |
---|---|
0–26 | chest |
27–53 | main inventory |
54–62 | hotbar |
Large chest
This is the window that is opened when the player right-clicks on a double chest block (two adjacent chest blocks).
Slot range | Description |
---|---|
0–53 | chest |
54–80 | main inventory |
81–89 | hotbar |
It is possible to receive different 'Number Of Slots' parameters than those two. In vanilla, using /setblock four times around a chest and then opening the middle chest will open a window with 5*27 chest slots. Some custom servers will send chest inventories with other sizes, usually ranging from 1 row to 6 rows. These may be used for custom GUIs. It is thus important to correctly use the 'Number Of Slots' parameter in the open window packet to determine the number of rows in the chest, rather than hardcoding what constitutes a regular chest or a large chest.
Crafting table
This is the window that is opened when the player right-clicks on a workbench.
Slot range | Description |
---|---|
0 | crafting output |
1–9 | 3×3 crafting input (1 + x + 3 * y) |
10–36 | main inventory |
37–45 | hotbar |
If the 'Number Of Slots' parameter is not set to 0, the opened window will behave like a container window.
Furnace
The window that appears when a furnace is right-clicked.
Slot range | Description |
---|---|
0 | ingredient |
1 | fuel |
2 | output |
3–29 | main inventory |
30–38 | hotbar |
If the 'Number Of Slots' parameter is inferior to 3, placing an item in a slot may crash the client.
Blast Furnace
The GUI that appears when a blast furnace is opened. Same layout as a furnace; however, the recipe book displays blast furnace recipes instead of regular furnace recipes.
Slot range | Description |
---|---|
0 | ingredient |
1 | fuel |
2 | output |
3–29 | main inventory |
30–38 | hotbar |
Smoker
The GUI that appears when a smoker is opened. Same layout as a furnace; however, the recipe book displays blast furnace recipes instead of regular furnace recipes.
Slot range | Description |
---|---|
0 | ingredient |
1 | fuel |
2 | output |
3–29 | main inventory |
30–38 | hotbar |
Dispenser
The inventory that appears when a dispenser or dropper is opened.
Slot range | Description |
---|---|
0–8 | 3×3 dispenser contents (x + 3 * y) |
9–35 | main inventory |
36-44 | hotbar |
Solved - Adding Item To Certain Hotbar Slot SpigotMC ...
If the 'Number Of Slots' parameter is inferior to 9, placing an item in a slot may crash the client.
Enchantment Table
The inventory of an enchantment table. The enchant buttons trigger a Enchant item packet.
Slot range | Description |
---|---|
0 | item to enchant |
1 | lapis lazuli slot |
2–28 | main inventory |
29–37 | hotbar |
Brewing stand
The GUI that appears when a brewing stand is opened.
Slot range | Description |
---|---|
0-2 | bottles/potions |
3 | potion ingredient |
4 | blaze powder |
5-31 | main inventory |
32-40 | hotbar |
Villager trading
The GUI that appears when a villager is right-clicked. Note that if the villager only requires one item, you can put it in either (or both) slots.
Slot range | Description |
---|---|
0-1 | input items |
2 | result |
3–29 | main inventory |
30–38 | hotbar |
Beacon
The window that appears when a beacon is right-clicked.
Slot range | Description |
---|---|
0 | payment item |
1–27 | main inventory |
28–36 | hotbar |
Anvil
Slot range | Description |
---|---|
0 | first item |
1 | second item |
2 | result |
3–29 | main inventory |
30–38 | hotbar |
Hopper
The window that appears when a hopper or hopper minecart is opened.
Slot range | Description |
---|---|
0-4 | hopper slots |
5–31 | main inventory |
32–40 | hotbar |
Shulker box
This is the window that is opened when the player right-clicks on a shulker box chest.
Slot range | Description |
---|---|
0–26 | box slots |
27–53 | main inventory |
54–62 | hotbar |
Llama
The inventory that appears when a tamed llama is right-clicked and has a chest, or when the player's inventory is opened while riding a tamed llama. Depending on the value of the strength field, the number of chest rows may vary (max is 5, so 15 slots).
There still is a saddle slot, even though it cannot be used and is invisible.
Slot positions within the llama inventory vary - slot 2 may be at (1,0) or at (0,1) depending on the number of columns.
Slot range | Description |
---|---|
0 | saddle |
1 | carpet |
2-(2+3*Strength) | llama inventory |
(2+3*Strength)+1-(2+3*Strength)+27 | player inventory |
(2+3*Strength)+28-(2+3*Strength)+35 | hotbar |
Unchested llama
Llama with strength 1
Llama with strength 2
Llama with strength 3
Llama with strength 4
Llama with strength 5
Horse
The window for when a tamed horse is right-clicked or the player's inventory is opened while riding a horse.
Slot range | Description |
---|---|
0 | saddle |
1 | armor |
2–28 | main inventory |
29–37 | hotbar |
Horse slots
Skeleton horse slots
Zombie horse slots
Donkey
The inventory that appears when a tamed donkey (or mule?) is right-clicked, or when the player's inventory is opened while riding a tamed donkey or mule.
There still is an armor slot, even though it cannot be used and is invisible.
Slot range | Description |
---|---|
0 | saddle |
1 | armor |
2–16 | donkey inventory |
17–43 (2-28 if unchested) | player inventory |
44–52 (29-37 if unchested) | hotbar |
Unchested donkey
Chested donkey
Unchested mule
Chested mule
Cartography Table
The GUI that appears when a cartography table is opened.
Slot range | Description |
---|---|
0 | map |
1 | paper |
2 | output |
3–29 | main inventory |
30–38 | hotbar |
Grindstone
Slot range | Description |
---|---|
0 | first item |
1 | second item |
2 | result |
3–29 | main inventory |
30–38 | hotbar |
Lectern
This is a regular container, unlike with held books opened via Protocol#Open Book.
The following information needs to be added to this page: |
Is the player inventory also included on this? |
Slot range | Description |
---|---|
0 | book |
1–27 | main inventory? |
28–36 | hotbar? |
Loom
Slot range | Description |
---|---|
0 | banner |
1 | dye |
2 | pattern |
3 | result |
4–30 | main inventory |
31–39 | hotbar |
Stonecutter
Slot range | Description |
---|---|
0 | input |
1 | result |
2–28 | main inventory |
29–37 | hotbar |
Restrictions | |
---|---|
First introduced | Java Edition 1.8 (14w26a) |
Replaces items in the inventories of blocks (chest, furnaces, etc.) or entities (players or mobs) with the given item(s).
Syntax[edit]
- Java Edition
replaceitem block <pos> <slot> <item> [<count>]
replaceitem entity <targets> <slot> <item> [<count>]
- Bedrock Edition
replaceitem block <position: x y z> slot.container <slotId: int> <itemName: Item> [amount: int] [data: int] [components: json]
replaceitem entity <target: target> <slotType: EntityEquipmentSlot> <slotId: int> <itemName: Item> [amount: int] [data: int] [components: json]
replaceitem block <position: x y z> slot.container <slotId: int> <oldItemHandling: ReplaceMode> <itemName: Item> [amount: int] [data: int] [components: json]
replaceitem entity <target: target> <slotType: EntityEquipmentSlot> <slotId: int> <oldItemHandling: ReplaceMode> <itemName: Item> [amount: int] [data: int] [components: json]
Arguments[edit]
JE: <pos>
: block_pos
BE: position: x y z
: CommandPosition
- In Java Edition, it must be a block position composed of <x>, <y> and <z>, each of which must be an integer or tilde and caret notation.In Bedrock Edition, it must be a three-dimensional coordinates composed of <x>, <y> and <z>, each of which must be a floating-point number or tilde and caret notation.
- Specifies the position of the block to be modified.
JE: <targets>
: entity
BE: target: target
: CommandSelector<Actor>
- Must be a player name, a target selector or a UUID[Java Edition only].
- Specifies one or more entities to modify.
JE: <slot>
: item_slot
BE: slotType: EntityEquipmentSlot
: EquipmentSlot, slot.container
and <slotId: int>
: int
- Specifies the inventory slot to be modified. Valid values depend on whether a block or an entity is being modified.
- In Bedrock Edition,
slotId: int
must be a 32-bit integer number. And it must be between -2147483648 and 2147483647 (inclusive).
container.<slot_number>
(BE: slot.container <slotId: int>
) where <slot_number> or <slotId: int> is replaced with a number specifying the slot.- Chests, dispensers, droppers, hoppers, and trapped chests are numbered 0 for the top-left slot and then increase first horizontally, then vertically (so, for example, a chest's top row slots are numbered 0 to 8 from left to right). Double chests and double trapped chests are treated as two single container blocks.
- A brewing stand's bottom slots are numbered 0 to 2 from left to right, its top slot is 3 and the fuel slot is 4.
- A furnace's slots are numbered 0 for the input slot, 1 for the fuel slot, and 2 for the output slot.
/data
.Slot | Slot Numbers | Restrictions |
---|---|---|
armor.chest (BE: slot.armor.chest <slotId: int> ) | any number[Bedrock Edition only] | armor stands, mobs, and players only (though not all mobs will show or make use of the items) |
armor.feet (BE: slot.armor.feet <slotId: int> ) | any number[Bedrock Edition only] | |
armor.head (BE: slot.armor.head <slotId: int> ) | any number[Bedrock Edition only] | |
armor.legs (BE: slot.armor.legs <slotId: int> ) | any number[Bedrock Edition only] | |
weapon.mainhand (BE: slot.weapon.mainhand <slotId: int> ) | any number[Bedrock Edition only] | |
weapon.offhand (BE: slot.weapon.offhand <slotId: int> ) | any number[Bedrock Edition only] | |
container.<slot_number> (BE: slot.container <slotId: int> ) | 0–53 | players, item frames[Java Edition only] (slot 0), and minecarts only |
enderchest.<slot_number> (BE: slot.enderchest <slotId: int> ) | 0–26 | players only |
hotbar.<slot_number> (BE: slot.hotbar <slotId: int> ) | 0–8 | |
inventory.<slot_number> (BE: slot.inventory <slotId: int> ) | 0–26 | |
horse.saddle (BE: slot.saddle <slotId: int> ) | any number[Bedrock Edition only] | horses, donkeys, and mules only; <item> or itemName: Item must be a saddle |
horse.chest [Java Edition only] | donkeys, and mules only; <item> must be a chest | |
horse.armor (BE: slot.armor <slotId: int> ) | any number[Bedrock Edition only] | horses and llamas only; <item> or itemName: Item must be a type of horse armor (if a horse) or a carpet (if a llama) |
horse.<slot_number> (BE: slot.chest <slotId: int> ) | 0–14 | donkeys and mules with chests only |
villager.<slot_number> (BE: slot.inventory <slotId: int> ) | 0–7 | villagers only |
Inventory Slots Minecraft
JE: <item>
: item_stack
BE: itemName: Item
: CommandItem
- Specifies the item to be placed in the block or entity's inventory slot.
JE: <count>
: integer
BE: amount: int
: int
- Must be a 32-bit integer number. In Java Edition, it must be between -2147483648 and 2147483647 (inclusive). And it must be between 1 and 64 (inclusive).
- Specifies the number of items to be placed in the block or entity's inventory slot.
BE: data: int
: int
- Must be a 32-bit integer number. It must be between -2147483648 and 2147483647 (inclusive).
- Specifies the item data for the item(s) to be placed in the block or entity's inventory slot. Values which are invalid for the specified item id will default to 0. If not specified, defaults to 0.
BE: components: json
: Json::Value
- Must be a JSON Object.
- Specifies the item components. Like data tags but supports only
minecraft:can_place_on
,minecraft:can_destroy
,minecraft:item_lock
, andminecraft:keep_on_death
functions (see Commands/give#Examples)
BE: oldItemHandling: ReplaceMode
- Must be one of:
destroy
- Directly replaces items ignoring the original items in the specified slot.keep
- Does not replace items if an item occupies that slot.
Result[edit]
Command | Trigger | Java Edition | Bedrock Edition |
---|---|---|---|
any | the arguments are not specified correctly | Unparseable | Failed |
<count> exceeds the stack limit of the specified item | Failed | Successful | |
/replaceitem block ... | if the specified block is not a container | Failed | |
if the specified block does not have the specified slot | |||
/replaceitem entity ... | if <targets> or target: target fails to resolve to one or more entities (named players must be online) | ||
if none of the targets have the specified slot (for example, zombies don't have horse.armor ) | |||
if specified item cannot be place into the specified slot of any targeted entity(for example, place a stone into armor.chest of a player) | |||
/replaceitem ... keep | if an item occupies the specified slot in keep mode | N/A | |
any | On success | Replaces the items in the specified slot with the specified items (previous items in that slot are lost). |
Output[edit]
Command | Edition | Situation | Success Count | /execute store success ... | /execute store result ... |
---|---|---|---|---|---|
any | Java Edition | On fail | 0 | 0 | 0 |
/replaceitem block ... | On success | 1 | 1 | 1 | |
/replaceitem entity ... | On success | 1 | 1 | the number of entities whose items are successfully replaced | |
any | Bedrock Edition | On fail | 0 | N/A | N/A |
/replaceitem block ... | On success | 1 | N/A | N/A | |
/replaceitem entity ... | On success | the number of entities whose items are successfully replaced | N/A | N/A |
Examples[edit]
- To replace the items in the bottom-right slot of a single chest two block above with four spruce saplings:
replaceitem block ~ ~2 ~ container.26 minecraft:spruce_sapling 4
[Java Edition only]replaceitem block ~ ~2 ~ slot.container 26 sapling 4 1
[Bedrock Edition only]
- To replace the items in the rightmost hotbar slot of the nearest player with four spruce saplings:
replaceitem entity @p hotbar.8 minecraft:spruce_sapling 4
[Java Edition only]replaceitem entity @p slot.hotbar 8 sapling 4 1
[Bedrock Edition only]
History[edit]
Java Edition | |||||
---|---|---|---|---|---|
1.8 | 14w26a | Added /replaceitem . | |||
1.14 | 18w43a | /replaceitem can now be used on item frames. | |||
Upcoming Java Edition | |||||
1.17 | 20w46a | Removed /replaceitem . Replaced with /item replace . | |||
Pocket Edition | |||||
1.0.5 | alpha 1.0.5.0 | Added /replaceitem . | |||
1.1.0 | alpha 1.1.0.0 | CanPlaceOn and CanDestroy functions are now supported for /replaceitem . | |||
Bedrock Edition | |||||
1.16.0 | beta 1.16.0.55 | Added new overload for /replaceitem with an option for destroy or keep. |
See also[edit]
/blockdata
— can also replace items in a container/entitydata
— can also replace items in a mob's inventory, or modify the drop chances of armor and weapons/give
— give items to players without specifying specific inventory slots or overwriting other items