Copyright © 2025-2026 Candy ArtsTimers
A menu can contain timers, under the Timers key of its Choice_List command. A timer counts down while the menu is open, and when it expires it runs a Block, picks a choice, or both. This is useful for a decision under time pressure: an answer the player must provide within ten seconds, or a hesitation the NPC comments on.
Timers aren't visible: a timer is a Timer node, a child of the menu scene's timer_list node. To display a countdown, read the timer from the menu scene (see Menu UI).
A Timer
Each timer is named, like a category, and has these keys:
| Key | Effect |
| Time | The duration of the countdown, in seconds. It is evaluated each time the timer starts, so a ¢ expression can read the game state. |
| Auto | Start: the timer starts when the menu opens. Any other value, empty included: the timer waits for a Timer_Status command to start it. |
| Loops | The number of countdowns: 1 by default, -1 for a timer that repeats until the menu closes. |
| Timeout | A Block run as a Bridge each time the timer expires, named by its Conversation, Block and Line keys. Optional. |
| Timer_Choices | A choice picked each time the timer expires, written as the category name and the choice name separated by a comma: Main, Stay_Silent. Optional. |
| Setup | A Block run as a Bridge before the menu is built, as for a choice (see Advanced Menus). |
| Tags | Tags by which a Timer_Status command selects the timer. |
Main, Stay_Silent picks the Stay_Silent choice of the Main category ten seconds after the menu opens, as if the player had picked it.
Expiry
When a timer expires, the Engine performs these steps in order:
- The remaining Loops are decremented.
- The Timeout Block runs, as a Bridge, with the menu behind its shield (or hidden, with the Timeout's Hide_Menu set to 1).
- The timer restarts, if countdowns remain.
- The choice in Timer_Choices is picked, and its action runs as if the player had picked it.