This mod allows certain mobs to actively use shields in combat instead of only holding them as equipment.
When a compatible mob equips a shield in its offhand, it gains AI behavior that allows it to raise the shield to block incoming attacks, creating short defensive windows before returning to normal combat.
The design goal is to make shield usage feel like a natural extension of vanilla combat, adding defensive moments without turning mobs into permanent blockers.
Several global behaviors can be configured:
mobConsumeShieldDurability Whether mobs consume shield durability when blocking.
mobAlwaysAnticipate Forces mobs to always use anticipation logic. If set to false, anticipation logic only activates when local difficulty × recent HP loss exceeds a random threshold.
This mod supports data-driven mob shield configs through JSON files.
You can define:
Place your JSON files under:
data/<namespace>/mob_shield/<path>.json
Examples:
data/minecraft/mob_shield/zombie.json
data/minecraft/mob_shield/piglin.json
data/yourmod/mob_shield/custom_mob.json
These files are resolved by path into entity-type-style ids. For example:
data/minecraft/mob_shield/zombie.json -> minecraft:zombie
data/yourmod/mob_shield/foo/bar.json -> yourmod:foo/bar
In practice, this means the file path should match the mob id you want to configure.
{
"use_duration": 60,
"cooldown_duration": 60,
"check_continue_to_use_interval": 30,
"shield_id": "minecraft:shield",
"chance": 0.15,
"min_difficulty": 2.25
}
use_duration How long the mob keeps actively using the shield.
cooldown_duration How long the mob waits before it can use the shield again.
check_continue_to_use_interval How often the mob checks whether it should continue blocking.
shield_id The item id of the shield to equip when the mob spawns with one. If the item is missing or invalid, the mod falls back to minecraft:shield.
chance The spawn chance for that mob to receive a shield in its offhand.
min_difficulty Minimum local difficulty required before the mob may spawn with a shield.
min_difficulty uses Minecraft's effective local difficulty, not just the selected world difficulty setting.
For reference:
Vanilla shield interactions remain unchanged.
Fresh Animations / EMF
Spartan Weaponry
Shield Breach trait can disable mob shields, similar to vanilla axes.Shield behavior is designed around vanilla-style combat flow, with Zombies serving as the primary reference for timing and pacing.
Because different mobs use different vanilla AI structures, some variation in behavior is expected. Compatibility improvements and edge-case fixes may still be added over time.
If you encounter mobs with unusually broken or inconsistent shield behavior, feel free to report them.
If you'd like to support my modding work, including maintenance, updates, and compatibility work, Patreon is available here: https://patreon.com/vomiter\_scp
