# gui system

PracticeBot uses YAML-driven GUI files. Server owners can customize titles, materials, names, lore, filler items, slots, glow, and item flags.

## GUI files

| File                                | Purpose                             |
| ----------------------------------- | ----------------------------------- |
| `gui/settings_menu.yml`             | Main player bot settings menu.      |
| `gui/pvp_settings.yml`              | Normal PvP settings menu.           |
| `gui/cpvp_settings.yml`             | Crystal PvP settings menu.          |
| `gui/bot_inventory.yml`             | Player bot equipment menu.          |
| `gui/admin_inventory.yml`           | Admin default armor/trim editor.    |
| `gui/editor_menu.yml`               | GUI editor entry menu.              |
| `gui/editor_item.yml`               | GUI editor item editor.             |
| `gui/template_editor_main.yml`      | Main template editor page.          |
| `gui/template_editor_behavior.yml`  | Template behavior page.             |
| `gui/template_editor_combat.yml`    | Template normal combat page.        |
| `gui/template_editor_cpvp.yml`      | Template CPvP page.                 |
| `gui/template_editor_inventory.yml` | Template inventory/armor/trim page. |

## Supported color formats

GUI text supports:

```
&a legacy color codes
&#FF5555 hex color
rgb:255,85,85 RGB color
<gradient:#FF0000:#0000FF>gradient text</gradient>
```

## Slot numbers

Inventory slots are zero-indexed:

* 9 slots = one row
* 27 slots = three rows
* 45 slots = five rows
* 54 slots = six rows

## Safe customization rules

| What you can safely edit | What to be careful with                         |
| ------------------------ | ----------------------------------------------- |
| `title`                  | Use valid Minecraft inventory sizes.            |
| `size`                   | Must be 9, 18, 27, 36, 45, or 54.               |
| `material`               | Must be a valid Bukkit material name.           |
| `name` and `lore`        | Keep placeholders if you want dynamic values.   |
| `slot`                   | Avoid two functional items using the same slot. |
| `glow`                   | Cosmetic only.                                  |
| `filler`                 | Cosmetic background.                            |

{% hint style="warning" %}
Do not rename or invent `action` values unless the plugin version explicitly documents that action. Actions map GUI clicks to plugin behavior.
{% endhint %}

## GUI editor

Open the GUI editor with:

```
/pbadmin egui
```

Use it for visual editing where possible. For advanced layouts, edit the YAML files directly and run:

```
/pbadmin reload
```

## Placeholder preservation

When editing GUI lore, keep placeholders such as:

* `{status}`
* `{state}`
* `{value}`
* `{player_name}`
* `{skill_level}`
* `{place_delay}`
* `{break_delay}`
* `{realism_profile}`
* `{fov_degrees}`

Removing placeholders is allowed, but then the GUI will no longer show that dynamic information.

> **Media placeholder:** Add a screenshot gallery of the main settings GUI, PvP settings GUI, CPvP settings GUI, and template editor main page.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://edelweiss-network.gitbook.io/practicebot/server-owner-guide/gui-system.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
