Player Heads
Ever PVP someone or PVE a mob and get no good loot? Feel like you deserve a trophy for your victory? Want a simpler alternative to bigger plugins that implement everything but the kitchen sink? Then PlayerHeads is right for you! You can now lop off enemies heads in battle, and mount it on a pole for all to fear, wear your opponent's face as a mask like camouflage, or just collect all of the mob heads.
Installation
Place PlayerHeads.jar in your plugins folder, on server start the configuration will be generated. Remember to remove any outdated playerheads jars when adding the new one.
If you can't be bothered to read the rest of this page, then just watch this video by Awesome_Soul:
Portuguese (Português) video: http://youtu.be/OqhI_oIGPWo
German (Deutsch) video: http://youtu.be/ijEws5yjo6Y
Try It
Server: aztecmc.org (rare drops are enabled for mob and player-heads)
Website: aztecmc.org
Documentation
Notes
- PlayerHeads is now translatable! Edit "lang.properties" to whatever phrases you desire.
- lang files will change between releases, when updating be sure to delete the old file if you haven't edited it.
- If you've given people the * permission node, they will get 100% drop rates. If you don't want this to happen, deny (or add negative) nodes for the following: playerheads.alwaysbehead and playerheads.alwaysbeheadmob
- If you want to disable head drops in a specific world, use your permission plugin to deny (or add negative) nodes for the following in that world: playerheads.canbehead and playerheads.canbeheadmob
- If you have any problem using "lang_[language]_[country]_[variant].properties" for any reason, just use the file name "lang.properties" to override messages.
- Spawn mob heads with the following names: #creeper #zombie #skeleton #wither #spider #enderman #enderdragon ... (any many more!)
Known issues
- Renamed heads (with an anvil) don't stay renamed after placing, mining, dropping them.
- If for any reason your mob heads loose their name, you can get it back by placing and mining it.
- If you use the plugin on a 1.8-1.12.2 server, you should read about some notes here as well.
- If you use the BountyHunters plugin and you have enabled head drops for bounties as well as player head drops from PlayerHeads, both will be dropped - for now, you should disable one or the other. Alternative solutions are being looked at.
Dev Builds
Development builds of this project can be acquired at the provided continuous integration servers. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
https://ci.meme.tips/job/PlayerHeads (upstream)/ (selected major changes only)
https://ci.meme.tips/job/PlayerHeads-5.x/ (rapid changes and work-in-progress)
Sourcecode / API documentation
We've included the entire sourcecode via github:
https://github.com/meiskam/PlayerHeads
Third-party plugin-developers can view the PlayerHeads API documentation at the following link: https://crashdemons.github.io/PlayerHeads/
Server Support
Current versions of the plugin have been tested as compatible on the following server environments:
- Spigot/Paper 1.8-1.12.2
- Spigot/Paper 1.13-1.15.2
- Spigot/Paper 1.16-1.16.1 (partial support with v5.2.8, full support with v5.2.9)
Server environments that are known to be incompatible:
- Glowstone 1.12 (only partial support is available)
Support should exist for any modern bukkit server with access to authlib which is needed to set textures.
Legacy version notes:
- 5.x drops support for older usernamed-based mobheads (3.x), fixing some longstanding issues with spawn commands; uses vanilla and texured heads exclusively (4.x)
- 4.x introduces new, more reliable support for head textures, more configuration options, updated mobs, and more consistent permission behavior and will continue to receive updates in the future - some older configurations may be incompatible (see the changelog and Configuration page). This version automatically upgrades 3.x heads to 4.x when breaking or dropping heads.
- 3.x maintains the original behavior of the plugin with username-based mobheads, but head skins may be less reliable over time and support has been discontinued.
Legacy version documentation: changelog, configuration, permissions.
Hey! I just had a question, I installed the plugin on my server. With nothing changed in the config, all default, mob heads only sometimes drop if I enchant an item with looting 30,000. Changing the looting drop rate/drop rate itself does not change anything. Changing the drop rate from 0.005 to 1 does not make it drop 100% of the time. I'm not sure what I'm doing wrong.
In reply to graymold9:
how are you changing the setting? with the config command (/ph config set cowdroprate 1.0) or editing the file?
if you are editing the file directly, did you use the /ph config reload command to load the new settings after saving the file?
if you've changed the rates ingame or used the config reload command then a rate of 1 should always drop a head (assuming nothing weird like negative lootingrate) if you have the playerheads.canbehead/canbeheadmob permission and other self-imposed restrictions (pkonly/mobpkonly, requireitem).
If you still can't get a head to drop then it may be more likely another plugin (like arena, keepinv, or protection plugins) is cancelling the successful drops, in which case youu may need to change the antideathchest setting.
EDIT: does a lower level of looting work? I'm not sure if 30,000 is valid.
Thanks
Hey,
In my server the ph is causing lag when placed on blocks.. how do i stop players from placing ph?
My config:
pkonly: true
droprate: 0.15
lootingrate: 0.01
mobpkonly: true
fixcase: false
updatecheck: true
broadcast: false
broadcastrange: 0
broadcastmob: false
broadcastmobrange: 0
antideathchest: true
dropboringplayerheads: false
dropvanillaheads: false
convertvanillaheads: false
nerfdeathspam: true
addlore: true
clickspamcount: 5
clickspamthreshold: 1000
deathspamcount: 5
deathspamthreshold: 300000
fixdroppedheads: true
Thanks
In reply to pinakeeg:
If there's any lag then it should be related to the server loading Player's heads (based on usernames) which would happen with other plugins also (eg: the same user's head generated with /skull username using Essentials). This shouldn't be an issue if you don't have something causing problems with skin caching, username/uuid resolution or connecting to mojang servers (like if you have the server in offline-mode).
PlayerHeads doesn't even do anything during heads being placed or listen for heads being placed - heads being placed and their texture/account information being updated is something the server does itself.
In this case there may be no other solution than to set dropboringplayerheads: true which prevents new heads for Players from having an account or username attached to them - which should eliminate any delay, but unfortunately it will cause player's heads to all appear as Steve/Alex.
It seems that the looting modifier does not work in the latest release? I do get heads with all the items I have set. This is my config:
pkonly: true
droprate: 1
lootingrate: 1.0
mobpkonly: true
fixcase: false
updatecheck: true
broadcast: true
broadcastrange: 0
broadcastmob: false
broadcastmobrange: 0
antideathchest: false
dropboringplayerheads: false
dropvanillaheads: true
convertvanillaheads: false
nerfdeathspam: false
addlore: true
clickspamcount: 5
clickspamthreshold: 1000
deathspamcount: 5
deathspamthreshold: 300000
fixdroppedheads: true
requireitem: true
requireditems:
- wooden_axe
- stone_axe
- golden_axe
- iron_axe
- diamond_axe
- netherite_axe
- diamond_sword
considermobkillers: false
considertameowner: false
In reply to Ninjamaster4427:
Which plugin version did looting last work in for you?
What kind of droprates for mobs do you use? (an example, cowdroprate / piglinbrutedroprate)
What other kinds of plugins do you use on the server and which version of Spigot/Paper/etc do you use?
As an aside, you've defined players to have a droprate of 100%, that will not be affected by looting to provide more than one head.
Thank you, this will help with attempting to reproduce the issue.
In lang.properties, setting:



https://imgur.com/ezJJ5q2
HEAD_PLAYER=Cabeza de %1%
Heads still spawn like this:
when given with /playerhead __Mithrandir__
In reply to MithrandirMage:
Please post logs from when PlayerHeads loads during the start of the server.
Are there other ".properties" files in your PlayerHeads folder?
If your server locale is different, it may be preferring another file.
I'll try to reproduce the issue and investigate this weekend (I'm very busy with work at the moment), but it's more likely to be a file conflict issue. (preferring a different file, or unable to access the file provided, etc)
If you provide your lang.properties file, that would also be helpful to debugging the issue.
In reply to crashdemons:
> Please post logs from when PlayerHeads loads during the start of the server.
https://gist.github.com/MithrandirCraft/36cf3c35a8d0beb908784783bb1f1aba
> Are there other ".properties" files in your PlayerHeads folder?
No, there's only 1:
https://gist.github.com/MithrandirCraft/5acb9da7cf6bacd6291b9e8e3aa27745
Yeah it does seem like all plugin messages are in english even though translated.
In reply to MithrandirMage:
Translations just don't seem to work (at least not entirely). I tried installing PlayerHeads on a clean server, you can try it yourself:
Paper b128 for mc 1.16
1. Install paper
2. Drop PlayerHeads plugin in plugins folder and start the server
3. Change just HEAD_ZOMBIE entry in lang.properties to
HEAD_ZOMBIE=Cabeza de Zombie
4. Restart the server
5. Give yourself a zombie head with /ph spawn #zombie, you will notice it's
still in english.
In reply to MithrandirMage:
I tested today and I wasn't able to reproduce your problems - I used Paper 128 and PlayerHeads 5.2.9.
When I used your .properties file and restarted the server - head names and messages were translated how you have configured them.
I used /playerheads spawn __Mithrandir__ , I also tried with zombie (*see note) and cow.


So I'm not sure why you would have issues, but there are some possible causes:
(*Note: the name of default vanilla heads (Zombie, Skeleton, WitherSkeleton, Dragon) is not translated by this plugin because a name is not set - it is determined by client language settings. Third-party heads like Cow, Husk, and Player drops are handled by the plugin.)
I have the plugin installed and set the witherskeletondroprate to 0.025 but it drops 100% of time, how to fix?
In reply to Forge_User_10250485:
if you are Op or you have given yourself the playerheads.* (or playerheads.alwaysbehead / playerheads.alwaysbeheadmob) permission - then your rate will be 100% for staff with those permissions.
To fix it, you will need to negate (or deny, depending on your permissions configuration) the two permissions I mentioned lastly above.
(or don't give the star permission at all)
This is also mentioned in FAQ Entry #9.
Thanks.
Hello!
I installed your plugin and it's working really good! I have only one issue. When mob kills me or I die from height damage i don't get mine head. I havent tried it with other player but i dont think that is the problem. Also I wasnt able to find drop rate for player. I am using 5.2.9 v. of your plugin on 1.16.1
In reply to Forge_User_06324517:
the droprate for the player is just called droprate for legacy reasons.
if you're not getting headdrops when dying to mobs or natural death, make sure that the pkonly setting isn't on (it is on by default) - this setting makes it so heads only drop from deaths caused by a player.
keep in mind to drop a head you also need the playerheads.canlosehead permission (on by default).
Hi, I've just found out that in vanilla Minecraft "wearing the corresponding mob head reduces the detection range of skeletons, zombies, and creepers to 50% of usual, and stacks with Invisibility."
Is that true for this plugin too? Is that what's meant by "wear your opponent's face as a mask like camouflage"?
Thank you for your response
In reply to venqueuev:
This plugin does not provide detection range benefits; I think that line of text was originally written in a more literal sense (although it was before I came onto the project).
It is possible for a plugin developer who wants to add this feature to check the head the player is wearing using the PlayerHeads-api though.
In reply to crashdemons:
Oh gotcha. Thankfully I was able to achieve my goal of trapping a ghast in the overworld, in a glass sphere, without it blowing up everything, so it's all good anyways. Thank you
I have player heads set to drop 100% of the time but if you also have Dead Chest (plugin) installed it will not behead other players. The only way these two plugins worked together was if a player's inventory was empty (Then he would drop his head). I would love to see these two plugins working together.
In reply to kyles120:
having you tried changing the antideathchest setting in the config?