Chapter 12

Timers, Latent Nodes & Async

Why Delay works in some graphs and not others, choosing between Tick, Timer and Delay, and what Blueprint "async" really means.

In this chapter

  1. Latent vs. Non-Latent
  2. Where Each Is Allowed
  3. Timers in Depth
  4. Delay Behavior
  5. Choosing Between Tick, Timer and Delay
  6. Blueprint Threading & Async
1

Latent vs. Non-Latent

This is the master distinction, and it explains most of the confusing errors in this area.

Latent — Delay, Retriggerable Delay

Pauses and resumes across frames. Needs an execution context that survives multiple frames.

Not latent — Set Timer

A normal call that returns instantly and schedules a callback with the timer manager.


2

Where Each Is Allowed

ContextDelay / latentSet Timer
Event GraphYesYes
FunctionNoYes
MacroOnly if the macro is used in an Event GraphYes
Construction ScriptNoYes, though rarely useful
A classic footgun. Wrap a Delay in a macro for reuse, then break it the moment someone drops that macro into a function. The macro looks innocent; the error appears somewhere else entirely.

3

Timers in Depth


4

Delay Behavior

The debug-node duration convention

For Draw Debug nodes, Duration = 0 means one frame. For Print String, a 0 duration makes it disappear near-instantly. The intuition is inverted between the two — an easy one to trip on.

5

Choosing Between Tick, Timer and Delay

ToolUse it forWatch out for
TickContinuous per-frame work — smooth interpolation, followingUse sparingly; see Chapter 11
TimerSomething after a delay or on a repeating interval, decoupled from frame rate — cooldowns, periodic checks, spawning wavesMore efficient than a tick-with-a-counter; returns a handle you can cancel
DelayA simple inline sequence — do A, wait two seconds, do BBlueprint-only; doesn't stack cleanly if re-triggered mid-run; wrong for precise or high-frequency timing
The rule. Per-frame goes to Tick. Recurring or scheduled goes to a Timer. A simple inline pause goes to Delay.

Interview drill

Answer out loud before re-reading the chapter.

  1. Timers versus Tick versus latent nodes like Delay: when does each make sense?

6

Blueprint Threading & Async

Mental model. Blueprints schedule work; C++ does the heavy lifting off-thread.

EQS and Behavior Tree ticks have some engine-level optimization, but their Blueprint-exposed nodes still run on the Game Thread. If perception or spatial queries get heavy, move them to C++ with async dispatch.

← Chapter 11 ↑ Index Chapter 13 →