Accessories

Accessory-slot types that work across Trinkets, Accessories and Curios.

Apoli speaks to three accessory frameworks — Trinkets, Accessories and Curios — through one bridge. The types below are the same whichever of them you have installed.

These types are registration-gated: they only exist when at least one accessory framework is loaded. A data pack that uses them on a server without one will fail to load that power.

Legacy trinket ids are aliased, so packs written for the older Apace types keep working.

Types

TypeKindAliasWhat it does
apoli:modify_accessory_slotsPowermodify_trinket_slot(s)Add or remove accessory slots.
apoli:action_on_accessory_changePoweraction_on_trinket_changeReact to equip / unequip.
apoli:prevent_accessory_equipPowerprevent_trinket_equipStop items going in.
apoli:prevent_accessory_unequipPowerprevent_trinket_unequipStop items coming out.
apoli:modify_accessoryEntity actionmodify_trinketAct on equipped accessories.
apoli:accessory_equipped_countEntity conditionequipped_trinket_countCount what’s worn.
apoli:accessory_slot_countEntity conditiontrinket_slot_countCount available slots.
apoli:accessoryItem conditiontrinketIs this item an accessory?

Slots

Anywhere a slots field appears it takes a list of accessory slots. Leaving it out (or empty) means “every slot”.

A slot is written either as a string or as an object, and a single slot may be given on its own instead of in an array:

"slots": "charm"
"slots": "hand/ring"
"slots": "hand/ring/1"
"slots":[
   {
      "group":"hand",
      "slot":"ring",
      "index":1,
      "provider":"trinkets"
   }
]

The string form is slot, group/slot or group/slot/index. Every part is a filter: anything you leave out matches everything. provider (trinkets, accessories or curios) narrows a slot to one framework, which only matters when two are installed at once.

apoli:conjure_equipment uses the same format in its accessory_slot field, and it is core Apoli rather than a gated type — the field simply does nothing when no accessory framework is installed.