Enter at least two characters

Container Menus

Docs version: v2.0.1

Container menus use Bukkit virtual inventories to render chests, hoppers, dispensers, droppers, furnaces, blast furnaces, smokers, and anvils. They are the main menu path for Minecraft 1.16.5 and cores without a usable native Dialog API.

Documentation#

  • Container Structure: top-level keys and the complete skeleton.
  • Type: container types, sizes, and version boundaries.
  • Title: container titles and dynamic resolution.
  • Settings: dependency checks, arguments, and click throttling.
  • Layout: inventory rows, slots, empty spaces, and multi-character IDs.
  • Buttons: item display, visibility, click actions, and variants.
  • Properties: furnace progress, anvil input, and type-specific fields.
  • Refresh: full, title, button, and progress refreshes.
  • Events: Container-specific lifecycle differences.

Dialog Boundary#

Container files use Type, Layout, Buttons, and optional Properties. They must not define Dialog-only Body, Inputs, or Bottom sections. Events, actions, conditions, variables, PlaceholderAPI, and JavaScript use KaMenu's shared runtime.

Paper/Folia and supported Spigot adapters can use Dialogs. Older cores disable Dialogs while retaining Containers. toast depends on Paper/Folia; cross-platform menus should use actionbar or title feedback.

Minimal Example#

Type: CHEST
Title: '&8Shop'

Layout:
  - '#########'
  - '####`shop`####'
  - '#########'

Buttons:
  shop:
    display:
      material: DIAMOND
      name: '&bDiamond'
    actions:
      left:
        - 'tell: &aDiamond clicked'
        - 'close'

See Modern Dialog Menu File Structure for menu IDs, reload behaviour, and common YAML rules.