Block, item and entity ids: namespaces, block states, and the ones that differ
An id is not always what the item is called, and a block id is not the same as its item id. The naming rules, the renames that break old commands, and where states fit.
Every command that fails with "Unknown item" or "Unknown block" is an id problem, and the rules are more subtle than "lowercase with underscores".
The namespace is not optional in data
minecraft:diamond_sword
my_pack:custom_sword
Commands let you omit minecraft: — /give @s diamond_sword works. JSON files do not. A loot table or recipe with a bare diamond_sword fails, sometimes silently. Write the namespace everywhere and the problem disappears.
Block id and item id are different things
Some blocks have no item, some items place a different block:
| Item | Block placed |
|---|---|
minecraft:wheat_seeds | minecraft:wheat |
minecraft:redstone | minecraft:redstone_wire |
minecraft:string | minecraft:tripwire |
minecraft:flower_pot | minecraft:flower_pot, but potted variants are separate blocks |
| — | minecraft:water, minecraft:fire, minecraft:air have no item |
/setblock takes the block id. /give takes the item id. Using the wrong one is the most common source of "that id does not exist" when the thing plainly does.
Block states live in square brackets
/setblock ~ ~ ~ oak_stairs[facing=east,half=top,waterlogged=true]
States are properties of the block, not the item — you cannot give a stair that is pre-rotated, because rotation is decided on placement. Unspecified properties take their defaults.
waterlogged catches people: it exists on stairs, slabs, fences and dozens more, and setting a block without it removes the water that was there.
Renames that break old commands
A handful of ids changed and the old ones are simply unknown now:
| Old | Current |
|---|---|
grass | short_grass |
grass_path | dirt_path |
scute | turtle_scute |
sign | oak_sign and friends |
grass is the painful one, because grass_block still exists and is a different thing. Old commands using grass for the plant now silently target nothing.
Entity ids
Mostly predictable, with exceptions: minecraft:snow_golem not snowman, minecraft:mooshroom not mushroom_cow, and every projectile is its own entity — minecraft:arrow, minecraft:spectral_arrow, minecraft:trident.
Entities that are technically block entities — chests, hoppers, signs — do not appear in the entity list and cannot be /summoned. They are placed as blocks and edited with /data.
Tags beat lists
#minecraft:planks #minecraft:logs #minecraft:wool
#minecraft:doors #minecraft:beds #minecraft:swords
Wherever a command or JSON accepts a tag, using it survives Mojang adding new wood types. Hardcoding all eight plank ids does not.
Search every block, item and entity id, with block states and the tags each belongs to, in the Block, Item & Entity ID Browser.