Candy Logo Copyright © 2025-2026 Candy Arts

Modifying Open Menus
A menu is built once, when its Choice_List command runs. While it's open, two Commands modify it: Choice_Status changes its choices, and Timer_Status changes its timers. Both run from the Lines a menu runs while it stays open: the Block of a Continue choice, or a timer's Timeout Block. This is useful for a menu the player returns to: disabling a question once it has been asked, revealing a choice after another one, or starting a countdown once the player has said something. Selecting What to Modify Both Commands select their targets with one mode per level: the menu, then the category and the choice (Choice_Status) or the timer (Timer_Status). Each mode accepts three values:
ModeSelects
LastThe innermost open menu; the category and the choice picked last; the timer that expired last.
TagsThe menus, categories, choices or timers with a tag listed in the matching _Tags key (Menu_Tags, Category_Tags, Choice_Tags, Timer_Tags).
AllEvery open menu; every category, choice or timer, except those with a tag listed in the matching _Tags key.
The modes combine. With Menu_Mode Last, Category_Mode All and Choice_Mode Tags, a Choice_Status command modifies, in the innermost menu, every choice of every category that carries one of the listed tags. Tags are assigned in the Choice_List command (see Tags in Advanced Menus). An empty mode is reported, and nothing is modified. Modifying Choices A Choice_Status command changes the state of the selected choices through four keys, each left empty for no change:
KeyValues
EnableEnable creates the choice's button, Disable deletes it, Toggle swaps the two states.
ActivateActivate allows the button to be picked, Deactivate displays it without it being pickable, Toggle swaps the two states.
ShowShow displays the button, Hide hides it, Toggle swaps the two states.
Label, TooltipA new text for the button and its tooltip.
To disable a question once the player has asked it: in the Block of the Continue choice, write a Choice_Status command with Menu_Mode, Category_Mode and Choice_Mode set to Last, and Enable set to Disable. When the Dialogue returns to the menu, the question is gone. To reveal a choice after another one: write the choice with Enabled set to 0 and a tag in its Tags key, then, in the Block of the choice that reveals it, a Choice_Status command with Choice_Mode set to Tags, that tag in Choice_Tags, and Enable set to Enable. The choice's Setup Block runs at that moment, before its button is created. Choice_Status reads the buttons themselves, not the Enabled, Active and Invisible expressions of the Line: a choice with a button is enabled, whatever its expression evaluates to now. The changes are applied at once, while the menu waits behind its shield. See Choice Status. Modifying Timers A Timer_Status command changes the selected timers through three keys, each left empty for no change:
KeyValues
StatusStart/Resume, Pause or Stop.
TimeA new duration in seconds, or a change to the current one: +5, -5, *2 or /2. Timer_Node decides the effect of a change on a countdown in progress: Ignore applies it from the next start, Restart restarts the countdown with the new duration, and Update restarts it only when the new duration is shorter than the time remaining.
LoopsA new number of remaining countdowns, or a change to it (+1, -1...). 0, inf or ! repeats indefinitely.
Unlike choice changes, timer changes are recorded and applied when the Dialogue returns to the menu: after the Continue choice's Block or the Timeout Block that contains the Line. A timer with no remaining countdowns can't start; add some first, with Loops set to +1 for example. To start a countdown once the player has asked a particular question: write the timer with Auto left empty, then, in the Block of that question's Continue choice, a Timer_Status command with Menu_Mode set to Last, Timer_Mode set to Tags, the timer's tag in Timer_Tags, and Status set to Start/Resume. See Timer Status. Special Cases Inside a timer's own Timeout Block, the expiry that triggered it is already counted: a Loops of 3 means three more countdowns. A Choice_Status or Timer_Status command that runs while no menu is open modifies nothing. Both Commands act on the menus of the Engine that runs them, whatever their nesting: with Menu_Mode set to All or Tags, a Line in a nested menu's Block can modify the menu underneath.