Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for mituba4154

A lightweight GUI menu plugin for Paper and Spigot servers. Create menus easily with YAML configuration.

Report Easymenu?

EasyMenu

EasyMenu is a lightweight GUI menu plugin for Spigot and Paper servers.

Create clean, clickable Minecraft menus using simple YAML files. Build a main menu, add unlimited submenus, run commands from items, customize sounds and lore, and reload your menu setup without restarting the server.

日本語にも対応しています

Features

  • YAML-based menu creation
    Create and edit menus with simple configuration files.

  • Main menu and submenu support
    Use main.yml for the main menu and place submenu files inside the sub/ folder.

  • Unlimited nested menus
    Open submenus from menu items and return to the main menu when needed.

  • Command execution from menu items
    Run player commands such as /spawn, /home, /warp, or any command provided by other plugins.

  • Custom item display
    Configure materials, names, lore, sounds, slot positions, and custom model data.

  • Multi-language support
    Built-in language files for English, Japanese, and Russian.

  • Async loading and cache system
    Menu loading and submenu access are optimized with asynchronous processing and configurable caching.

  • No external dependencies
    EasyMenu works without requiring Vault, PlaceholderAPI, or any other plugin.


Requirements

Requirement Version
Java 17 or newer
Server software Spigot / Paper / Purpur
Minecraft API version 1.20+
Verified Versions 1.21.8
Supported Versions (Not all versions have been individually tested) 1.16.x~paper latest
Dependencies None
Folia may load, but full compatibility is not guaranteed.

Installation

  1. Download the latest EasyMenu .jar file.
  2. Place it into your server's plugins folder.
  3. Restart the server.
  4. Edit the generated files in plugins/EasyMenu/.
  5. Run /menu in-game to open the menu.

After the first startup, EasyMenu generates the following structure:

plugins/EasyMenu/
├── config.yml
├── main.yml
├── lang/
└── sub/

Basic Usage

Open the main menu

/menu

Reload the configuration

/menu reload

Open a submenu directly

/submenu <id>

Example:

/submenu shop

Permissions

Permission Description Default
easymenu.admin Allows reloading the EasyMenu configuration OP
menu.reload Legacy reload permission kept for compatibility OP

/menureload is still available for compatibility, but /menu reload is the recommended command.


Example Main Menu

Create or edit plugins/EasyMenu/main.yml.

menu-title: "&6&lEasyMenu"
menu-opensound: "ENTITY_EXPERIENCE_ORB_PICKUP"
menu-background-item: "GRAY_STAINED_GLASS_PANE"
menu-size: 54

menu-items:
  - location: "5,3"
    material: "DIAMOND"
    name: "&bTeleport Home"
    command: "/home"
    sound: "ENTITY_ENDERMAN_TELEPORT"
    close-menu: true
    lore:
      - "&7Click to teleport"
      - "&7to your home."

  - location: "5,4"
    material: "EMERALD"
    name: "&aShop"
    command: "sub_shop"
    sound: "BLOCK_NOTE_BLOCK_PLING"
    close-menu: true
    lore:
      - "&7Open the shop menu."

Example Submenu

Create plugins/EasyMenu/sub/shop.yml.

menu-title: "&a&lShop Menu"
menu-opensound: "BLOCK_CHEST_OPEN"
menu-background-item: "LIME_STAINED_GLASS_PANE"
menu-size: 27

menu-items:
  - location: "3,2"
    material: "DIAMOND"
    name: "&bBuy Diamonds"
    command: "/buy diamond 1"
    sound: "ENTITY_EXPERIENCE_ORB_PICKUP"
    close-menu: false
    lore:
      - "&7Price: $100"

  - location: "5,3"
    material: "BARRIER"
    name: "&cBack to Main Menu"
    command: "main_mainopen"
    sound: "UI_BUTTON_CLICK"
    close-menu: true
    lore:
      - "&7Return to the main menu."

To open this submenu from another menu item, use:

command: "sub_shop"

Supported Item Options

Option Description
location Menu slot position in column,row format
material Bukkit material name
name Item display name with color codes
command Command or EasyMenu special action
sound Sound played when the item is clicked
close-menu Whether the inventory closes after clicking
lore Item lore lines
custom-model-data Custom model data for resource packs

Special Commands

Format Behavior
/command Runs a command as the player
sub_<name> Opens plugins/EasyMenu/sub/<name>.yml
main_mainopen Returns to the main menu

Configuration Overview

config.yml is used for plugin behavior and performance settings.

language: "en_us"
load-on-startup: true
precache-submenus: true

async:
  worker-threads: 2

cache:
  submenu-expiry-seconds: 300
  submenu-max-size: 100
  cleanup-interval-seconds: 60
  resolved-path-max-size: 200

submenu:
  search-depth: 3
  listener-failsafe-seconds: 30

main.yml is used only for the main menu layout.

This separation makes large menu setups easier to manage and reduces the risk of mixing plugin settings with menu definitions.


Language Files

EasyMenu includes language files for:

  • English: en_us.yml
  • Japanese: ja_jp.yml
  • Russian: ru_ru.yml

You can edit the generated language files in plugins/EasyMenu/lang/ and reload the plugin afterward.


Good For

EasyMenu is useful for:

  • server navigation menus
  • warp menus
  • shop menus
  • rule and help menus
  • player utility menus
  • server selector-style menus
  • custom lobby menus
  • resource-pack based custom GUI items

Notes for Updating from Older Versions

EasyMenu v5.0.0 uses a cleaner folder and configuration structure.

Older versions used:

plugins/EasyMenuPlugin/config.yml

Newer versions use:

plugins/EasyMenu/config.yml
plugins/EasyMenu/main.yml

Move your main menu definition into main.yml and keep plugin behavior settings in config.yml.


License

This plugin is free to use on Minecraft servers. Redistribution, resale, modified redistribution, or claiming this plugin as your own is not allowed without permission.

Information

CategoryAdmin Tools
Published onApril 29, 2026
LicenseAll Rights Reserved
Downloads2
Stars0
Watchers0

Pinned Versions

Members