MobGuard is a 26.2 Paper plugin for granular mob griefing protection (creepers, ghasts, withers, endermen) without sacrificing vanilla gameplay. Features include per-world spawn rules, height limits, portal/projectile blocking, and drop/XP control.
MobGuard is for mob grief prevention and spawn control. It stops common problems like creeper block damage, ghast fire spam, wither block breaking, and enderman block moving, while still letting mobs feel like mobs. It also adds spawn rules per world, height limits per mob, portal blocking for mobs, projectile blocking, drop control, and XP control.!

A lot of people try to solve this with the mobGriefing gamerule, but that can break villager behavior and other game systems. MobGuard is more targeted, so you can block the bad stuff without turning off everything that depends on mobGriefing.
MobGuard is for servers that want mobs, but do not want mobs to ruin builds, cause lag, or mess up farms.
Common setups
Spawn control can block spawns based on world rules and per mob height rules.
Main spawn options
World rules
MobGuard can override drops and XP on death.
For each mob you can do these things
Drop and XP notes
portal-control:
enabled: true
blocked-types: [PIGLIN, ZOMBIFIED_PIGLIN, PIGLIN_BRUTE, BLAZE]
projectile-control:
enabled: true
blocked-shooters: [DROWNED, WITCH, SKELETON, PILLAGER, BLAZE, GHAST]
spawn-control:
enabled: true
block-natural-spawns: true
block-spawner-spawns: true
block-egg-spawns: true
worlds:
nether:
controlled-mobs:
MAGMA_CUBE:
minimum-y-height: 54
maximum-y-height: 64
drop-control:
enabled: true
mobs:
CREEPER:
replace-default-drops: true
add-drops:
GUNPOWDER:
min: 2
max: 8
chance: 100.0
xp:
min: 5
max: 5
chance: 100.0
# config.yml
#
# Notes:
# - EntityType names are usually ALL CAPS, like ZOMBIE or WITHER_SKELETON
# - Material names are usually ALL CAPS, like IRON_INGOT or GUNPOWDER
#
# Drop chance notes (drop-control.add-drops.*.chance):
# - Chance is a PERCENT from 0.0 to 100.0
# - Decimals are allowed
# - Examples:
# 0.005 = 0.005% (very rare)
# 1.5 = 1.5%
# 90.0 = 90%
# 90 = 90%
# 100.0 = always
# - If chance is missing, it is 100%
settings:
# Stops creeper explosions from breaking blocks (still damages players/mobs)
block-creeper-explosions: true
# Stops creepers from exploding at all
block-creeper-explosion-prime: false
# Stops creepers from becoming charged from lightning
block-charged-creepers: true
# Stops ghast fireballs from breaking blocks (still damages players/mobs)
block-ghast-fireballs: true
# Stops ghast fireballs from starting fires
block-ghast-fire-ignite: true
# Stops wither skull explosions from breaking blocks
block-wither-skull-explosions: true
# Stops the wither itself from breaking blocks while moving around
block-wither-block-breaking: true
# Stops wither explosions from starting fires (usually not needed, but safe)
block-wither-fire-ignite: true
# Stops the ender dragon from breaking blocks
block-ender-dragon-block-breaking: true
# Stops endermen from picking up OR placing blocks
block-enderman-block-moving: true
# Stops endermen from teleporting
block-enderman-teleport: true
# Stops shulkers from teleporting away
block-shulker-teleport: true
# Ravagers can break crops/leaves and some other blocks
block-ravager-griefing: true
# Covers: Zombie, Husk, Drowned, Zombie Villager
block-zombie-door-breaking: true
# Stops blaze fireballs from starting fires
block-blaze-fire-ignite: true
# Stops magma cubes from splitting into smaller ones
block-magma-cube-split: true
# Stops slimes from splitting into smaller ones
block-slime-split: true
# Extra console logging
debug: false
projectile-control:
# Stops mob projectiles from being launched (arrows, tridents, fireballs, potions, etc)
enabled: false
# If empty, applies to all non-player shooters
#
# Example setup:
# enabled: true
# blocked-shooters: [DROWNED, WITCH, SKELETON, PILLAGER, BLAZE, GHAST]
blocked-shooters: []
target-control:
# Stops hostile mobs from targeting players
block-hostile-targeting-players: false
# Stops hostile mobs from targeting villagers (includes wandering traders)
block-hostile-targeting-villagers: false
item-pickup-control:
# Stops mobs from picking up items
enabled: false
# If empty, applies to all non-player mobs
#
# Example setup:
# enabled: true
# blocked-types: [ZOMBIE, HUSK, DROWNED, ZOMBIE_VILLAGER, PIGLIN, PIGLIN_BRUTE]
blocked-types: []
# Stops mobs from dropping items they picked up (mostly held/armor items)
block-picked-up-item-drops: false
# If empty, applies to all non-player mobs
#
# Example:
# block-picked-up-item-drops: true
# drop-blocked-types: [ZOMBIE, HUSK, DROWNED, ZOMBIE_VILLAGER]
drop-blocked-types: []
drop-control:
# Overrides mob drops on death (remove, add, or replace)
enabled: false
# Rules are by EntityType name
#
# Each mob can:
# - replace-default-drops: clears all normal drops first
# - remove-drops: removes these Material drops if they were going to drop
# - add-drops: adds extra drops with a min/max amount (inclusive)
# - xp: controls how much XP is dropped (omit entirely to keep Minecraft's default)
#
# "chance" is a percent (0.0 to 100.0). If missing, it is 100.0.
#
# XP notes:
# - If the "xp" section is absent, Minecraft's default XP is used unchanged
# - If "xp" is present, it fully replaces the default XP roll
# - "chance" under xp controls whether any XP drops at all (0 = never, 100 = always)
# - If the chance roll fails, 0 XP is dropped
# - min/max are the XP amount range (inclusive); min defaults to 0, max defaults to min
#
# Example: remove arrows from skeleton drops
# mobs:
# SKELETON:
# replace-default-drops: false
# remove-drops: [ARROW]
#
# Example: creepers drop 2-8 gunpowder every time, always drop exactly 5 XP
# mobs:
# CREEPER:
# replace-default-drops: true
# add-drops:
# GUNPOWDER:
# min: 2
# max: 8
# chance: 100.0
# xp:
# min: 5
# max: 5
# chance: 100.0
#
# Example: wither skeleton bones with a 90% chance, coal with 50%, skull with 0.005%
# XP drops 7-15 but only has a 75% chance to drop at all
# mobs:
# WITHER_SKELETON:
# replace-default-drops: true
# add-drops:
# BONE:
# min: 4
# max: 9
# chance: 90.0
# COAL:
# min: 0
# max: 3
# chance: 50.0
# WITHER_SKELETON_SKULL:
# min: 0
# max: 1
# chance: 0.005
# xp:
# min: 7
# max: 15
# chance: 75.0
mobs: {}
portal-control:
# Stops mobs from using nether/end portals
enabled: false
# If empty, applies to all non-player mobs
#
# Example setup (common nether offenders):
# enabled: true
# blocked-types: [PIGLIN, ZOMBIFIED_PIGLIN, PIGLIN_BRUTE, BLAZE]
blocked-types: []
block-control:
# Stops mobs from trampling farmland back into dirt
block-farmland-trample: true
# Stops mobs from activating pressure plates
block-mob-pressure-plates: true
# Stops silverfish from infesting blocks (hiding inside)
block-silverfish-infesting: true
ender-pearl-control:
# Stops players from teleporting with ender pearls
block-ender-pearl-teleport: false
# Stops ender pearl teleport damage (the 2.5 hearts)
block-ender-pearl-damage: true
raid-control:
# Stops raids from starting (bad omen entering a village)
block-raid-trigger: false
zombie-control:
# Stops baby zombies (and baby husks/drowned/zombie villagers)
block-baby-zombies: false
# Stops zombie reinforcement spawns
block-zombie-reinforcements: false
combustion-control:
# Stops listed mobs from burning for any reason (sun, fire, lava, etc)
prevent-burning: false
# If empty, applies to all non-player mobs
prevent-burning-types: []
# Forces listed mobs to start burning when they spawn
force-burning: false
# If empty, applies to no mobs
force-burning-types: []
# How long to burn on spawn (ticks). 20 ticks = 1 second
force-burning-ticks: 200
spawn-control:
# Master switch for spawn blocking
enabled: true
# If true, /summon and plugin-made spawns still work
allow-command-spawns: true
# These decide what kinds of spawns are blocked when a mob is listed below
block-natural-spawns: true
block-spawner-spawns: true
block-egg-spawns: true
# Removes blocked hostile mobs that already exist inside brand new chunks
clean-new-chunks: true
worlds:
world:
# If true, blocks ALL hostile mobs in the overworld
block-all-hostile-mobs: false
# Put EntityType names here to block ONLY those mobs in the overworld
#
# Example:
# blocked-mobs: [CREEPER, SKELETON, ZOMBIE, SPIDER, WITCH, ENDERMAN]
blocked-mobs: [BAT]
# Controls spawn heights for certain mobs in the overworld
#
# If a mob is listed here, it can ONLY spawn when its Y level is inside the range (inclusive).
# This is a height limiter, not an allow list.
#
# This only applies to the spawn reasons you are blocking above (natural/spawner/egg).
#
# Example:
# controlled-mobs:
# SLIME:
# minimum-y-height: 50
# maximum-y-height: 70
controlled-mobs: {}
nether:
# If true, blocks ALL hostile mobs in the nether
block-all-hostile-mobs: false
# Put EntityType names here to block ONLY those mobs in the nether
#
# Example:
# blocked-mobs: [BLAZE, GHAST, WITHER_SKELETON, PIGLIN_BRUTE, HOGLIN]
blocked-mobs: [SKELETON]
# Controls spawn heights for certain mobs in the nether
#
# Example:
# controlled-mobs:
# ZOMBIFIED_PIGLING:
# minimum-y-height: 50
# maximum-y-height: 70
controlled-mobs:
MAGMA_CUBE:
minimum-y-height: 54
maximum-y-height: 64
end:
# If true, blocks ALL hostile mobs in the end
block-all-hostile-mobs: false
# Put EntityType names here to block ONLY those mobs in the end
#
# Example:
# blocked-mobs: [ENDERMAN, SHULKER, ENDERMITE]
blocked-mobs: []
# Controls spawn heights for certain mobs in the end
#
# Example:
# controlled-mobs:
# ENDERMAN:
# minimum-y-height: 40
# maximum-y-height: 90
controlled-mobs: {}