Minecraft Commands Guide: How to use blocks_attacks component

     Ever wished you could block attacks with more than just a boring old shield? What if you could make a bone that blocks arrows, or a magical scroll that protects you from explosions? With the blocks_attacks component in Minecraft, you can give any item the ability to block incoming damage like a shield.

 

Turn a stick into a projectile-blocking shield.

 

     This opens up amazing possibilities for custom maps, adventure loot, cursed gear, or even PvP challenges. The real magic happens when you understand how to format it correctly in SNBT. Once you do, you’ll be crafting defensive gear with full control over what it blocks, how it looks, and even what sounds it makes.

 

 

What is the blocks_attacks component

 

     The blocks_attacks component lets any item behave like a shield. That means when the player holds it and crouches or right-clicks to block, it can intercept attacks from the front and reduce or negate damage. You can control how long the player needs to hold the item before it starts blocking, how long the item is disabled after a hit, and what types of damage it should block or ignore. It even allows you to customize the angle of the block, how much damage the item takes when used, and what sound plays when the block happens or fails. You can make ultra-specific shields that only block fall damage, or ones that explode when disabled. The possibilities are endless.

 

 

How to write the SNBT structure

 

     Here’s how you build the component. It all goes inside the square brackets after the item in the /give command. You start with the tag minecraft:blocks_attacks, and then add its options inside curly braces. The structure can include the following fields:

 

block_delay_seconds  -  time you need to hold the item before blocking starts

 

disable_cooldown_scale  -  how long the item is disabled after being broken by an attack

 

damage_reductions  -  a list of rules about which damage types to block and how much

 

item_damage  -  how much damage is done to the item itself when it blocks something

 

block_sound  -  the sound that plays when a block is successful

 

disabled_sound  -  the sound that plays when the shield is disabled

 

bypassed_by  -  types of damage that go through and can’t be blocked

 

Add block delay to make timing-based parries.

 

Use SNBT to create precise and clean command structures.

 

     Here’s what it looks like in readable SNBT:

 

     /give @p stick[minecraft:blocks_attacks={block_delay_seconds:0.2,damage_reductions:[{type:"#minecraft:is_projectile",base:2,factor:0.5}],item_damage:{threshold:4,base:1,factor:0.1},block_sound:"minecraft:item.shield.block"}]

 

     This stick blocks projectiles, but only after holding for 0.2 seconds. It blocks half the incoming damage plus 2 extra points. If the incoming damage is greater than 4, it starts damaging the stick. It plays a shield-blocking sound on successful block. This is just one setup — you can customize every part.

 

Set blocking angle to reward perfect positioning.

 

     ⚠️ Important: When using type inside damage_reductions, you must use a tag prefixed with #.

 

 

Making shield behavior feel unique

 

     With blocks_attacks, you’re not limited to vanilla shield mechanics. You can make weapons that double as parry tools or magical gear that blocks only fire damage or lightning. Want to give players a relic that blocks dragon breath but not physical attacks? Easy — just filter by damage types.

 

     For example, this command creates a blaze rod that blocks only fire-based damage, has a 0.5-second wind-up, and becomes vulnerable to unblockable attacks:

 

     /give @p blaze_rod[minecraft:blocks_attacks={block_delay_seconds:0.5,disable_cooldown_scale:5,damage_reductions:[{type:"#minecraft:is_fire",base:0,factor:1}],bypassed_by:"#minecraft:bypasses_armor"}]

 

Block only certain types of damage for advanced strategy.

 

     ⚠️ Important: The type field inside damage_reductions only accepts a single tag string like "#minecraft:is_fire". Arrays with multiple # tags are invalid. If you need to block multiple damage types, create a custom tag in a datapack that includes them.

 

     Combine this mechanic with a scoreboard check, and you’ve got a cursed item that only blocks while the player is standing still. You can also make gear that blocks massive hits but disables itself afterward by adjusting the disable_cooldown_scale and bypassed_by fields. The horizontal_blocking_angle setting lets you create precise parry windows — perfect for reaction-based challenges or rhythm combat.

 

 

Using in custom adventures

 

     Let’s say you’re designing an arena where the player has to block explosive damage from fireballs, TNT, or creepers — but not melee attacks. You can give them a custom shield item with damage_reductions set only for explosion types using the #minecraft:is_explosion tag.

 

     For example, you could give the player the Aegis of the Arcanum, a glowing talisman said to absorb shockwaves from deadly blasts. It’s useless against arrows or swords, but completely nullifies explosive damage when held. This way, the player learns which gear to use in different phases of the fight, adding strategy and immersion. You could even have NPCs drop different defensive tools that work against specific elements like fire, projectiles, or fall damage.

 

     /give @p blaze_rod[minecraft:blocks_attacks={block_delay_seconds:0.4,damage_reductions:[{type:"#minecraft:is_explosion",base:0,factor:1}],item_damage:{threshold:1,base:1,factor:0.2}}]

 

Make custom gear that breaks when overused.

 

     The blocks_attacks component turns ordinary items into powerful and versatile defensive tools. Learn the SNBT format, mix in custom sounds and damage rules, and you’ll never look at shields the same way again.

 

Build your world together. Get your own Minecraft server ready in 2 minutes. Free with code WELCOME
Create serverStart hosting your server now
Knowledge Base