> 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/edminions/features/guis.md).

# GUIs

GUIs are fully config-driven YAML files in `plugins/EdMinions/guis/`. Every slot, item, name, lore, sound and click action is editable; `/minions opengui <id>` opens any of them.

Shared per-GUI keys: `title`, `rows`, `open-sound`, `main-menu` (GUI to return to on close), `item-click-cooldown`, `update-interval`. Items support `slot` (single, list or ranges like `0-44`), `material` (including `texture-<base64>` heads), `name`, `lore`, `glow`, `custom-model-data`, `requirement`, and click action lists (`left/right/shift-left/shift-right/any-click-actions`).

## Main menu (`main-menu.yml`, `/minions`)

* **`minion-summary`** — the info book. Placeholders: `{active}`, `{unlocked}`, `{max-slots}`.
* **`minion-slot`** — one per minion slot:

```yaml
minion-1:
  slot: '11'
  custom-item:
    type: 'minion-slot'
    slot-number: 1
    manage-gui: 'manage-menu'
    occupied: { ... }   # a minion sits here ({minion}, {status}, ...; default material
                        # is '{minion-material}' so the slot shows the minion's own head)
    empty: { ... }      # unlocked but empty
    locked: { ... }     # not yet unlocked
```

Clicking an occupied slot opens the manage menu; **shift-click withdraws** the minion as an item. Minions have no storage — depositing an item (right-click it, or shift-click it in your inventory while a minions GUI is open) drops it into the first free slot and **auto-enables** it.

> Minions are packet based and only you can see yours — there is no visibility toggle.

## Manage menu (`manage-menu.yml`)

Opened per slot from the main menu. Custom item types:

| Type             | What it does                                                                                                                                                                    |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `minion-info`    | Info item rendered with the minion's live placeholders; the default menu uses `material: '{minion-material}'` so it shows the minion type's own item/head.                      |
| `minion-upgrade` | One upgrade button (`upgrade: '<id>'`). Placeholders: `{level}`, `{max-level}`, `{cost}`, `{chance}`, `{next-chance}`, `{area-size}`, `{duration}`, `{speed-boost}`, `{maxed}`. |
| `minion-food`    | Food slot — drag configured food onto it (left click = whole stack, right click = one). Placeholders: `{food-time}`, `{food-max}`.                                              |
| `minion-toggle`  | Enable/disable button with `enabled:`/`disabled:` item states.                                                                                                                  |
| `open-gui`       | Generic navigation button (`gui: '<id>'`).                                                                                                                                      |

All minion placeholders (`{minion}`, `{minion-material}`, `{status}`, `{blocks}`, `{owner}`, `{<upgrade>-level}`, `{<upgrade>-max}`, `{food-time}`, `{food-max}`, `{slot}`) work in every manage-menu item — including in `material:`, so an item can render as the minion type's own item material or head texture.
