Unreal Engine Blueprints Functions, Events, and Macros 2 — Questions and Answers
Question 1: What happens when you call a Function node that has no Return Node in Blueprints?
- The function returns a default value for each output pin type (Correct answer)
- The compiler throws a fatal error and the Blueprint cannot be compiled
- The function executes but skips any code after the call site
- Unreal Engine automatically inserts a Return Node at compile time
Correct answer: The function returns a default value for each output pin type
If a Blueprint function has output pins but no Return Node, those outputs return default values (0, false, empty string, etc.).
Question 2: Which keyword correctly describes a Blueprint Macro's execution pins compared to a Function's execution pins?
- Macros can have multiple input and output execution pins; Functions have exactly one of each (Correct answer)
- Functions can have multiple input execution pins; Macros have exactly one
- Both Macros and Functions are limited to one input and one output execution pin
- Macros have no execution pins; only data pins are allowed
Correct answer: Macros can have multiple input and output execution pins; Functions have exactly one of each
Blueprint Macros support multiple input and output execution pins, making them suitable for branching logic, unlike functions which have a single entry and exit.
Question 3: In Blueprints, what is the primary reason Custom Events can be called from other Blueprints while standard graph events (like BeginPlay) cannot be triggered externally?
- Custom Events appear as callable nodes when you reference another Blueprint's object (Correct answer)
- Standard events are marked private by default and cannot be exposed
- Custom Events compile to public functions in the underlying C++ class
- Standard events require a delegate binding before they can be called externally
Correct answer: Custom Events appear as callable nodes when you reference another Blueprint's object
Custom Events generate a callable node that appears in other Blueprints when you have a reference to the owning actor, making cross-Blueprint calls straightforward.
Question 4: What does checking 'Pure' on a Blueprint Function do?
- Removes execution pins so the function can be used inline like a getter (Correct answer)
- Prevents the function from modifying any variables in the Blueprint
- Marks the function as thread-safe for multithreaded execution
- Forces the function to be inlined at every call site by the compiler
Correct answer: Removes execution pins so the function can be used inline like a getter
Marking a function Pure removes its execution pins, allowing it to be wired directly into data inputs without needing an execution wire.
Question 5: A Blueprint Macro is placed in a MacroLibrary asset. Which statement about this macro is TRUE?
- It can be used by any Blueprint that includes the MacroLibrary without needing an object reference (Correct answer)
- It requires an instance of the MacroLibrary to be spawned in the level
- It can only be used by Blueprints that inherit from the same parent class
- It must be re-compiled each time the Blueprint using it is opened
Correct answer: It can be used by any Blueprint that includes the MacroLibrary without needing an object reference
Macros in a Blueprint MacroLibrary are accessible globally to any Blueprint that has the library referenced, with no object instance required.
Question 6: Which of the following CANNOT be done inside a Blueprint Function that is marked as 'Const'?
- Setting a variable that belongs to the owning Blueprint (Correct answer)
- Reading a variable that belongs to the owning Blueprint
- Calling another Const function on the same Blueprint
- Returning a computed value based on input parameters
Correct answer: Setting a variable that belongs to the owning Blueprint
A Const function guarantees it will not modify the object's state, so setting any member variable is disallowed inside it.
Question 7: When using the 'Delay' node inside a Blueprint, where must it be placed and why?
- Inside a Custom Event or standard event graph, because Delay uses latent actions which require an event context (Correct answer)
- Inside a Function, because Functions run on a separate thread that can be paused
- Inside a Macro, because Macros support asynchronous execution natively
- Anywhere in the graph; Delay works identically in Functions, Macros, and Events
Correct answer: Inside a Custom Event or standard event graph, because Delay uses latent actions which require an event context
Delay is a latent node that relies on the game's tick system and can only be used in event graphs or Custom Events, not inside Blueprint Functions.
What happens when you call a Function node that has no Return Node in Blueprints?