Skip to main content

Body & Presentation

EasyMenu 7 supports decorative body elements for dialogs and detailed presentation settings to control rendering behavior.


Body Content (body)​

body defines decorative introductory text and item icons rendered above the buttons in Native Dialogs:

menu-title: "&6Featured Shop"
dialog: true

# Decorative header content
body:
- type: text
text: "&eWeekend Special Sale! 20% OFF everything.\n&7Check out featured items below:"

- type: item
material: NETHERITE_SWORD
name: "&c&lFeatured Weapon"
lore:
- "&7Legendary Netherite Sword"
- "&eSpecial: $5,000"

menu-items:
- id: buy
material: EMERALD
name: "Buy Now"
command: "shop buy featured"

body Keys​

typeKeyDefaultDescription
text (default)textRequiredThe text to show. & color codes and placeholders are supported. Inside a double-quoted YAML string, \n is a line break.
widthNoneText width in pixels. When omitted the backend default is used.
itemmaterialRequiredMaterial of the item to show.
name / lore / amount / glint / custom-model-data / base64 / componentsSame syntax as Item Settings.
descriptionNoneDescription text shown next to the item.
show-tooltiptrueWhether hovering the item shows its tooltip.
show-decorationstrueWhether decorations such as the count and durability bar are drawn.

Any type other than text or item is an error.

Dropped on Inventory GUIs

In standard chest UIs, body content is safely omitted. Because body elements carry no executable actions, no functionality is lost.


Presentation Modes (presentation)​

Customize menu presentation modes per file:

presentation:
mode: native-preferred # Display mode
fallback: true # Allow falling back to chest UI on unsupported servers

inventory:
size: 54
background: "GRAY_STAINED_GLASS_PANE"

native:
columns: 3
button-width: 160
can-close-with-escape: true
pause: false

What each key does:

KeyDefaultDescription
moderuntime.default-presentation in config.yml (default: inventory)Display mode; see the list below. An unknown value is an error.
fallbacktrueWhether EasyMenu may switch to the next renderer when the requested one cannot open. With false it fails instead.
inventory.size54Inventory slot count (a multiple of 9, 9-54). Same meaning as menu-size.
inventory.backgroundGRAY_STAINED_GLASS_PANEBackground item. none disables it.
native.columns / button-width / can-close-with-escape / pauseSee Native Dialog

The root-level menu-size and menu-background-item are used as the values when presentation.inventory is omitted.

Supported Modes (presentation.mode)​

ModePriority ChainDescription
inventory (default)Chest UIClassic inventory menu format.
native-preferredDialog → Chest UINative Dialog where supported, Chest UI otherwise.
native-requiredDialog onlyOnly opens on servers with Dialog support (shows friendly error on older servers).
rich-preferredRich UI → Basic Bedrock form → Dialog → Chest UIPrefers Rich UI for Geyser players, falling back to a supported renderer if unavailable.
rich-requiredRich UI onlyRequires a rich renderer.
autoAutomaticSelects a supported renderer in order: Rich UI, basic Bedrock form, Dialog, Chest UI.

native and rich work as aliases of native-preferred and rich-preferred. *-required modes never switch renderers regardless of fallback; the menu does not open for a player who does not meet the requirement. Setup steps and topology differences for Bedrock are covered in the Bedrock / Geyser / Rich UI Guide.

Bedrock Rich UI

For Geyser connections, rich-preferred or auto tries Rich UI. NegiLib defaults to bedrock.rich-ui: auto; set it to off in plugins/NegiLib/config.yml to use basic Bedrock forms. The v11 Pack GridMenu uses 82% of the screen height, keeps the title and close button fixed, and scrolls only the content. Reconnect after a Pack update. Pack registration does not prove client-side JSON UI rendering; check GUI Scale, narrow screens, scrolling, and controls on the client you use.

Precedence

If both dialog and a presentation section are defined, presentation takes precedence, dialog is ignored, and a warning (dialog-key-ignored) is logged. A lone dialog: false forces the inventory display.