EasyMenu 7
EasyMenu is a YAML-driven menu plugin for Minecraft servers.
Configure item materials, names, lores, slots, and commands or actions in simple YAML files to build feature-rich interactive menus with ease.
In EasyMenu 7, UI rendering has been cleanly separated into NegiLib. From the exact same YAML configuration, EasyMenu automatically supports both traditional Chest UIs (inventory menus) and client-native Dialogs (available in Minecraft 1.21.6+).
NegiLib-1.1.0.jar (Required / handles UI rendering)
EasyMenu-7.0.1.jar (Core / manages menu definitions & actions)
:::tip EasyMenu 6 configurations work without changes
EasyMenu 7 is designed with backward compatibility in mind. Existing config.yml, main.yml, and sub/*.yml files from EasyMenu 6 work as-is without any modifications.
:::
Documentation Structure
| Category | Page | Description |
|---|---|---|
| Getting Started | EasyMenu 7 | Overview of EasyMenu 7 (this page) |
| Installation | Server requirements and installation steps | |
| 5-Minute Quick Start | First tutorial on building your menu | |
| Migrating from v6 to v7 | Upgrade guide from EasyMenu 6 / 5.x | |
| Creating Menus | Menu Basics | main.yml structure, size, title, background |
| Item Settings | Item materials, slots, modern components | |
| Opening Menus | Commands, dynamic open commands, permissions | |
| Submenus | Folder structure, nested submenus, navigation | |
| Actions | Actions Overview | Syntax, execution order, precedence rules |
| Executing Commands | Player and console command actions | |
| Menu, Message, Sound | Navigation, chat messages, sound effects, titles | |
| Advanced Actions | Delays, teleports, potion effects, inputs | |
| Conditions & Dynamic Display | Conditions | Permissions, worlds, placeholder comparisons |
| Display & Usage Conditions | visible-when vs enabled-when | |
| Variants | Dynamic overrides based on player conditions | |
| Cooldown | Rate limiting and shared cooldown keys | |
| PlaceholderAPI | Placeholder expansion and injection safety | |
| Presentation Modes | Inventory GUI | Traditional chest UI presentation |
| Native Dialog | Paper 1.21.6+ client dialog screens | |
| Inputs | Named input forms and chat fallback | |
| Body & Presentation | Decorative body content and display modes | |
| Configuration Reference | Full YAML Reference | Complete reference of all YAML keys |
| Action List | Complete list of all action types | |
| Condition List | Complete list of all condition types | |
| config.yml | Global plugin configuration reference | |
| Commands & Permissions | Commands and permission hierarchy | |
| Language Settings | Bundled languages and custom message files | |
| Miscellaneous | Compatibility | Server support matrix and feature tables |
| Reload & Validation | /menu reload atomicity and diagnostics | |
| Troubleshooting | Common issues and troubleshooting steps | |
| About NegiLib | Architecture split and developer API |
Key Features
- Intuitive YAML Syntax: Clean and readable configuration files. The minimal setup requires just a few lines.
- Multi-UI Support: Automatically renders as either an Inventory GUI or a Native Dialog from the exact same menu configuration.
- Flexible Action Pipeline: Execute commands, switch menus, send messages, play sounds, display titles, teleport, and apply delays in strict sequential order.
- Rich Conditions: Conditional visibility, usage checks, and dynamic item variants driven by permissions, worlds, and PlaceholderAPI values.
- Safe Atomic Reload:
/menu reloadvalidates all changes in a detached candidate before applying, safely rolling back if any syntax or structural error is detected. - Folia & Region Thread Safety: Built with Folia-aware scheduling to deliver exceptional concurrency and performance across Paper, Purpur, and Folia.
- Sanitized Placeholder Safety: Untrusted player inputs are substituted last with section characters stripped, preventing placeholder and color injection.