Candy Logo Copyright © 2025-2026 Candy Arts

Await
The Await command pauses the Dialogue until a signal is emitted, and can store the signal's arguments to a variable. To run your own code when the signal arrives, add a script extending CandyAwaitEvent to Candy_DE/Scripts/Await_Events, named after the signal (for example Door_Opened.gd for door_opened). The scripts you add to that folder are 'safe': updates never change them. Its handle() method receives the Engine, the object that emitted the signal, the signal's arguments and the Line's context, and can run any code, including awaiting other operations or running Commands through engine.commands(); the Dialogue waits until it finishes. Its return value then decides what follows: continue waiting for the signal, continue the Dialogue, return from the current Block, or end the Dialogue. Without such a script, the Dialogue continues once the signal is emitted. If the emitting node is freed before the signal fires, the Command reports it and the Dialogue continues. Keys Every key also accepts a ¢ expression instead of a fixed value, unless its description says otherwise. See CandyRef Expressions. Signal Description: The signal to wait for. Values: • Object path.signal: Written without ¢, such as globals.door_opened or $UI/Box.pressed. • Signal name: A signal of the Engine. Variable Description: The variable that stores the signal's arguments, each time the signal is emitted. A signal without arguments stores null, one with a single argument stores it directly, and one with several stores them as an Array. Optional. Values: • Variable path: Written without ¢, such as globals.hp, $UI/Box/Label.text or file_var('user://save.json').gold. • Empty: Don't store them.