Minecraft Commands Guide: How to destroy blocks with can_break component
In Adventure Mode, players cannot break any blocks by default - even with the correct tool - unless the item explicitly has the can_break component. The can_break component allows you to override this limitation by granting a specific item the power to break certain blocks.

What is the can_break component
The can_break component defines exactly which blocks a player can destroy with a given item while in Adventure Mode. If the item lacks this component, it won’t be able to break anything at all. If present, only the blocks defined here will be breakable when the player is holding the item. This is a core mechanic in custom maps and structured gameplay where player actions must be limited.
Pseudo-structure format
Before looking at real examples, it’s important to understand the structure of this component using data types as placeholders:

The blocks field can be a single block ID like "minecraftstone", a list of block IDs, or a tag like "minecraftlogs". The optional nbt field can match specific block entity data, such as custom chest contents or banner patterns. The state object allows you to limit breakability to blocks in a specific state, such as doors facing a certain direction or lit furnaces.
Basic SNBT example
Let’s create a simple iron pickaxe that can only break coal ore and polished andesite:
/give @p iron_pickaxe[can_break={blocks:["minecraft:coal_ore","minecraft:polished_andesite"]}]
This pickaxe becomes usable in Adventure Mode - but only on the defined blocks. It won't function on any other surface.

Targeting specific block states
You can go further by adding a block state filter. For example, you might want to let a player break only jungle doors that are open and facing east. This can help lock player interaction to scripted structures.
/give @p wooden_axe[can_break={blocks:"minecraft:jungle_door",state={open:"true",facing:"east"}}]
With this setup, players can’t just chop any door - only the one matching these state conditions is valid.

Puzzle item that breaks glass panels only
In an adventure dungeon, you may want to give players a magical dagger that lets them shatter red stained glass panes and nothing else. Here’s how to define that:
/give @p stick[custom_name={text:"Shardpiercer"},can_break={blocks:["minecraft:red_stained_glass_pane"]}]

This limits the player’s destructive ability to specific glass barriers, enabling puzzle design without the risk of breaking out of the map.
Combine with NBT or state filters for precise logic
Suppose you want a key that can break item frames, but only if those frames have a custom name stored in NBT. Or a pickaxe that mines only furnaces currently lit. These advanced setups are possible using the nbt or state fields. While complex NBT matching is often avoided in most cases, block states are widely used - such as restricting buttons, trapdoors, or logs to specific orientations.
The can_break component works only when the player is in Adventure Mode. That’s by design - in Creative or Survival, all items can break blocks freely unless restricted elsewhere. This means it’s ideal for adventure maps, dungeons, scripted quests, or class-based systems where only certain roles can perform certain actions. Combined with other components like damage, repairable, or glider, it becomes part of a wider gear system designed around progression and interaction limits.
The can_break component lets you build custom tools with exact permissions for Adventure Mode. Use it to shape progression, enforce boundaries, and deliver tightly crafted gameplay experiences in Minecraft.
