Skip to main content

Upgrading Guide

This guide describes how to upgrade to EasyMenu 7 and covers migration details from prior versions.


Migrating from EasyMenu 6 to EasyMenu 7

The Short Version

  • Your existing YAML files (config.yml, main.yml, sub/*.yml, lang/*.yml) do not need to change.
  • NegiLib 1.x is now required.

Upgrade Steps

  1. Stop the server.
  2. Put both NegiLib-1.1.0.jar and EasyMenu-7.0.1.jar into your plugins/ directory.
  3. Remove the old EasyMenu-6.x.x.jar.
  4. Start the server.
  5. Verify that EasyMenu 7.x.x enabled; bound to NegiLib appears in your console.

Requirements That Changed

ItemEasyMenu 6EasyMenu 7
ServerSpigot, Paper, FoliaPaper, Purpur, Folia
Java17+17+
Minecraft1.20.1+1.20.1+
Required PluginNoneNegiLib 1.x
PlaceholderAPIOptionalOptional

:::note Spigot Support Because NegiLib relies on the Folia scheduler API, Spigot is no longer supported. Please use Paper, Purpur, or Folia. :::

Existing Configuration Compatibility

All YAML features from EasyMenu 6 continue to work without modification:

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

menu-items:
- location: "3,3" # location and slot both supported
material: "RED_BED"
name: "&c&lHome"
command: "/home" # slash optional
sound: "ENTITY_ENDERMAN_TELEPORT"
close-menu: true
lore:
- "&7Teleport to your home"

- slot: 22
material: "EMERALD"
command: "sub_shop" # opens submenu "shop"

- slot: 26
material: "BARRIER"
command: "main_mainopen" # opens main menu

Typed actions (actions:), click-policy, custom-model-data, and the input action remain fully supported.

Notable Behavior Improvements

ChangeRationale
command: "shop buy diamond" without a leading slash now runs as a player command (was rejected in 6)Makes shorthand commands more intuitive
Declaring actions that produce 0 effective actions is now an error during reloadPrevents buttons from silently turning into dead decorative items
Target menu IDs in open-menu that do not exist are caught at reload timeCatches typos before players encounter runtime errors
open-menu waits until the target menu is fully rendered before continuing the action pipelineEnsures subsequent messages describe the newly opened menu
Form input initial values are verified against the input contractPrevents initial submissions from failing unexpectedly
Unknown sound names produce warnings and drop only the sound actionNon-critical sound errors do not prevent menus from opening

New config.yml Keys

Your existing config.yml keeps working. On first launch with v7, new configuration keys are populated with safe defaults:

runtime:
default-presentation: inventory # default display mode for menus

diagnostics:
log-warnings-on-load: true

input:
default-timeout-seconds: 60

cooldown:
cleanup-interval-seconds: 60

Rolling Back

EasyMenu 7 never overwrites or alters your menu YAML files. To roll back, simply replace the plugin JAR with EasyMenu-6.x.x.jar.


Migrating from EasyMenu 5.x to EasyMenu 6 (Archive)

For servers upgrading from legacy EasyMenu 5.x:

Automatic Folder Migration

The legacy folder is automatically migrated on startup:

plugins/EasyMenuPlugin/ → plugins/EasyMenu/

If your old config.yml contained inline menu definitions, they are automatically separated into plugins/EasyMenu/main.yml.

Command Changes

The old /menureload command was removed in favor of:

/menu reload

Permission: easymenu.command.reload (or easymenu.admin).

Supported Legacy Syntax

  • location: "5,3"
  • command: "/spawn"
  • command: "sub_shop"
  • command: "main_mainopen"
  • close-menu: true