New: Added the 'Remove Gameplay Tag' function to the gameplay tag function library.
New: Blueprints containing a String and Text variables can now be marked as multi-line, which enables values to contain newlines when pressing Shift + Enter while editing them.
New: Blueprint Variables can now be marked as 'Read-Only' in Blueprint Editor, which prevents them from being set in Blueprints. This behaves the same as using 'BlueprintReadOnly' instead of 'BlueprintReadWrite' on a C++ UPROPERTY() declaration.
New: 'Get Default Locale' has been exposed to Blueprints.
Macro instances that contain latent actions will now show an overlay clock icon like other latent nodes, which makes them easier to spot and understand that they impact execution flow
New: Improved comments in Blueprints.
Comment node text now wraps while the comment is being edited.
Reduced cases where the title of a comment node would clip at the end.
Editing the comment for a regular node using the right click menu will now show changes immediately, rather than waiting until the node was moused over again.
New: Added the Save and Find in Content Browser buttons to the Level Script Blueprint editor (they will save/show the map package that contains the Level Script).
New: Added the ability to search for delegate nodes using the function name that they are bound to.
New: 'Array Get' node.
New: 'Get Class Defaults' node has been extended to include output pin exceptions for Set & Map variable defaults. Like array types, the returned value is now a copy of the default value rather than a reference to it. This is done in order to avoid an accidental mutation of the Blueprint class default object.
New: Function inputs are now exposed as variable "Get" nodes via the right-click context menu in a Blueprint function graph context.
To use: In a Blueprint Function graph, right-click to access the context menu. Any input parameters will be listed as additional "Get" actions.
In this way, input parameters can be accessed like local variables from anywhere in the function graph; in other words, it's no longer necessary to drag wires all the way back to the Function Entry node in order to access these values.
New: We now support "value-based" Bitfield enum type associations in the editor for a UPROPERTY marked as 'Bitmask' with a 'BitmaskEnum' association.
Prior to this release, Bitfield properties did not work with associated enum types in which the enum values were explicitly set to a bitmask value (e.g. 0x80). That is, the value was assumed to always be set to the index of the bit that the flag should set in the editor ("index-based" mode).
To switch the associate to the new "value-based" mode, include an additional metadata key in the UENUM() declaration. Example: UENUM(Meta = (Bitmask, UseEnumValuesAsMaskValuesInEditor="true")).
New: Added a whitelist mechanism for handling native noexport types that can support direct field access in nativized Blueprint code.
Bugfix: Fixed a crash in Blueprint Editor when adding an input parameter to a Custom Event node after deleting a Function Graph containing a Create Event node.
Bugfix: Fixed a crash when creating a new Blueprint class from one or more selected Actors in which the root component is not Blueprint-spawnable.
Bugfix: Fixed a crash on load in nativized EDL-enabled builds with non-nativized child Blueprint class assets.
Bugfix: Fixed a runtime Blueprint VM crash upon removing an element from set after consecutive add/remove iterations.
Bugfix: Fixed a crash that could occur when splitting a struct pin on a collapsed graph node.
Bugfix: Fixed a crash when trying to use non-supported types as Blueprint map keys.
Bugfix: Fixed a crash that could occur when changing a Map's value type string to vector. Map variables are properly cleared when value type is changed to an incompatible type.
Bugfix: Fixed a crash when compiling a Blueprint that contains a split pin in a collapsed graph.
Bugfix: Fixed a crash loading Blueprints that contain a Blueprint node that no longer exists in code.
Bugfix: Fixed a crash when using the Straighten Connection shortcut key (and some other related issues with actions done after the Context Menu is closed).
Bugfix: Fixed a crash when opening a Blueprint with a parent class that no longer exists.
Bugfix: Fixed a crash with the merge tool when the source control provide is SVN and there are gaps in the revision history. (This may still not work correctly, but it won't crash. The full fix will be covered with UE-43603)
Bugfix: Fixed a crash when attempting to name component with a very long name.
Bugfix: Fixed a crash that could happen when running Cook On The Fly server with nested struct assets.
Bugfix: Fixed a crash that would happen when a level in Blueprint was auto-saved.
Bugfix: Fixed an assertion that could occur when compiling a Blueprint with certain nodes (Select, Math Expressions, etc.)
Bugfix: Fixed a crash that could occur when reparenting a component Blueprint.
Bugfix: Fixed a crash that could happen when setting maps and sets of strings and certain structs.
Bugfix: Fixed a crash that would occur when passing a self node through a CustomEvent ref parameter.
Bugfix: Fixed a crash that could occur when adding a new Blueprint function and immediately undoing.
Bugfix: Fixed a crash that could occur after renaming the category of an implemented interface function inherited from a native C++ parent class in the 'My Blueprint' panel.
Bugfix: Fixed a crash that could occur when editing a local curve variable's default value in a Blueprint graph.
Bugfix: Fixed an ensure misfire in PIE exit when using Play as Listen Server Mode.
Bugfix: Fixed an infinite loop case in the Math Expression node.
Bugfix: Fixed an issue where misaligned memory access of noexport struct properties leading to incorrectly initialized values in a nativized cooked build.
Bugfix: Fixed an issue with broken collision shapes at runtime when cooking with the optimized Blueprint component instancing data feature turned on.
Bugfix: Fixed an issue with a Bitmask Enum type validation failure when serializing a Make Bitmask Literal node
Bugfix: Fixed an issue with log spam when compiling a Blueprint function with a local TSet or TMap variable.
Bugfix: Fixed an issue with broken pin wires after expanding a duplicated collapsed graph node.
Bugfix: Fixed an issue with invalid custom Enum type selection on member fields in the User-Defined Structure editor after a reload.
Bugfix: Improved context menu "whole world" algorithm to proper take into consideration localisation when searching for terms.
Bugfix: Fixed an issue where renaming interface input/output parameters will no longer cause broken pin links at interface function call sites in Blueprints that are currently loaded.
Bugfix: Fixed an issue with broken graph node pin links caused by renaming interface function input/output parameters prior to compiling the interface, but after renaming the function itself.
Bugfix: Fixed an inability to save after choosing a Level Script Blueprint class as the default value for a class input pin in a non-Level Script Blueprint class function graph.
Bugfix: Fixed an issue where Blueprints containing a 'Key Get Display Name' node will no longer be marked dirty when opening the Blueprint.
Bugfix: Fixed an issue where the user defined variable tooltip was not showing up when hovering over Get/Set nodes for local variables.
Bugfix: Fixed an issue with old versions of Blueprints being diffed accidentally showing up in Find-in-Blueprints search results.
Bugfix: Fixed some issue in Blueprint Diffing where properties of nodes edited in a Details panel would not show up as differences (this impacted Animation Graph nodes most heavily).
Bugfix: Fixed an issue in Blueprint nativization that could cause bad interface function calls to be generated.
Bugfix: Fixed an issue that could cause stale Blueprint instances in a hidden sub-level to spam a runtime error.
Bugfix: Fixed an issue that could cause a Blueprint 'mismatch' error when using 'Set' and 'Map' node.
Bugfix: Fixed an issue that could cause struct asset defaults to be wiped on editor reload.
Bugfix: Fixed an issue that could cause a packaging error when running with Blueprint nativization and no Blueprints were nativized.
Bugfix: Fixed an issue that removed the ability to set Blueprint object variables as 'config' variables, as you cannot set a object reference from a config.
Bugfix: Fixed an issue with reroute nodes so that a new output connection will propagate that type through to the node's inputs.
Bugfix: Fixed an issue so that 'Get Data Table Row' nodes are now compatible with DataTable variables.
Bugfix: Fixed an issue that could cause material parameter setting in a Blueprint construction script to fail.
Bugfix: Fixed an issue that could cause overlap events to fire multiple times in PIE.
Bugfix: Fixed an issue that would generate the nativized Blueprint plugin even if no Blueprint files were nativized.
Bugfix: Fixed an issue that would cause certain components to be orphaned and hidden from the component hierarchy.
Bugfix: Fixed an issue that could cause a level Blueprint's bound delegate nodes to not trigger.
Bugfix: Fixed an issue in Blueprint nativization that would cause cyclical logic (loops, etc.) to not iterate past the first iteration.
Bugfix: Fixed an issue in Blueprint nativization that could cause Blueprint subclasses to ignore their overridden model and default to their parent's.
Bugfix: Fixed an issue where non-nativized Blueprints were getting dropped from the cooked asset registry file when running with Blueprint nativization.
Bugfix: Fixed an issue where there would be a nativized Blueprint asset build error when there are no native code dependencies.
Bugfix: Fixed an issue with incorrect Blueprint graph pin value display names for user-defined enum types.
Bugfix: Fixed the variable 'config' setting tooltip to report the correct config file for the user to use.
Bugfix: Fixed an issue that could cause Blueprint variables set from a config to have their values improperly overwritten.
Bugfix: Fixed several issues with Switch Blueprint nodes not keeping their node and property UI in sync.
Bugfix: Fixed several issues where changing pawn/hud/state class from the Level editor toolbar would not work properly until the project was reloaded.
Bugfix: Fixed a stale class reference in interface properties that reference a Blueprint defined interface that has been recompiled.
Bugfix: Fixed an issue where 'Get Values' and 'Get Keys' nodes were not providing correct results for Map variables that have had values removed.
Bugfix: Fixed an issue where Blueprint functions that have all their return nodes pruned (ie. are not connected to anything) now have the correct output pins at call sites.
Bugfix: Fixed an issue where 'Movie Scene Sequence' and related code was not working when Blueprints were nativized.
Bugfix: Fixed an issue in nativized packaged builds that would cause default values to be lost.
Bugfix: Fixed 'Enum As Byte' related warnings in nativized packaged builds. 'Enum As Byte' is no longer used when nativizing Blueprints.
Bugfix: Fixed issues with Blueprint nativization where it didn't correctly include headers necessary for owners of subobjects, and instances where all modules needed by the generated code weren't being founds. This fixes one cause of "Cannot open include file" errors when packaging with Blueprint Nativization enabled.
Nodes in the blueprint editor again use their custom cursor (grab hand when hovering over a node and crosshairs when hovering over pins).
'Logarithm' node added to the Blueprint Math library.
'Set' pins on 'Intersection', 'Union' and 'Difference' nodes now infer their values uniformly.
Out of date Class Default Objects are no longer duplicated when compiling a Blueprint, reducing blueprints compilation time
Successive calls to Set Intersect, Union or Difference now provide correct results, previously the Set was not cleared before calculating the new result
'Trace By Profile' collision functions have been exposed to Blueprints.
Nativize code is now more precise about dependencies, reducing the resulting executable size and compiler load.
Blueprints that override an inheritable component are no longer 'data only'. Blueprints with overridden components but no extra functions now load without losing data.
Blueprints that extend types that implement 'Needs Load For Server' or 'Needs Load For Client' now honor those functions, meaning they will not be cooked for targets that their type wants to be excluded from.
Delegates in nativized packaged builds correctly prevent double registration.
Blueprints used as a child actor class will no longer be marked dirty when compiling the class that references them.
When duplicating a Blueprint component, that component will now be a sibling of the duplicated node, not a child of it unless it is the root node being duplicated.
Duplicated root nodes will have their scale set to (1,1,1) to avoid applying the scale multiplier twice.
Blueprintable Components are no longer considered experimental, they have been enabled by default for several versions.
The ticking behavior of latent actions in components has been changed to match how they behave in actors. When the component ticks, the latent actions will now be processed at the same time, rather than happening later in the frame when latent actions for non-ticking actors and components are processed. This does change behavior, so there is a console variable (t.TickComponentLatentActionsWithTheComponent) that can be used to revert to the older behavior until affected component Blueprints that depended on the old ordering behavior can be fixed up. The cvar should be treated as deprecated; it will be removed in a future release.
Updated Blueprint nativization so that it generates source files compatible with 'include what you use' (IWYU).
Moved nativized Blueprint plugin generation to the project's 'Intermediate\Plugins' folder.
Removed make/break nodes from the Blueprint menu for structs that aren't marked as a 'BlueprintType'.
Updated marquee selection in graph editors. Ctrl dragging now inverts nodes' selection state, instead of only deselecting them (holding alt is now for pure deselection).
The Actor Details view will now refresh property mappings for the current Actor instances selection after a bytecode-only recompile of its Blueprint class as a dependency during reinstancing.
Child Blueprint class assets are now marked as dirty if its parent Blueprint class incurs a structural change. This alerts the user that updates to the Child Blueprint would need to be saved on exit.
We now emit C++ ctor initialization code for nested default subobjects when nativizing a Blueprint class at cook time.
Instanced Static Mesh transform edits are now reflected in the Blueprint editor's preview scene.
The editor will now raise an error at cook time after an attempt to nativize a Blueprint class that also implements a native C++ interface with a pure virtual function declaration that is not also marked up with UFUNCTION. This is because we cannot nativize a Blueprint class that does not also have an implementation of a pure virtual function inherited from the interface.
C++ interfaces with one or more pure virtual function declarations not also tagged with UFUNCTION are now excluded from the list of available "Implementable" interfaces in the Blueprint class editor.
Non-nativized child Blueprint classes will now properly override a nativized parent Blueprint class's component defaults at runtime in a nativized cooked build.
We will now implicitly nativize any child Blueprint class that overrides one or more BlueprintCallable functions inherited from a parent Blueprint class that is also nativized.
The Blueprint diff tool now reports when a component changes its type between revisions
Blueprints are now only dirtied if edited properties are from objects in the Blueprint's package.