Compatibility¶
Ember Menus is built differently from the rest of the Ember line, on purpose. The others target modern Paper. This one targets everything.
Server software¶
| Tested on | ||
|---|---|---|
| Paper | 26.2-121 | Verified |
| Purpur | 26.2-2632 | Verified |
| Folia | 26.2-7 | Verified, no Vault present |
| Spigot | — | Should work, not yet run |
Minecraft versions¶
1.16.5 through the current release, from one jar.
The plugin is compiled to Java 8 bytecode against the Spigot 1.16.5 API, so the jar loads on every JVM from 8 to 25. Nothing version-specific is called directly; it is all looked up at startup and invoked reflectively.
What has actually been tested
Everything on this page was verified on 26.2. The 1.16 to 1.21 range is what the build targets and what the compatibility layer is written for, but it has not been run on each of those versions.
Treat anything below 26.2 as built for, not verified on. Tell us on Discord if you run it elsewhere, good or bad.
Why this matters more than it sounds¶
Two API changes have quietly killed menu and shop plugins on new versions:
InventoryView became an interface in 1.21. It had been a class for a
decade. Code compiled against the old shape throws
IncompatibleClassChangeError the moment it calls getTopInventory() on a
modern server, and nothing in the log explains why. Every such call here goes
through reflection instead.
The version string changed shape. Everything up to 1.21.x reads
1.20.4-R0.1-SNAPSHOT; the 2026 releases read 26.2.build.121-stable. A parser
that assumes the old shape reads 26.2 as "major 2", decides the server is
ancient, and starts turning off features that work. We hit this during
development and fixed it; the parser tracks the numbering scheme separately.
Optional integrations¶
Every one is reached at runtime and every one is optional. A missing plugin turns one feature off; it never stops the menus loading.
| For | |
|---|---|
| PlaceholderAPI | Placeholders anywhere, and our own %embermenus_*% |
| Vault | Money actions and conditions |
| Ember Coins | Money, including on Folia where Vault does not run |
| LuckPerms | Nothing directly. Permissions go through Bukkit, so any permissions plugin works |
| HeadDatabase | hdb:1234 icons |
| ItemsAdder, Oraxen, Nexo, MMOItems, EcoItems | Custom item icons |
HeadDatabase was verified live. The custom-item hooks are written against each plugin's documented API but have not each been run on a server, and we would rather say that than imply a test we did not do.
Folia¶
Ember Menus declares folia-supported: true and was run on real Folia.
All scheduling goes through the region-aware schedulers, and menus are opened and redrawn on the thread that owns the player, which is the only correct way to touch a player's inventory there.
Vault does not run on Folia at all. Money actions fall back to talking to Ember Coins directly, so they keep working.
Running alongside another menu plugin¶
You can. They will fight over command names, and we lose on purpose: a command
another plugin already registered is never taken, and the console tells you
which menu wanted it. Ours stays reachable as /emenus open <menu>.
That makes it safe to install this next to your existing setup, import your menus, and switch over when you are ready.
Java¶
Java 8 or newer. The jar is Java 8 bytecode, so it loads on the JVM your 1.16 server is running as happily as on Java 25.