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 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.
- If you use JPerms, users with Op or playerheads.* permission will receive playerheads.alwaysbehead[mob] permissions and have 100% droprate since PlayerHeads permissions nodes are ignored. It's recommended to use another permissions plugin if this is a concern (LuckPerms, PermissionsEX, GroupManager).
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.18.2 (Use PlayerHeads 5.20.2 or lower; READ NOTE)
- Spigot/Paper 1.19-1.20.4
Server environments that are known to be incompatible:
- Glowstone 1.12 (only partial support is available in PlayerHeads 5.20.2 and lower)
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.
In reply to crashdemons:
Appreciate the reply, sorry I guess I didnt scroll far enough to see the answer.
Which permissions plugin do you use, if any?
-JPerms (Probably a very over zealous plugin)
Which exact PlayerHeads version are you using?
-The most recent one, I just downloaded it yesterday!!!!
Which server /version are you using?
-paper_1.16.5.jar Hosted via Apex
"You need to deny the playerheads.alwaysbehead and playerheads.alwaysbeheadmob permission in your plugin or permissions.yml."
playerheads.alwaysbehead.deny ????
playerheads.alwaysbeheadmob.deny ????
In reply to Beaushangles:
"-The most recent one, I just downloaded it yesterday!!!!"
The reason I have to ask and I usually ask for a specific version is because there are currently four "most recent versions":
one development build (5.2.15), two alphas/betas (5.2.14 and 5.2.13), and the release version (5.2.12).
If you go through BukkitDev, the alphas and betas are presented to users first (but only on the Files tab), through CurseForge they present the Release first and the alphas/betas second. Or if you go through the CI or Github you end up with either the development version or other odd versions.
It seems like an obvious thing but it really isn't, and it wasn't intended to point any fingers - just I wanted to determine which versions cause the issue and which don't so I can see what needs to change.
In reply to crashdemons:
If I open the .jar that is installed on my server it states version: 5.2.12-SNAPSHOT
In reply to Beaushangles:
>jperms
Checking their source code, that plugin gives you every permission of the plugin if you use "playerheads.*" - it does not check which nodes the plugin configures nor their defaults - meaning it ignores a significant part of the standard. (ref: Plugin YAML permission nodes)
If you are using the star permission, I highly recommend you do not use it with jperms. If it grants it by default to ops and also doesn't check the plugin's permission nodes, then I have no way to help you. I would recommend using a more fully-featured permissions plugin (LuckPerms, PermissionsEX, and GroupManager are some more well-known ones).
>denying
I don't know how you deny permissions with jperms, I didn't see a way to do so in their code.
In Permissions.YML and some plugins, you deny permissions by giving a permission with a hyphen in front - like "-playerheads.alwaysbeheadmob".
In a lot of plugins, they have an explicit command to deny a permission to a user or group (luckperms: /lp user usernamehere permission set playerheads.alwaysbeheadmob deny)
In reply to crashdemons:
Okay, thank you for your time, I guess with JPerms its just on! LOL
Appreciate your time and your work, thank you.
Hi, is it possible to disable non-op players from doing /heads or other commands? If so, how?
In reply to oohacactus:
/heads isn't a command in this plugin, it's /playerheads or /ph.
However, that appears to be an oversight from before I joined - players can access the /ph command without permission, but not actually use any part of it.
So, while this is a cosmetic issue rather than a security issue, I've created a development build that should fix this:
https://ci.meme.tips/job/PlayerHeads-5.x/1126/
DISCLAIMER: This build has not been tested or approved by Bukkitdev staff. Use it at your own risk.
The development build adds a 'playerheads.command' permission that's required to use /ph at all, but ops or users with the star/wildcard permission receive it by default. Again, users could not access any subcommand of it previously, only see that they exist.
Note: this build includes potential changes for the next version of PH as well.
Hey im trying to get my server with the plugin to have 100% drop rate but i have tried have the setting set to 1 or 1.0 and still not working, any idea what im doing wrong?
In reply to RealMartinovitz:
If you changed the config file directly, you will need to use the /ph config reload command to ensure the server can see your changes -
otherwise the config file is overwritten when the server shuts down (in order to save your ingame changes).Instead, you can use the /ph config set ???droprate 1.0 commands to change the settings without needing to reload - which are automatically saved to the config file
on shutdown.If heads still do not drop, please ensure that players have the playerheads.canbehead and playerheads.canbeheadmob permissions allowed. A permissions plugin like Luckperms will make this easier to accomplish.
Alternatively, you can set playerheads.alwaysbehead and playerheads.alwaysbeheadmob permissions on players - this will ensure their drop rolls are always successful (when they're eligible by other settings).
Not sure this is a bug or not, but if you right click a player head when it is on an armor stand, it puts that player head into your inventory while the other one stays on the armor stand. Not sure if this is a permission thing or not but it is a duping glitch if not.
In reply to GlaZeMaTriiKz:
I can't reproduce this on my server or test servers.
PlayerHeads also doesn't check/modify any armor stand events, so this is probably due to a different plugin your server uses. Any armor stand interaction should be vanilla behavior.
I would look at which other plugins you use that deal with area protection, inventory protection, and heads/custom items.
Hi! is there a way to only have player heads drop with the plugin? so that player heads will drop, but mob heads will only drop using the vanilla game rules
In reply to robyn348:
Yes, it's a little bit of effort but if you change all of the mob rates to -1 (or set them to 0 and set the appropriate "behavior" settings to vanilla) then only vanilla heads should drop.
Then you can of course set 'droprate' (which is the setting for players) to the amount you want.
Remember if you change the config file directly, you must do /ph config reload, otherwise, change settings with /ph config set settingnamehere valuehere
When adding a enchantment (curse of binding) to the head, and dropping it, it loses the enchantment
In reply to mijkolsmith:
Yes, heads are automatically updated when dropped or broken.
you can disable this behavior by setting both fixdroppedheads and fixbrokenheads configurations to false. (if you change the file, do /ph config reload afterwards - otherwise, use the /ph config set ... commands)
However, when you do this, you will encounter the problem that vanilla minecraft strips meta (name, lore, enchants) when a head is placed and broken or broken by a piston.
The other reason for these setting was to allow heads to be traded with other plugins (eg: Shopkeepers) - changes in these details tends to break trades.
In reply to crashdemons:
Thank you for your reply!
If I'm reading this correctly, that means that any player head resets to a Steve head when placed if you change this?
In reply to mijkolsmith:
Strangely no, the Profile (Username, UUID, Texture) fields are the only thing minecraft doesn't clear when you place a head. So usually it keeps the texture (and internally the ID/Username), just none of the styling, item displayname, or anything else
So, it's possible for a plugin to determine the owner of a head after placing (which is done here when using ''clickinfo' by displaying the name or when 'fixing' it by re-creating the head with the name and styling) and it still appears with the texture - but other information is lost.
if your heads turn into Steve, then there's another issue (offline-mode, or mojang-api being inaccessible).
Aside: it might be technically possible on newer spigot servers to store the meta in the block using the new PDH API but the three issues with this approach is it would become version-dependent, the amount of data being saved in blocks would get big very quickly, and serialization is not guaranteed to be "stable" (as in it can produce results that don't identically match the original in tag order or internal formatting).
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