The bug
When you get a player head, it's supposed to retain the skin that you had when it was created (see this comment by @unknown in MC-52806). However it fails to retain the skin if there are multiple heads for the same player loaded into the world.
Therefore, a single player can only have one player head. Every head linked to their name that they find afterwards will continue using that skin until they exit the game, regardless of what skin the head should display.
This is a visual / caching bug only, the skin texture is correctly saved in the NBT data.
To reproduce
Create a world.
Obtain your player head ("Head A") with
/give @p player_head{SkullOwner:<your player name>}
Place Head A in the world
Exit the game and change your skin.
Re-enter the world and give yourself another player head using the same command. This head is Head B. You may notice that Head B has the old skin.
Place the Head B in the world
Exit the game, reopen, and re-enter the world
Both Head A and Head B will now use the same skin. Depending on which skull is loaded first (this seems to be related to coordinates), they'll either have your old or your new skin.
If both heads have your new skin, destroy Head B, remove it from your inventory, and relog once more. Then, Head A will once again display your old skin correctly.
This bug also results in issues between worlds:
Perform steps 1-4 above.
Create a new world, create and place a head. Think of this as Skull C.
Now, if you load the first world with Skull A, it will display the skin of Skull C.
If you close and reopen the game and load Skull A's world before loading the Skull C's world, then Skull C will display the skin of Skull A.
I should note more clearly what is happening with the in-between worlds issue. The skull that loads first will be the only one displayed on your player skulls until you fully exit the game. Once you re enter the game after fully closing it, the first of your player skulls that you load next will then be the only one.
Current Workaround
Using the /data
command, you can change the Name or UUID of the owner to be something different than your (or any other player's) Name/UUID and also be destinct between all the player heads you want to use. This will trick the game into the thinking the head belongs to another player who doesn't yet have a player head so that it properly updates to the skin that it was assigned.
Cuase
According to @unknown on MC-68487, the cache for skins uses GameProfile.equals
for comparison, which only checks for name and UUID. As such, distinct names or UUIDs allow separate skins, but the same name and UUID means different skins cannot be used.
Linked issues
is duplicated by 8
relates to 1
Attachments
Comments 22
Yeah, it will always result in both of the skulls displaying the same skin, even though they should display two different ones.
Please fix it/find a working workaround that'll refresh the skin without an external tool. It's really annoying and if it'll be fixed it'll open more possibilities with commands.
Here's a video of me reproducing the issue in 20w14a using the Vanilla Tweaks Player Head Drops data pack:
[media]my Workaround/Solution (worked for me):
Open the .minecraft folder under "appdata" and go under "Assets" and "Skins"
Close your Minecraft completly
Get to https://mcuuid.net and enter your User Name to get your "Trimmed UUID"
Open the .minecraft folder under "appdata" and go to "Assets" and "Skins"
Go in the folder of the first two Letters of your UUID (e.g. if your UUID begins with 3c[...] go in the folder with "3c") or if not exist create folder (e.g. 3c)
Copy your new Skin in this folder and give it the name of the "Trimmed UUID" from mcuuid.net WITHOUT FILE EXTENSION (e.g. Filename: 3c0caf908fcb4b1385c5a49ce286813c (no .png etc!))
If a file with your UUID already exists: delete it (make backup!)
Start Minecraft and enjoy your new Skin on your Heads
EDIT: it worked only until next relog to the server 😞
~~~ Cheers ~~~
How is this a duplicate of MC-52806? That addresses the issue of old skulls not updating to the new skin. I'm talking about how old skulls don't display the old skin like they should!