Skip to content

AbstractMenus

HOCON-driven, declarative GUI menus for Paper and Folia. Activators, rules, actions, item properties, animations, and pagination - all from config.

AbstractMenus is a Spigot/Paper/Folia plugin for building interactive inventory menus. The big differences from typical GUI plugins: a wide surface for customisation, performance tuning baked in, and enough composable primitives that one config can replace several single-purpose plugins.

HOCON-first

Menus are described in HOCON, which is JSON plus comments, includes, substitutions, and templates. See HOCON format.

Activators

Open menus from commands, item interactions, joins, region enter/leave, NPCs, and more. Read the activators reference.

Rules and actions

A menu is a chain of conditions and effects. Money, permissions, JS, regions, items - all composable. See rules and actions.

Extensible

Built-in actions, rules, and providers are registered through the same SPI external addons use. Add your own — or pick up community ones — without forking.

  • Menu file - a .conf file inside plugins/AbstractMenus/menus. Each file describes one or more menus.
  • Activator - what opens a menu (a command, a chat phrase, an item-use event, a region enter, an NPC click, …).
  • Rule - a condition checked before opening a menu, before showing an item, or before executing an action chain.
  • Action - something the plugin does (give an item, take money, run a command, send a message, open another menu).
  • Item - a button drawn in the inventory or an object referenced from a rule/action.
  • Bindings - rule-gated overrides that flip an item’s properties at runtime.
  • Variable - a named string or number persisted in the plugin’s database, accessed via placeholders.
  • Template - any block extracted to a named definition and inserted via reference.
  • Animation frame - one keyframe of an animated menu.
  • Catalog - a dynamic collection feeding generated menus.
  • Value extractor - a function that pulls a property out of a context object (block, entity, item, region, world).
  • Provider - a pluggable backend for economy, permissions, levels, placeholders, or skins. Registered with an id and priority; pickable per-action or via config.conf.
  • Addon - a separate jar that registers custom actions, rules, providers, etc. through the same SPI the plugin uses internally. Two delivery paths — see Addon delivery.
/am open <menu_name> Open a menu without an activator
/am open <menu_name> <player> Open a menu for another player
/am reload Reload all menu files
/am serve Watch menus folder and reload on change (dev only)
/am version Print plugin version
/am addons list|info|load|reload|rescan Manage addons
/var get|set|rem|inc|dec|mul|div ... Manage global variables
/varp get|set|rem|inc|dec|mul|div ... Manage per-player variables

The am.admin permission grants access to all commands above. Full commands reference.

AbstractMenus integrates with these plugins as soft dependencies: