Head Drop
🤝 Our Partner
Need a game server ? We're partnered with Voltra, one plan, every game, from $1.99/mo, with a 2 day free trial and no card charged today.
Use code GAB10 at checkout, or just click the banner above, either way you get 10% off.
Clicking the banner above supports the development of this plugin at no extra cost to you ♥️
📌 About
This Minecraft plugin makes players drop their head upon death. Configure head drops, glowing effects, particles, broadcast messages, per-player statistics, and much more, all from a single config.yml
Runs natively on Spigot, Paper, Purpur and Folia, with no extra dependencies
💡 Features
-
PvP / PvE / All Drop Modes
Choose when heads drop : on any death, only player kills (pvp), or only environmental deaths (pve) -
Custom Drop Chance
Configure the exact probability of a head dropping (0% → 100%) -
Per-Player Drop Limit
Optionally cap how many heads a single player can ever drop (great for farm prevention). Reset any player with a command -
World Blacklist
Disable head drops entirely in specific worlds -
Invisibility Protection
Optionally prevent head drops when the dying player is invisible -
Drop as Item or Place on the Ground
Choose whether heads drop as a normal item, or are placed directly on the ground as a head block, facing the direction the player was looking. When placing on the ground, HeadDrop searches nearby for a free, supported spot (with a configurable fallback to a normal drop if none is found) -
Custom Head Item
- Editable display name
- Single-line or multi-line lore
- 10 placeholders (player, killer, weapon, world, coordinates, XP, death cause, date & time…)
- Configurable date format and timezone
- Optional despawn timer
- Option to block renaming in anvils (only for plugin heads)
- Optional name & lore persistence : heads keep their identity even after being placed, mined, or blown up (TNT, creepers, end crystals…)
-
Hex & Legacy Colors
Every text option (head name, lore, broadcast message) supports both legacy color codes (&a) and hex colors (&#FF00AA), so you're no longer limited to the 16 vanilla colors -
Broadcast Messages
Toggle a global chat message whenever a head drops, with full placeholder and color-code support -
Optional Effects
- Visual lightning bolt (no damage)
- Custom sound on drop
- Particles with 7 shapes (upward, circle, burst, cycle, pulse, wave, spiral) and a configurable duration (or infinite)
- Colored glowing outline (16 colors, hex accepted and matched to the closest one, timed or infinite)
-
Statistics System
An in-game GUI (/head stats) showing every player's head-drop count and last drop time, with :- Global server stats (total heads, unique players, most recent & oldest drop)
- Sorting by count, last drop, or name (ascending / descending)
- Single-player view and live player skins
- Persistent storage that survives restarts
-
Give Command
Hand out any player's head by username with/head give, styled with the exact same name and lore as a dropped head -
Automatic Config Migration
Updating the plugin never breaks your config : on startup, an outdatedconfig.ymlis automatically backed up and upgraded to the new version, keeping every setting you've already configured -
Built-in Update Checker
Get notified in the console when a new version is released on Modrinth
All these features can be fully configured in the config.yml
Default behavior :
If you don't modify the config, head drops function just like vanilla : no effects, no broadcasts, no special visuals
🛠️ Setup
- Download the version of the plugin that matches your Minecraft server
- Place the
.jarfile in yourpluginsfolder - Restart your server to activate the plugin
Most settings can be customized in the config.yml file, make sure to review it for full configuration options
🎮 Commands & Permissions
| Command | Description | Permission (default) |
|---|---|---|
/head help |
Show the help menu | head.command.help (everyone) |
/head stats [player\|page] |
Open the statistics GUI | head.command.stats (everyone) |
/head give <headName> <player> |
Give a player's head to someone | head.command.give (OP) |
/head reset <player> |
Reset a player's drop counter | head.command.reset (OP) |
/head reload |
Reload the configuration | head.command.reload (OP) |
The /head stats command can be fully disabled from the config if you don't want it on your server
🏷️ Placeholders
Usable in the head name, lore and broadcast message :
%head_player% · %head_player_uuid% · %head_killer% · %head_weapon% · %head_world% · %head_coordinates% · %head_datetime% · %head_xp% · %head_id% · %head_death_cause%
⚙️ Config
After modifying your config.yml, use the command /head reload to apply your changes without restarting the server
This command is only available to OP players
When you update the plugin, an outdated config.yml is migrated automatically : a timestamped backup is saved to plugins/HeadDrop/config-backups/ before anything changes, so nothing you configured is ever lost
🤝 Community & Support
Need help, found a bug, or just want to chat ?
Join our Discord community, we're always happy to hear your feedback and suggestions !
❓ FAQ
Q: Where can I find the config.yml file ?
A: After the first launch, the file appears at : /plugins/HeadDrop/config.yml
Q: Does this plugin work on Folia ?
A: Yes ! HeadDrop runs natively on Folia, as well as Spigot, Paper and Purpur, no separate build required
Q: How do I update the plugin to a newer version ?
A: Download the latest release, replace the old .jar file in your plugins folder, then restart your server. Your config.yml is migrated automatically, with a backup saved first
Q: How do I report bugs ?
A: Join the Discord server and post the issue in the bug-reporting channel
Q: What happens if I delete the config.yml file ?
A: The plugin automatically regenerates a fresh default configuration file the next time the server starts
📊 Metrics
This plugin collects anonymous usage data (player and server counts, server software and version…) through two open statistics services : FastStats and bStats
FastStats is privacy-first : it does not store IP addresses or any data that could identify you, and is fully GDPR-compliant. You can see the live numbers on the public project page
bStats is open-source and equally anonymous. If you prefer to disable it, open /plugins/bStats/config.yml and set enabled to false
All Versions
+ Add Version- Heads can now be **placed on the ground** as a block instead of dropping as an item
- Hex color support** (
&#FF00AA) everywhere, alongside the legacy&acodes - Your
config.ymlnow **migrates automatically** on update, with a backup saved first - Fixed
/head giveproducing a plain head instead of using your configured name and lore
- No more heads from cancelled deaths (revives, totems)
- Fixed head duplication when breaking/exploding placed heads
give,reload,resetnow have their own permissions (delegate without full OP)- Fixed stats menu paging/sorting,
%head_xp%, and false update alerts - Added **FastStats** anonymous analytics (alongside bStats)
- Fixed a crash that could stop the plugin from loading at server startup on Folia
- Breaking changes**
- Now requires **Minecraft 26.1+** and **Java 25**
- Stay on **2.8.2** if you are still running 1.21.x
- New Features**
- Native **Folia 26.1+** support
- Precise PvE death detection :
%head_killer%now showsLava,Fall,Zombie,Creeper, etc. instead ofEnvironment - New placeholders :
%head_death_cause%and%head_player_uuid% - Added
drop.max_per_playerto limit head drops per player and the OP-only/head reset <player>command to reset the counter - Custom name and lore are now preserved when a head is placed, broken or destroyed by an explosion
- New
drop.banned_worldsoption to disable head drops in specific worlds - New
commands.stats.enabledoption to hide/head statsfrom tab-complete and reject the command /head reloadis now usable from the console
- Security & Bug fixes**
- Anvil rename bypass patched** : thanks to @baba0bab for reporting and providing the fix
/head stats <page>now actually navigates to the requested page- The stats menu now has working Previous / Next page buttons
- Player skins now load correctly in the stats menu
- Many smaller fixes across commands, listeners and the stats system
- Core Improvements & Major Optimization**
- Cleaner and clearer
config.yml - Lighter on RAM and CPU
- Full internal cleanup for easier maintenance
- New Features**
- Added new placeholders:
%head_xp%,%head_weapon%,%head_id% - Customizable date format and timezone in
config.yml - Improved particle system (multiple heads now support independent effects)
- Core Improvements & Major Optimization**
- Cleaner and simplified
config.yml - Improved config change detection for bStats
- Internal rework and global optimization contributed by @SpeastTV
- Compatibility & Bug Fixes**
- Fixed Spigot compatibility issues for
/head give(texture display) and/head stats - Fixed an issue where the
/headcommand was not displayed for non-OP players - Improved overall stability and compatibility, including better effects management, some features, and now compiled with Java 21
- Gameplay & Features**
- Removed the option to control which dimensions allow head drops
- Removed the setting that allowed limiting how many heads players could drop
- Updated and improved the
config.yml - Updated
/head helpwith more details - The date/time for
/head statsand the date placeholder is now displayed in UTC - Added option to disable head drops when the player is invisible
- Reworked drop mode setting : replaced separate
pvpandpvebooleans with a single mode option that acceptspvp,pve, orall
- Configuration & Structure**
- Added an automatic version checker (configurable)
- Improved internal organization for better performance and easier configuration management
- Restricted
/head giveand/head reloadcommands to OP players only
- Updated for **Minecraft 1.21.10** compatibility
- Improved **head lore** : added color support and multiline formatting
- Minor text updates and optimizations
- Fixed **3 bugs**
- Added new **placeholders** :
%head_player%- Player’s name%head_player_uuid%- Player’s UUID%head_killer%- Killer’s name (or “Environment” if PvE)%head_world%- World name%head_coordinates%- Full coordinates (X, Y, Z)%head_datetime%- Date and time (DD/MM/YYYY HH:MM:SS)
- The
/head statscommand has been changed to display only players present in thestats.jsonfile, with improved text, global stats item, configurable filters and sorting, and the option of displaying the stats of a single player - Optimized loading and caching of head textures at startup/reload for smoother display in
/head stats - New
/head reset <player>command : resets a player's drop limit (if enabled) - Correction of the
/head listworldscommand (to fix an earlier bug) - New option to enable/disable renaming of heads in anvils
- Improved
/head give: now allows you to give the head of any player, simply by using his nickname, even if that player has never been connected to the server. Usage :/head give <headName> <targetPlayer> - Command permissions reviewed and improved
- Added new particle effects:
upward,circle,cycle,pulse,wave,burstandspiral - Added a configuration option to spawn a lightning bolt when a head is dropped (visual only, no damage)
- Added
/head statscommand with GUI displaying dropped heads per player - Replaced welcome message with
/head help - Removed
weapon_selectorand related attributes - Heads now drop in all worlds by default : per-world drops can be enabled/disabled via
config.yml - Added
/head listworldscommand to list all loaded worlds for easier setup - Vanilla Minecraft colors can now be used for glowing effects (no fixed list required)
- Improved command messages and in-game feedback
- Minor bug fix
- General improvement of the plugin for simplified use
- Minor bug fixes
- Resolved an issue with the
infiniteparameter that caused the plugin to crash
- Added the
/head givecommand, allowing OP players or players in creative mode to obtain player heads - Added an error message triggered when a player with a full inventory uses the
/head givecommand - Improved statistics display in
stats.json - Two new parameters added : __drop_pvp__ and __drop_pve__ to control the head drop in these cases
- Added customization for the dropped heads based on the weapon type that caused the death
- Added a message when the head-drop limit is reached with
broadcast_head_dropenabled
- Add custom glowing time for dropped heads
- Addition of an **infinite** parameter for glowing time and particle time
- Added all existing sounds and particles in minecraft vanilla applicable to dropped heads
- Introduction of new particle effects for heads when on the ground
- Implementation of the
/head reloadcommand to reload theconfig.ymlfile - Customizable names and lore for dropped heads
- Introduced configurable options for message drop, despawn time, and drop rate
- Introduced particle effects on dropped heads
- Implemented a glowing effect on dropped heads with customizable colors
- Included three configurable variables to manage head drops in each dimension
- Created a
stats.jsonfile to log and track the number of player head drops - Set a configurable limit on the maximum number of heads that can be dropped