Skin Packs
Many people wrongly assume that skin packs are only available for creation to Marketplace Partners. No! It's a very easy process, which can easily be fully automated by python. But that's not it. Let's learn how to make a skin pack!
WARNING
The development_skin_packs
doesn't seem to function correctly. You need to use skin_packs
folder and reload Minecraft every time you made a change.
What is needed
Here is what is needed:
- 🈵en_US.lang
- 🖼️my_skin.png
- 📝manifest.json
- 📝skins.json
manifest.json
{
"format_version": 2,
"header": {
"name": "Tutorial Skin Pack",
"uuid": "bb9616eb-327c-4a81-9f00-064cae820cd5",
"version": [1, 0, 0]
},
"modules": [
{
"type": "skin_pack",
"uuid": "e4bc71b6-8f9b-4094-9d47-dc3824f8a3dc",
"version": [1, 0, 0]
}
]
}
format_version
can be 1 too, as v2 doesn't change much for skin packs.name
is self explanatory. However, it isn't of great importance.uuid
andversion
are already familiar to us. Both UUIDs in the manifest need to be different. You can generate them via a generator linked in useful links. As a reminder, you CANNOT use the same UUID TWICE.type
inmodules
needs to be set toskin_pack
, of course.
skins.json
This file is used to define textures and shortnames for skins. Most of the options are, however, hard-coded or unchangeable.
{
"geometry": "geometry.json",
"serialize_name": "Tutorial Skin Pack",
"localization_name": "tutorial",
"skins": [
{
"localization_name": "tutorial_skin_1",
"geometry": "geometry.humanoid.custom",
"texture": "goggled_gecko_no_goggles.png",
"type": "free"
},
{
"localization_name": "tutorial_skin_2",
"geometry": "geometry.humanoid.customSlim",
"texture": "goggled_gecko.png",
"type": "free"
}
]
}
- The
geometry
object must be the same as on the example code in every object. Mojang removed the ability to add custom geometries via skin packs, because the feature was abused. serialize_name
is for marketplace.localization_name
is a pack identifier. Don't use in other skin packs as it affects translations.skins
array, where you define your each skin. The skins will be displayed in the same order in minecraft as they are defined here.localization_name
is going to be used in the .lang file. Think of it as the skins identifier.geometry
you can usegeometry.humanoid.custom
andgeometry.humanoid.customSlim
here.texture
is the name of the image file, located in the main skin pack folder.type
is only accessible to marketplace partners, leave it asfree
, otherwise it will be locked.
texts/en_US.lang
Finally, we'll define the names of the skin pack and every skin in the .lang
file. Of course "en_US" can be replaced with any language.
skinpack.tutorial=Tutorial Skin Pack
skin.tutorial.tutorial_skin_1=Skin 1
skin.tutorial.tutorial_skin_2=Skin 2
The first line defines the pack's name itself. It's done in this format:
skinpack.[pack localization_name]=Actual Pack Name
The other lines define the skins' names:
skin.[pack localization_name].[skin localization_name]=Actual Skin Name
Done! Now, when you open Character Creator, you'll see your skins available to be chosen!
Troubleshooting
If you play on MC version lower than 1.18.30, you might experience a bug when "Equip" button is not showing. You need to download a special texture pack.
Download Equip Button Fix