Unreal Engine Blueprints Certification Exam — Questions and Answers
Question 1: Which node would you use to find out the current playback position (in seconds) of a running Timeline?
- Get Current Time
- Get Playback Position (Correct answer)
- Get Play Rate
- Get Timeline Length
Correct answer: Get Playback Position
'Get Playback Position' returns the current time in seconds within the Timeline's duration.
Question 2: Which node would you use in Blueprints to smoothly interpolate between two float values over time?
- Lerp (Float)
- Clamp
- Timeline
- FInterp To (Correct answer)
Correct answer: FInterp To
FInterp To smoothly moves a current float value toward a target at a given interp speed, commonly used in Tick for smooth transitions.
Question 3: What does the 'Is Valid' macro typically check in Blueprint flow control?
- Whether an object reference is non-null and points to a living object (Correct answer)
- Whether a float value is within a valid numeric range
- Whether a string contains valid characters
- Whether an array index is within bounds
Correct answer: Whether an object reference is non-null and points to a living object
Is Valid checks that an object reference is not null and that the referenced object has not been garbage collected or destroyed.
Question 4: What is the C++ equivalent of a Blueprint Interface in Unreal Engine?
- A TSubclassOf template reference pointing to the abstract base class
- An FDelegateMulticast with a dynamic signature exposed via UPROPERTY
- A paired UInterface and IInterface class where UInterface registers it with the reflection system and IInterface defines the pure virtual C++ functions (Correct answer)
- A UCLASS with BlueprintCallable virtual functions marked as BlueprintImplementableEvent
Correct answer: A paired UInterface and IInterface class where UInterface registers it with the reflection system and IInterface defines the pure virtual C++ functions
In C++, a UInterface class registers the interface with Unreal's reflection system, while the paired IInterface class defines the virtual functions that implementing classes must provide.
Question 5: Which flow control node is best for routing execution to one of several outputs based on an integer value?
- Branch
- Switch on Int (Correct answer)
- Multi Gate
- Select
Correct answer: Switch on Int
Switch on Int evaluates an integer and routes execution to the matching output pin, similar to a switch-case statement in code.
Question 6: Which event fires on an actor when it is first placed in or streamed into the level?
- Event Initialize
- Event Actor Loaded
- Event Spawned
- Event Begin Play (Correct answer)
Correct answer: Event Begin Play
Event Begin Play fires once when the actor becomes active in the game world, whether placed in the editor or spawned/streamed at runtime.
Question 7: What happens if you try to access an Object Reference variable that has not been set (is null)?
- The variable auto-initializes to a default object
- Blueprints prevent null access at compile time
- The Blueprint will throw an 'Accessed None' warning and potentially crash (Correct answer)
- The node will silently skip execution
Correct answer: The Blueprint will throw an 'Accessed None' warning and potentially crash
Accessing a null Object Reference causes an 'Accessed None' error at runtime, which can crash the game if unhandled.
Question 8: What is the result of calling a function marked as 'Pure' inside a Blueprint execution chain?
- It executes without consuming an execution pin and can be called freely (Correct answer)
- It runs on a background thread automatically
- It blocks further execution until it returns
- It can only be called once per frame
Correct answer: It executes without consuming an execution pin and can be called freely
Pure functions have no execution pins and can be wired directly into data inputs anywhere in the graph without interrupting the flow.
Question 9: What is the performance benefit of using 'Soft References' (TSoftObjectPtr / Asset ID) instead of hard references in Blueprints?
- Soft references do not force the referenced asset to load into memory until explicitly loaded, reducing initial memory footprint (Correct answer)
- Soft references bypass the garbage collector entirely
- Soft references automatically stream assets on a background thread without any code
- Soft references always load faster than hard references at runtime
Correct answer: Soft references do not force the referenced asset to load into memory until explicitly loaded, reducing initial memory footprint
Soft references store only a path/ID, keeping the referenced asset unloaded until you explicitly async-load it, whereas hard references load the asset immediately at startup.
Question 10: If you bind a Custom Event to a dispatcher in BeginPlay, but the listening Actor is in a different sublevel that loads asynchronously, what problem might occur?
- The binding will fail silently and log an error to the output
- The binding may happen after the dispatcher has already been called, missing the event (Correct answer)
- Unreal Engine prevents cross-sublevel bindings automatically
- The dispatcher will queue the event until the sublevel loads
Correct answer: The binding may happen after the dispatcher has already been called, missing the event
If the dispatcher fires before the sublevel finishes loading and binding occurs, the listener misses the broadcast since dispatchers don't queue missed calls.
Question 11: Can a single Blueprint class implement more than one Blueprint Interface at the same time?
- Yes, a Blueprint can implement any number of interfaces by adding each one in Class Settings under Implemented Interfaces (Correct answer)
- No, a Blueprint can only implement one interface at a time due to engine limitations
- No, implementing multiple interfaces requires a C++ base class
- Yes, but only if all interfaces share a common parent interface
Correct answer: Yes, a Blueprint can implement any number of interfaces by adding each one in Class Settings under Implemented Interfaces
Blueprints support multiple interface implementation — simply add each interface in the Class Settings Interfaces list and implement all required functions.
Question 12: Which property on a Button widget controls whether it can receive click events from the player?
- Interaction Mode
- Click Through
- Is Enabled (Correct answer)
- Visibility set to Visible
Correct answer: Is Enabled
'Is Enabled' determines whether the button responds to user input; a disabled button ignores clicks even when fully visible.
Question 13: Which Unreal Engine profiling tool provides a hierarchical CPU timing view including Blueprint function call costs?
- Unreal Insights (Correct answer)
- Asset Audit tool
- Blueprint Debugger
- GPU Visualizer
Correct answer: Unreal Insights
Unreal Insights captures and displays hierarchical CPU timing data including Blueprint execution costs across frames.
Question 14: What is an Interface in Unreal Engine Blueprints primarily used for?
- Allowing unrelated actor classes to communicate through shared function signatures (Correct answer)
- Defining collision presets
- Creating visual components for actors
- Sharing variables between multiple actors
Correct answer: Allowing unrelated actor classes to communicate through shared function signatures
Blueprint Interfaces define function signatures that any class can implement, enabling decoupled communication between unrelated actor types.
Question 15: Which of the following correctly describes a 'Soft Class Reference' variable?
- It can only reference Blueprint classes, not C++ classes
- It stores the class name as a plain string
- It references a class without forcing it to load into memory immediately (Correct answer)
- It is the same as a hard Class Reference
Correct answer: It references a class without forcing it to load into memory immediately
Soft Class Reference stores a path to a class that is only loaded into memory when explicitly requested, supporting async loading.
Question 16: An Event Dispatcher bound in BeginPlay should ideally be unbound where?
- In Tick
- In a Timer
- In the Game Mode
- In EndPlay or Destroyed (Correct answer)
Correct answer: In EndPlay or Destroyed
Unbinding Event Dispatchers in EndPlay or the Destroyed event prevents memory leaks and stale delegate references.
Question 17: What does the 'Replication' setting on a Blueprint variable control?
- Whether the variable is duplicated in memory for thread safety
- Whether the variable is included in the save game system
- Whether the variable is visible in the Blueprint Debugger panel
- Whether and how the variable is synchronized from server to clients over the network (Correct answer)
Correct answer: Whether and how the variable is synchronized from server to clients over the network
The Replication setting (None, Replicated, or RepNotify) determines if and how a variable's value is networked from server to connected clients.
Question 18: A 'BP_Lever' Actor needs to notify multiple, unrelated Actors (e.g., a 'BP_Door' and a 'BP_Trap') when it is pulled. The lever should not need a direct reference to the door or the trap. Which communication method allows the lever to broadcast a signal that any interested Actor can listen and bind events to?
- Using the 'Get All Actors of Class' node for each type of Actor.
- Creating and Calling an Event Dispatcher. (Correct answer)
- Casting to each potential listening Actor.
- Using a Blueprint Interface with a 'LeverPulled' function.
Correct answer: Creating and Calling an Event Dispatcher.
Event Dispatchers are designed for a one-to-many communication pattern where the broadcaster (the lever) does not need to know about the listeners. Other Blueprints can 'bind' an event to the dispatcher, and when the dispatcher is called, all bound events are executed.
Question 19: What does marking a Blueprint variable as 'Expose on Spawn' enable?
- The variable is only accessible from the Construction Script
- The variable can be set as a pin directly on the Spawn Actor from Class node (Correct answer)
- The variable becomes visible in the level viewport outliner
- The variable is automatically replicated to all clients
Correct answer: The variable can be set as a pin directly on the Spawn Actor from Class node
Expose on Spawn adds the variable as an input pin on Spawn Actor from Class, letting you initialize it inline without a separate Set node after spawning.
Question 20: When two actors' collision components overlap, which actor's 'On Component Begin Overlap' event fires?
- Only the actor that moved fires the event
- Both actors' overlap events fire if both components have overlap enabled (Correct answer)
- Only the stationary actor fires the event
- Only the actor with higher collision priority fires
Correct answer: Both actors' overlap events fire if both components have overlap enabled
Unreal fires overlap events on both involved components as long as each has its collision response set to Overlap for the relevant channel.
Question 21: What is the primary function of the 'Update' execution pin on a Timeline node in a Blueprint graph?
- It executes only when the 'Play from Start' input is called.
- It executes once when the Timeline component is created in the Blueprint.
- It executes once when the Timeline has completed its full duration.
- It executes every frame that the Timeline is actively playing. (Correct answer)
Correct answer: It executes every frame that the Timeline is actively playing.
The 'Update' pin fires on every tick or frame while the Timeline is running. This is the core mechanism that allows for smooth animations, as it provides a continuous execution pulse to update an object's properties incrementally over the Timeline's duration.
Question 22: In C++, what Unreal macro is used to declare a delegate type that Blueprint Event Dispatchers are based on?
- UFUNCTION(Multicast)
- UPROPERTY(BlueprintDispatch)
- DECLARE_DYNAMIC_MULTICAST_DELEGATE (Correct answer)
- DECLARE_EVENT_DISPATCHER
Correct answer: DECLARE_DYNAMIC_MULTICAST_DELEGATE
Blueprint-exposed Event Dispatchers are backed by DECLARE_DYNAMIC_MULTICAST_DELEGATE in C++, which supports multiple bound listeners.
Question 23: What does the 'Difference' (or 'Set Difference') node return when given Sets A and B?
- Elements in A that are NOT in B (Correct answer)
- Elements that are in either A or B but not both
- Elements in B that are NOT in A
- The total count of unique elements across both sets
Correct answer: Elements in A that are NOT in B
Set Difference (A - B) returns elements present in A but absent from B, effectively subtracting B's contents from A.
Question 24: What does the 'Is Valid' macro do in Blueprints?
- Verifies that an object reference is not None and the object has not been garbage collected (Correct answer)
- Checks if a numerical value is within a valid range
- Validates Blueprint compilation with no errors
- Checks if an actor is within the playable area
Correct answer: Verifies that an object reference is not None and the object has not been garbage collected
'Is Valid' checks whether an object reference points to a live, non-destroyed object, routing execution to 'Is Valid' or 'Is Not Valid' accordingly.
Question 25: What is the correct way to move a Static Mesh Component to a new world location each frame in Blueprints?
- Use Set Relative Location with delta time
- Call Set World Location on the component in the Event Tick (Correct answer)
- Call Set Actor Location on the owning actor
- Use Add Force on the component every frame
Correct answer: Call Set World Location on the component in the Event Tick
Set World Location called on the specific component reference moves only that component to the specified world-space position.
Question 26: Which node is best suited for finding all actors of a specific class within a radius at runtime?
- Get All Actors of Class combined with a distance check
- Line Trace By Channel
- Get Overlapping Actors
- Sphere Overlap Actors (Correct answer)
Correct answer: Sphere Overlap Actors
Sphere Overlap Actors performs a sphere-shaped overlap query at a specified location and radius, returning all actors of a given class within that area.
Question 27: How do you call a Blueprint Interface function on ALL actors in the level that implement it?
- Use an Event Dispatcher configured to Interface broadcast mode
- Use 'Get All Actors with Interface' to get the array, then loop with ForEach and call the interface function on each element (Correct answer)
- Use the 'Broadcast Interface' node with the interface class as input
- Enable the Multicast checkbox on the interface function in the Interface asset
Correct answer: Use 'Get All Actors with Interface' to get the array, then loop with ForEach and call the interface function on each element
'Get All Actors with Interface' returns every implementing actor in the level, and a ForEach loop lets you call the interface function on each one.
Question 28: What does the 'Select' node do in Blueprint?
- Picks the highest value from a list of inputs
- Returns one of several data values based on an index or boolean without using execution pins (Correct answer)
- Routes execution to one of several branches
- Selects a random Actor from the scene
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 29: A developer wants to fire a Blueprint event exactly once when a timer expires. Which approach is correct?
- Use 'Set Timer by Event' with looping disabled and bind it to a Custom Event (Correct answer)
- Use 'Create Timer' and set the Duration to -1 to indicate a single-fire timer
- Use the Delay node directly inside an event and connect it to another Delay to create a one-shot timer
- Use 'Set Timer by Function Name' with the Loop checkbox enabled and manually call Clear Timer
Correct answer: Use 'Set Timer by Event' with looping disabled and bind it to a Custom Event
Set Timer by Event with looping set to false fires the bound Custom Event once after the specified duration.
Question 30: Which UMG node allows you to dynamically add a widget as a child of a Vertical Box at runtime?
- Append Child
- Set Content
- Add Child to Panel (Correct answer)
- Insert Widget
Correct answer: Add Child to Panel
Add Child to Panel is the generic node that works with any UPanelWidget subclass (Vertical Box, Horizontal Box, etc.) to add a widget child at runtime.
Question 31: Which Blueprint communication method is MOST appropriate when many unrelated Actors need to react to a single Actor's event without the broadcaster knowing who is listening?
- Event Dispatchers (Correct answer)
- A shared global variable polled on Tick
- Blueprint Interfaces called on all actors
- Direct function calls with a stored array of references
Correct answer: Event Dispatchers
Event Dispatchers are ideal for one-to-many decoupled communication where the broadcaster doesn't need to track listeners.
Question 32: Which Blueprint node enables physics simulation on a Static Mesh Component at runtime?
- Activate Physics
- Enable Physics Body
- Set Simulate Physics (Correct answer)
- Toggle Rigid Body
Correct answer: Set Simulate Physics
Set Simulate Physics is the correct node used to enable or disable physics simulation on a primitive component like a Static Mesh Component.
Question 33: A Timeline curve uses 'Constant' interpolation between two keys. What does the output value look like?
- It oscillates between the two values
- It averages the two key values throughout
- It smoothly lerps between the two key values
- It holds the first key's value and jumps instantly to the second at the second key's time (Correct answer)
Correct answer: It holds the first key's value and jumps instantly to the second at the second key's time
Constant interpolation holds the previous keyframe value until the next keyframe time, then snaps instantly.
Question 34: Which node allows you to sort a Blueprint Array of floats in ascending order?
- Sort Array
- Order Array
- Array Sort Ascending
- There is no built-in sort node; you must use a custom macro (Correct answer)
Correct answer: There is no built-in sort node; you must use a custom macro
Unreal Engine's Blueprint node library does not include a built-in sort node; sorting requires a custom macro, plugin, or C++ function exposed to Blueprints.
Question 35: Which variable type in Blueprints stores a reference to an Actor placed in the level?
- Soft Object Reference
- Class Reference
- Asset ID
- Object Reference (Correct answer)
Correct answer: Object Reference
Object Reference stores a hard reference to a specific Actor or object instance in the level.
Question 36: What is the difference between 'Disable Breakpoint' and 'Remove Breakpoint' in the Blueprint editor?
- Disable keeps the marker but skips it during execution; Remove deletes it entirely (Correct answer)
- Disable deletes the breakpoint; Remove converts it to a watch point
- Both options produce the same result
- Disable converts it to a log statement; Remove stops the game
Correct answer: Disable keeps the marker but skips it during execution; Remove deletes it entirely
Disabling a breakpoint preserves its location for later use while preventing it from pausing execution, whereas removing it deletes it completely.
Question 37: What is the purpose of the 'Slot' object returned when you add a child widget to a panel in Blueprint?
- It holds layout properties (padding, alignment, size) specific to that parent panel type (Correct answer)
- It is a reference to the child widget cast to its correct class
- It controls the render order z-index globally across all panels
- It stores the widget's animation state machine
Correct answer: It holds layout properties (padding, alignment, size) specific to that parent panel type
A Slot wraps the child-parent relationship and exposes panel-specific layout data like padding and fill size that vary by panel type.
Question 38: An Event Track in a Timeline is best used for which scenario?
- Controlling the camera field of view continuously
- Triggering discrete Blueprint events at specific moments during playback (Correct answer)
- Storing color values for material parameters
- Smoothly interpolating a float value over time
Correct answer: Triggering discrete Blueprint events at specific moments during playback
Event Tracks fire named Blueprint events at exact time points within the Timeline, ideal for synchronized one-shot actions.
Question 39: How do you transfer data from OTHER BLUEPRINTS to a Widget Blueprint, such as from a Game Instance BP?
- You can create a widget "binding" to marry a variable from some other blueprint to a widget present in your Widget Blueprint. (Correct answer)
- By using a "Link" node within an event graph.
- You can't.
- You can ONLY pass information from a Widget BP to some other BP....not the other way around.
Correct answer: You can create a widget "binding" to marry a variable from some other blueprint to a widget present in your Widget Blueprint.
To transfer data from other Blueprints to a Widget Blueprint, you can utilize widget bindings. This involves creating a binding on a widget's property (like text content or visibility) that links it to a function. This function can then access variables or properties from other Blueprints (e.g., a Game Instance) to dynamically update the widget's appearance or behavior based on external data.
Question 40: 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 compile error flagged by the Blueprint editor
- A valid repeating logic pattern managed by the engine
- 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 41: What does Blueprint Nativization do to improve runtime performance during game packaging?
- Converts Blueprint graphs into C++ code at cook time to eliminate Blueprint VM overhead (Correct answer)
- Compiles Blueprints to machine code at editor startup
- Converts Blueprint nodes to Lua scripts for faster parsing
- Moves Blueprint execution to run on the GPU
Correct answer: Converts Blueprint graphs into C++ code at cook time to eliminate Blueprint VM overhead
Blueprint Nativization translates Blueprint graphs into C++ during the packaging/cooking step, removing VM interpretation overhead at runtime.
Question 42: In a Level Blueprint, how do you bind to an Event Dispatcher on a specific Actor placed in the level?
- Add a Blueprint Interface to the Level Blueprint
- Override the Actor's parent class dispatcher
- Use 'Get All Actors of Class' and loop through them
- Drag the Actor from the level into the Level Blueprint and use 'Bind Event to' on its dispatcher (Correct answer)
Correct answer: Drag the Actor from the level into the Level Blueprint and use 'Bind Event to' on its dispatcher
You can drag level-placed Actors directly into the Level Blueprint as references, then call 'Bind Event to' on their dispatchers.
Question 43: Can an Event Dispatcher in Unreal Engine Blueprints accept parameters when called?
- Yes, but only a single Boolean value is supported
- Yes, you can define input parameters on the dispatcher that are passed to all bound events (Correct answer)
- No, dispatchers can only send a signal with no data
- No, parameters require using interfaces instead
Correct answer: Yes, you can define input parameters on the dispatcher that are passed to all bound events
Event Dispatchers support custom input parameters defined in their Details panel, which are forwarded to every bound event.
Question 44: In Blueprints, what is the purpose of the 'LinearColor' variable type?
- Stores RGBA color values in linear color space for accurate rendering (Correct answer)
- Stores only RGB values without an alpha channel
- Stores gamma-corrected sRGB color values only
- Stores colors as hex strings
Correct answer: Stores RGBA color values in linear color space for accurate rendering
LinearColor stores four float components (R, G, B, A) in linear color space, used internally for rendering calculations.
Question 45: When you add a new Float Track inside the Timeline editor and name it 'Alpha', how do you access that track's output in the Blueprint graph?
- As a new float output pin labeled 'Alpha' directly on the Timeline node (Correct answer)
- Through a Timeline component reference getter
- By casting the Timeline node to a float
- Via a separate Get Variable node named Alpha
Correct answer: As a new float output pin labeled 'Alpha' directly on the Timeline node
Each named track in the Timeline editor automatically creates a corresponding output pin of the appropriate type on the Timeline node in the graph.
Question 46: What is the purpose of the 'Entry' node automatically present at the top of every Blueprint Function graph?
- It is a placeholder that is replaced by the actual function call site at compile time
- It allows the function to receive events from the engine's event system
- It defines the function's return type and must be connected to the Return Node
- It is the starting execution point of the function and exposes the function's input parameters as output pins (Correct answer)
Correct answer: It is the starting execution point of the function and exposes the function's input parameters as output pins
The Entry node marks where execution begins when the function is called and provides the function's input parameters as output data pins to use inside the graph.
Question 47: In a UMG Widget Blueprint, what is an Event Dispatcher primarily used for?
- Automatically syncing widget variables with the Game Instance
- Notifying external Blueprints (like the HUD or Game Mode) that something happened in the widget (Correct answer)
- Sending data between two Widget Blueprints directly
- Calling functions inside the same widget's Graph
Correct answer: Notifying external Blueprints (like the HUD or Game Mode) that something happened in the widget
Event Dispatchers allow a widget to broadcast events that other Blueprints can bind to, decoupling the widget from game logic.
Question 48: How can you reverse a Timeline animation without creating a separate reversed curve?
- Use the 'Reverse' or 'Reverse from End' input pins on the Timeline node (Correct answer)
- Negate the output float value
- Set Play Rate to -1 manually
- Duplicate and flip the curve asset
Correct answer: Use the 'Reverse' or 'Reverse from End' input pins on the Timeline node
The 'Reverse' and 'Reverse from End' execution pins play the Timeline backwards using the same curve data.
Question 49: A Progress Bar widget's 'Percent' property is bound to a Blueprint function. When does that function execute?
- Only when the widget is first constructed
- Every frame, as long as the widget is visible (Correct answer)
- When the player explicitly calls Refresh UI
- Only when the underlying variable changes
Correct answer: Every frame, as long as the widget is visible
Property bindings in UMG are polled every frame, so the bound function is called each frame the widget is rendered.
Question 50: Which node do you use to assign an Event Dispatcher call to be triggered by a specific in-game event, such as when an overlap occurs?
- You manually connect the overlap event's exec pin to the 'Call [Dispatcher]' node (Correct answer)
- Use 'Assign Event Dispatcher' which auto-creates the connection
- Use 'Auto-Bind On Overlap' in the dispatcher settings
- Dispatchers cannot be triggered by overlap events
Correct answer: You manually connect the overlap event's exec pin to the 'Call [Dispatcher]' node
You wire the overlap event's execution output directly to the 'Call [DispatcherName]' node to broadcast on overlap.
Question 51: Which Blueprint node fires its output pins one at a time across successive Event Tick calls rather than all at once?
- Do N
- Flip Flop
- Multi Gate with Loop disabled (Correct answer)
- Sequence
Correct answer: Multi Gate with Loop disabled
With Loop disabled, a Multi Gate advances its active output each time it is triggered, making it useful for step-by-step sequences driven by repeated events.
Question 52: You have created a Widget Blueprint named 'WBP_PauseMenu'. In your Player Controller Blueprint, which sequence of nodes is required to create this widget and display it on the screen for player interaction?
- Create Widget -> Add to Viewport (Correct answer)
- Create Widget -> Set Show Mouse Cursor
- Spawn Actor from Class -> Set Visibility
- Get Widget of Class -> Add to Player Screen
Correct answer: Create Widget -> Add to Viewport
The 'Create Widget' node is used to instantiate a Widget Blueprint in the game world. However, creating it doesn't automatically make it visible. The 'Add to Viewport' node must be called on the newly created widget reference to draw it on the player's screen. 'Spawn Actor' is for Actors, not Widgets. 'Set Show Mouse Cursor' is a separate step often done on the Player Controller but is not part of the widget display sequence itself.
Question 53: Which component would you add to a Blueprint actor to enable physics simulation such as gravity and collision response?
- Physics Actor Component
- Gravity Component
- Static Mesh Component with 'Simulate Physics' enabled (Correct answer)
- Rigid Body Constraint
Correct answer: Static Mesh Component with 'Simulate Physics' enabled
Enabling 'Simulate Physics' on a Static Mesh Component activates the physics engine for that component, applying gravity, forces, and collision responses.
Question 54: What does 'Union' do when applied to two Blueprint Sets A and B?
- Checks whether A and B share any elements
- Returns elements present in both A and B only
- Returns all unique elements from both A and B combined (Correct answer)
- Returns elements in A that are not in B
Correct answer: Returns all unique elements from both A and B combined
Union merges two Sets into one Set containing every unique element from both, removing all duplicates.
Question 55: A Main Menu widget ('WBP_MainMenu') has a 'Quit Game' button. When this button is clicked, the game should close. What is the most direct and appropriate way to implement this logic within the 'WBP_MainMenu' Blueprint graph?
- From the button's 'OnClicked' event, create a reference to the Game Instance and call a quit function.
- From the button's 'OnClicked' event, call the 'Quit Game' latent node. (Correct answer)
- Use an Event Dispatcher to signal the Level Blueprint to quit the game.
- Get the Player Character, cast to it, and call a 'Quit Game' custom event.
Correct answer: From the button's 'OnClicked' event, call the 'Quit Game' latent node.
Unreal Engine provides a built-in 'Quit Game' node that is the standard, platform-agnostic way to close the application. It is directly accessible in any Blueprint graph, including a Widget Blueprint. The other methods add unnecessary complexity and coupling for such a common and universal engine-level function.
Question 56: Which node would you use to execute logic on every Nth call in Blueprints?
- For Loop
- Do N (Correct answer)
- Do Once
- Sequence
Correct answer: Do N
The Do N node allows execution to pass through only N times before requiring a reset, making it ideal for limiting repeated actions.
Question 57: In Blueprints, how do you add a new entry to a Map or overwrite an existing key's value?
- 'Insert' node for new entries, 'Replace' for existing
- 'Add' node — it adds if key is new, or overwrites if key already exists (Correct answer)
- 'Set' for existing keys, 'Push' for new keys
- 'Append' for new, 'Modify' for existing
Correct answer: 'Add' node — it adds if key is new, or overwrites if key already exists
The 'Add' node on a Blueprint Map is an upsert — it inserts a new key-value pair or replaces the value if the key is already present.
Question 58: What is the main advantage of using a Struct variable over individual variables in Blueprints?
- Structs are stored more efficiently than primitive variables
- Structs allow their members to be replicated individually
- Structs group related data into a single reusable type that can be passed as one argument (Correct answer)
- Structs automatically initialize all member variables to zero
Correct answer: Structs group related data into a single reusable type that can be passed as one argument
Structs bundle multiple related values into one type, simplifying function signatures and improving code organization.
Question 59: What is the correct order of operations when setting up dispatcher communication: Actor A dispatches, Actor B listens?
- A calls the dispatcher first, then B binds to receive missed calls
- B binds first, then A calls the dispatcher when needed (Correct answer)
- A must store a reference to B before the dispatcher is created
- B must be created after A calls the dispatcher
Correct answer: B binds first, then A calls the dispatcher when needed
The listener (B) must bind to the dispatcher before it is called; events broadcast before binding are missed.
Question 60: Which Blueprint node retrieves the size of the player's viewport in pixels, useful for scaling UI elements?
- Get Display Resolution
- Get Viewport Size (Correct answer)
- Get Screen Size
- Get Render Target Size
Correct answer: Get Viewport Size
'Get Viewport Size' returns the current width and height of the game viewport as integers, allowing resolution-aware UI calculations.
Question 61: What does 'Collapse to Function' do when you select a group of Blueprint nodes?
- Converts the nodes to equivalent C++ code
- Wraps the selected nodes into a new reusable function with matching input/output pins (Correct answer)
- Collapses the nodes visually into a single comment for readability
- Deletes the selected nodes and replaces them with a comment box
Correct answer: Wraps the selected nodes into a new reusable function with matching input/output pins
'Collapse to Function' encapsulates the selected node group into a new Blueprint function, automatically creating input and output pins to match the original connections.
Question 62: In Blueprints, what does setting a variable's 'Expose on Spawn' property do?
- Enables the variable to be replicated over the network
- Makes the variable visible in the viewport
- Allows the variable to be set when spawning an Actor of that class (Correct answer)
- Automatically initializes the variable on BeginPlay
Correct answer: Allows the variable to be set when spawning an Actor of that class
Expose on Spawn makes the variable available as a pin on the Spawn Actor node so it can be set at spawn time.
Question 63: How can Blueprint Interfaces be combined with the Gameplay Tag system for flexible actor queries?
- Blueprint Interfaces automatically generate Gameplay Tags for each function they define
- Gameplay Tags replace Blueprint Interfaces entirely in Unreal Engine 5
- Interface functions can only execute on actors that carry a matching Gameplay Tag
- Use 'Get All Actors with Interface' then filter the results by Gameplay Tag to target a specific subset of implementing actors (Correct answer)
Correct answer: Use 'Get All Actors with Interface' then filter the results by Gameplay Tag to target a specific subset of implementing actors
Combining interface queries with Gameplay Tag filtering lets you target actors that both implement the interface and carry specific tags for fine-grained queries.
Question 64: Which node is used to retrieve a reference to the player controller from within a Widget Blueprint?
- Get Owning Player (Correct answer)
- Get Player Controller
- Get Player Pawn
- Get Owning Actor
Correct answer: Get Owning Player
Get Owning Player returns the Player Controller that owns the widget, and is the preferred method inside a Widget Blueprint.
Question 65: When using the 'Spawn Actor from Class' node to create a projectile, you need to immediately set its initial velocity using a function within the projectile's Blueprint. Which output pin on the 'Spawn Actor' node provides the necessary reference to the newly created instance?
- The 'Spawn Transform' pin.
- The 'Return Value' pin. (Correct answer)
- The output execution pin.
- The 'Owner' pin.
Correct answer: The 'Return Value' pin.
The 'Return Value' output pin provides a direct object reference to the Actor that was just spawned. You can drag from this pin to access and modify the new Actor's variables or call its functions immediately after it has been created.
Question 66: Which Blueprint node retrieves the actor that owns a specific component?
- Get Owner (Correct answer)
- Get Outer Object
- Get Parent Actor
- Get Attached Actor
Correct answer: Get Owner
The Get Owner node, called on a component reference, returns the actor that owns that component.
Question 67: What happens when 'Call [DispatcherName]' is executed but no events are currently bound to it?
- The game pauses until a binding is registered
- Nothing happens — the call is silently ignored (Correct answer)
- Unreal Engine logs an error and halts execution
- The dispatcher binds to itself as a fallback
Correct answer: Nothing happens — the call is silently ignored
Calling a dispatcher with no bound events is safe and simply does nothing — no error is thrown.
Question 68: In Blueprint scripting, what does a 'Class Reference' variable store?
- The parent class of a given Blueprint
- The name of the class as a string
- A reference to a class itself, not an instance of that class (Correct answer)
- A spawned instance of the specified class
Correct answer: A reference to a class itself, not an instance of that class
A Class Reference variable holds a pointer to the class type itself, useful for spawning actors or comparing object types.
Question 69: A developer wants to display the player's current health on a Progress Bar in the HUD. The health is a float variable in the 'PlayerCharacter' Blueprint that changes frequently. What is the most efficient method to make the Progress Bar's value update automatically?
- Create an Event Dispatcher in the Player Character that is called on health changes, and bind an event in the widget to it.
- Use a Property Binding on the Progress Bar's 'Percent' property to a function that gets and calculates the Player Character's health percentage. (Correct answer)
- In the Player Character, create a reference to the HUD widget and call a custom event on it every time health changes.
- In the Widget's Event Tick, get the Player Character, get the health, and set the Progress Bar's percent.
Correct answer: Use a Property Binding on the Progress Bar's 'Percent' property to a function that gets and calculates the Player Character's health percentage.
Property Binding is a feature designed for this exact purpose. The engine automatically calls the bound function whenever the widget needs to be drawn, ensuring the displayed value is always up-to-date. While event-driven updates (Event Dispatchers) are also a good practice for performance, property binding is the most direct and common method for linking a UI property to a game variable. Using Event Tick for this is highly inefficient as it runs every frame regardless of whether the value has changed.
Question 70: What happens when you call 'Clear' on a Blueprint Map variable?
- Removes only the keys, leaving empty values
- Removes all key-value pairs, leaving an empty map (Correct answer)
- Deletes the map variable entirely from the Blueprint
- Resets all values to their default types
Correct answer: Removes all key-value pairs, leaving an empty map
The 'Clear' node empties the map of all entries but the variable itself remains and can still be used.
Question 71: In the context of Blueprint communication, what is a 'circular dependency' and why is it a problem?
- Blueprint A references Blueprint B which references Blueprint A, causing load order issues (Correct answer)
- Two Blueprints that both try to Tick at the same time
- An Event Dispatcher that calls itself recursively
- A Cast node that fails and re-tries in a loop
Correct answer: Blueprint A references Blueprint B which references Blueprint A, causing load order issues
Circular dependencies cause compile-time and load-order errors because each Blueprint waits on the other to load first.
Question 72: Which of the following statements accurately describes a key difference between Blueprint Functions and Macros?
- Macros can be called from other Blueprints, but Functions are restricted to the Blueprint they are created in.
- Macros are compiled as shared, reusable code, while Functions are copied into the graph at each call site.
- Functions can have multiple execution output pins, while Macros can only have one.
- Functions can have local variables, while Macros cannot. (Correct answer)
Correct answer: Functions can have local variables, while Macros cannot.
Functions have their own scope and can contain local variables that exist only for the duration of the function's execution. Macros, on the other hand, are expanded into the graph where they are placed, sharing the same scope and variable space as that graph, and thus do not have their own local variables. Macros can have multiple execution outputs, while functions have only one. Functions are compiled once and called, whereas Macros are essentially a copy-paste of nodes.
Question 73: In Blueprint, what is a 'Retriggerable Delay' and how does it differ from a standard Delay?
- Retriggerable Delay restarts its timer each time it is triggered, while Delay ignores new triggers until complete (Correct answer)
- Retriggerable Delay can be stopped mid-count; Delay cannot
- They are identical in behavior
- Retriggerable Delay uses real-world time; Delay uses game time
Correct answer: Retriggerable Delay restarts its timer each time it is triggered, while Delay ignores new triggers until complete
A Retriggerable Delay resets and restarts its countdown whenever a new trigger arrives, whereas a standard Delay ignores re-triggers until it finishes.
Question 74: You have a 'WBP_Inventory' widget that contains a 'Vertical Box' named 'ItemList'. You want to dynamically add 'WBP_InventoryItem' widgets to this list at runtime. Which of the following nodes should be used to add a newly created 'WBP_InventoryItem' as a child of the 'ItemList' Vertical Box?
- Add to Viewport
- Add Child (Correct answer)
- Set Content
- Attach to Component
Correct answer: Add Child
Panel Widgets like Vertical Box, Horizontal Box, and Grid Panel have an 'Add Child' function. This function takes a widget reference as input and adds it to the panel's content list, making it appear within that panel on screen. 'Add to Viewport' adds the widget to the root of the screen, not inside another widget's panel. 'Attach to Component' is for actor components, and 'Set Content' is not a standard node for adding items incrementally.
Question 75: Which Blueprint node allows you to read the value of a variable by name at runtime without a direct reference?
- Resolve Variable
- Get Variable by Name (via reflection or Property Access nodes) (Correct answer)
- Find Variable
- Dynamic Get
Correct answer: Get Variable by Name (via reflection or Property Access nodes)
Property Access nodes and reflection-based Get Variable by Name allow reading variables dynamically using their name as a string.
Question 76: Which node allows a Blueprint actor to send a custom event to all actors overlapping it simultaneously?
- Multicast RPC node
- Send Event to Overlapping
- For Each Loop over Get Overlapping Actors results (Correct answer)
- Broadcast a Delegate to all actors
Correct answer: For Each Loop over Get Overlapping Actors results
You retrieve overlapping actors into an array and iterate with a For Each Loop, calling the desired event or interface message on each one.
Question 77: Which collision preset is best suited for an invisible volume that should block all actors from passing through?
- BlockAll (Correct answer)
- PhysicsActor
- OverlapAllDynamic
- IgnoreAll
Correct answer: BlockAll
The BlockAll preset sets all collision channels to Block, making the volume act as an impassable barrier for all actors.
Question 78: When using a 'For Loop with Break', what triggers the early exit from the loop?
- Calling the parent function's return node
- The loop index reaching zero
- Execution reaching the Break input pin (Correct answer)
- A boolean condition becoming false automatically
Correct answer: Execution reaching the Break input pin
The For Loop with Break node exits immediately when execution is routed into its Break input pin, stopping iteration before the index reaches the limit.
Question 79: What engine is Blueprint based on?
- CryEngine
- Unity Engine
- Unity
- Unreal Engine (Correct answer)
Correct answer: Unreal Engine
Blueprints are an integral and proprietary visual scripting system developed specifically for the Unreal Engine. They are deeply integrated into the engine's architecture, allowing developers to build game logic and functionality directly within the Unreal Editor without writing traditional code.
Question 80: You have an inventory system that uses an Array to store references to collected item actors. To display the most recently collected item, you need to retrieve the last element from this Array. Which combination of nodes is the most direct way to achieve this?
- Use the 'Length' node and subtract 1 to find the final index, then use a 'Get' node.
- Use a 'ForEachLoop', and on the 'Completed' pin, use the value from the 'Array Element' pin.
- Use the 'Last Index' node to get the index of the final element, and feed that index into a 'Get' node. (Correct answer)
- Use the 'Find' node with a wildcard to locate the last item in the sequence.
Correct answer: Use the 'Last Index' node to get the index of the final element, and feed that index into a 'Get' node.
The 'Last Index' node is specifically designed to return the index of the last element in an array (Length - 1). This value can be directly plugged into the 'Index' pin of a 'Get (a copy)' node to retrieve the last element, making it the most direct and purpose-built method.
Question 81: How do you call a Blueprint Interface function on an actor reference in a Blueprint graph?
- Cast the actor to the interface type first, then call the function from the cast output
- Use the dedicated 'Trigger Interface Event' node found in the interface category
- Drag from the actor's Object reference pin and search for the interface function name — it appears as a Message call node (Correct answer)
- Right-click the actor reference and select Call Interface from the context menu
Correct answer: Drag from the actor's Object reference pin and search for the interface function name — it appears as a Message call node
Dragging from an Object reference and searching for the interface function name adds it directly as a Message call node in the Blueprint graph.
Unreal Engine Blueprints Certification Exam
The Unreal Engine Blueprints Certification Exam tests proficiency in visual scripting within Unreal Engine, covering variables, flow control, functions, events, macros, Blueprint communication, actor interaction, data structures, UMG widgets, timelines, event dispatchers, debugging, and Blueprint interfaces.
Exam Rules
- You can skip questions and return to them later
- Flag questions for review before submitting
- No feedback shown until you submit the entire exam
- Unanswered questions count as wrong — answer everything
- 10 pretest questions are mixed in and don't affect your score
- Timer auto-submits when time runs out
- Your progress is auto-saved every 30 seconds