ZDeathMessages is a hierarchical, template-driven death message system built for Paper servers. It replaces vanilla death messages with fully configurable, randomizable templates, routing every death through a PvP or PvE hierarchy with per-mob templates, world-specific overrides, staff views, vanish integration, per-player toggles, and three storage backends. A built-in test command and debug mode let you verify every message without staging real deaths.
Features:
Use Cases:
Commands:
/zdm is an alias for /zdeathmessages. Tab-completion is included for all arguments.
Permissions:
Requirements:
Optional:
Note: ZDeathMessages only handles vanilla damage causes and sources — deaths from non-vanilla custom plugin damage are intentionally skipped and left untouched.
Features:
- Hierarchical template resolution — PvP routes through mechanism → weapon group → material → fallback; PvE routes through entity mechanism/type → entity fallback → environment mechanism/cause → fallback
- Multiple messages per template, with one chosen at random on each death
- Indirect-kill resolution — projectiles trace back to the shooter, TNT to the placer, Evoker Fangs to the Evoker, dragon breath to the Ender Dragon, fireworks and wind charges to their source, and block-caused deaths to the specific block
- Handles nuanced vanilla mechanisms: cactus, sweet berry bush, pointed dripstone, stalagmites, falling stalactites, sulfur spikes, anvils, campfires, magma blocks, bed and respawn-anchor explosions, and assisted/finished fall deaths
- Per-world template overrides — unlisted worlds inherit from worlds.default
- Staff view — players with zdeathmessages.staffview see extra staff-messages lines alongside or instead of the public message
- Vanish integration with EssentialsX, SuperVanish, and PremiumVanish — suppresses messages for vanished victims and redacts vanished killers in public output
- WorldGuard region support — disable death messages in specific regions
- Per-player toggle persisted across relogs, with admin override
- Three storage backends: YAML (default), SQLite, and MySQL (HikariCP), with automatic fallback to YAML on failure
- PlaceholderAPI support in templates — victim context by default, optional killer context
- LEGACY (&c) and MiniMessage formatting, configurable globally or per template
- /zdm test to simulate any PvP or PvE death scenario without an actual death
- /zdm debug per-player debug toggle that prints resolved messages to console
- Safe reload — validates YAML syntax before applying and keeps the current config live on parse errors
- Configurable coexistence with other death-message plugins: step aside, take over, or send both
Use Cases:
- Themed death messages that match your server's tone across PvP and PvE
- Distinct messages per weapon type, mob, or environmental hazard
- Staff-only detailed death logs (killer, weapon, distance, coordinates) shown alongside public messages
- Suppress or redact deaths involving vanished staff
- Different message sets per world (Nether, End, minigame worlds) via overrides
- Disable messages inside specific WorldGuard regions like spawn or arenas
Commands:
- /zdm or /zdm toggle — Toggle your own custom death messages on/off
- /zdm toggle <player> — Toggle another player's death messages
- /zdm reload — Reload the plugin configuration
- /zdm test <victim> PVE <entity|cause|mechanism> [weapon|mechanism] [mechanism] — Simulate a PvE death
- /zdm test <victim> PVP <killer|NONE> [cause|mechanism] [weapon|mechanism] [mechanism] — Simulate a PvP death
- /zdm debug — Toggle console debug output for your session
/zdm is an alias for /zdeathmessages. Tab-completion is included for all arguments.
Permissions:
- zdeathmessages.admin — Full admin access: reload, test, and toggling other players (default: op)
- zdeathmessages.toggle — Allows a player to toggle their own death messages (default: all players)
- zdeathmessages.staffview — Receives staff-only message lines on deaths (default: op)
- zdeathmessages.debug — Allows enabling debug view via /zdm debug (default: op)
Requirements:
- Paper 26.1.2+
- Java 25+
- PlaceholderAPI (required — the plugin will not load without it)
- One storage backend: YAML (default), SQLite (included), or MySQL
Optional:
- WorldGuard — for disabled-region support
- EssentialsX, SuperVanish, or PremiumVanish — for vanish integration
- Any permissions plugin — for fine-grained command access
Note: ZDeathMessages only handles vanilla damage causes and sources — deaths from non-vanilla custom plugin damage are intentionally skipped and left untouched.
