Repository navigation
FAQ and Troubleshooting
Version 1.6 declared api-version: '26.3', which is a minimum, so 1.21.x servers rejected it. Use 1.6.1, which declares api-version: '1.21'.
That is expected. This build declares api-version: '1.21', and older servers reject it. A separate legacy build for 1.16.5–1.20.x is planned. Keep using an older release on those versions for now.
Check these points:
-
legacy-color-support: falseinconfig.yml. - Correct syntax:
&#FF5555or<#FF5555>. - The client supports hex colors (1.16+; every Minecraft version supported by this build does).
- Run
/cdm reloadafter editing.
Inside messages.yml, YAML may need quotes around strings starting with special characters:
death-title: "<#FF5555>YOU DIED"Run /cdm reload. If validation finds errors, the reload is aborted and the old configuration stays active unless ignore-validation-errors: true.
- Check the console for the validation report.
- Run
/cdm config validate. - Fix the reported sounds, particles, modes or conditions.
- The cause must match a Bukkit
DamageCausename:FALL,FIRE,ENTITY_ATTACK,PROJECTILE... - Check the group:
vipandadminmessages only apply withuse-permission-based-messages: trueand the matching permission. - Check
conditional-messages: a matching condition or adefaultentry can overridecause-messages. - Check
per-world-messages: a world override takes priority over everything.
- Set
use-permission-based-messages: trueinconfig.yml. - Give the player
cdm.message.viporcdm.message.admin(adminwins overvip). - Run
/cdm reload.
No message matched for that world, group and cause, so the plugin used &c{victim} has died. Add the cause to cause-messages, or add a default-messages entry for the group.
- Install PlaceholderAPI.
- Install the expansion that provides the placeholder (for example Vault or Player).
- PlaceholderAPI is optional and detected at runtime; check the console for a detection message.
- PlaceholderAPI placeholders use
%percentages%; built-in placeholders use{braces}.
- Install Vault and an economy plugin.
- Set
cost-per-death-messageabove0.0. - Make sure the player's group is not listed in
exempt-groups-from-cost. - The player needs enough balance; otherwise the custom message is skipped.
The configured name does not exist on the server. Run /cdm config validate, use a valid value, and reload. Invalid values fall back to the defaults (entity.player.death and EXPLOSION).
Sounds accept entity.player.death or ENTITY_PLAYER_DEATH. Particles use names such as EXPLOSION, EXPLOSION_EMITTER or CLOUD.
plugins/CustomDeathMessages/config.yml
plugins/CustomDeathMessages/messages.yml
They are created on first start and are never overwritten by updates.
No. Three groups are built in: default, vip and admin. For more variety, use conditional messages, per-world messages or different cause entries.
Give them the permission cdm.bypass.
/cdm test FALL
/cdm test ENTITY_ATTACK Steve Diamond_Sword
The command prints a summary with the final message, broadcast mode, sound, particle and cost.
message-to-victim: true
message-to-world: false
message-to-radius: 0The victim still sees the message; nobody else does.
Players with cdm.admin (or OPs) receive a chat notice on join when a newer version is published. The console also logs the notice. The check uses the public Modrinth API.
CustomDeathMessages © 2026 SicklySurgeon · MIT License · Modrinth