Trimbound 1.0.0

Configuration

menu.yml

The in-game guide players open with /trimguide. Slots, names, lore, and how an item looks when its trim is switched off.

What it controls

menu.yml defines the in-game guide players open with /trimguide. It sets the window title, how many rows the window has, which commands open it, and every item inside it.

menu:
  title: "&8Armor Trim Effects"
  rows: 5

commands:
  - trimguide
  - armortrims
  - armortrim

rows accepts 1 to 6. Items placed in a slot beyond the last row are skipped rather than shifted, so shrinking the menu hides items instead of rearranging them.

Items

Each item has a slot, a material, a name and lore. The id ties it to a trim, which is what lets the menu know when that trim is switched off.

  - id: gold
    slot: 10
    material: GOLDEN_CHESTPLATE
    trim-material: gold
    trim-pattern: sentry
    name: "&6Gold"
    lore:
      - "&7Piglins ignore you."
      - "&7Range: &f{gold.pacify-range-blocks} &7blocks"

Live values from config.yml

Lore can pull any value straight out of config.yml using {path.to.key}. Change a number in config.yml and the guide shows the new one, with no edit to menu.yml at all.

      - "&7Explosion damage reduced by &f{netherite.explosion-resist-percent}%"
      - "&7Lightning charges you for &f{copper.charged-duration-seconds}s"

A placeholder that does not match a real key is left on screen exactly as written, which makes a typo easy to spot in game rather than silently blank.

Disabled trims

When a trim is switched off, its item can change appearance instead of vanishing, so players can still see the ability exists and that the server turned it off.

    disabled-material: BARRIER
    disabled-name: "&cGold (disabled)"
    disabled-lore:
      - "&7Turned off on this server."

All three are optional. Leave them out and the item keeps its normal look whether the trim is on or not.

Worth knowing

Renaming the commands in this file needs a full server restart, exactly like the commands in config.yml. Everything else here applies on /trimbound reload.

Next: the messages the plugin sends. lang.yml