Skip to main content

5-Minute Quick Start

With EasyMenu, you can create interactive menus in just a few lines of YAML.

This tutorial guides you through creating a simple, working menu and opening it in-game.


1. Minimal Menu Configuration​

Open plugins/EasyMenu/main.yml in a text editor and replace its contents with:

plugins/EasyMenu/main.yml
menu-title: "&6&lMy Server Menu"
menu-size: 27

menu-items:
- slot: 13
material: DIAMOND
name: "&bClaim Free Diamond"
lore:
- "&7Click to receive 1 diamond"
actions:
- type: console-command
command: "give {player} diamond 1"
Why console-command?

A command written as command: "give {player} diamond 1" runs with the permissions of the player who clicked. /give is normally operator-only, so a regular player would get nothing. For commands you do not want to grant to players, use type: console-command, which runs with the server console's authority. See Executing Commands for details.

Explanation of Settings​

  • menu-title: Title displayed at the top of the menu. Minecraft & color codes are supported.
  • menu-size: Inventory size. Must be a multiple of 9 (9, 18, 27, 36, 45, 54).
  • menu-items: List of interactive elements in the menu.
    • slot: Zero-indexed slot index (for a 27-slot menu, slot 13 is the center).
    • material: Minecraft Material name.
    • name: Display name of the item.
    • lore: List of lore lines shown when hovering over the item.
    • actions: List of steps executed in order when the item is clicked.
      • type: console-command: Runs the command with the server console's authority.
      • command: The command to run. {player} is automatically replaced with the player's name.

2. Reload Configuration​

Save the file and run the following command in-game or from the server console:

/menu reload

Upon success, a "reloaded" message appears and all changes take effect immediately without restarting the server. The wording depends on the language file selected by language in config.yml (for English it is EasyMenu was reloaded successfully.).

If the configuration contains an error, the reload is rejected and the previous menus stay active. Check the diagnostic messages in the console (Reload & Validation).


3. Test Your Menu​

Run the menu command in-game:

/menu

A 27-slot chest menu will open with a diamond in the center (slot 13). Clicking the diamond will give you 1 diamond. This also works for regular (non-operator) players.


4. Add Sounds and Customization​

Let's enrich the menu with open sounds, background fillers, and submenus:

plugins/EasyMenu/main.yml
menu-title: "&6&lMy Server Menu"
menu-size: 27
menu-opensound: "BLOCK_CHEST_OPEN"
menu-background-item: "GRAY_STAINED_GLASS_PANE"

menu-items:
- slot: 11
material: COMPASS
name: "&aTeleport to Spawn"
lore:
- "&7Teleport to spawn location"
command: "/spawn"
sound: "ENTITY_ENDERMAN_TELEPORT"
close-menu: true

- slot: 15
material: DIAMOND
name: "&bOpen Shop"
lore:
- "&7Open the shop submenu"
command: "sub_shop"
sound: "UI_BUTTON_CLICK"

Highlights of New Features​

  • menu-opensound: Sound played automatically when the menu opens.
  • menu-background-item: Item used to fill all unassigned slots.
  • sound: Sound effect played when an item is clicked.
  • close-menu: true: Closes the menu after executing actions (default is true). Set it to false to keep the menu open.
  • command: "sub_shop": Switches to the submenu defined in plugins/EasyMenu/sub/shop.yml.

Save the file and run /menu reload to test your updated menu!