Skip to main content

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

CategoryPageDescription
Getting StartedEasyMenu 7Overview of EasyMenu 7 (this page)
InstallationServer requirements and installation steps
5-Minute Quick StartFirst tutorial on building your menu
Migrating from v6 to v7Upgrade guide from EasyMenu 6 / 5.x
Creating MenusMenu Basicsmain.yml structure, size, title, background
Item SettingsItem materials, slots, modern components
Opening MenusCommands, dynamic open commands, permissions
SubmenusFolder structure, nested submenus, navigation
ActionsActions OverviewSyntax, execution order, precedence rules
Executing CommandsPlayer and console command actions
Menu, Message, SoundNavigation, chat messages, sound effects, titles
Advanced ActionsDelays, teleports, potion effects, inputs
Conditions & Dynamic DisplayConditionsPermissions, worlds, placeholder comparisons
Display & Usage Conditionsvisible-when vs enabled-when
VariantsDynamic overrides based on player conditions
CooldownRate limiting and shared cooldown keys
PlaceholderAPIPlaceholder expansion and injection safety
Presentation ModesInventory GUITraditional chest UI presentation
Native DialogPaper 1.21.6+ client dialog screens
InputsNamed input forms and chat fallback
Body & PresentationDecorative body content and display modes
Configuration ReferenceFull YAML ReferenceComplete reference of all YAML keys
Action ListComplete list of all action types
Condition ListComplete list of all condition types
config.ymlGlobal plugin configuration reference
Commands & PermissionsCommands and permission hierarchy
Language SettingsBundled languages and custom message files
MiscellaneousCompatibilityServer support matrix and feature tables
Reload & Validation/menu reload atomicity and diagnostics
TroubleshootingCommon issues and troubleshooting steps
About NegiLibArchitecture 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 reload validates 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.