mojira.dev
MC-68487

Player heads of the same player always have the same skin texture, even if the saved texture data is different

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

  1. Create a world.

  2. Obtain your player head ("Head A") with

    /give @p player_head{SkullOwner:<your player name>}
  3. Place Head A in the world

  4. Exit the game and change your skin.

  5. 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.

  6. Place the Head B in the world

  7. Exit the game, reopen, and re-enter the world

  8. 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.

  9. 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:

  1. Perform steps 1-4 above.

  2. Create a new world, create and place a head. Think of this as Skull C.

  3. Now, if you load the first world with Skull A, it will display the skin of Skull C.

  4. 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

Attachments

Comments 22

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!

I seriously ask that this be reopened, as MC-52806, MC-53393, and MC-58796 address old skulls not updating to the new skin. My issue addresses the way that Dinnerbone stated they should work, and how they fail to do so when multiple skins of a single player are involved.

More precisely, this issue is that new skulls will have the old skin.

Mmm, have you tried it closing the game, and not only close the world?

Yeah, it will always result in both of the skulls displaying the same skin, even though they should display two different ones.

12 more comments

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"

  1. Close your Minecraft completly

  2. Get to https://mcuuid.net and enter your User Name to get your "Trimmed UUID"

  3. Open the .minecraft folder under "appdata" and go to "Assets" and "Skins"

  4. 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)

  5. 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!))

  6. If a file with your UUID already exists: delete it (make backup!)

  7. Start Minecraft and enjoy your new Skin on your Heads

 EDIT: it worked only until next relog to the server 😞

~~~ Cheers ~~~

@@unknown, this bug should be fixed in the latest versions. If you are still experiencing it in the latest release please create a new report.

Thomas Clinton

boq

Confirmed

Normal

Rendering, Textures and models

head, mojang_internal_1, multiple, player, skin, skull, skullowner

Minecraft 14w34d, Minecraft 1.8-pre1, Minecraft 1.8, Minecraft 1.8.1, Minecraft 1.8.2-pre1, ..., Minecraft 19w12b, Minecraft 1.14, Minecraft 1.14.3 Pre-Release 3, 20w11a, 20w14a

20w27a

Retrieved