Back to Tools
Fun

Player Head Lookup

Paste a Minecraft username, get the /give command for their head — in any Java version.

Look up a player

Java usernames only — the UUID and skin texture come from Crafty's player API

The command carries a base64 texture, so it keeps working even if the player changes skin later.

Why player heads carry a base64 texture

What the long string in the command actually is

A Minecraft player head doesn't store the skin image directly. It carries a base64-encoded JSON blob that points to a URL on textures.minecraft.net — the actual PNG. Mojang's session server signs that blob when it serves a live player profile, but a head item does not need the signature: vanilla accepts the unsigned value, which is what this tool builds from the texture Crafty already has on file.

That's why /give for player heads needs a long base64 string and not just a username: vanilla command parsers don't call out to Mojang mid-execution. The base64 is the cached lookup, frozen at the moment you generated the command. If the player changes skin later, your generated head keeps the old skin — a useful property for build servers and permanent decoration.

More player tools

The rest of the set, for the parts of a profile this one doesn't touch

Frequently asked questions

Version syntax, texture values and Bedrock

How do I get a player's head in Minecraft? +

In Java Edition 1.20.5 and later, run `/give @p minecraft:player_head[minecraft:profile={name:"USERNAME",id:[I;a,b,c,d],properties:[{name:"textures",value:"BASE64"}]}] 1`. The `name` is the player's current username, `id` is their UUID split into four signed 32-bit integers, and `value` is the base64-encoded texture JSON naming the skin URL on textures.minecraft.net. This tool builds that exact command from a username — paste a name, pick your version, copy the result, run it on any vanilla server with cheats enabled.

Which command do I need for my Minecraft version? +

There are four syntaxes. 1.20.5+ uses data components: `player_head[minecraft:profile={...}]`. 1.16-1.20.4 uses item NBT with `SkullOwner:{Id:[I;a,b,c,d],...}` — the int-array Id landed in 1.16. 1.13-1.15 uses the same NBT but with the dashed UUID string as `Id`. 1.8-1.12 predates the item flattening entirely: the item is `minecraft:skull` with damage value 3, written as `/give @p minecraft:skull 1 3 {SkullOwner:{...}}`. Pick your version above and the command is rewritten for it.

What is the texture value of a player head? +

The texture value is a base64-encoded JSON blob holding a `textures.SKIN.url` that points at `textures.minecraft.net`. Minecraft uses it to render the correct skin on the head item — no skin file is stored on the head itself, only that reference URL. Mojang's session server signs the copy it serves for a live player profile, but a head does not need the signature and vanilla accepts an unsigned value, which is what this tool builds. Either way the value is stable for a given skin: it changes only when the player changes theirs.

Does this work in Bedrock Edition? +

No. Bedrock Edition uses a different command syntax — `/give @p player_head` only gives a generic Steve head, and Bedrock has no equivalent of the `profile` component for embedding custom skin textures via /give. The Bedrock workflow uses the `/structure` command or NBT-editing tools to place a head with custom skin data, and most servers fall back to add-ons or marketplace packs for custom heads. This tool generates Java Edition syntax only.

Last verified for Minecraft 26.2