Indestructible Spawners
Spawners, trial spawners and vaults become as indestructible as bedrock. Or, if you prefer, give them a custom hardness for each difficulty.
Server-side only: install it on the server (or in your own game for singleplayer). Players don't need it.
Features
By default, in every difficulty, spawners, trial spawners and vaults:
- can't be mined outside creative mode (the mining progress stops right away, as on bedrock);
- resist every explosion like bedrock: TNT, creepers, end crystals, beds, respawn anchors, ghast fireballs, Wither skulls (blue ones included). Like bedrock, they also shield the blocks behind them;
- can't be destroyed by the Wither charging through blocks;
- can't be destroyed by the Ender Dragon flying through them.
Creative players can still break them, as with bedrock.
Configuration
One hardness value per block (spawner, trial spawner, vault) and per difficulty:
| Value | Effect |
|---|---|
-1 |
Indestructible, as described above (default) |
0 or more |
Hardness used for mining, on the vanilla scale. Explosions, the Wither and the Ender Dragon then behave as in vanilla |
For reference, vanilla hardness is 5 for spawners and 50 for trial spawners,
vaults and obsidian. 0 breaks them almost instantly (the speed multiplier is
capped at x1024, the maximum of the attribute). Hardcore worlds use the Hard
value.
Singleplayer and LAN
With Mod Menu and Cloth Config installed, the settings are available in game. Changes apply immediately. Both mods are optional.
Dedicated server
Edit config/indestructiblespawners.json, then restart the server:
{
"spawner": {
"peaceful": -1.0,
"easy": -1.0,
"normal": -1.0,
"hard": -1.0
},
"trial_spawner": {
"peaceful": -1.0,
"easy": -1.0,
"normal": -1.0,
"hard": -1.0
},
"vault": {
"peaceful": -1.0,
"easy": -1.0,
"normal": -1.0,
"hard": -1.0
}
}
Invalid values (below -1, or between -1 and 0) and missing blocks are replaced by the default and logged. A config file from version 1.0.0 (a single set of values) is migrated automatically: its values are copied to all three blocks.
How it works
- Mining: the block's hardness is never changed, since vanilla clients
would keep using the vanilla value and desync (blocks breaking, then
reappearing). Instead, while a player mines a protected block, their
block_break_speedattribute gets a temporary multiplier ofvanilla hardness / configured hardness(0 when indestructible). Attributes are synced to the client, so both sides compute the same progress. The modifier is removed as soon as the player stops mining. - Server-side guarantee: on top of that, the server refuses to break an indestructible block for a player outside creative, whatever the client sends.
- Explosions: indestructible blocks get bedrock's blast resistance, applied where every explosion reads it, so it also works with mods that replace the vanilla explosion code (such as Lithium). As a last safety net, they are removed from the final list of blocks an explosion destroys.
- Wither and Ender Dragon: vanilla uses the
#minecraft:wither_immuneand#minecraft:dragon_immunetags for this, but tags can't depend on the difficulty, so the mod adds its own check next to them.
Known limitation
The speed multiplier reaches the client after a network round trip. With very fast mining (Efficiency V netherite pickaxe plus Haste II) and a high ping, the client can predict a spawner breaking before it learns the new speed. The server refuses and the spawner comes back, but the client may show an empty cage, without the spinning mob, until the chunk reloads. This is purely visual: the spawner keeps working.
Compatibility
- Minecraft 1.21.2 to 1.21.11, Fabric Loader 0.20.1+. Fabric API is not required.
- Other mods that change
block_break_speedkeep working: the multiplier stacks with theirs. - Compatible with Lithium's explosion optimizations.
License
MIT

