Content generated with AI — it may contain mistakes.

Configuring

Trims

Presets, patterns and materials: what trims.yml ships and how it is written.

A trim is a pattern plus a material. It is worn in one of two ways: as a preset with a name of its own, or as a combination the player builds on the CUSTOM tab.

All of it lives in trims.yml, which has three sections: patterns, materials and presets.

Patterns and materials

These are the two lists the CUSTOM tab combines. The key is the game's registry key — sentry, netherite — and minecraft:sentry works just as well: the namespace is trimmed when it is read.

trims.yml
patterns:
  sentry:
    name: "{letters}Sentry"
    icon: "SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE"
 
materials:
  netherite:
    name: "{letters_black}Netherite"
    icon: "NETHERITE_INGOT"
KeyWhat it does
nameWhat is shown. Takes palette tokens, MiniMessage and gradients.
iconThe item the row is drawn with on the CUSTOM tab. BARRIER when left empty.
The list is yours, not vanilla's

Patterns and materials are listed on purpose rather than read from the server's registries. A listed half is one you chose to sell: you can rename it, draw it with another icon, and take it away. One the file does not list is not offered, and a new Minecraft version cannot add to your shop by accident.

Eighteen patterns ship — Sentry, Vex, Wild, Coast, Dune, Wayfinder, Raiser, Shaper, Host, Ward, Silence, Tide, Snout, Rib, Eye, Spire, Flow, Bolt — and eleven materials — Quartz, Iron, Copper, Gold, Lapis, Diamond, Emerald, Redstone, Amethyst, Netherite, Resin.

Presets

A combination with a name, an id and one permission. This is what you sell without explaining anything:

trims.yml
presets:
  shogun:
    name: "{error}&lSHOGUN"
    pattern: "sentry"
    material: "netherite"
    pieces: []
    icon: "SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE"
KeyWhat it does
nameShown on the item, in the menu and in messages.
patternA trim pattern key.
materialA trim material key.
pieceshelmet, chestplate, leggings, boots. Empty means all four.
iconMaterial of the trim item. Empty uses trim-item.material from config.yml.

The eighteen presets that ship:

IdTrimIdTrim
shogunSentry · NetheritebulwarkWard · Iron
poltergeistVex · QuartzsilenceSilence · Netherite
verdantWild · EmeraldabyssTide · Diamond
tidewalkerCoast · LapisbloodsnoutSnout · Redstone
mirageDune · GoldossuaryRib · Copper
wayfarerWayfinder · CopperoracleEye · Amethyst
sunriseRaiser · GoldcitadelSpire · Quartz
artisanShaper · CopperbreezeFlow · Diamond
hearthHost · ResinvoltageBolt · Copper
The id is the permission, and it is what gets stored

shogun is exyliaarmortrims.trim.shogun, and it is also what is written onto armor and into the player's row. Renaming it voids the permission and turns everything stored into a value that no longer resolves. Change name; never the id.

An id may not contain / either: that slash is what tells a preset apart from a free combination.

Free combinations

What a player builds on the CUSTOM tab has no id: it is stored as pattern/material — sentry/netherite — and named with the menu.custom-name template from config.yml, which defaults to %pattern% » %material%.

It takes three nodes at once: the tab, the pattern and the material. So handing somebody a preset never quietly hands them its halves to recombine, and opening the tab never hands them a pattern nobody sold.

Broken entries

An entry in trims.yml that cannot be read is named in the console and skipped; the rest of the file loads regardless:

ProblemWhat is warned
Empty idan entry has an empty id
Id containing /a preset id may not contain '/'
Missing pattern or materiala trim needs both a pattern and a material
Unknown piece in piecesunknown piece "..."

Trims from code

Another plugin can register presets of its own, and they live alongside the file's: a reload replaces only the entries that came from trims.yml. See API.

Something missing on this page? Tell us on Discord