Candy Logo Copyright © 2025-2026 Candy Arts

Suspending Dialogues
A Dialogue can be suspended: it freezes where it is, and picks up from the same point once it's resumed. This is useful when something should temporarily take over the screen, such as a pause menu, an inventory, or a window opened by clicking a Lexicon keyword. Suspending and Resuming Suspension is controlled by your game code, by calling these functions on the Engine:
  • suspend_dialogue() suspends the Dialogue.
  • resume_dialogue() resumes it.
The Engine's dialogue_suspended variable tells whether its Dialogue is currently suspended, and its dialogue_resumed signal is emitted when the Dialogue resumes. What Is Suspended While a Dialogue is suspended:
  • Text stops writing, and the Dialogue can't advance, either on player input or automatically.
  • Waits and choice timers stop counting down, and choices can't be selected.
  • Media played by the Dialogue (voice, audio, video, images, effects, portraits, backgrounds and VN busts) is paused.
  • An Input scene that is open is put on hold.
On resume, everything continues from where it stopped. Suspending Your Own Code (X_Dialogue_Suspended.gd, X_Dialogue_Resumed.gd) The Engine only pauses what it runs itself. What your own code started for the Dialogue keeps going: a character your Move Event script is walking, a tween, a sound played outside the media players. Two hook functions, in User_Data/Functions, let you pause and resume those:
  • x_dialogue_suspended() is called when a Dialogue is suspended, once the Engine has paused everything of its own.
  • x_dialogue_resumed() is called when it's resumed, right before its Lines carry on.
In both, candy_args["caller"] is the Engine. x_dialogue_resumed() also receives "ending", which is true when the Dialogue is only resumed to end: the Engine lifts a suspension before it ends or interrupts a Dialogue. The Engine doesn't wait for these two functions. See Hook Functions. Suspension Settings The Engine's settings, under the Suspend Dialogue category, decide which kinds of media are paused (e.g. suspend_voice, suspend_video, suspend_bg_effects). Specific media players can be left playing by adding their name to media_suspend_immune: for example, to keep the music playing while the Dialogue is suspended. To leave an open Input scene active during the suspension, call suspend_dialogue(0).