> For the complete documentation index, see [llms.txt](https://xerickerspigot.gitbook.io/arenalegends/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xerickerspigot.gitbook.io/arenalegends/menus/event-triggers.md).

# Event Triggers

Event triggers decide which menu item appears for a specific menu state.

## Trigger Key

ArenaLegends menus render items based on:

```
item-builder.<item-id>.item-settings.trigger
```

Example:

```yaml
item-builder:
  next-page:
    item-settings:
      trigger: NEXT_PAGE
```

Separate several triggers with commas. Names are matched exactly, so keep them upper case. Items can also be limited with `item-settings.require-previous`, which shows them only when the previous menu matches.

## Common Triggers

```
PREVIOUS_PAGE
NEXT_PAGE
CLOSE_MENU
GO_BACK
IGNORE_BUILD
IGNORE_EVENT
FILTER_ALL
FILTER_OWNED
FILTER_UNOWNED
```

`CLOSE_MENU` and `GO_BACK` items are rendered automatically. `IGNORE_BUILD` keeps an item out of the automatic pass in menus with their own trigger list, so the menu code decides when to show it. `IGNORE_EVENT` makes the generic menu actions ignore clicks on the item. In menus without their own trigger list, every item is rendered automatically, with name and lore placeholders resolved.

## Menu Triggers

`OPEN_<MENU>` opens the matching menu, where `<MENU>` is the menu name in upper case (`OPEN_BATTLE_PASS`).

```
OPEN_GAME_MANAGER
OPEN_GAME_PREVIEW
OPEN_STATISTICS
OPEN_COLLECTIBLES
OPEN_FINISHERS
OPEN_DUMMY_SKINS
OPEN_KILL_COUNTERS
OPEN_KILL_MESSAGES
OPEN_PRESENCE_MESSAGES
OPEN_ITEM_SKINS
OPEN_UPGRADES
OPEN_BATTLE_PASS
OPEN_CUSTOM_GAME
OPEN_TEAM_SELECTOR
OPEN_SHOPKEEPER
OPEN_AUGMENTS
OPEN_ANVIL_STATS
OPEN_MYTHICS
```

## Screen Triggers

Generated menu files also contain triggers specific to a screen.

```
ITEM_BOUGHT
ITEM_CLICK_TO_BUY
ITEM_NOT_ENOUGH_GOLD
ITEM_NO_PERMISSION
ITEM_PREVIEW
CATEGORY_SELECTED
CATEGORY_CLICK_TO_SELECT
SEPARATOR_ACTIVE
SEPARATOR_INACTIVE
DISCARD_ITEM
ANVIL_CLICK_TO_ROLL
ANVIL_NOT_ENOUGH_GOLD
ANVIL_PREVIEW
CHOOSE_ANVIL
MYTHIC_CLICK_TO_ROLL
MYTHIC_NOT_ENOUGH_GOLD
MYTHIC_PREVIEW
AUGMENT_PREVIEW
CHOOSE_AUGMENT
UPGRADE_AUGMENT
DESCRIPTIONS_SIMPLE
DESCRIPTIONS_ADVANCED
REROLL_AVAILABLE_<index>
REROLL_UNAVAILABLE_<index>
REWARD_CLAIMABLE
REWARD_CLAIMED
REWARD_LOCKED
REWARD_LOCKED_PREMIUM
REWARD_NO_PREMIUM
PASS_INFO_PREMIUM
PASS_INFO_NO_PREMIUM
PASS_INFO_NOT_AVAILABLE
TIER_PASSED
TIER_CURRENT
TIER_LOCKED
STATISTIC
LOADING
SELECTED
CLICK_TO_SELECT
CLICK_TO_UNLOCK
NOT_ENOUGH_STATISTICS
NOT_ENOUGH_GEMS
NO_PERMISSION
UNPURCHASABLE
RESET
CATEGORY
GO_BACK_ITEM_SKINS
CLICK_TO_UPGRADE
MAXED_OUT
CLICK_TO_PRESTIGE
CLICK_TO_PRESTIGE_UPGRADE
PRESTIGE_MAXED_OUT
PRESTIGE_NOT_ENOUGH_GEMS
TEAM_CAN_JOIN
TEAM_JOINED
TEAM_FULL
```

`SELECTED`, `CLICK_TO_SELECT`, `CLICK_TO_UNLOCK`, `NOT_ENOUGH_STATISTICS`, `NOT_ENOUGH_GEMS`, `NO_PERMISSION`, and `UNPURCHASABLE` are shared by the collectible category menus. `REROLL_AVAILABLE_<index>` and `REROLL_UNAVAILABLE_<index>` use the roll choice index, for example `REROLL_AVAILABLE_0`.

{% hint style="info" %}
Triggers are not one universal list for every menu. When editing a menu, inspect existing entries in the same YAML file first.
{% endhint %}

## Example Item

```yaml
item-builder:
  item-bought:
    item-settings:
      trigger: ITEM_BOUGHT
    meta-builder:
      name: "&a{ITEM_NAME}"
```
