Create Custom Menus authored by Ashijin's avatar Ashijin
Custom Menus are a special feature added by MythicRPG that allows you to make... custom menus.
[[_TOC_]]
# Custom Menus
### Creating Menus
You can create menus by placing them in any `.yml` file inside a `menus` folder in any mythic pack.
For example, you can create a new `.yml` file at `plugins/MythicMobs/menus/custom_menus.yml`.
Any top-level node will be loaded as a menu using the standard Mythic menu format. For example, to create a menu named `MyCustomMenu` you'd place this in the file:
```
MyCustomMenu:
Display: "My Custom Menu"
Size: 27
Schema:
- '1 1 1 1 1 1 1 1 1'
- '0 0 0 0 B 0 0 0 0'
- '1 1 1 1 1 1 1 1 1'
Icons:
FILLER:
Mapping: 1
Material: RED_STAINED_GLASS_PANE
Display: ''
Model: 1
TEST_BUTTON:
Mapping: B
Material: GOLD_INGOT
Model: 4
Display: 'Test'
Skills:
- sound{s=entity.chicken.egg}
- setcustommenubutton{slot=11;icon=DYNAMIC_BUTTON}
- message{m="you hit me"} @self
DYNAMIC_BUTTON:
Material: IRON_SWORD
Model: 100
```
This example includes many of the features of the custom menu system.
The `Schema` defines how the menu looks - it's basically a `9 x height` grid representing the menu's icons. Each letter/number is mapped to one of the icons defined under the `Icons` section.
For example, any slot in the Schema with 1 is mapped to FILLER:
```
FILLER:
Mapping: 1
```
Icons contain:
- `Mapping`: a letter or number used to map the icon to the schema
- `Material`: the Material of the icon
- `Model`: the CustomModelData of the icon
- `Display`: the Display Name of the icon
- `Lore`: a list of lines of lore
- `Skills`: Skills executed when the button is pressed
### Modifying a Menu
You can modify an open menu using the `setcustommenubutton{slot=11;icon=ICON}` mechanic
### Opening Menus
To open a custom menu you've created, you can use one of the following:
- **`Command`** - `/mythicrpg menus open [menu] <player>`
- **`Mechanic`** - the `openCustomMenu{menu=name}` mechanic