Using Optifine for Armor Textures - jojodmo/CustomItems GitHub Wiki
Welcome to the armor texture help page
This does require Optifine in order to view the textures
Warning Do Not use capital letters in any files or folders inside the optifine folder (If you do it will not work)
Please note on 1.15+ Currently Armor textures only work in OptiFine 1.15.2 HD U G1 pre20 and up.
Please note due to the way the optifine code is written the examples only work in 1.14+
Start by heading into you your resource pack file then resourcePackName\assets\minecraft Create a folder in there called optifine inside the optifine folder create another folder called cit inside the cit folder create a folder called custom armor inside that folder create a folder called ice You can have as many files inside files as you want providing there all in the cit folder
This file (resourcePackName\assets\minecraft\optifine\cit\custom armor\ice) is where will be doing our first example. For our example, we will be doing a custom chainmail armor with CustomModelData of 1 (Due to add more examples soon)
Remember you item .properties files and your texture relating to that item needs to be in the same file
For each item, you want to change to a custom texture you need to define certain details, For armor you have to define each armor piece and proved the 2 texture layers that armor requires also if you're going to add the icons to the armor you need them Use the template below and create a .properties file in the "optifine\cit\custom armor\ice" folder of your resource pack.
inside ice_helmet.properties
type=armor
matchItems=minecraft:chainmail_helmet
texture.chainmail_layer_1=ice_helmet.png
nbt.CustomModelData=1
inside ice_chestplate.properties
type=armor
matchItems=minecraft:chainmail_chestplate
texture.chainmail_layer_1=ice_chestplate.png
nbt.CustomModelData=1
inside ice_leggings.properties
type=armor
matchItems=minecraft:chainmail_leggings
texture.chainmail_layer_2=ice_leggings.png
nbt.CustomModelData=1
inside ice_boots.properties
type=armor
matchItems=minecraft:chainmail_boots
texture.chainmail_layer_1=ice_boots.png
nbt.CustomModelData=1
Note: Properties files can be organized into subfolders of any depth, as long as everything is within the top-level optifine/cit folder.
Each properties file specifies a list of matching item IDs or names In this case, chainmail note: your material "match items and texture" has to match from these files to your custom armor files or the textures won't show, a replacement texture, and an optional set of rules specifying damage, stack size, or NBT tags.
Explanation of .properties file
type= **the type of item in exmaple armor**
matchItems=minecraft: **the material of item for optifine to match**
texture.chainmail_layer_1=ice_boots.png **the texture replacment**
nbt.CustomModelData=1 **model data directly related to what you put in your customarmor.yml**
All property names are case-sensitive. All paths are relative to assets/minecraft unless otherwise stated.
Next, we are going to define the icons this is what is shown when it's on the player's inventory or item frame so create the 4 icon files below to cover all the armor
inside ice_helmet_icon.properties
type=item
matchItems=chainmail_helmet
texture=ice_helmet_icon
nbt.CustomModelData=1
inside ice_chestplate_icon.properties
type=item
matchItems=chainmail_chestplate
texture=ice_chestplate_icon
nbt.CustomModelData=1
inside ice_leggings_icon.properties
type=item
matchItems=chainmail_leggings
texture=ice_leggings_icon
nbt.CustomModelData=1
inside ice_boots_icon.properties
type=item
matchItems=chainmail_boots
texture=ice_boots_icon
nbt.CustomModelData=1
Next, you are going to grab the zip download below which has all the 8 textures you need
To assign this texture to your custom item its easy below is the 4 armor pieces which go with this example
inside ice_helmet.yml
name: ice_helmet
item:
material: CHAINMAIL_HELMET
displayName: '&7Ice Helmet'
inside ice_chestplate.yml
name: ice_chestplate
item:
material: CHAINMAIL_CHESTPLATE
displayName: '&7Ice Chestplate'
inside ice_leggings.yml
name: ice_leggings
item:
material: CHAINMAIL_LEGGINGS
textureID: 1
displayName: '&7Ice Leggings'
inside ice_boots.yml
name: ice_boots
item:
material: CHAINMAIL_BOOTS
textureID: 1
displayName: '&7Ice Boots'
bit out of date links below
There is this example and a shield example (called wooden shield) in the texture pack below 1.14 + : Download 1.14+ pack
You dont need optifine for shield textures in 1.14+ > Below is a link to a shield example resource pack, enjoy
1.14+ Shield resource pack example
This subject on the wiki is still work on progress
If you would like to view optifine's CIT document here is the link https://github.com/sp614x/optifine/blob/master/OptiFineDoc/doc/cit_single.properties