MC Toolkit

Guides / How-To

How to make a Minecraft skin, and why parts of it can't be transparent

Where every body part sits on a Java skin, which areas the game forces opaque, why slim or classic is an account setting and not a pixel, and how to put the skin on.

A Java Edition skin is a PNG, 64 × 64 pixels. The 26.3 client accepts exactly two sizes — that one, and the old 64 × 32 from before 1.8, which it converts on load by copying the right arm and leg onto the missing left side. Anything else is thrown away with a "Discarding incorrectly sized" error, so a skin never loads at 128 × 128 or any other scale in Java.

Where each part goes

Every part is a box, and its texture is that box unfolded: the top and bottom in a row above, then the four sides in a strip. The top-left corner of each part's area comes straight from the player model code:

partbase layer atsecond layer atbox (w × h × d)
head(0, 0)hat (32, 0)8 × 8 × 8
body(16, 16)jacket (16, 32)8 × 12 × 4
right arm(40, 16)sleeve (40, 32)4 × 12 × 4
left arm(32, 48)sleeve (48, 48)4 × 12 × 4
right leg(0, 16)trouser (0, 32)4 × 12 × 4
left leg(16, 48)trouser (0, 48)4 × 12 × 4

An unfolded box takes 2 × (w + d) pixels across and d + h down, so the head's area is 32 × 16, the body's 24 × 16 and each limb's 16 × 16. "Right" and "left" are the character's own, so the right arm is the one on your left when you face the skin.

The second layer, and the parts that can't be transparent

The second layer is drawn a little larger than the first — half a pixel out for the hat, a quarter for everything else — which is what gives hats, hoods and jackets their depth. It can be transparent anywhere; an empty second layer just shows the first.

The first layer cannot. When the game loads a skin it forces three rectangles fully opaque:

rectanglecovers
(0, 0) to (32, 16)the head
(0, 16) to (64, 32)the body, right arm and right leg
(16, 48) to (48, 64)the left leg and left arm

A transparent pixel there is not a hole. The game throws the transparency away and draws whatever colour the pixel held underneath — in most editors that is black. If a skin shows black patches you did not paint, that is almost always where they came from.

Slim or classic is not in the file

Nothing in the PNG says whether the arms are 4 pixels wide (classic) or 3 (slim). The model is part of your account's skin settings, picked when you upload, and the game reads it from there. A slim skin simply leaves the fourth column of each arm unused — the arm areas stay where they are, and only 3 of the 4 columns are drawn.

Upload the same PNG with the wrong model and it still loads, just with a stripe of the wrong pixels or a missing column along the arms. Players with no custom skin get one of 18 default skins — nine characters, each in both models — picked from the account's UUID.

Putting it on

In Java, upload the PNG in the Minecraft Launcher or on minecraft.net under Change Java Skins & Capes, and choose Classic or Slim at the same time. Bedrock is a separate system with its own editor and its own formats; a Java PNG is not a Bedrock skin pack.

The quickest way to get the layout right is to not work on the flat sheet at all. The 3D Skin Editor paints straight onto the model, both layers, with mirroring and a slim/classic switch, and exports the 64 × 64 PNG with every pixel in the right place.

3D Skin Editor →

More guides

Browse all →

Looking for more Minecraft tools?

A suite of client-side generators, viewers and converters — all free, all in your browser.