> For the complete documentation index, see [llms.txt](https://edseries-plugins.gitbook.io/p/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://edseries-plugins.gitbook.io/p/edautofighter/customization/guis.md).

# GUIs

Both menus are YAML templates in `plugins/EdAutofighter/guis/`:

* `autofighter.yml` — the main menu (opened by `/autofighter`)
* `autofighter-upgrades.yml` — the upgrades menu

Every `.yml` file in the folder is loaded as a template, so you can add your own menus and open them with the `[menu] <id>` action. Templates hot-reload with `/autofighter reload`.

### Top-level options

```yaml
title: "&8Autofighter"
rows: 4                              # 1-6
permission: some.permission          # optional, required to open
open-sound: "BLOCK_ENDER_CHEST_OPEN" # optional Bukkit Sound name
main-menu: "autofighter"             # optional: reopen this menu when closed

contents:
  # items...
```

**`main-menu`** makes the menu behave like a sub-menu: when the player closes it, the parent menu automatically reopens (this is how the upgrades menu returns to the main menu).

### Item options

```yaml
contents:
  my-item:
    material: "BEACON"          # any Material; player-<name> for player heads
    amount: 1
    name: "&#2BFF27&lMy Item"
    lore:
      - "&7Line with {placeholders}"
    glow: "false"               # "true"/"false", placeholders allowed
    custom-model-data: ""       # optional
    slots: "10"                 # comma list and ranges: "0-8,13,17"
    view-permission: some.perm  # optional: hide item without permission
    view-requirement: "{active} == false"   # optional condition to show
    click-requirement: "{active} == true"   # optional condition to click
    any-click-actions:
      - "[af-spawn]"
```

* **Slots** accept comma-separated values and ranges (`"0-10,12,14"`).
* **Lore** lines support `{placeholder}` substitution, `if(...) then ...` conditionals and `\n` splitting (EdLib's ConditionProcessor). Multi-line placeholders like `{target_list}` expand into several lore lines.
* **Requirements** are simple conditions evaluated against the placeholder map — e.g. `{active} == false` shows the Spawn button only while no fighter is active, letting two items share the same slot.

### Click actions

Actions can be defined per click variant, with `any-click-actions` as the fallback:

```yaml
left-click-actions: []
right-click-actions: []
shift-left-click-actions: []
shift-right-click-actions: []
any-click-actions: []
```

See [Action Types](/p/edautofighter/customization/action-types.md) for every available action, and [Placeholders](/p/edautofighter/customization/placeholders.md) for every `{placeholder}` you can use in items.
