SmartMenus 2.2 focuses on making migration from DeluxeMenus seamless.
The converter now handles slot priority and view requirements automatically,
and the engine natively supports unlimited priority levels on any slot.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Slot Priority — N Levels Supported
SmartMenus now supports conditional item display with unlimited priority levels on a single slot.
Instead of a numbered priority system, SmartMenus uses a clean chain of
view-requirements +
else-item.
Each else-item can have its own view-requirements and its own else-item, creating a full priority chain:
Code (Text):
items:
my_item:
slot: 13
material: NETHER_STAR
name: "&4Admin Item"
view-requirements:
- type: PERMISSION
permission: group.admin
else-item:
material: DIAMOND
name: "&bVIP Item"
view-requirements:
- type: PERMISSION
permission: group.vip
else-item:
material: STONE
name: "&7Default Item"
How it works:
- SmartMenus checks the top item's view-requirements
- If they pass → that item is displayed
- If they fail → it moves to the else-item and checks its view-requirements
- This repeats down the chain until an item matches or the chain is exhausted
Previously,
else-item was a static fallback with no conditions.
It now supports the full feature set: view-requirements, nested else-item, actions, close, glow, item_flags, and custom model data.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DeluxeMenus Converter — Priority & view_requirement
The
/smartmenus convert deluxemenus command now fully handles two previously unsupported DM features:
Priority
When multiple items share the same slot with different
priority values in DeluxeMenus, the converter automatically chains them into the SmartMenus priority system:
Code (Text):
# DeluxeMenus (before)
items:
'vip_item':
material: DIAMOND
slot: 13
priority: 1
view_requirement:
requirements:
perm:
type: has permission
permission: group.vip
'default_item':
material: STONE
slot: 13
priority: 2
Code (Text):
# SmartMenus (after conversion)
items:
13:
material: DIAMOND
view-requirements:
- type: PERMISSION
permission: group.vip
else-item:
material: STONE
Items are sorted by priority number (lowest first = highest priority) and chained automatically.
view_requirement
The
view_requirement block on any item is now converted to SmartMenus
view-requirements.
Supported DM requirement types:
| DeluxeMenus type |
SmartMenus type |
| has permission |
PERMISSION |
| has money |
VAULT_MONEY |
| has exp lvl / has exp level |
XP_LEVEL |
| has item |
ITEM |
| >= / <= / == / > / < / != |
PLACEHOLDER |
| string equals |
PLACEHOLDER_EQUALS |
| string contains |
PLACEHOLDER_CONTAINS |
| javascript / regex matches |
skipped (not supported) |
deny_commands from view_requirement are intentionally skipped — SmartMenus handles access silently by simply not rendering the item.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Other Changes
else-item is now fully featured — Previously, else-item only supported material, name, lore, and actions. It now also supports close, glow, item_flags, item_type, item_id, and custom_model_data, matching the full item spec.
Bottom inventory respects priority chains — Items in use_bottom_inventory GUIs now also walk the full view-requirements + else-item chain, consistent with regular GUI slots.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Upgrading from 2.1
Drop the new jar in, restart. No config changes required.
Existing GUIs using else-item continue to work identically — the new chain logic only activates when else-item itself contains a view-requirements block.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Created by Oreo Studios · SmartMenus 2.2