Unreal Engine Blueprints Blueprint Flow Control 4 — Questions and Answers
Question 1: What is the correct way to implement an infinite loop in Blueprints without freezing the editor?
- Use a Looping Timeline or Set Timer by Event so execution yields each iteration (Correct answer)
- Connect the Completed pin of a For Loop back to its input
- Use a While True macro with a Delay node inside
- Use a recursive function with no base case
Correct answer: Use a Looping Timeline or Set Timer by Event so execution yields each iteration
Using a Timeline on loop or a repeating timer allows iterative behavior while yielding control back to the engine each cycle, preventing hangs.
Question 2: In Blueprint, what is a 'Macro' and how does it differ from a Function?
- A Macro is a graph that is inlined at each use site and can have multiple execution inputs/outputs; Functions cannot (Correct answer)
- A Macro runs on a separate thread while Functions run on the game thread
- A Macro can be overridden in child classes; Functions cannot
- A Macro is slower than a Function due to extra overhead
Correct answer: A Macro is a graph that is inlined at each use site and can have multiple execution inputs/outputs; Functions cannot
Macros are expanded inline wherever they are used and support multiple exec input and output pins, while functions have a single entry and exit point.
Question 3: Which node would you use to execute a Blueprint event after a specific real-world time delay, even across level transitions?
- Set Timer by Function Name with a GameInstance-owned target (Correct answer)
- Delay node on the GameInstance Blueprint
- Retriggerable Delay on an Actor
- Do Once with a time-based reset
Correct answer: Set Timer by Function Name with a GameInstance-owned target
Timers owned by the GameInstance persist across level loads, making them the right tool for cross-level timed events.
Question 4: What does the 'Select' node do in Blueprint?
- Returns one of several data values based on an index or boolean without using execution pins (Correct answer)
- Selects a random Actor from the scene
- Routes execution to one of several branches
- Picks the highest value from a list of inputs
Correct answer: Returns one of several data values based on an index or boolean without using execution pins
The Select node is a pure data node that outputs one of its options based on the connected index or boolean, with no execution wiring required.
Question 5: What happens if you call 'Clear and Invalidate Timer by Handle' on a timer handle that has already expired?
- Nothing harmful occurs — the call is safely ignored (Correct answer)
- A Blueprint runtime error is thrown
- The timer restarts from the beginning
- The associated function is called immediately
Correct answer: Nothing harmful occurs — the call is safely ignored
Clearing an already-expired or invalid timer handle is a no-op in Unreal — it does not cause errors or unexpected behavior.
Question 6: In a Blueprint event graph, what does connecting the output exec pin of one node back to an earlier node's input exec pin create?
- An infinite synchronous loop that will freeze the engine (Correct answer)
- A valid repeating logic pattern managed by the engine
- A compile error flagged by the Blueprint editor
- A deferred execution queue
Correct answer: An infinite synchronous loop that will freeze the engine
Wiring exec pins in a cycle creates an infinite synchronous loop that will hang the engine because Blueprint execution does not yield mid-chain.
Question 7: What is the role of the 'Completed' output pin on a For Loop node?
- It fires once after all iterations have finished (Correct answer)
- It fires after each individual iteration
- It fires only if the loop was not broken early
- It fires on the first and last iteration only
Correct answer: It fires once after all iterations have finished
The Completed pin executes once after the For Loop has iterated through all values, signaling that the loop body has fully finished.
What is the correct way to implement an infinite loop in Blueprints without freezing the editor?