On this page

➡ The State System (Conditional Item Overrides)

The State System lets a single slot show different visuals and run different actions based on conditions. This is the secret to building dynamic menus that change without writing duplicate slot configs.


The Concept

Every slot has a base item (Material, Name, Lore, click actions). On top of that, you can stack override states. Each state has:

  • A condition (e.g. %vault_eco_balance% < 500)
  • Optional overrides for: Material, Name, Lore, click actions

When the menu renders, NxMenu checks each state top to bottom. The first matching state wins. Any field not overridden by the state falls back to the base item.


Example: Locked/Unlocked Buy Button

Base Item:

  • Material: DIAMOND
  • Name: &b&lBuy Diamond
  • Lore: &7Costs $500
  • Left-click: Buy logic

Override State 1: If %vault_eco_balance% < 500

  • Material: BARRIER
  • Name: &c&lLocked
  • Lore: &cYou need $500 to unlock
  • Left-click: Empty (no buy logic)

Now, when a poor player views the menu, they see a red barrier. When they earn $500, the slot transforms into a buyable diamond automatically (refresh on menu update interval).


Adding a State

  1. Click a slot.
  2. Switch to the ⟡ STATE tab.
  3. Click + ADD OVERRIDE.
  4. Set the IF condition (placeholder + operator + value).
  5. Set the override Material, Name, and/or Lore (leave blank to inherit from base).
  6. Optionally override click actions per click type.

Real-World Use Cases

  • Quest Progress: Show grayed-out item until %nxmenu_meta_quest_done% == 1
  • Permission-locked Items: Display "VIP Only" until %hasperm_rank.vip% == yes
  • Cooldown Indicators: Switch the icon to a clock when on cooldown
  • Daily Reward Flag: Change to a green checkmark after %nxmenu_meta_claimed_today% == 1
  • Stock System: Show "OUT OF STOCK" when %nxmenu_meta_stock% <= 0
💡 Refresh Tip: States only re-evaluate when the menu redraws. Set REFRESH TICKS in the Inspector (e.g. 20 = 1 second) to make the menu live-update so states swap automatically as conditions change. Don't set this too low (5 ticks = 4 redraws/sec is overkill).

Last updated July 11, 2026