Unreal Engine Blueprints Certification Exam — Questions and Answers
Question 1: You need to track which actors have been collected in a level, with instant lookup and no duplicates. Which Blueprint container is ideal?
- Map with Actor as key and Boolean as value
- Array of Actor References
- Struct with a fixed list of actors
- Set of Actor References (Correct answer)
Correct answer: Set of Actor References
A Set of Actor References naturally prevents duplicates and provides O(1) 'Contains' checks, perfect for collection tracking.
Question 2: Which Blueprint variable type should you use to safely reference a large asset that may or may not be loaded in memory?
- Asset ID
- Soft Object Reference (Correct answer)
- Hard Object Reference
- Weak Object Reference
Correct answer: Soft Object Reference
Soft Object References store an asset path that can be asynchronously loaded on demand, preventing forced loading of large assets.
Question 3: In Blueprint flow control, what does 'Latent' mean when describing a node?
- The node is deprecated and should not be used
- The node runs on the render thread instead of the game thread
- The node caches its result after the first execution
- The node suspends Blueprint execution and resumes it asynchronously after a condition or time (Correct answer)
Correct answer: The node suspends Blueprint execution and resumes it asynchronously after a condition or time
Latent nodes like Delay and Move To pauses the Blueprint's execution chain and resume it later when an asynchronous condition is met, without blocking the game thread.
Question 4: 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 Widget's Event Tick, get the Player Character, get the health, and set the Progress Bar's percent.
- In the Player Character, create a reference to the HUD widget and call a custom event on it every time health changes.
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 5: In Blueprints, what does 'Set Actor Enable Collision' do?
- Toggles all collision on the actor on or off (Correct answer)
- Enables only overlap events
- Changes the collision preset to Custom
- Restores default collision settings
Correct answer: Toggles all collision on the actor on or off
Set Actor Enable Collision globally enables or disables all collision responses on an actor and its components with a single boolean input.
Question 6: What is the purpose of the 'Spawn Actor from Class' node in Blueprints?
- Duplicates an existing Actor in the scene
- Creates a new instance of an Actor class in the world (Correct answer)
- Loads an asset from disk at runtime
- Instantiates a UObject without placing it in the world
Correct answer: Creates a new instance of an Actor class in the world
Spawn Actor from Class instantiates a new Actor of the specified class and places it in the game world at a given transform.
Question 7: What happens to an array's remaining elements when you call 'Remove Index' and delete an element from the middle?
- The array splits into two sub-arrays
- A null placeholder occupies the removed slot
- Elements before the removed index shift up
- Elements after the removed index shift down to fill the gap (Correct answer)
Correct answer: Elements after the removed index shift down to fill the gap
Removing an element by index causes all subsequent elements to shift down by one, preserving a contiguous array with no gaps.
Question 8: What is the C++ equivalent of a Blueprint Interface in Unreal Engine?
- An FDelegateMulticast with a dynamic signature exposed via UPROPERTY
- A UCLASS with BlueprintCallable virtual functions marked as BlueprintImplementableEvent
- 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 TSubclassOf template reference pointing to the abstract base class
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 9: Which node would you use to execute a Blueprint event after a specific real-world time delay, even across level transitions?
- Delay node on the GameInstance Blueprint
- Do Once with a time-based reset
- Retriggerable Delay on an Actor
- Set Timer by Function Name with a GameInstance-owned target (Correct answer)
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 10: What does marking a Blueprint variable as 'Expose on Spawn' enable?
- The variable can be set as a pin directly on the Spawn Actor from Class node (Correct answer)
- The variable is only accessible from the Construction Script
- The variable is automatically replicated to all clients
- The variable becomes visible in the level viewport outliner
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 11: What is the recommended way to avoid performance problems when using 'Get All Actors of Class' in Blueprints?
- Only use it inside the Construction Script
- Replace it with a custom Find Actor utility node
- Cache the result in a variable at Begin Play and reuse it, rather than calling it every Tick (Correct answer)
- Limit it to 10 calls per second with a throttle gate
Correct answer: Cache the result in a variable at Begin Play and reuse it, rather than calling it every Tick
'Get All Actors of Class' iterates over every actor in the level each call, so caching the result once at Begin Play prevents repeated expensive searches.
Question 12: What is the purpose of the 'Get Socket Location' node on a Skeletal Mesh Component?
- Returns the world-space position of a named bone socket on the mesh (Correct answer)
- Returns the mesh's pivot point location
- Finds the nearest socket to a given world position
- Gets the location of the component's attachment parent
Correct answer: Returns the world-space position of a named bone socket on the mesh
Get Socket Location queries the current world-space position of a named socket or bone on the Skeletal Mesh, accounting for animation pose.
Question 13: How do you make a Timeline play at double speed without changing the curve itself?
- Call 'Set Play Rate' with a value of 2.0 (Correct answer)
- Multiply the output value by 2 in the graph
- Set the Loop checkbox
- Change the Timeline length to half
Correct answer: Call 'Set Play Rate' with a value of 2.0
'Set Play Rate' on the Timeline node allows you to scale playback speed dynamically at runtime.
Question 14: In Blueprint scripting, what does a 'Class Reference' variable store?
- A spawned instance of the specified class
- A reference to a class itself, not an instance of that class (Correct answer)
- The name of the class as a string
- The parent class of a given Blueprint
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 15: What is a practical use case for the 'Set Playback Position' node combined with a Timeline?
- To change the Timeline's loop count
- To add more keyframes at runtime
- To scrub the animation to a specific time, such as syncing with a save game state (Correct answer)
- To change the Timeline's track type
Correct answer: To scrub the animation to a specific time, such as syncing with a save game state
Set Playback Position lets you jump the Timeline to any time, useful for restoring animation state when loading a saved game.
Question 16: A UMG Scroll Box is not scrolling to the bottom automatically after new items are added. Which node solves this?
- Force Layout Update
- Refresh Scroll Box
- Scroll to End (Correct answer)
- Scroll Widget Into View
Correct answer: Scroll to End
Scroll to End programmatically moves the Scroll Box's scroll position to the bottom, useful after dynamically adding content.
Question 17: Which event fires on an actor when it is first placed in or streamed into the level?
- Event Actor Loaded
- Event Begin Play (Correct answer)
- Event Initialize
- Event Spawned
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 18: What does a light fixture that is updated by a point light component do?
- Sets the light fixture to a specific brightness and color
- Reduces the brightness of all other light fixtures in the room
- Creates a light-emitting surface to match the color and brightness of its point light component
- Automatically updates its material to match the color and brightness of its point light component (Correct answer)
Correct answer: Automatically updates its material to match the color and brightness of its point light component
In Unreal Engine, a well-designed light fixture Blueprint can be configured to dynamically respond to its associated point light component. This means its emissive material properties will automatically adjust to reflect the point light's color and intensity, creating a visually consistent and realistic lighting effect without manual material adjustments.
Question 19: Which node is used to bind a Custom Event to a Dynamic Multicast Delegate in Blueprints?
- Register Callback
- Add Event Listener
- Assign Delegate
- Bind Event to Delegate (Correct answer)
Correct answer: Bind Event to Delegate
The 'Bind Event to Delegate' node connects a Custom Event to a Dynamic Multicast Delegate so the event fires when the delegate is broadcast.
Question 20: Why do instanced static mesh components combined with a single manager Blueprint improve performance for many similar objects like collectibles?
- Instancing disables collision to reduce physics cost
- Each instance gets its own dedicated LOD system automatically
- Instanced meshes batch draw calls and a single manager eliminates per-actor tick overhead (Correct answer)
- The manager Blueprint runs on the GPU instead of the CPU
Correct answer: Instanced meshes batch draw calls and a single manager eliminates per-actor tick overhead
Instanced Static Mesh components merge draw calls for identical meshes, and centralizing logic in one manager removes the per-actor tick cost from hundreds of individual actors.
Question 21: What happens when you call a Blueprint Interface function on an actor that does NOT implement that interface?
- The call is silently ignored with no error or crash (Correct answer)
- The editor shows an immediate compile error
- The game crashes with an access violation
- A Blueprint runtime error is thrown and caught automatically
Correct answer: The call is silently ignored with no error or crash
Blueprint interface calls on non-implementing objects fail gracefully — the call is simply ignored without crashing the game or causing a runtime error.
Question 22: What is the key difference between the 'Add Impulse' and 'Add Force' Blueprint nodes?
- Add Impulse applies an instantaneous push; Add Force applies a continuous force each frame (Correct answer)
- Add Impulse only works on characters; Add Force works on static meshes
- They are functionally identical
- Add Impulse applies force every frame; Add Force applies it once
Correct answer: Add Impulse applies an instantaneous push; Add Force applies a continuous force each frame
Add Impulse applies an instantaneous burst of force in a single frame, while Add Force applies a continuous force that should be called every tick to sustain acceleration.
Question 23: Which Blueprint communication method requires you to know the specific target Actor at compile time?
- Event Dispatcher
- Direct Blueprint Communication (Correct answer)
- Blueprint Interface
- Cast Node
Correct answer: Direct Blueprint Communication
Direct Blueprint Communication requires a hard reference to the target Actor class, meaning the relationship is established at compile time.
Question 24: What does the DPI Scaling curve in Project Settings → User Interface control for Widget Blueprints?
- The maximum number of widgets rendered per frame
- The texture compression quality of widget images
- How widget draw calls are batched on the GPU
- The factor by which UI elements are scaled based on screen resolution (Correct answer)
Correct answer: The factor by which UI elements are scaled based on screen resolution
The DPI Scaling curve maps screen resolution to a scale factor, so widgets appear at a consistent physical size across different resolutions and screen sizes.
Question 25: Which variable type in Blueprints stores a reference to an Actor placed in the level?
- Class Reference
- Soft Object Reference
- Object Reference (Correct answer)
- Asset ID
Correct answer: Object Reference
Object Reference stores a hard reference to a specific Actor or object instance in the level.
Question 26: In Blueprints, how do you convert an Integer to a Float?
- Use the 'Make Float' node with an Integer input
- Cast the Integer using a Cast node
- Use the 'To Float (Integer)' conversion node
- Drag the Integer pin to a Float pin and confirm automatic conversion (Correct answer)
Correct answer: Drag the Integer pin to a Float pin and confirm automatic conversion
Dragging an Integer output pin to a Float input pin in the Blueprint graph automatically inserts a conversion node.
Question 27: How do you expose a Blueprint Array variable so it can be edited per-instance in the Details panel of the editor?
- Use 'Expose on Spawn' instead of 'Instance Editable'
- Enable the 'Instance Editable' (eye icon) option on the variable (Correct answer)
- Arrays cannot be made instance-editable
- Set the variable's access specifier to 'Public'
Correct answer: Enable the 'Instance Editable' (eye icon) option on the variable
Clicking the eye icon (or checking 'Instance Editable') on a variable allows each placed instance to have its own array values set in the Details panel.
Question 28: What is the primary performance drawback of using 'Cast To' nodes frequently in Blueprints?
- They require full network synchronization to resolve
- They always run on the render thread causing frame drops
- They disable garbage collection for the cast target object
- They create hard references to the target class, forcing it and its dependencies to load into memory (Correct answer)
Correct answer: They create hard references to the target class, forcing it and its dependencies to load into memory
Cast To nodes create hard references to the target class, which forces that class and all its asset dependencies to be loaded into memory.
Question 29: Where in the Blueprint Editor do you create a new Event Dispatcher for an Actor Blueprint?
- In the My Blueprint panel under the Event Dispatchers section (Correct answer)
- In the Components panel
- In the Construction Script
- In the Class Defaults tab
Correct answer: In the My Blueprint panel under the Event Dispatchers section
Event Dispatchers are created and listed in the My Blueprint panel under the 'Event Dispatchers' category.
Question 30: What is the correct way to change the text of a Text Block via Blueprint logic at runtime?
- Modify the Render Opacity of the Text Block
- Use Set Content and pass a string
- Call Refresh Text on the parent Canvas Panel
- Call Set Text (Text Block) and pass a Text value (Correct answer)
Correct answer: Call Set Text (Text Block) and pass a Text value
Set Text (Text Block) is the dedicated node for updating a Text Block's displayed string at runtime.
Question 31: A player character overlaps with a trigger volume inside a 'BP_SpeedBoost' Actor. To apply the speed boost, the player character's Blueprint needs to access the 'BoostAmount' float variable that exists only within the 'BP_SpeedBoost' Blueprint. What is the standard method to achieve this?
- From the 'OnActorBeginOverlap' event, use the 'Other Actor' output pin and Cast it to 'BP_SpeedBoost'. (Correct answer)
- Directly get the 'BoostAmount' variable from the 'Other Actor' pin.
- Use the 'Get All Actors Of Class' node to find the 'BP_SpeedBoost' Actor.
- Call a Blueprint Interface message on the 'Other Actor' pin without casting.
Correct answer: From the 'OnActorBeginOverlap' event, use the 'Other Actor' output pin and Cast it to 'BP_SpeedBoost'.
The 'OnActorBeginOverlap' event provides a generic 'Actor Object Reference' for the 'Other Actor'. To access variables and functions specific to the 'BP_SpeedBoost' class, you must first cast the generic reference to that specific class. If the cast succeeds, you can then access its unique members like 'BoostAmount'.
Question 32: 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 'Find' node with a wildcard to locate the last item in the sequence.
- 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)
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 33: What does the Widget Blueprint Editor's section "4" do?
- All the Widgets that you can drag-and-drop into the Visual Designer. (Correct answer)
- The different editing modes you can switch between.
- The parenting structure of all widgets in your Widget Blueprint.
- Which variables can be added to your Event Graph.
Correct answer: All the Widgets that you can drag-and-drop into the Visual Designer.
Section "4" in the Widget Blueprint Editor refers to the "Palette" panel, which contains a comprehensive list of all available UMG widgets. From this section, users can drag and drop various UI elements like buttons, text blocks, images, and layout panels directly onto the visual designer canvas. This allows for the construction of complex and interactive user interfaces by assembling pre-built components.
Question 34: To animate a light's intensity with a Timeline, which Blueprint function should receive the Timeline's float output?
- Set Actor Scale 3D
- Set Relative Location
- Set Material Parameter Value
- Set Intensity (on the Light Component reference) (Correct answer)
Correct answer: Set Intensity (on the Light Component reference)
Calling Set Intensity on a Point/Spot/Directional Light component reference directly controls the light's brightness each tick.
Question 35: What is the main advantage of using a Struct variable over individual variables in Blueprints?
- Structs are stored more efficiently than primitive variables
- Structs automatically initialize all member variables to zero
- Structs group related data into a single reusable type that can be passed as one argument (Correct answer)
- Structs allow their members to be replicated individually
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 36: Can a single Blueprint class implement more than one Blueprint Interface at the same time?
- No, implementing multiple interfaces requires a C++ base class
- No, a Blueprint can only implement one interface at a time due to engine limitations
- Yes, a Blueprint can implement any number of interfaces by adding each one in Class Settings under Implemented Interfaces (Correct answer)
- 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 37: What does the 'Clipping' property set to 'Clip to Bounds' do on a UMG panel widget?
- Prevents child widgets from rendering outside the panel's rectangular boundary (Correct answer)
- Limits the widget to rendering on the primary monitor only
- Clips network replication of the widget's state
- Removes child widgets that fall below a minimum size threshold
Correct answer: Prevents child widgets from rendering outside the panel's rectangular boundary
'Clip to Bounds' instructs the renderer to mask any child content that extends beyond the panel widget's own rect, creating a cropping effect.
Question 38: When using 'Cast To' on an actor reference, what happens if the cast fails?
- The game crashes immediately
- The original reference is returned unchanged
- A null reference exception is thrown automatically
- Execution continues through the 'Cast Failed' pin (Correct answer)
Correct answer: Execution continues through the 'Cast Failed' pin
A failed cast routes execution through the Cast Failed output pin, allowing Blueprint logic to handle the failure gracefully.
Question 39: What does the Construction Script do during gameplay?
- Update the camera
- Execute (Correct answer)
- Check for collisions
- Update
Correct answer: Execute
The Construction Script in an Unreal Engine Blueprint runs when the Blueprint is placed or updated in the editor, and also when the game starts. During gameplay, it executes once at the beginning to set up initial properties and configurations for the Blueprint instance, before the Event Graph takes over for ongoing logic.
Question 40: What is the result of binding the same Custom Event to the same dispatcher multiple times without unbinding?
- The Blueprint will fail to compile
- Only the most recent binding is kept
- The Custom Event will fire multiple times each time the dispatcher is called (Correct answer)
- Unreal Engine detects duplicates and ignores the repeated binding
Correct answer: The Custom Event will fire multiple times each time the dispatcher is called
Binding the same delegate multiple times causes it to execute once per binding when the dispatcher is called, leading to duplicate executions.
Question 41: What is the purpose of a 'Assign' node that appears when right-clicking an Event Dispatcher in the Blueprint editor?
- It assigns a value to the dispatcher
- It creates a new dispatcher copy
- It simultaneously creates a Bind node and a linked custom event (Correct answer)
- It assigns the dispatcher to a variable
Correct answer: It simultaneously creates a Bind node and a linked custom event
The Assign node is a shortcut that auto-generates both a Bind Event to Dispatcher node and a new custom Event node already wired together.
Question 42: When using Cast To in Blueprint communication, what does a failed cast return?
- An empty object
- The original object unchanged
- Null reference on the Cast Failed pin (Correct answer)
- None
Correct answer: Null reference on the Cast Failed pin
A failed Cast To node routes execution through the Cast Failed output pin, and the output object reference is invalid/null.
Question 43: How does the presence or absence of output parameters on an interface function affect how it appears in implementing Blueprints?
- Functions with no outputs appear as overridable Events with execution pins; functions with outputs appear as Functions that must return a value (Correct answer)
- The distinction only matters in C++; in Blueprints all interface entries appear identically
- Both types always appear as Events regardless of outputs
- Functions with outputs appear as Events; functions without outputs appear as pure Functions
Correct answer: Functions with no outputs appear as overridable Events with execution pins; functions with outputs appear as Functions that must return a value
Interface entries with no output parameters generate overridable Event nodes in implementing Blueprints, while entries with outputs generate Function override stubs that must return values.
Question 44: 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 45: Inside your 'BP_Character' Blueprint, you need to get a reference to its own Skeletal Mesh Component to change its material at runtime. Which is the most direct and common way to do this in the Event Graph?
- Use 'Get All Actors of Class' to find the parent Actor, then get its component.
- Drag the Skeletal Mesh Component from the 'Components' panel directly into the graph. (Correct answer)
- Use 'Get Component by Class' and select 'Skeletal Mesh Component'.
- Cast a 'Self' reference to the Skeletal Mesh Component.
Correct answer: Drag the Skeletal Mesh Component from the 'Components' panel directly into the graph.
The most straightforward method to get a reference to a component that is part of the same Blueprint is to simply drag it from the Components hierarchy panel into the Event Graph. This creates a 'Get' node for that specific component instance.
Question 46: What is the purpose of the 'Color Track' in a Timeline node?
- To set material slot colors per frame
- To define the debug wire color of the Timeline
- To control ambient light color in the scene
- To animate a Linear Color value (RGBA) over time (Correct answer)
Correct answer: To animate a Linear Color value (RGBA) over time
A Color Track outputs a Linear Color (R, G, B, A) each tick, useful for animating material colors or light colors.
Question 47: What is the primary advantage of Blueprint Interfaces over direct Cast To nodes when calling functions across multiple actor types?
- Interfaces prevent the garbage collector from collecting target actors
- Interfaces let you call a function on any implementing actor without knowing or referencing its specific class (Correct answer)
- Interfaces automatically replicate function calls in multiplayer
- Interface calls always execute faster than cast-based calls
Correct answer: Interfaces let you call a function on any implementing actor without knowing or referencing its specific class
Blueprint Interfaces decouple the caller from the specific class — you can send the same message to a door, enemy, or switch without casting to each individual class.
Question 48: What does the 'Is Valid' macro typically check in Blueprint flow control?
- Whether an array index is within bounds
- Whether a string contains valid characters
- Whether a float value is within a valid numeric range
- Whether an object reference is non-null and points to a living object (Correct answer)
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 49: In Unreal Engine Blueprints, which data structure would you use to map unique keys to corresponding values?
- Set
- Queue
- Map (Correct answer)
- Array
Correct answer: Map
A Blueprint Map stores key-value pairs where each key is unique, allowing fast lookup of values by their associated key.
Question 50: A developer is creating a system to manage player statistics, where each statistic is identified by a unique FName (e.g., 'Health', 'Stamina', 'Strength') and has an associated integer value. The system requires very fast lookups to retrieve a stat's value using its FName identifier. Which data structure is the most performant and appropriate for this task?
- An Array of Structs, where each struct contains an FName and an Integer.
- Two parallel Arrays, one for FNames and one for Integers.
- A Set of Integers.
- A Map, using FName as the Key and Integer as the Value. (Correct answer)
Correct answer: A Map, using FName as the Key and Integer as the Value.
A Map is the ideal data structure for creating a key-value association, often called a dictionary. Using the unique statistic FName as the key allows for direct and highly efficient lookup of the corresponding integer value, which is significantly faster than iterating through an array to find a matching name.
Question 51: Which of the following best describes the behavior of a 'ForLoop' node when a 'Delay' node is placed within its 'Loop Body' execution path?
- The loop will pause for the delay duration between each iteration, spacing out the actions over time.
- The 'Completed' pin will execute only after all delayed loop body actions have finished.
- The loop will execute all iterations instantly without waiting for the delay, and the 'Completed' pin will fire immediately after the last iteration starts. (Correct answer)
- The Blueprint will produce a compile error as 'Delay' nodes are not permitted inside a 'ForLoop'.
Correct answer: The loop will execute all iterations instantly without waiting for the delay, and the 'Completed' pin will fire immediately after the last iteration starts.
A ForLoop node in Blueprints executes all its iterations within a single game frame. It does not wait for latent actions like a 'Delay' to complete. Therefore, it will fire all loop body executions in rapid succession, and the 'Completed' pin will execute on the same frame, long before any of the delays have finished.
Question 52: In Blueprints, what is the difference between 'Add Component' and 'Attach Actor to Component'?
- Add Component creates a new component on the Actor; Attach Actor to Component parents one Actor to another's component (Correct answer)
- They are functionally identical
- Add Component is for Static Meshes only; Attach attaches any object
- Add Component runs at edit time; Attach runs only at runtime
Correct answer: Add Component creates a new component on the Actor; Attach Actor to Component parents one Actor to another's component
Add Component dynamically adds a component to the Actor's own component hierarchy, while Attach Actor to Component sets a spatial parent-child relationship between two Actors.
Question 53: Which collision response setting allows an actor to detect overlaps without blocking physical movement?
- Block
- Overlap (Correct answer)
- Query Only
- Ignore
Correct answer: Overlap
Setting a collision channel to Overlap triggers overlap events without preventing the objects from passing through each other.
Question 54: What is the purpose of the 'Is Variable' checkbox on a widget in the Designer panel?
- It prevents the widget from being garbage collected
- It makes the widget invisible at runtime
- It marks the widget as a Blueprint interface
- It exposes the widget as a variable accessible in the Graph (Correct answer)
Correct answer: It exposes the widget as a variable accessible in the Graph
Checking 'Is Variable' promotes the widget component to a Blueprint variable so it can be referenced and manipulated in the Event Graph.
Question 55: A developer needs to store a player's health, which can be a fractional value like 98.6. Which variable data type is the most appropriate for this purpose in Blueprints?
- Boolean
- Float (Correct answer)
- Integer
- Byte
Correct answer: Float
The Float data type is used for storing single-precision floating-point numbers, which are numbers that can have fractional components. This makes it ideal for values like health, which often require decimal precision.
Question 56: Which keyword correctly describes a Blueprint Macro's execution pins compared to a Function's execution pins?
- Both Macros and Functions are limited to one input and one output execution pin
- Macros can have multiple input and output execution pins; Functions have exactly one of each (Correct answer)
- Macros have no execution pins; only data pins are allowed
- Functions can have multiple input execution pins; Macros have exactly one
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 57: What is the key advantage of using a Timeline to move an actor between two points compared to using a single 'Set Actor Location' node after a 'Delay'?
- A Timeline is the only method that can be used inside a ForLoop.
- A Timeline executes logic frame-by-frame, creating a smooth visual transition instead of an instant teleport. (Correct answer)
- A Timeline consumes less memory than a Delay node.
- A Timeline can move an actor to a location much further away.
Correct answer: A Timeline executes logic frame-by-frame, creating a smooth visual transition instead of an instant teleport.
A 'Delay' node simply pauses execution, so 'Set Actor Location' will cause the actor to instantly appear at the new location after the wait. A Timeline's 'Update' pin fires every frame, allowing you to incrementally change the actor's location (usually with a Lerp), which results in smooth, animated motion rather than a sudden teleport.
Question 58: You are creating a quest system and have a Map that uses a quest ID (Integer) as the key and a Quest Data (Struct) as the value. The Quest Data struct contains a boolean 'bIsComplete'. You use a 'Find' node to get the Quest Data for a specific ID. If you then try to modify 'bIsComplete' on the found struct, why does the original Map remain unchanged?
- Because the 'Find' node on a Map returns a copy of the value, not a direct reference to it. (Correct answer)
- Because booleans within structs cannot be modified after being added to a Map.
- Because structs within a Map are always read-only.
- Because you must use a 'ForEachLoopWithBreak' to modify Map elements.
Correct answer: Because the 'Find' node on a Map returns a copy of the value, not a direct reference to it.
The 'Find' node for a Map in Blueprints returns a copy of the struct, not a reference to the actual struct stored in the Map. Therefore, any modifications are made to this temporary copy, and the original data within the Map is unaffected. To update the map, you must use the 'Add' node again with the same key and the modified struct.
Question 59: How do you broadcast an Event Dispatcher so all bound listeners receive the event?
- Use the 'Broadcast' node on the dispatcher (Correct answer)
- Use 'Fire Event' node
- Call the dispatcher node directly from the owning Blueprint
- Pin the dispatcher to the Event Graph
Correct answer: Use the 'Broadcast' node on the dispatcher
The 'Call' (broadcast) node on the Event Dispatcher triggers all currently bound delegates.
Question 60: What does right-clicking a variable in the My Blueprint panel and selecting 'Watch This Value' do?
- Displays the variable's live value in the Blueprint Debugger during PIE (Correct answer)
- Adds the variable to the Details panel of the actor
- Saves the variable value to a config file
- Pins the variable to the top of the My Blueprint panel
Correct answer: Displays the variable's live value in the Blueprint Debugger during PIE
Watching a value causes it to appear in the Blueprint Debugger panel so you can monitor it in real time during PIE.
Question 61: What is the key difference between 'Add to Viewport' and 'Add to Player Screen' nodes for Widget Blueprints?
- Add to Player Screen attaches the widget to a specific player's view and scales correctly in split-screen, while Add to Viewport does not (Correct answer)
- Add to Player Screen requires a valid HUD class; Add to Viewport works without one
- Add to Viewport supports animations; Add to Player Screen does not
- Add to Viewport is for 3D widgets; Add to Player Screen is for 2D HUD widgets
Correct answer: Add to Player Screen attaches the widget to a specific player's view and scales correctly in split-screen, while Add to Viewport does not
'Add to Player Screen' associates the widget with a particular local player controller and handles split-screen viewport scaling automatically, unlike 'Add to Viewport'.
Question 62: What does Blueprint Nativization do to improve runtime performance during game packaging?
- Converts Blueprint nodes to Lua scripts for faster parsing
- Moves Blueprint execution to run on the GPU
- Compiles Blueprints to machine code at editor startup
- Converts Blueprint graphs into C++ code at cook time to eliminate Blueprint VM overhead (Correct answer)
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 63: What is the effect of enabling 'Random' on a Multi Gate node?
- It fires all pins simultaneously in random intervals
- A random pin fires every tick independently of trigger count
- Output pins fire in a random order rather than sequentially (Correct answer)
- The node randomly skips some pins during cycling
Correct answer: Output pins fire in a random order rather than sequentially
With Random enabled, each trigger causes the Multi Gate to fire one of its remaining output pins chosen at random rather than in sequence.
Question 64: Which Blueprint node type is used to delay execution by a specified number of seconds?
- Retriggerable Delay
- Timer by Event
- Delay (Correct answer)
- Set Timer by Function Name
Correct answer: Delay
The Delay node pauses Blueprint execution for a specified duration before continuing to the next node.
Question 65: In UMG Blueprint logic, what does 'Get All Widgets of Class' return?
- All widget instances in the entire game project
- All Blueprint actors that own a widget component
- All currently active widget instances of the specified class that are in the viewport (Correct answer)
- All widget classes registered with the HUD
Correct answer: All currently active widget instances of the specified class that are in the viewport
Get All Widgets of Class searches the current active widget tree and returns all live instances of the given widget class.
Question 66: How do you prevent a UMG widget from being garbage collected after Remove from Parent is called?
- Set its visibility to Hidden instead
- Call Keep Widget Alive
- Use a Soft Object Reference
- Store a strong reference to the widget in a Blueprint variable (Correct answer)
Correct answer: Store a strong reference to the widget in a Blueprint variable
Keeping a hard (strong) reference in a Blueprint variable prevents the widget from being garbage collected after it is removed from the parent.
Question 67: You want a door to open exactly once when triggered, not loop. Which Timeline setting ensures it plays only once?
- Set Play Rate to 0 after Finished
- Add a Stop node inside the curve editor
- Enable the Autoplay checkbox
- Leave the Loop checkbox unchecked (Correct answer)
Correct answer: Leave the Loop checkbox unchecked
Unchecking Loop means the Timeline plays through once and stops, firing the Finished pin at the end.
Question 68: What happens to the 'Loop Body' output of a For Each Loop when the array is empty?
- Loop Body executes once with a null element
- The Blueprint throws a runtime error
- Loop Body never executes and Completed fires immediately (Correct answer)
- Completed never fires
Correct answer: Loop Body never executes and Completed fires immediately
If the array passed to a For Each Loop is empty, the Loop Body output is skipped entirely and Completed fires right away.
Question 69: What is a 'delegate' in the context of Unreal Engine's Event Dispatcher system?
- A node that delays execution by one frame
- A special type of Blueprint variable for storing Actor references
- A reference to a function that can be stored and called later (Correct answer)
- A type of collision response setting
Correct answer: A reference to a function that can be stored and called later
A delegate is a callable function reference that can be bound and invoked later, which is the underlying mechanism of Event Dispatchers.
Question 70: In Blueprints, which of the following is true about 'Get' and 'Set' nodes for variables?
- Both Get and Set nodes require execution pins
- Neither Get nor Set nodes require execution pins
- Get nodes are pure (no execution pin) while Set nodes require an execution pin (Correct answer)
- Get nodes require an execution pin while Set nodes are pure
Correct answer: Get nodes are pure (no execution pin) while Set nodes require an execution pin
Get nodes are pure nodes with no execution pin, while Set nodes modify state and require an execution pin to control when they run.
Question 71: When using a 'For Loop with Break', what triggers the early exit from the loop?
- Execution reaching the Break input pin (Correct answer)
- The loop index reaching zero
- A boolean condition becoming false automatically
- Calling the parent function's return node
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 72: You have an Event Dispatcher with an input parameter for a float value named 'DamageAmount'. When creating a Custom Event to bind to this dispatcher, what must be true for the binding to be valid?
- The Custom Event must not have any input parameters.
- The Custom Event must have at least one input, but the type does not matter.
- The Custom Event must have an input parameter of the exact same type (float) and name ('DamageAmount').
- The Custom Event must have an input parameter of the same type (float), but the name can be different. (Correct answer)
Correct answer: The Custom Event must have an input parameter of the same type (float), but the name can be different.
For a Custom Event to be successfully bound to an Event Dispatcher, their signatures must match. This means they must have the same number of input parameters, and each corresponding parameter must be of the same data type. The names of the parameters, however, do not need to match.
Question 73: 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.
Question 74: What is the difference between 'Add to Viewport' and 'Add to Player Screen' in UMG?
- Add to Viewport only works in single-player games
- They are identical; the names are interchangeable
- Add to Viewport adds to the shared viewport; Add to Player Screen adds to a specific player's local viewport in split-screen (Correct answer)
- Add to Player Screen requires a Game Instance reference
Correct answer: Add to Viewport adds to the shared viewport; Add to Player Screen adds to a specific player's local viewport in split-screen
Add to Player Screen associates the widget with a specific Player Controller, making it appear only on that player's portion of the screen in split-screen setups.
Question 75: What is the correct way to move a Static Mesh Component to a new world location each frame in Blueprints?
- Use Add Force on the component every frame
- Call Set Actor Location on the owning actor
- Call Set World Location on the component in the Event Tick (Correct answer)
- Use Set Relative Location with delta time
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 76: In UMG, what does the 'Invalidate Layout and Volatility' node do?
- Forces the widget to recalculate its layout and repaint (Correct answer)
- Destroys and rebuilds the widget from scratch
- Removes the widget from the viewport
- Resets all bound variables to default values
Correct answer: Forces the widget to recalculate its layout and repaint
Invalidate Layout and Volatility tells UMG to mark the widget dirty so it recalculates layout and repaints on the next frame.
Question 77: What is the primary function of the 'Update' execution pin on a Timeline node in a Blueprint graph?
- It executes every frame that the Timeline is actively playing. (Correct answer)
- It executes once when the Timeline component is created in the Blueprint.
- It executes only when the 'Play from Start' input is called.
- It executes once when the Timeline has completed its full duration.
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 78: What does the Compiler Results panel in the Blueprint editor display that aids performance optimization?
- Warnings about costly operations like unnecessary Tick usage and unoptimized casts (Correct answer)
- Memory usage statistics per variable
- GPU shader compilation errors from material functions
- The C++ code generated from the Blueprint graph
Correct answer: Warnings about costly operations like unnecessary Tick usage and unoptimized casts
The Compiler Results panel flags warnings such as unused variables, unconnected nodes, and potentially expensive operations after compilation.
Question 79: What node pattern should you use to safely unbind all listeners from a dispatcher when an Actor is destroyed?
- Call 'Unbind All Events from' on the dispatcher in Event Destroyed or End Play (Correct answer)
- Pin 'Clear' to the dispatcher in the Event Graph header
- Call 'Remove All' from the Construction Script
- Use 'Disconnect All' in BeginPlay
Correct answer: Call 'Unbind All Events from' on the dispatcher in Event Destroyed or End Play
Using 'Unbind All Events from' in Event Destroyed or End Play safely clears all bound delegates before the Actor is removed.
Question 80: In Unreal Engine Blueprints, what does 'Register Component' do for a dynamically created component?
- Adds the component to the actor's component list and initializes it in the world (Correct answer)
- Registers the component with the Physics engine only
- Makes the component replicable over the network
- Saves the component to the asset registry
Correct answer: Adds the component to the actor's component list and initializes it in the world
After creating a component at runtime with 'New Object', calling Register Component finalizes its creation by adding it to the actor and initializing it in the scene.
Question 81: When using the Print String node for debugging, which parameter controls how long the message remains visible on screen?
- Duration (Correct answer)
- DisplayTime
- Lifetime
- Timeout
Correct answer: Duration
The Duration float parameter on the Print String node specifies how many seconds the debug text stays visible on screen.
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