Default config:
Code (Text):
# TrinketInventory - config.yml
config-version: 1
gui:
title: "&6&lMy Trinkets"
rows: 3 # 1–6; total slots = rows * 9
open-command: "myinv" # /myinv opens the GUI
fill:
enabled: true
material: "GRAY_STAINED_GLASS_PANE"
name: " " # empty label for filler
# Optional locked slots: render filler & reject items
locked-slots: [0, 8, 18, 26]
rules:
allow-vanilla: true
allow-itemsadder: true
whitelist-mode: true # if true -> only items listed under `items:` apply
reject-non-whitelisted: true # if true -> block placement of non-whitelisted items
# If you want *categories* instead of per‑item whitelist, you can set this to true
# and define categories below. When true, any item that matches a category rule is allowed.
enable-categories: false
apply:
# When should we recalculate and apply bonuses?
on-equip: true # when player places/removes an item in the GUI
on-join: true
on-world-change: true
on-respawn: true
on-plugin-reload: true
stacking:
allow-duplicate-items: false # disallow two identical IDs if false
# Caps to avoid runaway stacking; amounts are applied after sum
attribute-caps:
max_health: 20.0 # additional health cap (+20.0 = +10 hearts)
attack_damage: 10.0
movement_speed: 0.40 # additive cap for speed when using MULTIPLY_SCALAR_1 -> 0.40 = +40%
armor: 12.0
luck: 5.0
# Items whitelist with per-item attribute modifiers.
# IDs can be:
# - Vanilla: "minecraft:feather", "minecraft:diamond_sword", etc.
# - ItemsAdder: "itemsadder:magic_ring"
# Each item lists one or more attribute modifiers. Operation may be:
# - ADD_NUMBER (flat add)
# - MULTIPLY_SCALAR_1 (e.g., +0.10 means +10%)
# - MULTIPLY_SCALAR_2 (rarely used; Paper/Bukkit supports but usually avoid)
items:
- id: "minecraft:feather"
display-name: "&fFeather Charm"
max-stack-size: 1
attributes:
- attribute: "movement_speed"
operation: "MULTIPLY_SCALAR_1"
amount: 0.05 # +5% speed
slot: "ANY" # ANY | MAINHAND | OFFHAND | HEAD | CHEST | LEGS | FEET (semantic only; we apply from GUI)
- id: "minecraft:rabbit_foot"
display-name: "&aLucky Paw"
max-stack-size: 1
attributes:
- attribute: "luck"
operation: "ADD_NUMBER"
amount: 2.0
slot: "ANY"
- id: "itemsadder:magic_ring"
display-name: "&dRing of Vitality"
max-stack-size: 1
attributes:
- attribute: "max_health"
operation: "ADD_NUMBER"
amount: 4.0 # +2 hearts
slot: "ANY"
- id: "itemsadder:swift_amulet"
display-name: "&bAmulet of Swiftness"
max-stack-size: 1
attributes:
- attribute: "movement_speed"
operation: "MULTIPLY_SCALAR_1"
amount: 0.10 # +10% speed
slot: "ANY"
- id: "itemsadder:iron_charm"
display-name: "&7Iron Charm"
max-stack-size: 1
attributes:
- attribute: "armor"
operation: "ADD_NUMBER"
amount: 3.0
slot: "ANY"
- id: "minecraft:diamond"
display-name: "&fDiamond"
max-stack-size: 64
attributes:
- attribute: "armor"
operation: "ADD_NUMBER"
amount: 3.0
slot: "ANY"
# Optional: category-style matching (enable via rules.enable-categories: true)
# Each category can match by item ID prefix (namespace), item display name regex, and/or lore contains.
categories:
- name: "rings"
match:
id-prefix: ["itemsadder:ring_", "itemsadder:*_ring"] # glob-like; plugin will treat * as wildcard
name-regex: ".*(?i)ring.*"
lore-contains: ["Trinket", "Ring"]
attributes:
- attribute: "max_health"
operation: "ADD_NUMBER"
amount: 2.0
slot: "ANY"
- name: "amulets"
match:
id-prefix: ["itemsadder:*_amulet"]
name-regex: ".*(?i)amulet.*"
attributes:
- attribute: "movement_speed"
operation: "MULTIPLY_SCALAR_1"
amount: 0.05
slot: "ANY"
permissions:
open: "trinketinventory.open"
use: "trinketinventory.use"
bypass:
duplicate-item: "trinketinventory.bypass.duplicate"
not-whitelisted: "trinketinventory.bypass.whitelist"
caps: "trinketinventory.bypass.caps"
messages:
prefix: "&8[&6Trinkets&8]&r "
opened: "&aYour trinket inventory is open."
blocked-slot: "&cThat slot is locked."
not-whitelisted: "&cThat item cannot be used as a trinket."
duplicate-denied: "&cYou cannot equip duplicate trinkets."
cap-reached: "&eYou reached the cap for &6{attribute}&e."
saved: "&aTrinkets saved."
reloaded: "&aConfig reloaded."
# Safety/leak prevention:
# We generate stable UUIDs per (player, item ID, index) internally.
# Normally you should not change this unless you know what you're doing.
uuid:
salt: "changeme-unique-salt-string"
# Mojang-style attribute IDs (what you'd use with /attribute)
# These are the canonical names
#max_health
#follow_range
#knockback_resistance
#movement_speed
#flying_speed
#attack_damage
#attack_knockback
#attack_speed
#armor
#armor_toughness
#luck
#max_absorption
#safe_fall_distance
#scale
#step_height
#gravity
#jump_strength
#fall_damage_multiplier
#mining_efficiency
#movement_efficiency
#oxygen_bonus
#explosion_knockback_resistance
#sneaking_speed
#submerged_mining_speed
#sweeping_damage_ratio
#tempt_range
#water_movement_efficiency
# Player-only attributes (show up in commands under the player. prefix)
#block_interaction_range
#entity_interaction_range
#block_break_speed
#camera_distance
#waypoint_receive_range
#waypoint_transmit_range
# Mob-specific
#spawn_reinforcements
#permissions:
#trinketinventory.open:
#description: Allows a player to open their trinket inventory.
#default: true
#trinketinventory.use:
#description: Allows interaction with the trinket GUI.
#default: true
#trinketinventory.bypass.duplicate:
#description: Allows the player to equip duplicate trinket items.
#default: op
#trinketinventory.bypass.whitelist:
#description: Allows the player to use non‑whitelisted items.
#default: op
#trinketinventory.bypass.caps:
#description: Allows the player to bypass attribute caps.
#default: op