指南
工作流Give

Give custom player heads and skulls with commands

6 min read

A player head can show the skin of any Minecraft account, which is why custom heads are so popular for decoration and map making. As with other items, Java 1.20.5 changed how the skin is attached: newer versions use a profile component, and older versions use the SkullOwner NBT compound.

指南结果

A /give command that hands you a player_head showing a chosen player skin on the version you are targeting.

打开相关模块GiveGiving custom player heads

推荐路径

  1. Open the Give module and select minecraft:player_head.
  2. Set the version so the generator uses the profile component or the SkullOwner NBT.
  3. Enter the player name whose skin you want the head to show.
  4. Copy the command and run it to receive the head.
  5. For a static, unchanging texture, use a stored texture value instead of a live name.

Modern profile component (1.20.5+)

On Java 1.20.5 and newer, the skin is attached with a profile component. The short form is /give @p player_head[profile="Notch"], and the object form is /give @p player_head[profile={name:"Notch"}] (the minecraft: namespace prefix is optional). This gives a dynamic head that follows the account, so it updates if that player changes their skin.

Because the head is tied to a live account, running the command while offline or on a cracked server may hand you a default Steve head, since the game cannot look up the profile.

  • Short form: player_head[profile="Name"].
  • A name-based head updates when that player changes their skin.
  • Offline mode may fall back to a Steve head.

Legacy SkullOwner NBT (1.20.4 and older)

Before item components, the skin lived in a SkullOwner compound: /give @p player_head{SkullOwner:"Notch"}. This also resolves the skin from the account name.

For a texture that never changes, both eras support a stored base64 texture value rather than a name. That is how map makers pin a specific custom head image so it will not break if an account is renamed or its skin changes.

  • Legacy form: player_head{SkullOwner:"Name"}.
  • A stored texture value freezes the skin permanently.
  • Custom-image heads use a texture value, not a player name.

Ship the copied artifact

Use this guide to produce the artifact a player or map maker will actually run: a copied command, ordered Project pack, or datapack resource. The final review should happen on that copied output, not only on the editable builder state.

When the workflow is version-sensitive, label the target version beside the command. When it uses selectors, scoreboards, bossbars, tags, loot tables, or project order, test those dependencies in a clean world before publishing the setup.

  • Copy from Output for one command and from Project for ordered packs.
  • Keep Java, Bedrock, and snapshot variants separate.
  • Test destructive selectors with harmless output first.
  • Update related presets when the guide becomes the canonical workflow.

相关指南与预设

常见问题

What is the give command for a player head in 1.21?

Use /give @p player_head[profile="PlayerName"], or the object form /give @p player_head[profile={name:"PlayerName"}]. On 1.20.4 and older use /give @p player_head{SkullOwner:"PlayerName"}.

Why did I get a Steve head instead of the skin?

The game could not resolve the account, usually because you are offline, on an offline-mode server, or the name is misspelled. Name-based heads need an online lookup.

How do I make a head that never changes skin?

Use a stored texture value instead of a player name. A name-based head follows the account, while a texture-based head freezes the exact image.

Can I rename a player head or add lore?

Yes. A player head is a normal item, so it accepts custom_name and lore exactly like any other give item.

Does this work on Bedrock?

Bedrock handles heads differently and does not use the Java profile component or SkullOwner NBT. These commands are for Java Edition.

When should this guide become a Project pack?

Use Project when the workflow needs more than one command, has setup and cleanup order, or must be edited again after testing. One-off commands can stay in Output.