Custom Skins - Luke100000/minecraft-comes-alive GitHub Wiki

New Skin System

MCA 7.0+ uses a new, layer-based skin system that allows combinations and genetics to work. Since the actual naked skin texture, as well as faces, are too hardcoded, you can only extend clothes and hairs.

Check out this example pack: https://github.com/Luke100000/minecraft-comes-alive/tree/1.19.2/example/skins

Clothing

Adding clothes is easy. Inside your resource pack, make sure following files exist: (as of 7.3.0 this file structure became optional but it's recommended to stick to it)

assets/[yourNamespace]/skins/clothing/[type]/[gender]/[profession]/[nr].png

  • yourNamespace is your pack id
  • type is either normal or zombie, and you should have both variants.
  • gender is either male, female or neutral if the clothes should be worn by both genders.
  • profession is the profession without namespace, e.g. armorer or none
  • nr is a number, starting by 0

Skins are 64px by 64px Steve format files, only the clothes. The second layer is supported.

And inside your datapack:

data/[yourNamespace]/skins/clothing/[gender].json

Gender is either male, female or neutral. The .json file contains a map of your skins, make sure the values match the textures available. Each skin can have additional settings.

Settings

  • count if set, a bulk of similar clothes are loaded. %d in the key will be replaced by the increasing number, starting from 0. Bulk clothes will never overwrite individual clothes.
  • profession the full identifier of the profession this clothing is limited to, or null if it's neutral (default null)
  • chance the weight this clothing will appear (default 1)
  • exclude exclude this clothing from randomly choosing it as it might be a special clothing (e.g. baby clothes).
  • temperature an indicator of the target temperature, ranging between -2 (very cold) to 2 (very hot). Default is 0.

For example:

{
  "mca:skins/clothing/normal/female/none/%d.png": {
    "count": 10,
    "profession": "minecraft:none",
    "chance": 0.85
  },
  "mca:skins/clothing/normal/female/armorer/%d.png": {
    "count": 5,
    "profession": "minecraft:armorer"
  },
  "mca:skins/clothing/normal/female/armorer/5.png": {
    "profession": "minecraft:armorer",
    "temperature": 2
  }
}

Hair

Hair is similar. Inside your resource pack, make sure following files exist:

assets/[yourNamespace]/skins/hair/[gender]/[nr].png assets/[yourNamespace]/skins/hair/[gender]/[nr]_overlay.png (optional)

Hair is also a 64px by 64px file, the second layer is also supported. However, since hair color is multiplied onto it at runtime, hair should be black and white. The brightest part should be white, the darkest part gray (since black would always result in pitch black no matter the hair color).

Optionally you can create a [nr]_overlay.png texture. This texture is drawn above the hair, without any hair color applied. Should be used for any accessories.

And inside your datapack:

data/[yourNamespace]/skins/hair/[gender].json

Settings are the same as for clothing but lacks profession.