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 in__c:
Not at this time, but I've pasted what should be a list of all 1.14 mob droprate configs (for plugins/PlayerHeads/config.yml) with all of them set to 0.02: https://pastebin.com/rEt6y6xT
If you use this, you should be able to use your text editor to find-and-replace 0.02 with the desired droprate.
(other normal settings are not present in this paste, and it doesn't contain the normally unsupported entities - armorstand and giant)
So, i have a pretty old world and i've used v3 for years and i guess i will be using v4.10 now but at what point can i update to the new versions?
Does it break older head skins if i use the latest playerheads version? Or does it just not update them?
In reply to NoChanceSD:
4.10.0 is the last version to support detection of older v3 mobheads.
If you attempt to use v5, any usernamed-based mob heads (v3 mobheads) that haven't been converted into v4 heads yet (by placing/breaking/dropping them) will be considered to be player head drops instead of mob heads. Heads that have been converted to v4 can be thought of as being 'set' / future-detectable.
You will be able to tell if a head is converted to v4 if you see loretext (PlayerHeads/Mob/Player-Drop) on the hover description, since that is a newer feature. (if lore is enabled)
The unconverted heads should appear with the texture associated with the username (as in v3), but if they are detected by v5, the name and lore will appear as "______'s Head / Player Drop".
Note: the texture of v3 heads is from the user profile of the associated username - if the user updated their skin, the texture may break even on v3 - this is why they were phased out. v4 heads have an embedded texture-url and UUID that is more detectable and less likely to change, and there's no ambiguity between a user and mobhead.
Without writing some sort of full world-processing utility, automatic conversion of all v3 heads to v4 heads is not possible, only manual conversion is.
If this behavior is not acceptable and it's not feasible to update the heads manually in v4, I would recommend staying on v4.10.0 - otherwise, you can update to v5 if you don't care about the name/lore.
TL;DR - For clarity's sake: the head standard adopted in v4 was to convert v3 username-based mobheads into v4 uuid+texture mobheads. v5 just does not convert these anymore and so they are considered to be the heads of players. Texturing of player's heads is based on their profile and caching outside of the plugin.
Hello, I don't know the appropiate way to submit a problem, so I created issue #82?
On my Paper 1.14.4 server it appears wither skeleton skulls won't drop when killed by a charged creeper when I have PlayerHead 5.2.0 enabled. I have verified the other 3 mobs (Zombie, Skeleton, Creeper) will drop their head. And I have verified that the heads will drop 100% with PlayerHeads disabled.
Please advise, as I love this mod! :) Thanks!
In reply to gekitotsu:
The issue tracker is the proper way to submit an issue, I've replied to your issue asking for some information, and I will attempt to advise there when I can.
Hi, player heads don't drop for me. I'm using a Spigot Server for 1.14.4 and installed it on the plugin page there. Tried many times and it hasn't worked. Help if can :/
In reply to Forge_User_08628250:
Is there a way to get a player's head to drop with keep inventory on?
In reply to 切西瓜:
The player's head should drop regardless of vanilla KeepInventory being on, if it doesn't drop then you should look at your protection plugin settings.
However, the behavior of PlayerHeads changes:
- If keepinventory gamerule or the antideathchest setting is enabled, PlayerHeads tells Bukkit to force dropping the head on the ground "naturally" (randomized placement near the location).
- Otherwise, PlayerHeads adds the head to the player's other drops on death so it will appear in the same pile as their other items.
So, I would carefully look into which other plugins might be preventing the drop, and maybe try different states of the antideathchest config setting if you're not using the vanilla gamerule for keeping inventory.
This is especially obvious if the head is ending up in the person's inventory instead of dropping.
try antideathchest set to true, since this will attempt to force drop behavior. If you change this in the config file, you will need to perform a /ph config reload, otherwise you can try /ph config set antideathchest true
In reply to crashdemons:
I will also say in addition to this to make sure that drops are occuring in other situations also.
Ensure that the droprate setting is a valid fractional value (0.02 = 2% chance) for player drops.
Players need the playerheads.canlosehead permission to be beheaded
Player-Killers need the playerheads.canbehead permission also to behead a player.
Both of these should be provided by default, but in some scenarios you may need to set them [to true or allow] explicitly.
In reply to crashdemons:
Thanks for solving my problem!
I can't view the head information with a mouse click.
But there is a message text in the language file that is clicked by mouse.
Maybe it’s my stupidity that won’t be used.
But I didn't find any related features in config.yml
Can you tell me where the problem is?
I really need this feature plz
In reply to mirade01:
Players need the playerheads.clickinfo permission (set to true or allow) in order to see the clicked message.
Please check out the Permissions page.
Thanks
In reply to crashdemons:
Thank you, now it works.
Translation software led me to understand the error
is there any way to properly see exactly what head textures are being used for each mob? or see where the plugin is drawing them from?
In reply to bolobread:
Right now, the texture for each head is hardcoded as a Base64 texture tag in TexturedSkullType. (this format is required by minecraft head texturing)
If you have a base64 decoder you can see that each can be decoded to get the texture image URL.
For example:
eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWI3YWY5ZTQ0MTEyMTdjN2RlOWM2MGFjYmQzYzNmZDY1MTk3ODMzMzJhMWIzYmM1NmZiZmNlOTA3MjFlZjM1In19fQ==
Decodes to:
{"textures":{"SKIN":{"url":"http://textures.minecraft.net/texture/eb7af9e4411217c7de9c60acbd3c3fd6519783332a1b3bc56fbfce90721ef35"}}}
If the texture is not from the minecraft server, I believe the client will reject displaying it.
We have this installed on a 1.13.2 Spigot server and it works great for mobs and players.
However, we also like to do custom heads for decoration (for example heads from a database like minecraft-heads.com that look like plushies or food or other objects), but none of our custom heads generated outside of this plugin can be picked up by survival players once placed. They do the breaking animation but pop back -- they do not break.
My instinct is that this plugin is somehow interfering, since it's all we have that has to do with heads, but I haven't yet disabled the plugin to confirm. I don't expect them to keep their names or lore (I know that is a vanilla issue) but in the past, without this plugin, they could be picked up again and would simply be named "Player Head". I will try to confirm for sure this weekend, but if it is indeed this plugin, it would be awesome if this could be fixed.
In reply to Sunshinne_DM:
In reply to crashdemons: