
Attack indicator
Customizable floating damage indicators for Paper servers. Clearly display damage dealt to mobs with stylish placeholders!
AttackIndicator v2.4
Reliability, performance, and security pass over the 2.3 codebase. Drop-in upgrade — no config migration required (new keys fall back to safe defaults).
New
- Active-indicator cap — new
performance.max-active-indicators(default200,0= unlimited). Bounds spawned entities and per-tick animation tasks during heavy damage bursts (e.g. AoE) to protect server TPS. The cap is enforced at spawn time, so even a same-tick burst cannot overshoot it. random-offset.yis now exposed inconfig.yml(the value was already used internally; it is now documented and editable).
Reliability & Security
- Crash-safe indicators — indicator entities are now spawned with
setPersistent(false)on 1.13+, so a server crash or chunk unload can no longer leave orphaned armor stands / text displays behind. Gracefully degrades on 1.8–1.12 where the API is absent. - Hardened MiniMessage (1.19.4+) — only formatting tags (colors, hex, gradients, decorations) are honored in
indicator-format. Interactive tags (<click>,<hover>,<insertion>) are disabled so a format string can never inject clickable links or hover payloads. - Update checker hardening — the Modrinth response is now size-bounded (1 MB) and the
User-Agentcorrectly reports the running version. - Safer language loading — the
languageconfig value is sanitized (no path traversal), and an unknown/un-bundled code falls back to English instead of failing plugin startup.
Internal
- Null-guarded command registration.
- Aligned config defaults with
config.yml; renamed internal Y-offset accessor for axis symmetry; minor cleanups. - README rewritten: technical overview, version/renderer matrix, command & permission tables, full config reference, architecture diagram, and build instructions.
Compatibility: Paper / Spigot, Minecraft 1.8 → 1.21+ (renderer auto-selected per version). Build:
mvn clean package(JDK 17+ toolchain; output targets Java 8 bytecode).- Active-indicator cap — new
New Features
- Added
/attackindicator togglecommand — players can now individually enable/disable damage indicators - Player toggle states persist across server restarts
Bug Fixes
- Fixed potential thread safety issues with concurrent indicator spawning
- Fixed resource leak in update checker (connection not properly closed)
- Fixed potential NullPointerException when projectile has no shooter
- Fixed Y-axis random offset not being applied
Improvements
- Armor stands now use optimized properties (small, no baseplate, no arms) for better performance
- Improved tab completion for commands
Permissions
attackindicator.toggle— allows toggling indicators (default: true)
- Added
Universal Version Support
- Full compatibility with Minecraft 1.8 - latest - one JAR for all versions!
- Automatic server version detection with best method selection:
- 1.19.4+ → Display Entities (smooth, best performance)
- 1.16.5-1.19.3 → Armor Stands with MiniMessage (hex colors, gradients)
- 1.8-1.16.4 → Armor Stands with Legacy ChatColor (basic colors)
New Features
- Added automatic update checker - server owners will be notified in console when a new version is available on Modrinth
- Added
show-on-playersconfig option - control whether damage indicators appear on players (default: false) - Added
indicator-scaleconfig option - customize the size of damage indicators (default: 1.5) - Added
vertical-offsetconfig option - adjust vertical position of indicators relative to entity's head (default: 0.5)
Changes
- Removed hardcoded restriction that prevented indicators from showing on players
- Indicators can now be fully customized through config.yml
Added
- Integrated MiniMessages for all plugin text, allowing for more advanced formatting options.
Changed
- Complete rework of the plugin's core mechanics for better performance and stability.
- The plugin is now significantly more lightweight.
- Replaced the old Armor Stand-based indicator with the new Display Entities system, introduced in Minecraft 1.19.4. This should provide a much smoother and more reliable experience.
- Most previous configuration settings have been retained to ensure a smooth transition.
Fixed
- Resolved a major bug where the indicator (an Armor Stand) would not be removed properly, causing it to get stuck in the sky.
- Added support: 1.17.x, 1.18.x, 1.19.x
-
Added automatic removal of damage indicators when the associated entity dies. The plugin now listens for entity death events and cleans up any active indicators tied to that entity.
-
Introduced tracking for active indicators using a mapping, enabling proper cleanup and reducing visual clutter.
-
Minor code refactoring and improvements for better maintainability and performance.
-
-
World/Region Support: The plugin now checks a configurable list of enabled worlds. If the damage occurs in a world not listed, the indicator will not be shown.
-
Additional Visual Effects: Particle effects can be enabled or disabled in the configuration. Administrators can customize the particle type, count, and offsets to enhance the visual feedback of damage indicators.
-
Adaptive Animation: An adaptive animation feature has been added. When enabled, the indicator's upward movement speed adjusts dynamically based on the amount of damage dealt.
-
Configurable Sound Effects: Sound effects are now integrated. You can configure the sound type, volume, and pitch in the config file to play a custom sound when the indicator spawns.
-
- Added a combo feature that tracks successive hits on the same entity. The combo counter displays a multiplier based on configurable thresholds, allowing for customizable combo designs in the config file.

- Retained all existing functionality (animation, configurable duration, damage source filtering, and reload command) while enhancing performance with asynchronous processing.
-
Added an animated damage indicator that smoothly moves upward.
-
The duration for which the indicator is displayed can now be set in the config.
-
Introduced the /atk reload command (available to operators) to reload the plugin configuration without restarting the server.
-
Added a configuration option (damage-source) to filter which damage events display the indicator.
-
Default config values are now:
placeholder-format: "&f{damage}&c❤" indicator-duration: 20 animation-speed: 0.05 animation-enabled: true damage-source: "ALL"-
Нет описания изменений


