Patterns drop template_item (removed in 1.21.5, the template link moved to data). Materials use override_armor_assets only (ingredient and item_model_index were removed by 1.21.5).
Your trims will be mytrims:<id>. Lowercase letters, numbers, _ . - only.
{
"asset_id": "mytrims:celtic",
"description": {
"translate": "trim_pattern.mytrims.celtic",
"fallback": "Celtic"
},
"decal": false
}/give @s minecraft:diamond_chestplate[trim={pattern:"mytrims:celtic",material:"mytrims:amber"}]assets/mytrims/textures/trims/entity/humanoid/celtic.pngassets/mytrims/textures/trims/entity/humanoid_leggings/celtic.pngArmor trims became data-driven in Java Edition 1.20, which means you can register your own patterns and materials with a datapack instead of editing the game. This builder writes the trim_pattern and trim_material JSON for you, matches every key to the version you pick, shows a live preview, and hands back a ready-to-install zip.
A finished trim has two halves. The pattern is the shape (a trim_pattern entry with an asset_id and description), and the material is the color (a trim_material entry with an asset_name, a tint color and per-armor palette overrides). The game pairs any pattern with any material, so a handful of each gives you a large set of looks.
Pick a game version first. The JSON for both registries changed across updates: trim_pattern dropped template_item in 1.21.5, and trim_material dropped item_model_index in 1.21.4 and ingredient in 1.21.5. The tool emits the exact shape your version reads, so nothing fails to load.
The datapack registers the new pattern and material so the game knows they exist and can apply them in a smithing table or through the trim component. The resource pack supplies the textures the registry entries point at. A pattern needs two greyscale overlay textures (one for the body, one for the leggings layer) under trims/entity; a material needs a color palette under trims/color_palettes, plus a darker palette for each armor override.
The armor_trims atlas uses paletted permutations, so one greyscale pattern overlay is recolored by every material palette automatically. That is why you draw a pattern once in greyscale and it works with gold, diamond, your own amber color and anything else. The tool prints the exact texture path for every overlay and palette next to each entry.
1. Build and download the datapack, then copy its folder into saves/<world>/datapacks/.
2. Add the listed overlay and palette textures to a resource pack under assets/<namespace>/ and enable it.
3. In game, run /reload, then use the give command shown next to each entry to get a piece of armor wearing your trim, or apply it at a smithing table once the template item is in your world.
Keep ids unique. The tool lists the vanilla pattern and material ids for your version so you do not clash with a built-in one. New ids live under your own namespace, so vanilla trims stay untouched.
Armor trims are data-driven on Java Edition 1.20 and later, so you add new ones with a datapack. This tool writes a trim_pattern JSON for each new pattern and a trim_material JSON for each new color, packs them into a datapack, and gives you the give command to apply a trim. You also add the matching greyscale overlay and color palette textures in a resource pack. Drop the datapack into your world's datapacks folder and run /reload.
A trim pattern is the shape of the trim, like coast or sentry, and lives in a trim_pattern JSON with an asset_id and a description. A trim material is the color, like gold or diamond, and lives in a trim_material JSON with an asset_name, a color and per-armor palette overrides. The game combines one pattern with one material to draw the trim on a piece of armor.
Mojang reworked the trim schema several times. trim_pattern carried a template_item field through 1.21.4 but it was removed in 1.21.5. trim_material had item_model_index through 1.21.2 and an ingredient field through 1.21.4, both removed by 1.21.5, and the override map key changed from a bare material id to a namespaced item id. This tool reads your selected version and emits exactly the keys that version expects, so the JSON loads without errors.
Shiny armor like diamond and netherite would hide a same-color trim, so a material can point those armor types at a darker palette instead. override_armor_assets maps an armor material to an alternate palette name, for example minecraft:diamond to diamond_darker. On versions before 1.21.4 the same idea uses override_armor_materials with a bare key like diamond. Add a darker palette row per armor type in the tool and it writes the correct map for your version.
A new pattern needs two greyscale overlay textures, one under trims/entity/humanoid and one under trims/entity/humanoid_leggings, both inside assets/<namespace>/. A new material needs one color palette under trims/color_palettes plus a darker palette for each override. The tool lists the exact paths next to each entry. The armor_trims atlas recolors each pattern overlay through each material palette, which is how one pattern works with every material.
No. Data-driven trim_pattern and trim_material registries are a Java Edition feature from 1.20 onward. Bedrock does not load armor trims from datapacks, so this tool is Java only. The datapack it builds installs in a Java world's datapacks folder.
Preview trims on armor, or browse more Minecraft tools: