Sueta

CustomDeathMessages

1.7.0

Die with style, not silence! Replace boring death notices with hilarious, colorful, and personalized messages. Add sounds, particles, and titles to turn every demise into a memorable event.

·Plugin
  1. 1.7.0latestCustomDeathMessages 1.7.0 (Legacy)2 weeks ago
    Legacy build for Minecraft 1.8 - 1.20.x (Java 8+). Use the Modern build for Minecraft 1.21 - 26.3. This is the first release that loads on Minecraft 1.20.x and older. It is built from the same code base and uses the same configuration files, commands and features as the Modern build.
    Added
    - Legacy build without api-version, compiled for Java 8. - Runtime compatibility layer for sounds, particles, titles, action bars, biomes, potion effects, item-in-hand checks and hex colors. - Legacy Effect particles on 1.8, plus Particle names when the server provides them. - Cross-version sound aliases in both directions, including chains such as ENTITY_LIGHTNING_BOLT_THUNDER -> ENTITY_LIGHTNING_THUNDER -> AMBIENCE_THUNDER. - Cross-version particle aliases in both directions (EXPLOSION <-> EXPLOSION_LARGE, EXPLOSION_EMITTER <-> EXPLOSION_HUGE, SMOKE <-> SMOKE_NORMAL, and more). - Hex color fallback: on servers without ChatColor#of the closest legacy color is used. - 1.8-compatible titles and action bars.
    Fixed
    - Epic thunder sound rejected on Minecraft 1.9 - 1.12. - 1.16.5 particles rejected because 1.17 names were validated literally. - /cdmreload aborted even when validation passed, due to a mis-encoded error check. - /cdmconfig validate could report the wrong issue count. - /cdmbroadcast particle printed a raw enum name instead of the configured name. - Default particles no longer depend on Effect.CLOUD, which is missing from newer APIs.
    Compatibility
    | Build | Minecraft | Java | |---|---|---| | Modern | 1.21 - 26.3 | 21+ | | Legacy | 1.8 - 1.20.x | 8+ | Tested on Paper 1.8.8, 1.12.2, 1.16.5 and 1.20.6 with real deaths and epic effects. No configuration keys changed.
    14 downloads
  2. 1.6.1CustomDeathMessages 1.6.13 weeks ago

    The previous version only works with versions 1.26+. This one will work from 1.21+ onwards.

    86 downloads
  3. 1.6Custom Death Messages 1.63 weeks ago

    CustomDeathMessages — Version 1.6

    Hex Color Rendering, Performance, and Minecraft 26.3 Compatibility Release

    Description
    Version 1.6 is a focused quality, compatibility, and performance release. It resolves the remaining hex color rendering problems that could make <#RRGGBB> and &#RRGGBB appear as literal text, fixes action bar colors, and makes color handling consistent across every configurable message path. This release also improves death attribution, removes several cross-world and null-configuration edge cases, reduces per-death configuration work through caching, and updates the plugin for Minecraft 26.3 with Java 21. Server owners can upgrade without rewriting their configuration. Existing config.yml and messages.yml files remain valid; the new broadcast message keys have built-in defaults and can be added optionally. ---

    Release Statistics

    | Category | Count | |---|---:| | Critical fixes | 6 | | Bug fixes | 22 | | Performance improvements | 14 | | Configuration and message additions | 6 | | Quality-of-life improvements | 10 | | Behavior changes | 7 | | Total documented changes | 65 | ---

    Critical Fixes

    Hex Color Rendering

    - Fixed <#RRGGBB> and &#RRGGBB colors not rendering in death messages, titles, subtitles, action bars, command feedback, help text, test summaries, broadcast feedback, reload messages, configuration validation, update notices, and respawn messages. Both hex syntaxes are now translated consistently instead of being shown as literal text. Raw color sequences also no longer appear in console enable/disable logs.

    Action Bar Colors

    - Fixed action bar text not interpreting legacy § color codes correctly. Action bar messages now use legacy text parsing, so colors and formatting render as intended.

    Death Attribution and World Safety

    - Fixed a cross-world distance error that could occur when the victim and the responsible entity were in different worlds. Distance is now calculated only when both entities share the same world. - Fixed stale killer attribution. Damage information used to credit a killer now expires after 15 seconds, preventing an old hit from claiming an unrelated later death. - Fixed projectile fallback attribution. When tracked damage data is unavailable, projectile deaths now resolve the shooter instead of crediting the projectile itself.

    Platform Compatibility

    - Added Minecraft 26.3 support with Spigot API 26.3 and Java 21, including an updated api-version declaration. ---

    Bug Fixes

    Commands and Message Formatting

    - Fixed hex colors in /cdm, /cdmhelp, /cdm test, /cdmbroadcast, /cdm reload, and /cdm config feedback. - Fixed hex colors in update notifications and respawn messages. - Fixed /cdmhelp formatting command descriptions twice, which could alter literal & sequences or produce unexpected colors. - Fixed blank or missing values in messages.yml causing NullPointerExceptions in commands. - Fixed the invalid-cause response from the message formatter bypassing the color pipeline. - Fixed the broadcast mode overview using hardcoded text instead of configurable messages.yml entries.

    Broadcast Handling

    - Fixed negative broadcast radii being interpreted as a sound or particle name instead of a radius value. - Fixed invalid broadcast radii not being reported clearly. The invalid value and the fallback radius are now shown. - Fixed broadcast mode and radius resolution reading configuration through multiple inconsistent paths; both now use one effective resolution path and refresh on reload.

    Messages, Placeholders, and Integrations

    - Fixed conditional death messages being rebuilt from YAML on every death. They are now cached by group and damage cause. - Fixed a blank message-not-found entry in messages.yml causing a NullPointerException during fallback message selection. - Fixed unnecessary placeholder work by resolving only the placeholders that actually appear in the selected message. - Fixed PlaceholderAPI availability being checked repeatedly. Availability is now cached, while still allowing recovery if PlaceholderAPI is enabled later. - Fixed a broken PlaceholderAPI installation repeatedly attempting placeholder expansion; a missing class is now handled once and the death flow continues normally. - Fixed Essentials nickname lookups repeating unnecessary plugin-manager checks; the hook now revalidates itself when needed. - Fixed the missing-economy warning being printed on every death. It is now shown once per server session.

    Validation and Safety

    - Fixed negative epic particle counts being passed to the server; they are now clamped to a safe value. - Fixed negative group sound volumes; they are now clamped to zero. - Fixed the update checker retaining state between checks; it now resets before each check. - Fixed the test command creating multiple death contexts for a single test instead of reusing one. - Fixed tab completion suggestions not being filtered by the typed prefix and using locale-sensitive casing. - Fixed console enable/disable messages containing raw color codes instead of clean, readable text. ---

    Performance Improvements

    - Conditional death messages are cached per group and damage cause, eliminating repeated YAML section traversal during the death flow. - Broadcast mode and radius settings are cached and rebuilt only when the configuration is reloaded. - Placeholder resolution skips lookups for placeholders that are not present in the selected message. - PlaceholderAPI availability is cached after the first successful check, avoiding a plugin lookup for every message. - Essentials integration avoids repeated plugin-manager lookups during nickname resolution. - The darken-screen particle ring offsets are precomputed once instead of recalculating trigonometry every tick. - Darken-screen recipients are resolved once per tick instead of once for each of the 12 particle points. - /cdm test reuses a single DeathContext and cached effect managers. - /cdmbroadcast caches its BroadcastManager, SoundManager, and ParticleManager instances. - Message selection uses Random.nextDouble() instead of the shared Math.random() implementation. - Tab completion filters candidates by prefix before constructing the suggestion list. - Case conversions use Locale.ROOT, preventing locale-dependent behavior and unnecessary work. - Victim weapon resolution reads ItemMeta once per lookup instead of twice. - Particle counts, sound volumes, radii, durations, and economy costs are clamped early, preventing invalid or unexpectedly expensive effect calls. ---

    Configuration and Message Additions

    The following new keys are available under system-messages in messages.yml: - broadcast-current-sound-radius — current sound broadcast radius display. - broadcast-current-particle-radius — current particle broadcast radius display. - broadcast-current-message-radius — current message radius display. - broadcast-current-message-world — current world message mode display. - broadcast-current-message-victim — current victim-only message mode display. - broadcast-invalid-radius — feedback shown when an invalid broadcast radius is entered. These keys are optional. If they are missing from an existing messages.yml, the plugin uses built-in defaults. ---

    Quality-of-Life Improvements

    - /cdmbroadcast modes now uses configurable messages.yml entries for its current-settings output. - Invalid radius feedback now shows both the rejected value and the fallback value. - Broadcast command help and examples are now sourced from the message system, making them easier to translate and customize. - Help descriptions containing color codes now render exactly as written. - Missing or blank message entries fall back to readable built-in defaults instead of failing silently. - Console logs are clean and readable without raw & or hex color sequences. - Vault users receive one clear warni
    170 downloads
  4. 1.5Oct 3, 2026

    CustomDeathMessages – Version 1.5

    Stability, Accuracy, Configuration Alignment, and Production Hardening Release

    Description
    Version 1.5 is a major maintenance release focused on correctness, stability, and making advertised features behave as expected. This version fixes several critical issues affecting economy charges, message targeting, broadcast modes, epic deaths, reload behavior, test command reliability, killer/source resolution, placeholders, sound handling, particle handling, permissions, memory cleanup, update checking, optional integrations, and build/runtime compatibility. The goal of this release is to align runtime behavior with configuration expectations, reduce silent failures, improve admin confidence, and make death messages more accurate and consistent in gameplay. This revision also incorporates a deeper final audit pass that addressed additional edge cases found after the first 1.5 review, including economy exemption consistency, test command permission-group alignment, broadcast-mode synchronization, reload validation isolation, message-history cleanup, external placeholder resilience, nickname integration recovery, global particle delivery behavior, update-checker lifecycle safety, and build/runtime compatibility hardening. ---

    Release Statistics

    | Category | Count | |---|---:| | Critical bug fixes | 18 | | Standard bug fixes | 36 | | Total bugs fixed | 54 | | Stability, memory, and lifecycle improvements | 16 | | Build and compatibility corrections | 8 | | Quality-of-life improvements | 28 | | Behavior changes | 10 | | New additions | 8 | | Total changelog entries | 124 | ---

    Critical Bug Fixes

    Economy and Death Message Charging

    - Fixed the economy system not actually charging players when a death message was triggered. - Death message costs configured by server owners are now enforced during the death flow. - Players with insufficient funds are now handled correctly instead of silently receiving the full custom death flow. - Added proper insufficient-funds feedback using configurable messaging. - Added successful charge feedback using configurable messaging. - Added exemption feedback so players who do not pay due to group exemption receive clearer behavior. - Fixed group-based cost exemptions so exempt groups no longer pay the configured death message cost. - Fixed exemption behavior so cost exemptions now depend on the player’s real permission group instead of only on the message-selection group. - Improved behavior when the economy provider is missing or unavailable. - The plugin now avoids breaking the death flow. - A safer fallback behavior is used when economy integration cannot be completed. - Improved economy provider recovery so late-loading economy integrations can become available without requiring a full restart. - Improved validation of economy transactions instead of assuming withdrawal always succeeds. - The cost placeholder now reflects an actually enforced cost rather than being purely cosmetic. ---

    Message Targeting and Radius Priority

    - Fixed message radius not overriding world-wide message delivery. - Configured radius values now correctly take priority when radius messaging is enabled. - Death messages now respect the intended targeting order: - radius first when configured, - world second when radius is disabled, - victim-only delivery when neither applies. - Fixed inconsistency between documented behavior and actual runtime behavior. - Test command broadcast behavior now follows the same targeting rules as real death messages. - Prevented test broadcasts from ignoring configured message scope. - Improved reliability of nearby-player calculation for radius-based messaging. - Reduced unexpected global spam from test commands. - Made message delivery more predictable for servers using multiple worlds. ---

    Broadcast Mode Compatibility and Effective Resolution

    - Fixed the victim-only broadcast mode being unusable through commands despite being advertised in help and tab completion. - Added compatibility handling so the shorter victim mode name is accepted and resolved correctly. - Extended victim-mode compatibility beyond commands so configuration values using the shorter alias are now resolved correctly as well. - Synchronized command usage, help text, tab completion, validation output, and internal mode handling. - Fixed divergence between legacy broadcast settings and unified broadcast settings. - Broadcast mode resolution now uses a single effective configuration path, reducing confusion when multiple related settings exist. - Prevented invalid mode errors when using documented broadcast modes. - Improved consistency between sound, particle, message, title, action bar, and screen-effect broadcast modes. - Made broadcast mode validation clearer for administrators. - Reduced confusion caused by mismatched mode names. - Improved reliability of manual broadcast testing commands. ---

    True Global Particle Broadcasting

    - Fixed global particle broadcasts not actually reaching all online players. - Global particle mode now sends particles to all online players instead of being limited by world or tracking range. - Improved cross-world particle delivery behavior so players outside the victim’s world still receive a safe visible fallback effect. - Improved consistency between global sound broadcasting and global particle broadcasting. - Prevented players in other worlds from completely missing particles that were configured as global. - Made global particle behavior closer to administrator expectations. - Improved reliability of particle tests using global mode. - Reduced confusion when comparing global, world, radius, and victim-only particle modes. ---

    Epic Death System Alignment

    - Fixed epic death effects reading different configuration locations than the ones defined by server owners. - Epic sound, particle, particle count, title, and subtitle settings now correctly affect runtime behavior. - Fixed epic customization being silently ignored. - Improved consistency between epic configuration, validation, and actual death effects. - Fixed epic particle count not being applied correctly. - Fixed epic title and subtitle not loading from the intended configuration area. - Improved epic death reliability across: - chat messages, - sounds, - particles, - titles, - subtitles, - lightning effects. - Reduced mismatch between epic messages and epic visual/audio effects. - Made epic deaths more predictable and configurable. ---

    Epic Subtitle and Visual Effect Context Accuracy

    - Fixed epic subtitles using an incomplete death context. - Epic subtitles can now correctly resolve placeholders such as: - victim, - killer name, - killer source, - cause, - distance, - world, - time. - Prevented epic subtitles from showing unknown or empty values when real death information was available. - Improved consistency between epic chat messages and epic title/subtitle effects. - Made epic deaths feel more integrated and less disconnected. - Reduced confusing placeholder output during epic deaths. - Improved reliability of custom epic subtitle formatting. ---

    Visual Effect Placeholder and Color Pipeline

    - Fixed titles, subtitles, and action bar messages bypassing the full placeholder pipeline used by chat messages. - Visual death effects now support internal death placeholders more consistently. - Visual death effects now support external placeholder expansion where available. - Visual death effects now pass through the same color formatting pipeline as chat messages. - Reduced cases where visual effects displayed unresolved placeholders, raw ampersands, or missing hex colors. - Improved consistency between chat death messages and screen effects. - Made custom visual death feedback more expressive and reliable. ---

    Configuration Reload Stability

    - Fixed reload operations using stale message data when rebuilding internal caches. - Re
    424 downloads
  5. 1.4Bugs Fixes and Improvements.Sep 24, 2026

    CustomDeathMessages - Changelog

    ---

    Version 1.4

    Now targeting Minecraft 26.3. ---
    Critical Bug Fixes
    Message Lookup System - Fixed group message cache building incorrect configuration paths. The cache searched for keys without the required parent prefix, causing all group messages to return null at runtime and fall back to the hardcoded default. Messages configured under permission groups now resolve correctly. - Fixed cause-specific message keys using an incorrect section name. The lookup expected a different key structure than what the configuration file provides, causing cause-based messages such as FALL, FIRE, and ENTITY_ATTACK to never be found. - Fixed default group message key mismatch. The cache builder searched for a key name that does not exist in the configuration schema. - Fixed conditional message lookup using an incorrect path prefix. Conditional messages were searched at the wrong configuration depth, preventing all condition-based messages from being evaluated at runtime. - Fixed conditional message default entries in the shorthand YAML format not being recognized. Entries using the single-key default notation were ignored because the parser only checked for the explicit condition and message pair format. - Fixed group sound cache building paths without the required parent prefix, causing per-group death sounds to never load at runtime despite passing validation. Killer Resolution - Fixed environmental deaths incorrectly resolving the victim as their own killer. The fallback damage cause lookup used a method that returns the damaged entity rather than the damaging entity, causing deaths by lava, fire, fall, and void to display the victim's own name in the killer placeholder. - Added defensive handling in the killer name placeholder to return a safe default when the killer is unresolved, preventing edge cases where the placeholder could resolve to an unintended value. Test Command - Fixed the test command rejecting all valid input due to a redundant subcommand check. The command router already consumed the subcommand keyword before passing arguments to the handler, but the handler still expected it, causing every invocation to return a usage error. - Fixed argument parsing offset being misaligned by one position after the routing layer strips the subcommand keyword. This caused causes, killers, and sources to be read from the wrong argument positions. - Fixed broadcast and effect flags being parsed as cause or killer arguments instead of being extracted before argument interpretation. Flags such as global, global-sound, and global-particles can now appear in any position without corrupting the parsed values. - Fixed inconsistent usage documentation between two separate message entries. Both now display the same syntax. Epic Death System - Fixed epic death determination performing two independent random rolls, one for effects and one for message selection. This caused desynchronization where epic effects could play with a normal message, or an epic message could appear without any effects. The roll is now performed once and shared across all systems. - Fixed epic messages overriding per-world messages. Per-world messages now always take priority regardless of epic status. - Fixed the epic death subtitle displaying a hardcoded generic cause instead of the actual cause of death. Thread Safety - Fixed death message recipient calculation executing on an asynchronous thread, accessing world and entity data outside the main server thread. This could cause concurrent modification exceptions and inconsistent player lists under load. Recipient calculation now executes synchronously on the main thread. Particle Effects - Fixed the darken screen effect spawning zero particles due to a count parameter set to zero. The effect was active in configuration but produced no visible output. Configuration File Structure - Fixed newly added system message entries being placed under the wrong configuration section. All system messages are now correctly located under the system-messages block and are properly loaded at runtime. ---
    Bug Fixes
    Help System - Fixed compound command help lookup failing for multi-word commands. The help system only read the first argument, preventing lookup of entries with spaces in their key names such as config validate. - Fixed help command displaying a hardcoded player-only error instead of using the configurable message. - Fixed help detail labels for description, usage, and permission being hardcoded instead of configurable. - Fixed help command list line format being hardcoded instead of configurable. Command System - Fixed unified command router displaying a hardcoded unknown command error instead of using the configurable message. - Fixed general help output displaying hardcoded strings instead of using configurable messages. - Fixed configuration command displaying hardcoded permission and usage errors instead of using configurable messages. - Fixed reload manager displaying hardcoded status messages instead of using configurable messages. - Fixed test error output displaying a hardcoded error prefix instead of using the configurable message. - Fixed test context builder throwing exceptions with hardcoded messages instead of using configurable messages. Test Summary - Fixed the test summary sound and particle information performing independent random rolls, causing the displayed information to not match the actual test result. The epic status is now determined once and shared across the entire summary. Event Registration - Fixed startup log reporting an incorrect number of registered event listeners. Update Checker - Fixed version comparison crashing with a NumberFormatException when the remote version string contains non-numeric characters such as suffixes or prefixes. Version strings are now sanitized before comparison. Tab Completion - Added tab completion support for the test command, including death causes, online player names, and effect flags. - Fixed help tab completion only suggesting an incomplete set of options. Configuration Validator - Fixed validation passing without checking the internal structure of message groups. The validator now verifies that each group contains the required message sections and reports warnings when they are missing, preventing silent runtime failures. - Added validation for conditional message structure within each group. Performance - Fixed the particle manager being instantiated twice per death event. A single instance is now created and reused. Build Configuration - Removed a duplicate build configuration file that conflicted with the primary build definition. - Removed an unused internal message selection class that contained duplicate path resolution bugs. ---
    Changes
    - All user-facing messages have been migrated from hardcoded strings to the external message configuration file. Server owners can now fully customize every message the plugin sends, including command errors, help text, test summaries, broadcast confirmations, and reload status messages. - Per-world messages now take absolute priority over all other message selection logic, including epic deaths. - The epic death flag is determined once per death event and shared consistently across message selection, sound playback, particle effects, titles, action bar, and lightning. - The test command now extracts effect flags before parsing positional arguments, allowing flags to appear in any position without corrupting the cause, killer, or source values. - The test summary now displays whether the simulated death rolled as epic. - The configuration validator now performs deep structural validation of message groups and conditional message sections. ---
    Improvements
    - Improved killer resolution logic to properly distinguish between entity-caused and environment-caused deaths. - Improved message c
    158 downloads
  6. 1.3May 18, 2026

    CustomDeathMessages v1.3 Changelog

    This release addresses critical issues with configuration reloading, cross-world sound broadcasting, and localization consistency. Server owners upgrading from v1.2 should review the notes below before deployment.

    Bug Fixes

    - Fixed a critical issue where /cdmreload would unregister all event listeners without reinitializing them. This caused the plugin to stop intercepting player deaths, resulting in vanilla death messages appearing and making configuration changes appear ignored or reset. - Resolved an issue with the GLOBAL sound broadcast mode. Sounds were previously anchored to the victim's coordinates, causing distance-based attenuation and preventing playback for players in different worlds (particularly noticeable in Multiverse environments). Global sounds now play directly at each recipient's location, ensuring consistent server-wide audio. - Fixed configuration validation during reloads to properly abort on critical YAML parsing errors, preventing broken plugin states from malformed configuration files.

    Localization & Translations

    - Corrected missing, inconsistent, and improperly formatted translation keys across messages.yml and internal system messages. - Standardized language formatting and improved fallback strings to ensure reliable multi-language server support. - Fixed color code parsing in localized messages to maintain consistent formatting across all supported languages.

    Technical Improvements

    - Overhauled ReloadManager to safely reinitialize all event listeners, formatters, and dependency references during hot-reloads. - Updated BroadcastManager to dynamically adjust sound origin based on the configured broadcast mode. GLOBAL and VICTIM_ONLY now use recipient coordinates, while WORLD and RADIUS retain victim coordinates for positional audio. - Improved internal caching and validation routines for configuration and message files.

    Upgrade Notes

    - A full server restart is recommended when upgrading from v1.2 to clear any lingering listener states from previous reload attempts. - If you maintain custom translations, review the updated config.yml template to ensure all corrected keys are properly merged. - The /cdmreload command is now fully functional and safe for production use. Configuration changes will apply immediately without requiring a server restart. For detailed technical changes, refer to the commit history or source repository.
    1526 downloads
  7. 1.2Apr 3, 2026

    📜 CHANGELOG - CustomDeathMessages v1.2

    🎯 Focused on Accuracy & Stability
    This update is a direct response to community feedback regarding nickname integration. We have completely overhauled how the plugin retrieves player names to ensure 100% compatibility with Essentials, alongside major internal stability improvements to eliminate hidden background errors.
    🐛 Critical Bug Fixes
    ✅ Fixed: Essentials Nicknames Not Showing in Death Messages* Addressing user feedback: "Seeking help with CustomDeathMessage plugin. The only feature I want is to replace the normal username with the essentials nickname of all players (victim and killer) in all places. Everything I have tried config wise either doesn't work and uses default. Or uses usernames and not nicknames."* What was wrong: The plugin was relying solely on Minecraft's base API to get names, which only returns raw usernames (e.g., Steve). It wasn't actually "talking" to Essentials to fetch the custom nicknames (e.g., [Admin] Steve). What we did: We built a dedicated, safe integration system (EssentialsHook) directly into the plugin's core. Now, whenever a death occurs, the plugin securely checks Essentials first. This applies to: - The {victim} placeholder. - The {killer_name} placeholder. - The {killer_displayname} placeholder. - Killers shooting from a distance (e.g., bows, crossbows). - Respawn messages ({player}). ✅ Fixed: "Uses Default" Fallback Loop* Related to the issue above, if the plugin struggled to format a message because of a missing nickname, it would sometimes abort and print the hardcoded default message instead of your custom messages.yml text. The new hook prevents this fallback loop, ensuring your custom messages always parse correctly.
    🌟 New Features & Placeholder Updates
    ✅ Added: "Raw Username" Placeholders* Because the plugin now prioritizes Essentials nicknames by default, we added two new placeholders just in case you specifically need the underlying Minecraft username for a specific custom message format: - {victim_username} → Shows the raw Minecraft name (e.g., Notch). - {killer_username} → Shows the killer's raw Minecraft name.
    🛠️ Significant Refinements & Improvements
    ✅ Improved: Core Engine Stability & Java 8 Compatibility* We performed a deep cleanup of the plugin's internal code to guarantee it runs flawlessly on servers using Java 8. This eliminates several hidden "silent errors" that were occurring in the background, improving overall server performance and ensuring death messages trigger instantly without delay. ✅ Improved: Sound & Biome Detection Accuracy* Fixed how the plugin reads server data for biomes, potion effects, and custom sounds. Values like {biome} will now format perfectly in all supported Minecraft versions without throwing hidden warnings in your console. ✅ Improved: Safe Plugin Loading* If Essentials is not installed on your server, the plugin will now detect this instantly and gracefully fall back to standard Minecraft usernames without throwing any errors or lagging the startup process. ---
    💡 Upgrade Notes for Server Admins
    No configuration changes required:* Your config.yml and messages.yml do not need to be modified. The {victim} and {killer_name} placeholders will automatically start pulling Essentials nicknames upon updating. Soft Dependency: Make sure Essentials is installed before* CustomDeathMessages if you want to use nicknames. If Essentials is installed later, simply run /cdm reload.
    472 downloads
  8. 1.1CustomDeathMessages 1.1Jan 7, 2026

    📜 CHANGELOG - CustomDeathMessages v1.1

    ⚠️ A Sincere Apology
    We sincerely apologize for any instability or missing features in v1.0. This major update introduces a complete architectural redesign to enhance reliability, maintainability, and future extensibility. Thank you for your patience and invaluable feedback.
    🗑️ Removed Features
    ❌ Removed: In-Game Configuration Editor (`/cdm editor`)* The in-game editor has been completely removed from the plugin. This decision was made to streamline development, improve stability, and focus resources on core features like the new broadcast system. All configuration must now be managed by directly editing the config.yml and messages.yml files.
    🌟 Major New Features
    ✅ Added: Advanced Broadcast System* Introduce fine-grained control over who sees death effects (messages, sounds, particles, titles, action bars) with four new broadcast modes: - GLOBAL: All online players on the server - WORLD: All players in the same world - RADIUS: Players within a configurable distance - VICTIM_ONLY: Only the dying player Configurable globally and per-effect type directly in config.yml. ✅ Added: Powerful `/cdm broadcast` Command Suite* A new admin command to test and trigger broadcast effects manually: - /cdm broadcast sound <mode> [radius] [sound] - /cdm broadcast particle <mode> [radius] [particle] - /cdm broadcast message <mode> <message> - /cdm broadcast test – Simulates all broadcast modes - /cdm broadcast global <type> – Send an effect to all players instantly. ✅ Added: Full Support for Minecraft 1.21.11* The plugin has been updated and thoroughly tested to be fully compatible with Minecraft 1.21.11, including all new sounds, particles, biome names, and API changes introduced in this version. Configuration defaults and validation now reflect 1.21.11 standards.
    🐛 Critical Bug Fixes
    ✅ Fixed: Inaccurate Killer & Source Identification* The system for determining {killer_name} (the responsible entity) and {killer_source} (the direct damage source, like an arrow or TNT) has been completely rewritten. It now correctly handles: - Projectiles (arrows, fireballs) from players, mobs, and dispensers. - Direct entity attacks (players, zombies, creepers). - Edge cases where the default game API returns incomplete data. ✅ Fixed: Server Startup Crash on Invalid Configuration* In v1.0, certain misconfigurations could cause the plugin to crash during server startup. This has been resolved with a safer, staged initialization process that guarantees all internal systems load in the correct order. ✅ Fixed: Incorrect Placeholder Values* Placeholders like {distance}, {biome}, and {victim_effects} now display accurate, properly formatted values (e.g., "nether_wastes" is now shown as "Nether Wastes").
    🛠️ Significant Refinements & Improvements
    ✅ Refined: Configuration & Messages Structure* - `config.yml` now includes new, intuitive settings for the broadcast system (sound-broadcast-mode, particle-broadcast-mode, and a unified effects-broadcast section). - `messages.yml` is now on version 1.1 and includes a new broadcast-system section with fully configurable messages for all new /cdm broadcast commands. ✅ Enhanced: Configuration Validation* The /cdm config validate command now checks the new broadcast settings for validity, preventing misconfiguration and providing clearer, more actionable feedback. ✅ Plugin Version Bump* The plugin’s version has been officially updated to 1.1 to reflect this major feature release.
    702 downloads
  9. 1.0.0CustomDeathMessages 1.0.0Oct 30, 2025

    📜 CHANGELOG - CustomDeathMessages v1.0.0

    ⚠️ A Sincere Apology
    I deeply apologize for the extended 4-week gap without updates and for not addressing these critical issues sooner. Thank you for your patience and continued support.
    🐛 Critical Bug Fixes
    ✅ Fixed: Broken Killer Tracking & Generic Messages* The plugin consistently failed to identify the correct killer ({killer_name}) and damage source ({killer_source}), resulting in generic "Unknown" messages. The DamageTracker and message formatter have been overhauled to accurately track and display killer information in all scenarios. ✅ Fixed: In-Game Editor Inventory (80% Non-Functional)* The /cdm editor inventory was largely unresponsive, with most slots failing to register clicks or open sub-menus. This has been resolved; the editor is now stable and functional for basic navigation and message editing.
    ℹ️ Important Notes
    🛠️ Editor Status: Early Access (≈30% Complete)* While the core functionality of the in-game editor now works, it is not fully implemented. Features like editing global config, world-specific messages, and epic message lists are either limited or not yet functional. The editor is provided as an early-access tool for basic message customization, with full completion planned for a future release.
    253 downloads
  10. 0.0.9CustomDeathMessages 0.0.9Oct 8, 2025

    📜 CHANGELOG - CustomDeathMessages v0.0.9

    The plugin continues to evolve! Version 0.0.9 introduces a comprehensive command restructuring that unifies all functionality under a single command interface while simplifying permissions and improving the overall user experience. This release focuses on consistency, usability, and maintainability, making the plugin more intuitive for administrators and reducing complexity for end-users.
    ⚠️ UPDATE INSTRUCTIONS
    No special migration steps are required for this update. However, please note:
    1. The previous separate commands (/cdmreload, /cdmconfig, etc.) will no longer function as standalone commands
    2. All functionality is now accessed through the unified /cdm command
    3. Your existing configuration files will work without modification
    4. Permissions have been simplified - if you were using the old permission system, no changes are needed
    5. The messages.yml file has been reorganized and translated from Spanish to English - If you want to use the updated structure, you should delete your existing messages.yml file and let the plugin regenerate it with the new format. If you prefer to keep your current configuration, no action is needed as the plugin will maintain compatibility with your existing file.
    #### ✨ New Features Added: Unified Command System* All commands have been consolidated under a single /cdm command structure: * /cdm test - Test death messages (replaces /cdm test) * /cdm editor - Open configuration editor (replaces /cdm editor) * /cdm help - Access help system (replaces /cdmhelp) * /cdm config validate - Validate configuration (replaces /cdmconfig) * /cdm reload - Reload configuration (replaces /cdmreload) * This simplifies command management and provides a consistent interface Added: Base Permission System* A new base permission cdm.use has been introduced: * Grants access to the main /cdm command and its subcommands * Default: true (all players can use the command) * Other permissions (cdm.reload, cdm.editor, etc.) now function as sub-permissions within the unified system Added: Enhanced Command Tab Completion* A new unified tab completer provides context-aware suggestions: * Shows only relevant subcommands based on user permissions * Provides contextual suggestions as you type * Improves discoverability of available commands and parameters Added: Streamlined Help System* The help system has been updated to reflect the new command structure: * Now provides clear guidance on the unified command interface * Includes examples of the new command syntax * Maintains all the interactive features from previous versions Added: Reorganized & Translated Messages Configuration* The messages.yml file has been completely restructured and translated to English: * All sections previously in Spanish are now in English * More consistent structure for easier navigation * No functional changes - only language and organization Note: If you want to use the new structure, delete your existing messages.yml and let the plugin generate a new one* #### 🐛 Bug Fixes Fixed: Command Permission Conflicts* Resolved issues where permission checks failed due to the previous fragmented command system, ensuring consistent permission handling. Fixed: Tab Completion Conflicts* Fixed tab completion issues that occurred when multiple commands with the same name but different permissions were registered. Fixed: Command Execution Flow* Corrected edge cases where command execution would fail when using certain parameter combinations with the previous command structure. #### 🛠️ Improvements & Optimizations Improved: Code Architecture* Restructured command handling to use a single executor pattern, reducing code duplication and improving maintainability. Improved: Resource Management* Optimized the reinitialization process when reloading configuration, ensuring all dependent components are properly reset. Improved: Error Handling* Enhanced error messages when using invalid subcommands or parameters, providing clearer guidance to users. Optimized: Permission System* Simplified the permission structure with a logical hierarchy that's easier to understand and manage: * cdm.use (base access) * cdm.reload (advanced permissions) * cdm.editor (specialized access) * cdm.test (testing access) With version 0.0.9, CustomDeathMessages delivers a more cohesive, professional, and user-friendly interface while maintaining all the powerful features from previous versions. The unified command system provides a consistent experience across all plugin functionality, and the improved permission structure makes administration simpler. The reorganization of messages.yml and translation to English ensures better compatibility with international server environments while maintaining full backward compatibility. These changes lay the foundation for future enhancements while delivering immediate improvements to the day-to-day experience of using the plugin.
    56 downloads
  11. 0.0.8CustomDeathMessages 0.0.8Oct 7, 2025

    📜 CHANGELOG - CustomDeathMessages v0.0.8

    The evolution continues! Version 0.0.8 builds upon the solid foundation of v0.0.7 with two essential new tools: a built-in in-game configuration editor and automatic update notifications. This release focuses on improved administrator experience, transparency, and accessibility, ensuring your custom death message configuration is more manageable than ever.
    ⚠️ UPDATE INSTRUCTIONS
    To fully leverage the new features:
    1. Back up your current messages.yml file
    2. Delete the messages.yml file from your server's plugins/CustomDeathMessages/ folder
    3. Restart or reload the server. The plugin will generate new configuration files with all new options
    4. Manually transfer your custom messages from your backup to the new messages.yml
    #### ✨ New Features Added: In-Game Configuration Editor (`/cdm editor`)* The flagship feature of this version! This interactive system allows administrators to edit configuration directly from the game without needing to access server files: * Intuitive menu navigation with categories for groups, causes, and settings * Real-time message preview with placeholder substitution * Validation of placeholders during editing * Confirmation before saving changes * Supports editing conditional messages and group-specific messages (default, vip, admin) * New permission node cdm.editor for access control Added: Update Notification System* The plugin now automatically checks for new versions on startup and notifies administrators when they join the server: * Checks Modrinth for updates on server startup * Notifies players with cdm.admin permission or OP when they join * Configurable notification messages in messages.yml * Direct link to the plugin page for easy updating Added: New `/cdm editor` Command* A dedicated entry point to access the in-game configuration editor. Requires the cdm.editor permission. Added: Support for Minecraft 1.21.9 and 1.21.10* The plugin has been verified to work with the latest Minecraft versions, ensuring compatibility with the newest server features and mechanics. #### 🐛 Bug Fixes Fixed: Improved Validation System* The configuration validator now provides more detailed error descriptions, especially for conditional messages, making it easier to identify and fix configuration issues. Fixed: Editor Compatibility* Fixed issues that could occur when editing messages while the plugin was reloading, ensuring a more stable editing experience. #### 🛠️ Improvements & Optimizations Improved: Administrator Experience* The in-game editor eliminates the need for manual file editing, significantly reducing the risk of syntax errors and making configuration changes faster and safer. Improved: Help System* The help system has been optimized to integrate with the new editor, providing contextual information about how to use the new features. Improved: Update Transparency* The update notification system keeps administrators informed about new versions without disrupting regular players. Optimized: Configuration Structure* The new messages.yml has been reorganized with the editor in mind, making it easier to understand and maintain. With v0.0.8, CustomDeathMessages is not only more powerful but also more accessible and transparent. The in-game editor represents a major leap forward in administrator experience, while the update notifications keep you informed about future improvements to the plugin. The addition of Minecraft 1.21.9 and 1.21.10 support ensures you can use the latest Minecraft features while enjoying customized death messages.
    37 downloads
  12. 0.0.7CustomDeathMessages 0.0.7Sep 19, 2025
    ---
    📜 CHANGELOG - CustomDeathMessages v0.0.7
    The evolution never stops! Version 0.0.7 takes the solid foundation of v0.0.6 and elevates it with an essential tool for administrators: a built-in configuration validator. This release focuses on error prevention, ease of use, and stability, ensuring your experience with custom death messages is flawless.
    ⚠️ IMPORTANT UPGRADE NOTE
    To fully leverage the new features and ensure compatibility:
    1. Make a backup of your current config.yml and messages.yml files.
    2. Delete the config.yml and messages.yml files from your server's plugins/CustomDeathMessages/ folder.
    3. Restart or reload the server. The plugin will automatically generate new, up-to-date configuration files with all new options, examples, and system messages.
    4. You can then manually re-add your custom settings and messages from your backup into the new files.
    #### ✨ New Features Added: Integrated Configuration Validator (`/cdm config validate`)* The flagship feature of this version! This new command allows administrators to validate the correctness of their `config.yml` and `messages.yml` files before reloading. It scans for: * Invalid sounds and particles (global, per-group, and epic). * Syntax errors in conditions (unknown operators, malformed placeholders). * Generates a detailed report in the chat with success (✅), error (❌), and warning (⚠️) messages, along with a summary of the current configuration. Added: New System Messages for the Validator* A complete section has been added to messages.yml under system-messages with translatable messages for the validator, such as config-validator-sound-not-found, config-validator-condition-syntax-warning, and config-validator-success-all, enabling a fully localizable user experience. Added: New `/cdmconfig` Command* A new entry point for the validator. Administrators can run /cdm config validate to start the validation process. Uses the cdm.reload permission. #### 🐛 Bug Fixes Fixed: Enhanced Atomic Reload* The /cdmreload command has been improved to be even more robust. It now explicitly validates `messages.yml` before attempting to load `config.yml`. If messages.yml has a critical syntax error (e.g., malformed YAML), the reload process stops immediately, notifies the user, and prints the full stack trace to the console, preventing any unstable intermediate state. Fixed: Error Handling in Reload* Improved error handling in /cdmreload to capture and report unexpected failures more clearly, ensuring the administrator always receives feedback, even in edge cases. #### 🛠️ Improvements & Optimizations Improved: Administrator Experience* The validator provides a proactive way to debug configurations, drastically reducing the risk of runtime errors and saving hours of frustration from misplaced brackets or commas. Improved: Documentation* The config.yml and messages.yml files have been updated with comments referencing the new validation functionality, guiding users on how to keep their configurations error-free. Optimized: Development Workflow* The introduction of ConfigValidator sets a pattern for future diagnostic and maintenance tools within the plugin, improving the codebase's long-term structure. With v0.0.7, CustomDeathMessages is not only more powerful but also safer and easier to manage. The integrated validator is a giant leap towards a perfect user experience for both players and administrators.
    60 downloads
  13. 0.0.6CustomDeathMessages 0.0.6Sep 16, 2025
    ---
    📜 CHANGELOG - CustomDeathMessages v0.0.6
    The evolution continues! Version 0.0.6 refines the groundbreaking features of v0.0.5 and introduces powerful new capabilities for unparalleled customization, accuracy, and user experience. This update is all about precision, control, and polish.
    ⚠️ IMPORTANT UPGRADE NOTE
    To ensure you get all the new configuration options and message placeholders, it is highly recommended that you:
    1. Make a backup of your existing config.yml and messages.yml files.
    2. Delete the old config.yml and messages.yml files from your server's plugins/CustomDeathMessages/ folder.
    3. Restart or reload the server. The plugin will automatically generate fresh, up-to-date configuration files with all the new settings and examples.
    4. You can then manually re-add your custom messages and settings from your backup into the new files.
    #### ✨ New Features Added: Advanced Killer Attribution System* The plugin now distinguishes between the Responsible Entity ({killer_name}) and the Direct Damage Source ({killer_source}). For example, if a skeleton shoots you, {killer_name} will be "Skeleton" and {killer_source} will be "Arrow". This allows for incredibly detailed and context-aware messages. Added: Sophisticated Conditional Logic* Conditional messages now support complex logic with AND and OR operators, plus new comparison operators like equals, startsWith, endsWith, >, <, >=, and <=. You can now create messages for scenarios like: {distance} > 10 AND {victim_effects} contains 'Poison'. Added: New Placeholder: `{biome}`* Personalize death messages based on the environment! The new {biome} placeholder (e.g., "Plains", "Nether Wastes", "Deep Dark") allows you to create messages like "consumed by the eternal flames of the Nether". Added: Permission-Based Help System* Administrators can now control exactly which help pages (/cdmhelp) different user groups can access. Configure this via the new help-permissions section in config.yml (e.g., vip: [1, 2], default: [1]). Added: Dynamic Help Page Generation* The /cdmhelp command now generates its pages dynamically from the messages.yml file, making it easier to maintain and translate. The system automatically calculates the total number of pages. Added: Atomic Configuration Reload* The /cdmreload command now uses an atomic reload system. If any part of the new configuration (config or messages) fails to load, the plugin reverts to the previous, working state, preventing server crashes due to bad configs. Added: Enhanced Test Command* The /cdm test command now accepts a fourth optional argument to manually specify the {killer_source} (e.g., /cdm test ENTITY_ATTACK Skeleton Arrow), allowing for comprehensive testing of the new killer attribution system. #### 🐛 Bug Fixes Fixed: Projectile Attribution* The DamageTracker has been upgraded to correctly trace projectiles (arrows, fireballs, etc.) back to their original shooter, ensuring {killer_name} is always accurate, even for ranged attacks. Fixed: Biome Name Formatting* The new {biome} placeholder now correctly formats biome names (e.g., converting "NETHER_WASTES" to "Nether Wastes") for a clean, user-friendly output. Fixed: Help Command Page Validation* The help command now correctly validates the total number of pages after they are generated, preventing errors when trying to access non-existent pages. Fixed: Epic Effect Caching* Sound and particle effects for epic deaths are now cached during the MessagesManager initialization, improving performance and eliminating potential null-pointer errors. #### 🛠️ Improvements & Optimizations Improved: Code Structure and Maintainability* Key classes like MessageFormatter and MessageSelector have been refactored for better readability and easier future expansion. The DeathContext class now holds richer data. Improved: Configuration Validation* Added more robust logging for invalid epic sound and particle configurations in messages.yml, helping server admins debug their setups. Improved: Tab Completion* The /cdm test command's tab completer now provides intelligent suggestions for the new {killer_source} argument (e.g., "Arrow", "Creeper", "Lava"). Updated: Documentation* Both config.yml and messages.yml have been meticulously updated with detailed comments and examples for all new features, including the advanced conditional syntax and the new placeholders. Optimized: Resource Management* The atomic reload system ensures that server resources are not wasted on partially loaded or broken configurations, leading to a more stable server environment.
    32 downloads
  14. 0.0.5CustomDeathMessages 0.0.5Sep 12, 2025
    ---
    📜 CHANGELOG - CustomDeathMessages v0.0.5
    Prepare for the ultimate death experience! Version 0.0.5 is a massive overhaul that transforms the plugin with epic new mechanics, economic integration, and a complete help system. #### ✨ New Features Added: Epic Death System* There's now a small, configurable chance (epic-death-chance in config.yml) for a death to be EPIC! When triggered, it displays a special message, plays a powerful sound, spawns spectacular particles, shows a full-screen title, and... strikes a lightning bolt at the death location! Added: In-Game Help Command (`/cdmhelp`)* Need a quick reference? Use /cdmhelp [page] to access a comprehensive, multi-page guide directly in-game, covering commands, permissions (including cdm.admin), placeholders, configuration options, and support. Added: Vault Economy Integration* Servers can now charge players a configurable fee (cost-per-death-message in config.yml) to display death messages. Specific permission groups (like "admin") can be exempted from this cost via the exempt-groups-from-cost list. Added: Legacy Color Support* For servers running older versions of Minecraft (pre-1.16), the new legacy-color-support option in config.yml will automatically strip modern hex color codes (<#rrggbb>) from messages, preventing them from appearing as plain text. Added: Conditional Death Messages* You can now configure messages that only display if a specific condition is met. For example, you can have a unique message if the victim was holding a diamond weapon or was under the effect of poison. Defined in messages.yml using the condition and message syntax. Added: New Configuration Options* The config.yml file has been significantly expanded with new, powerful settings: * epic-death-chance: Probability (0.0 to 1.0) of an epic death occurring. * cost-per-death-message: The amount to charge players (requires Vault). * exempt-groups-from-cost: A list of permission groups (e.g., - "admin") that do not pay the death message cost. * legacy-color-support: Enables compatibility mode for older Minecraft versions. #### 🐛 Bug Fixes Fixed: Inaccurate or "Unknown" Killer Names* Implemented a brand new, robust damage-tracking system. The plugin now 100% accurately identifies the killer's name ({killer}), even in complex scenarios like falling to your death after being pushed by a mob. Fixed: Modern Sound Name Support* The plugin now fully supports the new, lowercase sound names used in modern Minecraft (e.g., entity.player.death instead of ENTITY_PLAYER_DEATH), ensuring perfect compatibility. Fixed: Update Checker Targeting Wrong Plugin* The automatic update checker has been refined to ensure it only checks for updates for CustomDeathMessages. It will no longer incorrectly notify you about updates for other plugins. It correctly notifies server administrators (players with the cdm.admin permission or OP) when a new version is available, providing a direct download link. #### 🛠️ Improvements & Optimizations Improved: Overall Performance* Implemented an advanced caching system for messages and configurations, drastically reducing file reads and boosting plugin speed. Improved: Asynchronous Message Sending* Sending messages to other players (especially in a radius) is now done in the background, preventing the game from lagging during mass-death events. Updated: Configuration Files* Both config.yml and messages.yml have been completely overhauled with new parameters, examples, and a clearer structure to support all the exciting new features.
    35 downloads
  15. 0.0.3CustomDeathMessages 0.0.3Sep 11, 2025
    ---
    🐛 Bug Fixes
    Chat Message Color Codes Fixed: All messages sent to players via commands (/cdmreload, /cdm test) now correctly process & color codes. ---
    27 downloads
  16. 0.0.2CustomDeathMessages 0.0.2Sep 11, 2025
    ---

    📜 CustomDeathMessages - Changelog v0.0.2

    --- #### 🎉 Minor Update with Major Improvements! This version refines the foundation of v0.0.1, adding new community-requested features and improving stability and developer experience. --- #### ✅ New Features Killer Support in `/cdm test`!* The test command now accepts an optional third argument: the killer's name. Example: /cdm test ENTITY_ATTACK Notch This allows you to accurately test placeholders like {killer}, {killer_displayname}, and {distance}. New Placeholder: `{killer_displayname}`* Displays the killer’s display name, respecting nicknames, prefixes, and colors set by other plugins (like EssentialsX or LuckPerms). New Placeholder: `{distance}`* Shows the distance in blocks between the victim and the killer, formatted to one decimal place (e.g., "5.2"). Random Message Cooldown System* The plugin now remembers the last random message shown to a player and will avoid showing it again until a different message has been displayed. This prevents annoying repetitions. Improved Killer Detection* The plugin can now correctly detect the killer’s name even if it’s an entity (like a Creeper or Zombie) or has a custom name. Entity names are formatted with initial capital letters (e.g., "Zombie Pigman"). Centralized System Messages* All console messages, warnings, and command responses are now loaded from messages.yml under the system-messages section. This allows administrators to fully translate the plugin without modifying the code. PlaceholderAPI Compatibility in `/cdm test`* PlaceholderAPI placeholders are now also expanded when using the test command, providing a more accurate preview. Registered TabCompleter* The /cdm command now has a functional TabCompleter that suggests "test", damage causes, and names of online players, greatly improving usability. --- #### 🐛 Bug Fixes * Fixed an error in MessagesManager.java where the character encoding when loading the default file was not specified, which could cause issues with special characters. It now uses StandardCharsets.UTF_8. --- Thank you for using CustomDeathMessages! This update makes the plugin more powerful, flexible, and easier to use than ever before.
    50 downloads
  17. 0.0.1CustomDeathMessages 0.0.1Sep 11, 2025
    HELLO MODRINTH!
    50 downloads

Similar projects

Plugin →