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.
- 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.12.2
- Spigot/Paper 1.13-1.15.2
- Spigot/Paper 1.16-1.16.5 (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.
Hello, good plugin! Only one question, how can I disable the interact with the heads? I mean, I dont want them to show who's the head when right clicked, that message that says "That's [Player]'s head¨¨" Thanks!
In reply to gonzalo20o0:
you would need to deny the playerheads.clickinfo permission in your permissions.yml or permissions plugin. In some plugins you can set the permission to Deny, some other you have to give the permission with a minus sign in front to negate it instead of denying
In reply to crashdemons:
Hello thanks for your answer. I don't have permissions plugin in my server and when I try to edit permissions.yml it seems that it is empty. I am quite new into plugins. What should I do?
In reply to gonzalo20o0:
I would recommend adding a plugin like LuckPerms (or at your preference: GroupManager or PermissionsEx). Then you can use /lp group default permission set playerheads.clickinfo false or the equivalent which sets the permission to deny for everyone (everyone is in the default group for LP). There are also user-specific permissions commands if necessary.
A permissions plugin will make it easier to manage permissions from plugins without needing to edit the YML and adds the ability to assign people to permission "groups" for users like staff or VIP.
Permissions are a fairly standard feature for modifying many different plugins behavior, so a permissions plugin is almost a must these days.
Its great but I'm op and I'm getting a 100% droprate on heads. But I am also using luckperms and made the group "owner" has playerheads.alwaysbehead and playerheads.alwaysbeheadmob set to false but yet I'm still getting 100%
In reply to LastChip:
I don't have this behavior on our server or tests.
I would recommend checking that you used /lp group groupname permission set playerheads.alwaysbehead deny - then you can look for possible other problems:
/lp check usernamehere playerheads.alwaysbehead will tell you if a player receives the permission (collectively from their personal permissions, their groups, etc).
/lp group groupname permission check playerheads.alwaysbehead will tell you if the group has the permission
/lp group groupname permission checkinherits playerheads.alwaysbehead will tell you if the group inherits that permission from elsewhere.
Luckperms groups also have "weights" which mean higher-weighted groups override permissions from lower-weighted ones, if you have any other groups.
Finally, using the star permission "playerheads.*" or "*" is strongly not recommended and instead you should give specific command permissions.
If you're still unable to identify the source of the permission, please send the groups the user has, the permissions for the groups, and your PlayerHeads config and I will try to identify/reproduce your problem. (pastebin.com is preferred for posting long text).
Great Plugin!!!!!
It seems that op have a 100% droprate on heads, is there a way to disable this to normal droprates?
In reply to Beaushangles:
If you scroll down you'll see I've answered this question a few times.
You need to deny the playerheads.alwaysbehead and playerheads.alwaysbeheadmob permission in your plugin or permissions.yml. How you do this depends on whether and which permissions plugin you use (I recommend LuckPerms).
Why does this happen? Well, it honestly shouldn't, because I have these permissions set to be denied by default, even for ops (in recent releases). So this is usually due to overzealous permissions plugins, the use of the playerheads.* permission, or an outdated version of PlayerHeads.
Some questions that will help reduce my own hair-pulling:
Which permissions plugin do you use, if any? which exact PlayerHeads version are you using? Which server /version are you using?
Thank you
EDIT: I'm unable to reproduce this issue on 1.8 or 1.16.5 servers with either v4.7.0 (three years old) up to v5.2.15 (newest alpha) without a permissions plugin - neither regular players nor ops received 100% droprates / alwaysbehead. So I'm thinking this must be either playerheads.* permission or the specific permissions plugin.
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