New: Blueprint "Development Only" Functions
The PrintString and PrintText system library functions have now been marked DevelopmentOnly by default. This allows for a quick removal of Blueprint logging in the final build product.
To get packaged/cooked Blueprints to compile without the "DevelopmentOnly“ nodes, disable the “Compile Blueprints in Development Mode" option found in the project's Cooker settings (this option is on by default to preserve functionality).
New: Condensed Blueprint Struct Nodes
Different override/enabled states are now managed through a toggle or dropdown widget that is exposed along with the setting on "Make Struct" and “Set Member” nodes.
To associate a toggle variable with another property, use the "EditCondition" metadata like is pictured above.
We've adopted this workflow for our PostProcessSetting nodes, which have proven to be unwieldy and confusing without it.
New: Added advanced searching syntax to Find-in-Blueprints.
New: Added experimental option to use the Blueprint Diff Tool with Animation Blueprints and Widget Blueprints.
New: Added facilities for specifying override vertex colors for meshes via Blueprints: PaintVerticesSingleColor and PaintVerticesLerpAlongAxis.
New: Added Min and Max nodes for byte variables.
New: Added CopyPoseFromSkeletalMesh node, which takes a snapshot of a skeletal mesh pose and applies it to another skeletal mesh component.
New: Added support to AsyncTask nodes so that their corresponding functions can return null.
New: Added the ability to mark BlueprintCallable functions as development only.
By default, these nodes will be compiled out of Blueprint class function graphs at cook/package time, potentially improving runtime performance.
The "Print String" and "Print Text" functions are now marked as development-only, and will not be executed at runtime in cooked builds by default.
New: Added asset registry tags "NativeComponents" and "BlueprintComponents" to store the number of native and blueprint components, respectively. These counts can be used to identify targets for optimization.
Blueprint context menu performance improved.
By default, Buildmachines will no longer ignore compile on load errors for Blueprints.
Users can no longer edit Actor default values on properties in User Defined Structs or in CDOs that have structs with Actor properties.
New: Users can now delete function graph overrides that used to be interface implementations.
Bugfix: Crash fix when undoing add/remove operations on default instanced subobjects in a Blueprint.
Blueprint division nodes now show the callstack if a divide by zero is attempted.
During undo/redo, when deleted Blueprint instances are restored to the scene, they will be reinstanced using the newest version of their BlueprintGeneratedClass.
New: GetPathName node created. This node returns the full path name of a UObject.
New: Exposed many scalability settings to Blueprints via UGameUserSettings, making it easy to build a settings screen entirely in UMG.
New: The Blueprint Profiler is now available as an experimental feature to help identify costly operations in blueprints and guide optimization.
Enable the Blueprint performance analysis tools option in editor preferences under General - Experimental in the Blueprints section.
Analysis is currently enabled on a per-blueprint basis in PIE only.
To profile a blueprint, enable the profiler option in the blueprint editor and recompile the blueprint to add instrumentation. Then enter PIE and the editor will display the blueprint profiler tab and display timing data.
Work is ongoing in this area and the feature is not expected to be fully complete in this release.
New: Vector2D now has equal and not equal functions, just like Vector3D.
When adding new variables to user defined structures, the variable type will be the same as the last set type.
Bugfix: When converting a selection of components into a Blueprint, CDO values will no longer be lost.
Bugfix: "Convert Selected Components to Blueprint Class" no longer generates new components when used repeatedly.
Bugfix: Find-in-Blueprints will correctly check-out all out-of-date Blueprints if Index All With Source Control is selected.
Bugfix: When modifying default values on inherited Blueprint variables, the default values in the parent Blueprint will not be affected.
Bugfix: "Add Component" node adds components with exposed variables to the correct target actor (previously always went to "self").
"Color" name is no longer restricted.
Bugfix: "Convert selected actor to blueprint class" and "Convert selected components into blueprint class" actions can no longer be used to convert types that aren't blueprintable.
Added "focus" keyword to "AIController::SetFocalPoint".
Bugfix: Adding a WeakObjectPtr to an array of object references in a Blueprint now works correctly.
Bugfix: Assigning an interface property that is exposed on spawn using the Spawn Actor of Class node will no longer error.
Bugfix: Async Task nodes and Load Asset nodes no longer change superficially each time they are cooked
Bugfix: Attempting to follow a Blueprint compile error message to a node that has been delete no longer crashes
Blueprint Options and Class Options details view will correctly display in non-English languages.
Bugfix: Blueprint VM no longer crashes when encountering a type mismatch, throws an exception instead.
Bugfix: Blueprints duplicated for PIE will no longer register as dependencies to other Blueprint.
Bugfix: Blueprints with events in them no longer indicate they are different when compared against themselves using the Blueprint Diff Tool.
Bugfix: Can no longer add reroute nodes to read-only graphs such as math expression graphs.
Bugfix: Can no longer change the "Parent Socket" member of an inherited component.
Can no longer reparent level Blueprints to other level Blueprints, though native classes are still an option.
Changed an ensure to an error when attempting to generate literals for unsupported properties in Blueprints.
Bugfix: Child components in a Blueprint Class asset attached to a default scene root will no longer be lost after reparenting to a Blueprint Class that also has a default scene root.
Bugfix: Copy and pasting local variable nodes for functions into collapsed graphs will no longer invalidate the node.
Bugfix: Crash fix for prompting user to check out Blueprint during the compilation stage.
Bugfix: Crash fix in Find-in-Blueprints after switching languages and searching.
Bugfix: Crash fix when AIController possesses a Pawn during Pawn's Unpossess event while exiting PIE.
Bugfix: Crash fix when attempting to override Timeline event nodes in a child Blueprint.
Bugfix: Crash fix when hiding the "CameraSettings" category on custom Camera Component classes.
Bugfix: Crash fix when pasting an event node is undone/redone.
Bugfix: Crash fix when doing a "Find Reference" on local variables without any placed nodes for the variable.
Bugfix: Crash fix when creating a local variable from an orphaned node inside a collapsed graph.
Bugfix: Custom event nodes bound to delegate signatures that include 'const&' and/or TArray input parameters will no longer emit a compiler note/warning.
Bugfix: Delay nodes can now be used in GameInstance's Initialize function. Previously they would only work in PIE.
Bugfix: Dependencies that arise due to Blueprint Macros are now correctly detected so that bytecode can be regenerated when needed - fixes one cause of TRASHCLASS appearing in bytecode.
Bugfix: Diffing Blueprints with deleted component assets will no longer cause an assert.
Bugfix: Warnings about missing parent functions no longer appear if the child function is invalid as a result of compile-on-load.
Bugfix: Dragging and dropping to create pins on function Return nodes when there are multiple of them will correctly update all Return nodes.
Bugfix: Dynamic Component delegate bindings to self are no longer exported on copy/paste & ALT-drag. This corrects the side effect of a copied Actor instance also affecting the original.
Bugfix: Find-in-Blueprints no longer requires the Asset Registry to initialize.
Bugfix: Crash fix when editing an instanced variable nested within another instanced variable.
Bugfix: Crash fix deleting graphs or delegates while a "Create Event" node's graph is in the transaction buffer.
Bugfix: Crash fix when a Blueprint's skeleton class is null.
Bugfix: Fixed a Blueprint breaking bug where invalid "PLACEHOLDER" classes would replace Blueprint class references.
Bugfix: Crash fix in Blueprint Editor after removing a previously-serialized root and/or parent component within the native scene component hierarchy of a native C++ parent class.
Bugfix: Crash fix in Blueprint Editor when a specific HideCategory (PrimaryTickProperty) was set on an Actor-based Blueprint Class.
Bugfix: Crash fix in Blueprint Editor when deleting a root scene component with 2 or more children followed by deleting a non-root child of the promoted child node.
Bugfix: Crash fix in Blueprint Graph editor after an undo of an unlinked user-defined pin removal action (e.g. removing an unlinked Function Input).
Bugfix: Fixed a Blueprint Graph editor issue that caused Add Component nodes not to be restored properly on an undo/redo after a deletion followed by a compile.
Bugfix: Fixed a bug in duplicated event nodes that could cause unrelated content to be referenced and loaded.
Bugfix: Fixed a bug in the array Shuffle method where the last entry wasn't as randomized as the other elements.
Bugfix: Crash bug during garbage collection for child Blueprints cyclically dependent on their parent.
Bugfix: Crash fix when applying instance changes to a Blueprint.
Bugfix: Crash fix while dragging off pins.
Bugfix: New components are now able to have the same name as a deleted component without having to compile after deleting the old component.
Bugfix: Copy, duplicate, and rename hotkeys wor correctly in the Blueprint viewport.
Bugfix: Fixed a bug that was resetting arbitrary defaults on Blueprint sub-classes.
Bugfix: ClassAssetIDs properly resolve circular dependencies.
Bugfix: Fixed a bug where special game specific event nodes could be removed on load (when they're associated with interface functions).
Bugfix: Fixed bugs with parent/child cyclic dependencies, where the child's overridden property values would be cleared on load and inherited components would be trashed during compilation.
Bugfix: Crash fix on undo of an Actor-based Blueprint Class instance deletion if it followed a previous redo.
Bugfix: Crash fix when using the diff tool with a Blueprint that implements an interface.
Bugfix: Crash fix on save with an EditInline instanced object owned by an Actor component instance.
Bugfix: Crash fix when modifying a function signature after deleting a sub-class override for it.
Bugfix: Crash fix when passing a default BlueprintSessionResult object to the "Join Session" Blueprint node. Instead of crashing, the join will fail and execution will continue from the "On Failure" pin.
Bugfix: Crash fix when using the "Replace References" feature when deleting a Blueprint asset.
Bugfix: Crash fix in specific cyclic dependency cases involving an Actor and ActorComponent Blueprints.
Bugfix: Crash fix when removing a event/function param in a Blueprint that was associated with the set GameMode.
Bugfix: Crash fix when deleting a map while its level Blueprint is opened.
Bugfix: Crash fix after a hot reload of the compiled game project.
Bugfix: Fixed a potential infinite loop runtime crash when adjusting Actor rotation in a Blueprint function.
Bugfix: Crash fix in to component reconstruction in a Blueprint Class instance related to undo/redo operations.
Bugfix: Fixed an internal Blueprint compile error on expansion of a Macro Instance node with one or more unconnected Enum output pins.
Bugfix: Crash fix when force-deleting a non-Actor parent Blueprint Class asset in the Content Browser if a child Blueprint Class asset was also loaded.
Bugfix: Event Dispatchers do not become unmodifiable after reparenting the Blueprint.
Bugfix: Component property values on a Blueprint class instance in the current scene are no longer reset as a result of recompiling the Blueprint class.
Bugfix: Convert Selected Components to Blueprint Class no longer asserts inappropriately.
Bugfix: Fixed collision response options editing for instances of Skeletal Mesh components added to a Blueprint Class.
Bugfix: Sliders behave properly on Capsule Collision component shape properties in the Blueprint editor.
Bugfix: Find-in-Blueprint goes to an item after the user double-clicks on it when searching locally.
Bugfix: Fixed compile errors after creating a local function variable from a node that could not find its assigned property.
Bugfix: Crash fix from invalid macros resulting from deleting the source graph in MacroLibrary.
Bugfix: Crash fix on Blueprint load when a macro instance referenced a struct.
Bugfix: Crash fix when generating bytecode for circularly-dependent blueprints.
Bugfix: Crash fix when a Blueprint Enum name collides with a Details Customization Name. For example, "Color" is now a safe name to use for a Blueprint Enum.
Bugfix: Crash fix when a Blueprint is saved without valid default values.
Bugfix: Crash fix Fixed when attempting to open the Property Matrix for a Blueprint that is missing its parent.
Bugfix: Crash fix when indexing all Blueprints in the Find Results window.
Bugfix: Crash fix when making changes with multiple components selected in the blueprint editor.
Bugfix: Crash fix when using "Find References" on a struct operation node (Make, Break, Set Members).
Bugfix: Crash fix when modifying some properties in sub-struct variables inside user-defined structs.
Bugfix: Crash fix when using the target of an Interpolate Component To node is destroyed before the node finishes.
Bugfix: Crash fix when using the Editor to debug breakpoints in blueprints with a null MacroGraph. Now it calls Ensure and recovers gracefully.
Bugfix: Crash fix with duplicating Timeline nodes, which was causing the new Timeline's tracks to be misplaced.
Bugfix: Crash fix after reinstancing Component BPs in thumbnails.
Bugfix: Crash fix in editor when using hotkeys to create local variables in graphs that do not support locals.
Bugfix: Crash fix when applying instance changes to a struct array back to the blueprint using the IWCE interface.
Bugfix: Crash fix when using "Draw Debug Float History" and "Draw Debug Transform History" in Blueprints.
Bugfix: Crash fix while garbage collecting recompiled Blueprints.
Bugfix: Promoting function graphs from interfaces during interface removal no longer calls Ensure.
Bugfix: Fixed thread-unsafe code in the Blueprint VM by removing static/global data.
Bugfix: Fixed errors that would sometimes appear when reloading a level that referenced a sub-level.
Bugfix: Fixed issue with appearing to be able to select actors in the viewport using Level Blueprints loaded through the Find-in-Blueprint system.
Bugfix: Deleting macros in Macro Libraries and then using undo no longer causes external dependencies.
Bugfix: Fixed UI issues when clearing GameplayTagContainers.
Bugfix: Fixed issues that could occur if an existing Blueprint class default object or instance contained one or more invalid property values for native component subobjects on load.
Bugfix: Fixed issues with "Find References" on local variables located in function graphs with a space in the name.
Bugfix: Fixed issues with graph node bubbles rendering incorrectly when there is nothing in the top slot.
Bugfix: Fixed the inability to save a Blueprint Class asset after renaming another Blueprint Class asset on which it depends.
Bugfix: Fixed warnings that would sometimes appear when using level Blueprint communications.
Bugfix: Fixed an issue causing Find-in-all-Blueprints to not be able to load up Blueprints due to missing path.
Bugfix: ForEachEnum will now correctly iterate over all enum values.
Bugfix: Functions correctly inherit purity in Blueprints and will update to reflect the current purity state of the inherited function.
Bugfix: GameplayTag and GameplayTagContainer switches will now work in standalone and cooked builds.
Bugfix: Harvesting components into a new Blueprint will correctly mark the components as movable so they can properly attach to the root.
Bugfix: Macros leveraging wildcard parameters will no longer fail to expand during compile-on-load.
Bugfix: Moved error bar for variable nodes to the bottom instead of the top to prevent shifting of nodes when there are errors.
No longer possible to duplicate Blueprint graphs while in PIE.
Optimization for Find-in-Blueprints gathering of property data.
Per instance lighting and vertex coloring on static mesh components is now only applied after the user construction script when the actor is reconstructed.
Removed direct dependency on GameplayAbilities from GameplayDebugger to solve problems with its classes showing in blueprints editor as a result of the OS automatically loading the library.
Bugfix: Removing an interface and keeping the functions will correctly make the pins on the function available in the details panel.
Bugfix: Renaming a component and then adding a new component of the same type in the Blueprint editor will no longer result in broken defaults editing.
Bugfix: Renaming a component no longer renames all components of the same name in dependent Blueprints (inherited components are still updated as expected).
Bugfix: Resolved Blueprint compiler errors with duplicating Matinee Actors and adding controllers.
Bugfix: Right clicking on the graph instruction text for new Blueprints will no longer prevent the node context menu from appearing.
Bugfix: Setting default values of Text properties in the User Defined Struct or for Local Variable properties in Blueprints will correctly assign the value and preserve the value between instances of the editor.
Slight improvement to native Actor instance construction time.
Bugfix: Spawn Actor From Class nodes can no longer be placed in Blueprints that do not support a world context.
Suppressed import linker errors related to Blueprint Generated Classes.
Bugfix: Child actor construction scripts run appropriately when starting Play In Editor sessions.
Bugfix: Blueprint graphs don't lose focus after pressing debugging keys in the blueprint editor.
Bugfix: Validated Get nodes can now be used on local variables.
Bugfix: This fixes an issue with array nodes where the top input pin would be obscured by the comment bubble making it hard to wire up the nodes.
Bugfix: Undoing changes to a Blueprint Actor Class's component hierarchy when the Blueprint Editor is closed now works correctly.
Bugfix: Undoing changes to object reference properties in a Blueprint no longer causes "Graph is linked to private object(s) in an external package" errors.
Bugfix: User Defined Enums begin counting at 0, and will no longer increase by two's.
Bugfix: User defined structs with Blueprint class references in their defaults will no longer lose their defaults when loading.
Bugfix: User defined structs and Local Variables can have non-basic type arrays of size 1 without resetting size 0.
Bugfix: When promoting an orphaned variable node to a local variable, all orphaned variable nodes in the local scope will point at the new local variable as expected.
When using a pin connection to specify the class for "Spawn Actor From Class", the default value overrides from the node are assigned to the new actor when it is spawned.
WorldContext pins will no longer be visible when the editor starts up if a Blueprint is loaded during game module load (actor/object constructors).
Exposed the ESplineMeshAxis type to Blueprints.
Improved "Find References" for variable nodes to more directly search for references to the specific variable.
Improvements to the usability of PostProcessSettings structure in Blueprints.
Log statements coming from blueprints now include the blueprint's name. This can be disabled in [Kismet] in Engine.ini via bLogPrintStringSource.
Optimized performance of USimpleConstructionScript::GetAllNodes. This dramatically improves the performance of FindArchetype which is relied upon heavily when spawning a Blueprint defined Actor with components added in blueprints.
PinTypeSelector has improved usability with the sub-menu for object types.
Added a warning when a deprecated output from Break Struct node is used.
Toggling a function to pure will automatically remove all breakpoints from call sites.