<track id="5sipw"><track id="5sipw"><span id="5sipw"></span></track></track><delect id="5sipw"></delect>

<meter id="5sipw"></meter>

  • <meter id="5sipw"><ins id="5sipw"><strike id="5sipw"></strike></ins></meter><nobr id="5sipw"><input id="5sipw"><ruby id="5sipw"></ruby></input></nobr>

      1. <cite id="5sipw"></cite>

          Unreal Engine 4.8 Release Notes

          4.8 Release Notes

          Windows
          MacOS
          Linux

          This release includes 189 great changes that were submitted from Unreal Engine's amazing community of developers. Thanks to all of these contributors to Unreal Engine 4.8:

          3dluvr, Adrian Gasinski (gasnica), Adrian Irwin (adrianirwin), Albino Rodrigues (Bino-), Alexander O'Mara (AlexanderOMara), Andrew Zhilin (zoon), Angelo Miner (angjminer), Artem V. Navrotskiy (bozaro), Ash Matheson (Nuclearfossil), Audiokinetic Inc. (audiokinetic), Ben Rog-Wilhelm(zorbathut), BhaaL (BhaaLseN), Black Phoenix (PheonixBlack), B?a?ej Szczygie? (zaps166), Cengiz Terzibas (yaakuro), Christopher P. Yarger (cpyarger), codetackler, Craig Wilson (hamo2k1), Dainius Masiliūnas (GreatEmerald), Daniel Mahashin (dmahashin), Daniel Zeligman (dzeligman), David Palacios (hevedy), Derek van Vliet (derekvanvliet), devbm, Dewitt Buckingham (DaJoker29), Eugene Elkin (eelkin2000), Ezekiel Warren (zaucy), gatools, Henrik Danielsson (TwoD), Jackson Egan (Sneagan), JaredTherriault, Jason (Abatron), Jason Maskell (TamedTornado), Jay Mattis (braindx), jdh84, Jeff Rous (JeffRous), Jefferson Pinheiro (Ixiguis), Jeremy (OPTIPlanet), jlamarche, Joshua Sheard (jsheard), karolz, Kazumasa Ohashi (KazumasaOhashi), Korshikov Anton (tnako), korypostma, Lee Berger (MrCrowbar), Leon Rosengarten (lion03), Leszek Godlewski (inequation), Lucas Dohring (nykac), Lukasz Baran (iniside), Luna Duclos (PSG-Luna), Marat Radchenko (slonopotamus), Marc Kamradt (MarcKamradt), Marco Antonio Alvarez (surakin), marynate, Maurice Laveaux (mlaveaux), Michael Allar (Allar), nsf, Omar Pakker (Omar007), Paul Eremeeff (PaulEremeeff), Pierdek, PjotrSvetachov, radu-danciu, Rama (EverNewJoy), Rene Rivera (grafikrobot), Richárd Németh (hsdxpro), Richard Biely (richardbiely), Robert Chubb (SaxonRah), Robert Williams (Rottbott), Salamanderrake, Sasha Petrovich (xulture), Satheesh (ryanjon2040), Sebastian K?cke (byte3), Sébastien Rombauts (SRombauts), Stephen Whittle (stephenwhittle), Simon Taylor (simontaylor81), Spencer Brown (JedTheKrampus), thk123, Thomas Mayer (tommybear), threadlock, Tobias Mollstam (mollstam), Tore Lervik (hallatore), Will Stahl (merlin91), x414e54, Yohann Martel (ymartel06), zombiesnu

          Major Features

          Improved Editor Stability and Quality of Life

          This was a really big focus for Unreal Engine 4.8. With every Unreal Engine release we fix hundreds of bugs and add many new features, but with Unreal Engine 4.8 we've worked hard to improve editor and game stability, as well as to address many of the most common engine bugs and small feature requests. We hope that the result is a very solid engine runtime and editor, and we'll continue to make stability a big focus of future releases.

          New: SteamVR/HTC Vive Support

          Unreal Engine now has comprehensive support for Valve's SteamVR API and HTC Vive hardware!

          image alt text

          • Preview your game instantly on a connected HTC Vive using the "VR Preview" button!

          • All HTC Vive motion controller features are supported, and controller buttons/touchpads are bindable

          • Full support for both room scale and seated experiences.

          New: Playstation 4 Morpheus VR with 120Hz Reprojection

          The latest Sony Morpheus hardware is now supported, along with support for 120Hz rendering using temporal reprojection.

          image alt text

          • Unreal Engine now supports both 60hz and 120hz Morpheus development kits

          • 3D audio playback in VR has also been greatly improved for this release.

          New: Landscape Grass Renderer

          The new grass system dynamically renders instanced grass and other ground clutter meshes on the landscape around the player.

          image alt text

          • As the player moves through the world, new instances are added, and instances no longer in range are removed.

          • Artists author grass density through the landscape material, by outputting density to a Landscape Grass Output node. This allows the grass placement to match the terrain texturing!

          • Grass instances are procedurally generated by a background task according to the grass density map.

          • Grass is efficiently rendered using a hierarchical instancing system that implements culling while keeping draw calls to a minimum. LOD transitions are per-pixel and fairly seamless due to Temporal AA.

          • See the "Landscape Grass Tools" section below for information about how to set this up!

          New: Hierarchical Level-Of-Detail System

          This new Hierarchical LOD feature automatically creates LODs for groups of meshes! This greatly reduces draw calls and polygon counts when they are visible from a distance. This is great for open world games!

          image alt text

          • Groups of meshes to combine are found automatically. If Simplygon is available, it will be used to generate the low-detail mesh for a group. If not, the LOD version of each mesh will be combined (using the Merge Actors feature). Materials are merged automatically if possible, to reduce section (material) count.

          • To use Hierarchical LOD, set Enable Hierarchical LOD System to be true in World Settings. Once enabled, you'll be able to edit settings in the LODSystem section.

          • Individual Actors can opt out by disabling their Enable Auto LOD Generation option.

          • LOD meshes are generated as part of the 'Level Build' process, or by selecting Build LODs in the Build menu.

          New: Procedural Foliage Generator (Experimental)

          There is a new experimental feature for procedurally generating huge (or tiny, or medium-sized) regions of foliage instances quickly.

          image alt text

          • Foliage Type assets now have properties to customize how they spread and grow over the course of a simulation.

          • Multiple procedural foliage types can be simulated alongside one another to generate the foundations of an entire forest!

          New: Scrubbable Network Replays

          Unreal Engine games have full game replay recording and playback. New in 4.8, you can now "scrub" to a specific time while viewing network replays!

          image alt text

          Take a look at Shooter Game to check out this feature.

          • At the main menu, host a new game

          • Fill it up with bots (to make it interesting!)

          • Make sure "Record Demo" is on

          • Play the match

          • Exit to the main menu when you have enough footage

          • At the main menu, select "Demos"

          • Find your replay in the replay browser, and select it to play it

          While viewing a replay:

          • Mouse wheel will control playback speed

          • There is a button on screen to pause/play

          • You can click anywhere on the timeline bar to scrub to that location!

          Out of the box, the engine is configured to store replays locally. We have a system that allows you to easily swap out replay streamers. This allows you to use a streamer that saves replays locally, or you can use a streamer that is designed to save replays to the cloud with full streaming support. More on that in future releases!

          New: High Quality Depth of Field and Tone Mapping

          image alt text

          • New depth of field algorithm called "Circle DOF"

            • High performance DOF technique with circle bokeh and nice transitions from in to out of focus

            • Circle DOF controlled by physical camera parameters: fstop, focal length, focal distance

            • Supports a distance based blur to simulate light scattering through the atmosphere

          • New film like color and tone response

          New: Redesigned Foliage Editor

          The foliage editor has recently undergone a redesign! Besides improved usability, the new layout gives you the ability to more easily work with a large number of foliage types in the palette at once.

          image alt text

          • Easily create new Foliage Types directly from the foliage view with the "Add Foliage Type" button.

          • Foliage thumbnails have buttons for toggling visibility and saving the asset, as well as the total instance count.

          • You can now activate or deactivate multiple foliage types at once with multi-select.

          New: Dynamic Navigation Mesh for Open Worlds

          We have a brand new system for supporting dynamic NavMeshes in large open worlds.

          image alt text

          • The engine now dynamically generates NavMesh on demand in the areas where it is needed.

          • To enable this, configure your project's Navigation System for this mode and add a Navigation Invoker Component to relevant actors.

          New: New Unreal Example Character

          We've designed a new, high resolution version of the Unreal Example Character included with our templates!

          image alt text

          • There are two versions, a high resolution model and a low resolution version suitable for mobile devices.

          • The high resolution version is included -- you can grab the low resolution character from the Marketplace for free!

          New: Curve Editing for Unreal Motion Graphics UI

          Unreal Motion Graphics now has a curve editor!

          image alt text

          • You can select numeric value tracks in a widget animation and animate those using the new curve editor.

          • You can also play, rewind and loop your animation while previewing it using the new Transport control buttons.

          New: Screen-Space Reflections for Translucent Surfaces

          Translucent surfaces can now dynamically reflect other objects on the screen!

          • Enable on translucent materials with the 'Screen space reflections' option

          image alt text

          New: Quick Window Switching (Control+Tab)

          You can now summon a pop-up menu to quickly switch between different asset editors and tool tabs by pressing Ctrl+Tab.

          image alt text

          • You can Ctrl+Tab or Shift+Ctrl+Tab to cycle thru open assets, sorted by last activation time; releasing Ctrl activates the asset you picked

          • You can also activate a tool tab in the editor for the current selected asset or show the asset in the content browser by using the mouse

          New: Landscape Grass Tools

          New editor features have been added for setting up instanced meshes for the grass rendering system.

          image alt text

          • Each type of grass is described by a new Landscape Grass Type asset type, and each grass type can specify multiple static meshes for variation.

          • A grass density map is generated from the landscape's material. A Landscape Grass Output node should be added to your landscape material, and one or more Landscape Grass Type assets can be assigned. For each grass type, a new input connection will appear, which is used to specify the grass density.

          • Connecting a Landscape Layer Sample node directly will allow a landscape layer to specify the grass density. You can also connect a network of nodes to create more complex placement rules such as automatically removing grass based on surface normal or altitude or using multiple landscape layers.

          New: Edit Properties on Instances of Actor Blueprints

          Just as you can in subclasses, properties of components added in the components section of the Blueprint can be modified on a per-actor instance basis.

          • Just as with Actor properties, modified Component properties can be applied to the Blueprint defaults with the Apply to Blueprint

          • A few caveats: Components created by the Construction Script cannot be modified, and properties that are modified on components by the Construction Script cannot be modified on the instance and will appear as read-only in the Actor details panel. However, if the Construction Script explicitly sets the property value to the default, we cannot distinguish that from not having set it at all and it will be editable at the instance level.

          New: Asset Size Mapper

          Ever wondered how much memory an asset takes up? Well, we have a new editor feature called "Size Mapper" that helps you figure that out!

          image alt text

          • It shows the memory used by an asset along with everything it depends on. Use the mouse wheel to "drill down" into referenced assets, and double-click to jump to that asset in Content Browser.

          • You can also view the sizes of lots of assets at once! Size Mapper will show all assets that are shared between your selected assets inside its own top-level group.

          • You can access this feature all over the editor:

          • Content Browser: Right-click on assets (or a whole folder full of assets) and select "Size Map."

          • Level Editor: Right-click on actors and select "Size Map", or press Alt+Shift+M with actors selected.

          • Reference Viewer: Right-click on some nodes and select "Size Map."

          • Any asset editor: Open the File menu and choose "Size Map."

          Shared Editor Layout and Keybinds

          Your editor layout and keybinding settings are now shared between all of your projects!

          Previously, every project had its own saved layout/keybinding settings, and it was cumbersome to rebuild your layout with every project you switch to. In the future we'll be moving even more editor preferences to be globally shared between all projects.

          New: Interactive Wires in Graph Editors

          You can now interact with wires directly in any graph editor!

          image alt text

          • Alt+LMB Click to break the connection

          • Ctrl+LMB Drag to move the connection to a different pin

          • Hover over the wire to highlight it or see the tool-tip for the associated pin

          • Double-click to insert a reroute node (Blueprint graphs only)

          New: Procedural Mesh Component (Experimental)

          The new Procedural Mesh Component lets you create meshes at runtime using C++ or Blueprints.

          image alt text

          • This is similar to the existing Custom Mesh Component, but has many new features such as multiple sections (materials), collision support, and the ability to specify normal, tangent, UV and color per vertex.

          • We have also added a utility library, including a function to generate smooth normals and tangents, given mesh vertex positions and UVs.

          New: Improved Automatic Convex Collision Meshes

          When using the Static Mesh Editor to automatically generate a collision mesh for your model, the generated mesh will be of much higher quality and will complete more quickly!

          image alt text

          New: Configurable Animation Notify Triggers

          There are helpful new settings on all notifies to control when animation notifies trigger:

          image alt text

          • Notify Trigger Chance - A number between 0.0 and 1.0 to denote a random change for the notify to trigger (0.0 = Never Trigger, 1.0 = Always Trigger)

          • Notify Filter Type - The Filtering mode to apply to the notify, currently there are two choices:

            • No Filtering - Notify will always trigger (assuming it passes the Trigger Chance setting)

            • LOD - Only trigger this notify if the owning mesh is below this LOD. For example a setting of 2 will mean that the LOD will only trigger if the mesh component is rendering at LODs 0 and 1

          New: On-Demand Asset Cooking ("Cook on the Side")

          • "Cook on the Side" is a new Project Setting that allows your game to startup on a device very quickly.

          • To enable this for your game, check out the "Enable cook on the side" option in the Cooker section of your project's settings.

            • When enabled, the Launch On button will now do perform all asset cooking inside the editor, on demand, over the network. This will allow your game to start much more quickly (similar to when using the "Cook on the Fly" feature.)

            • When running the game in a debugger or similar, you will need to add -filehostip=xx.xx.xx.xx (using the IP address of the computer running the editor)

          • Previously to 4.8, this feature was available as an Experimental setting. It's now fully supported in 4.8!

          New: Downloadable Content (DLC) Support

          • Added support for cooking DLC (Downloadable Content). This allows you to create Pak files that can be distributed to users later.

            • Games can choose to make sure DLC doesn't reference Engine content (that Epic will be changing over time).

            • In Unreal Frontend, make a custom profile, then select Cook -> Release / DLC / Patch Settings -> Include Engine Content.

          New: Content Patching Support

          You can now generate Patch Files for your game that have only the content files that have changed since a previous release!

          image alt text

          • These are generated by comparing new assets with the files that were originally in the shipped game. Check out the new Unreal Frontend settings for this (shown above.)

          • When releasing games use the "Create release version" check box in project launcher and give it a name (example "1.0")

          • To generate a patch off that release use the "generate patch" check box in project launcher

          New: Localization Dashboard

          The Localization Dashboard is now usable as an experimental feature. Use this feature to manage your project's localization pipeline.

          image alt text

          • You can organize localization targets (sets of localization data), and which cultures (languages, regions, and scripts) should be localized for are specified.

          • You can also manage outstanding issues with any of the existing localization data, as well as control all aspects of localization data gathering here.

          Paper2D: Paint Directly on Sprite Textures

          Sprite components can be selected and painted on when in Mesh Paint mode

          image alt text

          • The source texture, any additional textures, or textures referenced via the material can be selected and painted on

          • Note: Only texture painting mode is supported, vertex painting does not currently work with sprite components.

          Paper2D: Tile Maps are promoted out of experimental into Beta Preview

          image alt text

          • Programmatically working with Tile Map Components from Blueprints (both querying and building from scratch) is now fully supported

          • Tile map color can now be controlled both per-layer and across the entire tile map

          • Staggered Isometric and Staggered Hexagonal projections are now supported, and the grid/cursor previews are improved in all modes

          • Added support for rotated and flipped tiles

          • Various workflow/editing improvements (key binds for layer operations, drag-drop works as expected, existing painted tiles can be selected using Shift+LMB+Drag, etc...)

          • Collision geometry and a custom metadata key can now be specified on a per-tile basis in the tile set editor

            image alt text

          Paper2D: Support for sprites that require multiple paired textures

          Materials for sprites can define additional texture 'slots', with the actual textures defined in each sprite asset, allowing multi-texture sprites to be easily used.

          • Some examples where you might want to use this are custom materials requiring additional mask textures (e.g., pulsating emissive eyes/lines), a lit sprite with an associated normal map, or splitting a translucent texture into two opaque textures (one containing alpha data) for ETC1 compression on Android.

          • Place SpriteTextureSampler nodes in the material, defining whether each should sample from the source texture or one of the additional textures

          • Connect your additional textures in the sprite asset.

            image alt text

          • When you create a sprite or import a sprite sheet, the source folder is automatically checked for an associated normal map named the same as the base texture with a N or Normal suffix, which will be plugged into additional texture slot 0 for you. This can be configured in Project Settings (Paper2D - Import)

          • Note: Each texture does not have to be the same size, but the portion corresponding to a specific sprite must be at the same relative location in each (there is only one source region defined per sprite)

          Paper2D: Snap layers for speedy 2D level layout

          2D Snap Layers are an easy way to manage level layout when working with a 2D game (or a 3D game with 2D gameplay)

          • Snap layers can be used to either automatically or manually snap actors to a specified layer (e.g., Foreground, Playfield, or Background)

          • The settings for the snap layers feature are in Project Settings - 2D

            image alt text

          • The overall feature can be enabled or disabled, controlling the presence of the Snap Layers control in the editor viewport

          • The snap axis and snap depths / names are customizable as well

          • When the layer snap mode is enabled, any newly placed actors will automatically snap to the active snap layer

          • At any time (even when disabled), a series of keyboard shortcuts can be used to snap to the active snap layer or change layers

            image alt text

          • Snap to the current layer (Ctrl+SpaceBar)

          • Move selection up a layer (Ctrl+PageUp, also changes active layer)

          • Move selection down a layer (Ctrl+PageDown, also changes active layer)

          • Move selection to the top layer (Shift+Ctrl+PageUp, also changes active layer)

          • Move selection to the bottom layer (Shift+Ctrl+PageDown, also changes active layer)

          • Cycle active snap layer forwards (Alt+PageUp)

          • Cycle active snap layer backwards (Alt+PageDown)

          Paper2D: Interactive Extract Sprites Dialog

          The Extract sprites dialog allows more control over how sprites are split out from a texture, making it quicker and easier to import/prepare assets for use with Paper2D

          • The dialog can be triggered on a texture via the Content Browser context menu Sprite Actions..Extract Sprites, or on an existing sprite in the Source Region Edit mode using the toolbar button

            image alt text

          • You can specify a naming pattern and starting offset for the created sprites

          • There are two modes: Automatic and Grid-based

            • Automatic will identify islands of continuous pixels and treat each one as a sprite, which works well for many kinds of assets, but may require custom pivots for flipbook animations that are different heights or create too many sprites for things like particle systems

            • Grid-based allows you to specify the width/height of one grid cell, and optionally how many cells wide/tall to extract (in case there are different sized grids sharing the same texture)

          Paper2D: Grouped Sprite Components

          A grouped sprite component allows many instances of one or more sprite assets to be drawn together in a minimal number of batches (separate materials or textures will still split batches).

          image alt text

          • Working with groups is pretty simple:

            • You can build them programmatically in the same way you might use a UInstancedStaticMeshComponent for 3D meshes, but they have fewer limitations (you can mix/match sprites and materials in one, it will generate additional draw calls as necessary)

            • You can convert selections in the level editor into a grouped component using the Merge button in the details panel if all selected items are sprite actors, or the right-click context menu if the selection is mixed (it will leave non-sprite objects alone but delete sprite actors, replacing them with a merged actor).

            • You can split a sprite group back into separate actors if you need to move/reposition something, and can then re-merge them.

            • You can sort them based on the rendering project settings TranslucencySortAxis, so that batches that contain translucent sprites render as expected.

          • Note: All sprites in a group will be drawn as one or a few draw calls (the minimum required given the materials and textures). This means that:

            • Culling will be done as a whole unit. Either all instances are drawn or none of the instances are drawn. You probably don't want to group sprites from opposite ends of the map together.

            • Sorting will be done as a whole unit. If you have some translucent foreground sprites and some translucent background sprites, you probably don't want to group them together. With the sort button they'll sort correctly relative to each other, but a translucent player in the mid-ground can't pass in between the two of them, it'll either draw in front of both or behind both.

            • These kinds of sorting issues only apply to Translucent materials, Masked materials don't have the same issues but they only work for binary (0 or 1) opacity.

          New: 'Interpolate To' Component

          The new "Interpolate To" Movement Component can be dropped onto actors. This will let the actor move automatically!

          image alt text

          • You can specify multiple points to interpolate between, and a number of different behaviour options are available (e.g. looping, ping pong, etc.)

          New: Support for Large Android Games

          Added support for downloading .obb (large data) files from the Google Play Store has been added.

          image alt text

          • Sometimes the data file isn't downloaded from the Store, this ensures the game downloads it and can run.

          • Allows for a custom background image support for the download screen.

          New: Build iOS Projects from Windows (Remotely)

          Added support for building iOS Code Projects on a remote Mac using SSH.

          image alt text

          • Requirements:

            • A login to a Mac with Xcode installed.

            • An iOS signing certificate installed in the system keychain

            • DeltaCopy or other SSH and Rsync software for Windows

          • Use the Generate SSH Key button to generate local credentials to a password isn't needed when compiling

            • You can check the key into source control to share with your team.

            • The previous, but unsupported, method (UnrealRemoteTool) can still be used if you set bUseRsync to false DefaultEngine.ini

          New: Motion Blur and Anti-aliasing for Vertex Animation Materials

          Materials that animate vertices using World Position Offset can now output accurate motion vectors. The motion vectors allow per-pixel motion blur from the procedural animation. Additionally Temporal Anti-Aliasing and Distance Field Ambient Occlusion can correctly reproject to prevent undesirable blurring.

          Visualization of per-pixel velocities from a tree animated with World Position Offset.

          image alt text

          • You must enable the new project setting 'Accurate velocities from Vertex Deformation'. This feature causes motion vectors to be output during the base pass which has a small performance cost whether you use these materials or not. Changing this setting requires a restart of the editor.

          • You can disable the feature per-material with the setting 'Support accurate velocities from Vertex Deformation'

          • The Speedtree wind node needs 'Accurate Wind Velocities' to be enabled

          • Note that this feature can only support velocities from changing time, not parameters set by blueprint or gameplay code.

          New: Multi-threaded Asynchronous Asset Loading

          Cooked builds can use a dedicated thread for package streaming instead of using time-slicing approach. You can enable this in your project with a new config option. This can make asynchronous loading of assets up to three times faster!

          • PostLoad is still performed on the main thread and is time-sliced due to most of the PostLoad functions not being thread safe yet.

          • All Serialize functions defined for UObjects and UStructs are now required to be thread safe.

          • Due to the above restrictions, async loading thread is disabled by default to give everyone time to make sure their code meets the thread-safety requirements. Async loading thread can be enabled via AsyncLoadingThreadEnabled ini setting under [Core.System] section.

          • Async loading thread will be automatically disabled on platforms that do not support multithreading and on dedicated servers.

          • UObjects construction is now thread safe and can be performed on worker threads. This requires all UObject-derived class constructors to be thread safe.

          • StaticFindObject, FindObject and FindObjectFast functions are now thread safe too. Keep in mind that if they're used on a worker thread and the return value is referenced only on the stack, garbage collector may claim the object if not referenced by anything.

          • Introduced FGCScopeGuard helper struct that works on a similar basis to FScopeLock except that it prevents GC from running while the current scope is being executed on a worker thread.

          • Introduced TryCollectGarbage function which skips garbage collection if any of the worker threads executes code inside of FGCScopeGuard scope. TryCollectGarbage is now used by default by level ticking code.

          • Async load percentage accessible via 'stat levels' now takes PostLoad into account

          Release Notes

          AI

          • AI: Blueprint Support for EQS

            • You can now use the Environment Querying System from Blueprints!

            image alt text

            • When you run a query you get a 'query instance', which has an Event called On Query Finished Event that will fire once the query is finished. The instance also has functions for accessing the query's results.

          • New: Added a function to Perception Component to retrieve all actors perceived with a given sense.

          • New: Added batch pathfinding EQS test. Better performance for scoring multiple items in single area, not suited for few items far away from each other.

          • New: Added console command DestroyAllPawnsExceptTarget which will destroy all other non-player pawns except for the one you are pointing at

          • New: Added new modes for EQS test's scoring/filtering against multiple contexts.

          • New: Added new modes for selecting single result from EQS query: random from best items (top 5%) and random from good items (top 25%)

          • New: Added support for physx based projection in EQS generators.

          • New: AI Perception System fixes and improvements

            • Added a way for AI senses to request auto-registering of new Pawns as sources of this sense stimuli

            • Senses can now specify if AI Perception Component's On Perception pdated should be called for their stimuli only if the perception state changes (like sight) or on every update (like hearing)

            • Made all Pawns by default auto-register as sight stimuli sources

            • Added a component that when added to an actor will make that actor auto-register with AI Perception System

            • Added a BP function for easy spawning of AI noise events, damage events and requesting prediction update

          • Fixed AI not ignoring their own pawns when checking for visibility

          • New: Made Blackboard Component blueprint-spawnable so that blueprint users can start using it outside of AI Controllers

          • New: Made Blackboard's key names editable in key's details tab

          • New: Unified support for nested nodes, copy & paste and drag & drop operations in AI editors (Behavior Tree, EQS)

          • Added editor-time changes to a Blackboard asset propagate to all other assets derived from that particular assets

          • Fixed a broken condition in AI Perception Component's Get Actors Perception function that was making the while function useless by never returning any information.

          • Fixed a bug in AI Controller that would result in a crash if AI Controller was called to posses a Null-pawn while already having a valid pawn already set.

          • Fixed Blackboard Component's ClearValue function not really doing what it says

          • Improved Environment Querying System query editor's menus to include new blueprint classes created during given editor session, as well as remove freshly deleted classes.

          • Lots of AI Perception bugfixes and improvements to bring it up to blueprint-usable state

          • Marked AISenseConfig_Blueprint as abstract so that it doesn't clutter senses' dropdowns

          • Marked Character Movement Component's Set Avoidance Enabled function as unsafe for blueprint construction scripts, since it's not safe to be called there

          • Removed redundant data gathering from NavMesh, to optimize NavMesh rendering.

          Debugging Tools

          • Fixed a bug in Gameplay Debugger that would result in a crash when used tried to debug a Pawn and there was no navigation data present on the map.

          • Fixed crash on collecting Visual Log snapshot from uninitialized blackboard.

          • New: A way to limit number of simultaneously rebuild NavMesh tiles has been added.

          • New: Added a configurable flag to Navigation System that if set will result in creating navigation system on multiplayer clients.

          • New: Added a configurable limit to total number of tiles NavMesh can contain.

          • New: Added a feature to Static Mesh Editor to preview the way static mesh will be presented to Navigation System. There is a new tool bar button for this.

          • New: Added a per-instance way to configure whether navigation collision of a navigation relevant actor is gathered lazily or instantly

          • New: Added more NavMesh generation properties' validation for safer parameter tinkering

          • New: Added navigation export for Shape Components including dynamic obstacle creation.

          • New: Added option to skip navigable geometry export from primitive components that are relevant for navigation.

          • New: Added optional raycast to conform NavMesh walking closer to underlying geometry

          • New: Added vertical compensation for NavMesh query extent

          • Fixes NavMesh projection in area with significant height difference between NavMesh polys and walkable ground.

          • New: Crowd's avoidance query range is now independent from velocity.

          • New: Custom navigation components can now override parent actor's relevancy.

          • New: Exposed detour collision resolution as a customizable navigation system setting

          • New: Improved AI Controller's logging of failed movement requests

          • New: Navigation links will now connect to cheapest area in snap radius.

          • New: Navigation mesh has new option for runtime rebuilding - Dynamic Modifiers Only. It's the same as completely static navigation mesh but supports mesh modifications through NavMesh modifiers (dynamic obstacles). It has a little extra memory overhead compared to the completely static version. Supports streaming.

          • New: Tweaked default "AI Move To" blueprint node's Acceptance Radius parameter for better AI stability

          • Fixed Navigation System's issues that resulted in improper handling of actors in "always loaded" sublevels

          • Fixed NavMesh generation crashes occurring as a result of user changing NavMesh generation properties via Project Settings

          • Editor should now correctly stream-in chunks of a navigation mesh. Before it was working only in game worlds.

          • Fixed a bug in "AI Move To" blueprint node that resulted in AI not being able to properly move to dynamic actors. AI simply would not update the path when goal actor changed location.

          • Fixed AI moving to actor occasionally failing due to path's final point not being on NavMesh. In practice these points were usually too far above NavMesh.

          • Fixed AI not getting notified about externally-caused navigation path updates, like for example when move goal actor changes location

          • Fixed AI path following crashes happening when AI tries to follow a straight-line path while there's no navigation data on the level (no NavMesh).

          • Fixed AI path-following issue where AI wouldn't care about NavMesh while following last path segment to a dynamic goal actor

          • Fixed Navigation Data's Runtime Generation option not being settable to "Static" in Project Settings

          • Fixed automatic repathing when AI resumes movement after finishing hotspot interaction or falling.

          • Fixed crash on using direct navigation paths (without pathfinding).

          • Fixed crowd simulation for move without pathfinding.

          • Fixed crowd simulation sending AI directly through wall in some rare cases.

          • Fixed cycles in pathfinding when using overestimating heuristic weight.

          • Fixed immediate rebuilding of postponed paths after moving or invalidating goal.

          • Fixed issues with NavMesh rendering in editor. It's consistent with other Show flags now.

          • Fixed Min Region Area parameter not being used in NavMesh generation.

          • Fixed missing navigation links after loading static NavMesh.

          • Fixed Navigation Octree creation policy so that it doesn't get created if Navigation System is not expected to generate navigation data

          • Fixed NavMesh generation bug when single layer had huge height difference (exceeding 255 cells).

          • Fixed a bug with NavMesh hierarchical graph connections.

          • Fixed NavMesh movement so velocity is reported correctly

          • Fixed NavMesh not rebuilding to proper settings when changing NavMesh generation properties

          • Fixed occasional jittering of slow moving agents.

          • Fixed Path Following Component's issues with determining path's starting point on receiving new path

          • Fixed single-navigation-polygon paths erroneously claiming their cost was 0

          • Fixed triangulation issue in NavMesh's detailed polys.

          • Fixed warnings reported during Play In Editor session from simple move to functions.

          • Improved and optimized crowd avoidance near NavMesh borders.

          • Improved mechanics of figuring out if a Primitive Component should influence NavMesh generation

          • Made a change to determining navigation relevancy of components to improve its reliability. It directly affects influence of component's collision toggling on NavMesh generation.

          • Made a change to Floating Pawn Movement that allows controlling it with "player-like" input even if it's owned by AI. This kind of control is possible only when AI is not following a path at the moment.

          • Made Scene Previews not construct Navigation System instances, which was a source of multiple awkward navigation-related glitches

          • Navigation System improvements towards better NavMesh generation performance.

          • Navmesh generation issues with World Composition have been fixed

          Animation

          • New: Improved Animation Slot Editing

          • This release adds the ability to rename and delete Slot names (for use with Montages).

          • The new feature is accessed through the Slot Group window. Note: the user must resolve any references to the slots in existing Montages before deleting.

          • The slot manager will search references and prompt for them to be reconciled before performing the operation

            image alt text

          • New: Added 5 custom fields to the Humanoid Rig which you can be used for game-specific additions

          • New: Added a drop-shadow to bone names when rendered in the Persona viewport

          • New: Added ability insert a frame while editing animation in Persona

          • New: Added Animation Editor Settings page to Editor Preference

            image alt text

          • New: Added Animation Settings page to Project Settings

            image alt text

          • New: Added filtering to Preview Asset Menu in Persona so that unattachable items are not shown.

          • New: Added logging of material names to material merging during Merge Actor

          • New: Added Look at controller interpolation/clamp options

          • New: Added Montage_Pause function to AnimInstance.

          • New: Added native support for native transition rules

          • New: Added native support for state entry/exit callbacks

          • New: Added Root Motion from Everything support to Skeletal Mesh Update Rate Optimization.

            • Allows root motion without having to tick every frame

            • Calculates a pose a certain amount into the future and interpolates towards that

          • New: Anim Notify Editor changes:

            • Added "Replace with" option in right click menu for existing notify nodes.

            • Fixed issue with deleting multiple animations at the same time deleting the wrong notifies

          • New: Automatic transition rule prototype in Animation State Machines

            • It is an opt-in on the transition node, available when there is only a single sequence player node in the source state

            • The 'can take transition' rule is defined as Player.CurrentTime + CrossfadeDuration >= Player.SequenceLength

            • The BP defined transition rule is ignored and the automatic rule is evaluated directly in C++ when this is enabled, providing a speed and workflow benefit whenever the rule is sufficient

          • New: Exposed Skeletal Mesh Component's Find Socket function to the blueprint system

          • New: Optimized code that updates physics bodies/collision shapes to match animation.

          • New: Optimized state machine ticking

            • Prevented most allocations and reallocations for transition evaluation

            • Avoided calling the BP transition rule when there is a C++ rule

          • New: Added new option in Persona to toggle "Auto align floor to mesh" on and off

            image alt text

          • Previous behaviour was equivalent to Auto Align being switched on. This would move the floor in Persona to align with the bottom of the mesh bounds. Switching Auto Align off moves the floor back to the origin

          • Accessed via the viewport Show Menu (Show -> Scene Setup -> Auto Align Floor To Mesh)

          • New: We now queue Montage events during ticking, so they're triggered after Anim Notifies.

          • New: When you import animation, now it provides a option to delete all existing morph target curves

          • Added ability for retargeting window search to include bone name, display name and node name

          • Adding an Anim Notify state to an animation should properly mark the asset as needing to be saved

          • We now allow deselecting bones in Persona by clicking on a bone that is not in the mesh

          • Changed Retargeting Option to be Advanced Option in Skeleton tab since it includes a variety of other options.

          • Changed the anim compression dialog so that it automatically closes at the end of compression.

          • Disabled creating new animation from Content Browser. You'll create animation assets by importing them from FBX files.

          • FBX importer/exporter now supports UTF8 for name of meshes, bones, materials, and morph targets.

          • Fixed root motion not being cleared on additive animations. This caused the preview mesh in Persona to move when it shouldn't

          • Fixed multiplication order of root motion

          • Fixed root motion weighting issue when blending between animations in sync groups

          • Fixed a crash when selecting an existing "Two Bone IK" node in an animation graph.

          • Fixed a variety of cases where a negative play rate would break the animation system

            • Fixed root motion output during negative play rates

            • Fixed issue where montages with a play rate of -1 and a current position of 0 would not progress.

            • Fixed crash when playing an anim montage in reverse with a segment that has a negative play rate

            • Fixed infinite loop that would occur when playing montages with a negative play rate

            • Fix use of negative play rates in composite animations

            • Change Single Node Anim Instance to account for asset play rate when performing "is finished" logic

          • Fixed an issue where Blend Space input preview isn't working when opened first time.

          • Fixed an issue where Native Transition Delegate wasn't checked when dealing with conduit entry rules

          • Fixed an issue with retarget translation option crashing the editor for different compression setting

          • Fixed an issue with selecting bone dropbox not displaying after search in retarget manager.

          • Fixed animation length calculation being incorrect when importing an animation with a length not divisible by the resample rate.

          • Fixed being unable to record animation when not simulating.

          • Fixed bug in the creation of the output package during Merge Actors

          • Fixed crash when "modify bone" node bone name is set to None

          • Fixed crash when attempting to retarget an animation with a single key

          • Fixed hiding slave bones when bones are hidden on a master pose component

          • Fixed index mismatch in child anim blueprints if the parent is structurally changed and the child is a data-only blueprint causing incorrect behaviour and crashes

          • Fixed issue in notify track panel where vertical scrolling of the panel would take precedence over panning the track

          • Fixed issue where update rate wasn't properly applied to all the skeletal mesh components of a single actor

          • Fixed location offset value not being hooked up properly in Play Particle Effect blueprint notify.

          • Fixed master pose component being able to be assigned in construction scripts

          • Fixed Montage not being stopped if Blend Out Time changes after it's been triggered once.

          • Fixed morph target identifiers sometimes being corrupted on load.

          • Fixed morph target loading issue where smart name gets corrupted due to loading order.

          • Fixed node title display for sequence player nodes with a sync group

          • Fixed notifies at the end of animation sequences in montages not triggering because of blend out.

          • Fixed physics bones blending issue caused by double buffered bones

          • Fixed play state in Persona getting reset when changing which montage is being played

          • Fixed potential crash with blendspace preview.

          • Fixed root motion calculation when component space does not match actor space

          • Fixed aim offset not being converted correctly during retargeting anim Blueprint

          • Fixed skeletal mesh actors that are placed in the level not updating animation when animation has changed in the detail panel

          • Fixed sockets on skeletal meshes ending up in the wrong place if the bone they are attached to is not part of the current LOD

          • Fixed state machine update crash caused by the Persona preview instance being deleted

          • Fixed a crash with Spring Bone Controller when running with Parallel Anim Evaluation

          • Fixed undo not working properly when changing a material on a skeletal mesh

          • Fixed viewport visibility calculation in Persona so that multiple hidden instances of Persona no longer cripple editor performance.

          • Improved skeleton reimporting. If the skeleton's hierarchy has changed dramatically during reimport, it will fix up all animation assets.

          • Improved support for importing meshes generated by Mixamo Fuse

          • Improved Notify snapping issue when editor is reloaded.

          • Improved the way we import tangents of curves from FBX files

          • Minor optimization for anim node updates when one or more non-pose input pins are wired to an expression or variable in the graph by using a fast calling path

          • Optimized animation code that that was copying a reference skeleton instead of taking a reference.

          • Optimized state machine ticking

            • Prevent most allocations and reallocations for transition evaluation

            • Avoid calling the Blueprint transition rule when there is a C++ rule

          • Prevented a crash when a skeletal mesh LOD has zero vertices

          Audio

          • New: A unique audio device instance will now be created for each PIE window.

            • This allows for a more accurate representation of audio from different player's perspectives.

            • One device serves as the "main" audio device for the Editor, and is where "real-time" audio plays, then new PIE sessions will create new unique audio devices.

            • Because new audio devices may impact Editor performance for lower-perf machines, a default of 2 audio devices is currently set (1 for the main audio device, and 1 for a PIE session). More than 1 PIE session will fallback to using the main audio device.

            • To enable creating a new audio device for every PIE session launched, there is a new advanced multiplayer option.

              image alt text

          • New: Audio Component's Is Playing function is now a Pure blueprint function

          • Copy-pasting an Ambient Sound that uses an internal SoundCue now works correctly

          • Fixed an issue where the stat display for audio components did not include the associated asset

          • Fixed bug where sounds that were playing when the source .wav was reimported would not be restarted.

          • Fixed issue with Sound Cue Editor not showing execution path

          • Fixed mathematical error with the "Log Reverse" Attenuation function.

          • Fixed problem with stat memory tracking for audio assets.

          • Fixed random weight choosing algorithm in Sound Node Random for Sound Cues.

          • Fixing sound source volume setting on Android platforms so that they are accurate to the linear volume and are inaudible when set to 0.0.

          • Removing distance as a factor for Sound Node Param Cross Fade when calculating the max distance of a Sound Cue.

          • Spatialization being used on a multi-channel sound will correctly report only once per Sound Wave asset, not once per time that Sound Wave is played.

          • Stop any sound cue previews playing when sound cue editor closes.

          Automation

          • New: Added additive flag to rotation multiplier bone controller node in animation graphs

          • New: Engine automation tests are now grouped into two categories: System and Project.

            • The 'system' category is for any test or tool that is project agnostic.

            • The 'project' category is for any test or tool that is project specific.

          • New: Refactored the static mesh UVs check so that it is now a 'complex' test.

            • It can check individual meshes instead of all of them at once.

            • The static mesh UVs check no longer runs on the engine content assets.

          • New: The open asset type automation test is a 'complex' test again.

            • This allows you to run this test on an individual asset instead of all of them at once for that same asset type.

            • The open asset types tests can be found in the Tools section of the automation test hierarchy in the Unreal Frontend.

          • New: Added automation script to list connected mobile devices

          • Certain complex automation tests that relied on content need the asset registry to be full loaded. The automation framework will now wait for the registry to be loaded before tests are run.

          • Fixed the cooking process on exFAT file systems, which was failing due to the way it stores timestamps.

          • The Load All Maps in Editor automation test will no longer run on the maps found in the engine content folder.

          Blueprints

          • Blueprints: Drag and Drop to Create New Pins

            • Drag and drop a pin connection onto Function and Macro Entry/Result nodes, Collapsed Graph nodes (and their entry/result nodes in their graphs), and Custom Event nodes to create a pin connection.

            • To use this feature, just drag a pin connection over the node:

            image alt text

            • The results will be a new pin, already named and connected.

          • Get Nodes can Check for Validity

            • You can now right-click any GET variable node and convert it to an "impure" node that will branch based on the validity of the value. This makes it easier to handle errors.

            image alt text

            • Just right-click on a GET node and select "Convert to Validated Get" to toggle the feature!

            image alt text

          • New: "The execution path doesn't end with a return node." blueprint compiler note.

          • New: "The path is never executed." blueprint compiler note added.

          • New: "The path is never executed." blueprint compiler note.

          • New: Actor SetOwner now callable from blueprints

          • New: Added a "target context" menu to the Blueprint graph menu, to give users more control over the menu's context. Users can now search functions belonging to the Blueprint, when dragging from an object pin.

            image alt text

          • New: Added a menu option when right clicking on Blueprint nodes to view node's documentation.

            image alt text

          • New: Added an option to the Blueprint Editor settings to control the visibility of components added in the Construction Script in the components tree view in the Details panel.

            • Editor Preferences -> Blueprint Editor -> Hide Construction Script Components in Details View (default is ON)

          • New: Added an optional "Owner" parameter to the Blueprint Spawn Actor From Class node.

          • New: Added Blueprint Editor Setting for enabling/disabling of the default nodes being placing in new Blueprints. They are enabled by default.

          • New: Added Blueprint node for testing enum inequality (!=)

          • New: Added Get Light Color blueprint accessor for Blueprints that returns a Linear Color.

          • New: Added GetDisplayName as an acceptable autocast from object to string

          • New: Added GetObjectName to return the exact object name of a UObject

          • New: Added new increment, decrement and negate macros

          • New: Added support for direction flipping for reroute nodes that travel backwards, avoiding the 'topknot' effect

            image alt text

          • New: Blueprint Call Function nodes will now display localized function names.

          • New: Blueprint search makes better use of multiple processors, doubling search speed for some machines

          • New: Can drag and drop multiple components variables into a Blueprint to have them all be placed as nodes.

          • New: Can undo changes to drag and dropping variables to change category.

          • New: Change to implement the ability to pin reroute node comments that offers an alternative for users to the current display on hover functionality.

          • New: Exposed subtraction of two DateTimes to Blueprint

          • New: Fixed Event Dispatcher, that wasn't called properly

          • New: Input: Gesture Keys are now blueprint bindable

          • New: Improved searching for pin type classes to find classes, structs, enums, and objects when searching with a sanitized versus the unsanitized version of the name.

          • New: In "Region and Language" you can toggle localization of node and pins in all graph editors.

          • New: Infinite loop messages while running PIE will now be posted to the message log instead of a modal dialog.

          • New: Added inverse lerp function for blueprints

          • New: Can now append multiple strings using a single 'Append' node by right clicking on the node and selecting 'Add Pin'

          • New: Added Grid Snap node to blueprints

          • New: Interpolation functions are now available for 2D vectors, previously these were only available for 3D vectors

          • New: When a select node is created from the context menu we now connect the dragged pin to the index pin of the select node

          • New: Join String Array function added.

          • New: Light Component classes can now be subclassed via Blueprints

          • New: Math expression nodes support local variables.

          • New: New functions for timer: they takes a delegate of an event instead of the event's name.

          • New: Object and class pins will now filter listed items based on parameter metadata.

          • New: Player Start can now be subclassed via blueprints

          • New: Replacing actors in the level viewport will automatically replace all references in the level Blueprint.

          • New: Streaming Level LOD now exposed to blueprints

          • New: Streaming levels now expose an Is Streaming State Pending function to blueprints. This can be used to check if a sub-level is fully streamed-in or out.

          • New: Subclasses of Actor Component defined via Blueprints can now call Destroy Component on themselves.

          • New: The Render To Texture Blueprint camera orientation was flipped to match the way normal maps are rendered in world space. This removes the need for any channel flipping in captured textures.

          • New: The Render To Texture Blueprint can now render motion vectors for Flipbooks. Motion vectors are used to morph frames so that fewer frames are needed to get a smooth result. There is a companion material function called Flipbook_MotionVectors; it can also be used with motion vectors generated in separate programs. Coming soon to imposters.

          • New: The Render to Texture Blueprint has two new modes:

            • "Random Tiling Physics Drop" which simulates a given number of meshes from a list colliding into a plane and then converts the result into a tiling texture automatically. Useful for making riverbeds or tiling pebbles. Collision can be disabled to generate simple random mesh distribution such as grass or flowers. By pressing 'K' to keep simulation a layered result can be created.

            • "Tiling Hand Placed Meshes" is a mode that auto wraps each placed mesh across the canvas to create a tiling texture. This mode is most useful for making tiling rock textures from high resolution source rocks.

          • New: Added the ability for advanced users to set blueprint variable default values from the config files which can then be customised between different projects and configuration setups.

            • The option is located in the advanced section of the blueprint variable details panel and should provide indication of which config file should be used to set the value.

          • New: This change modifies the behavior of drag dropping variables into a graph to consider if Ctrl/Alt modifier keys are active at any point during placement rather than only before placement begins to place a get/set node.

            • The ability to hold both Ctrl and Alt simultaneously and place both a get and a set node was also added.

          • New: Exposed the default comment node title color to node comment bubbles so users can set their own color preferences.

            • The setting is located in editor preferences under the graph editors section and is named Default Comment Node Title Color

            • This setting also controls the default comment node colors

            • When you change this setting you will be required to close and re-open any graph editor before changes are observable.

          • New: Camera Component is now Blueprintable, allowing self-contained 'smart' cameras to be created more easily

          • New: The text and string pins now are now multiline capable. Using Shift+Enter will create a new line.

          • New: Undo/Redo actions that do not affect a Blueprint will no longer cause it to become unsaved when open

          • New: Use compact representation for Increment, Decrement and Negate macros

          • New: When converting a Blueprint cast node from impure to pure, surrounding execution wires will now be automatically fixed to maintain execution flow.

          • New: "Spawn Actor From Class" node will no longer disconnect remaining pins when changing the class.

          • New: A native structure containing a static array can be a parameter of a function in blueprint.

          • Absolute (int) and Sign (int) functions updated to normal naming conventions in the Kismet Math Library.

          • Actor properties no longer appear in the details view when editing native C++ component defaults in the Blueprint editor.

          • Added a number of small fixes to deferred dependency loading (the system, introduced in 4.7, that fixed Blueprint cyclic dependency load issues).

          • Added better guards to prevent the Blueprint Editor's node menus from crashing on invalid entries.

          • Added support for interface pins connecting object pins. Conversion nodes are now auto-injected upon connection, and cast nodes will accept either type.

          • Added support to catch Blueprint variables that conflict with new parent variables. We auto-rename the child's variable to avoid a name collision.

          • Adding or renaming function pins in Blueprints, will correctly refresh all active uses of the function.

          • All input pins in "Set member in .." node are hidden by default.

          • Automatically generated array for macro input is empty. Previously it had one default element.

          • Blueprint nodes are not executed after the return node is reached. The "Print String" node on the picture won't be executed.

            image alt text

          • Blueprints are marked dirty when they are re-parented.

          • Blueprints can no longer attempt to enable/disable Cull Distance Volumes or modify their Cull Distances dynamically.

          • Can hide the "Tick" category in Actor classes from displaying in Blueprint details.

          • Can no longer duplicate Timeline variables in the My Blueprint window.

          • Changed Blueprint "unneeded cast" errors into warnings.

          • Changed Blueprint palette tooltips to more closely reflect the corresponding node's tooltip.

          • Changelist number in Blueprint diff tool will no longer display with commas.

          • Changes made to GameMode via the Blueprints dropdown on the level editor toolbar will now mark the GameMode/Level as dirty

          • Changing a custom event's replication will immediately update the node's title.

          • Changing pin values can now be undone.

          • Changing the value of a component property on an instance of a Blueprint Class asset will now clear any event bindings to delegates on the component instance referenced by the previous value. This fixes an issue in which all previous bindings would persist each time the value was changed.

          • Comment bubble colors now obey property set on the comment node.

          • Conversion from mouse/screen position to world and back to screen position now works correctly when Resolution Quality reduced.

          • Converting a cast node to/from pure will add an undo/redo transaction.

          • Cooked projects with a Blueprint Game Instance assigned will no longer crash.

          • Copy and pasting custom events that have pins with spaces in their name will no longer create individual pins for each word.

          • Copy pasting collapsed graph nodes with spaces in their name will no longer lose pin connection data.

          • Crash fix that would occur when deleting an in-level Blueprint and it's parent with attempting to retrieve some Asset Registry tags.

          • Crash fixed, when Text was passed from None object into native function.

          • Creating a Blueprint based off another will no longer cause a transaction for an "Add Node".

          • Current Max Draw Distance can now only be read in blueprints, not written to.

          • Decals and Emitters spawned from Blueprints will no longer be inadvertently garbage collected.

          • Default placed events in Blueprints correctly have their comment bubbles showing.

          • Default values from User Defined Struct properly override values in a Blueprint

          • Divide-by-zero warnings (and others) at runtime in a Blueprint function will now include a script callstack when '-scriptstackwarnings' is enabled on the command line.

          • Do Once Multi Input now works in languages other than English

          • Dragging local variables over other actions in the My Blueprint window gives an error stating that it is invalid to do.

          • Editor should not stall when pasting large amounts of text into the Blueprint node context menu filter.

          • Expanding a function node with function nodes inside that are scoped to the current Blueprint will no longer be missing the call function nodes.

          • Exposed Get Actor Eyes Viewpoint to blueprints (Pawn class).

          • Exposed a 'const' attribute on user-defined functions as an advanced option in order to allow other Blueprint functions to be called from 'const' BlueprintImplementableEvent overrides.

            • Note that 'const' and 'pure' as function attributes have different meanings in the Blueprint edtior. 'Pure' controls whether or not the execution pins will appear on the function call node; true functional purity is not currently enforced.

            • Alternatively, exposing the advanced section and checking 'const' will enable some compile-time checks that will enforce a read-only 'self' context within the function graph. This allows the function to be called from other 'const' functions.

          • Fix a bug where split array node pins could be recombine on Blueprint load (disconnecting certain wire connections).

          • Fix crash during blueprint recompile when a scene component has been removed.

          • Fix crash when adding local variables to overridden functions.

          • Fix for "Graph Linked to External Object" error in Data Only Blueprint.

          • Fix for new Blueprints not immediately appearing in the Class Viewer (or Class Picker instances).

          • Fix graph linked to external object errors when saving a map that contains an actor with a blueprint created component that has its own default subobjects.

          • Fix issues after undo/redo caused by registering a component that is about to be destroyed by rerun construction scripts.

          • Fix issues in Blueprint preview window resultant from using game behaviors

          • Fix undo/redo issues where destroyed blueprint created components could remain attached to an actor

          • Fixed "Graph Linked to External Objects" error caused by copy/pasting components

          • Fixed a Blueprint Merge Tool crash when attempting to view component differences.

          • Fixed a bug in Physics Collision Handler Blueprints that would cause a crash when using the right-click context menu.

          • Fixed a bug in the Blueprint component hierarchy that would crash when reparenting the Blueprint and reordering components.

          • Fixed a bug in the Blueprint context menu that would not show array-node options when dragging from non-array pins.

          • Fixed a bug on Mac, where you couldn't delete a component selected in the Blueprint Editor's viewport.

          • Fixed a bug that could cause a Blueprint to not revert its default values when nodes overwriting them are removed from the construction script.

          • Fixed a bug that could cause a crash when deleting a Blueprint function-event from a super-class.

          • Fixed a bug that could cause a crash when loading a level with a Blueprint that implements an event that has since been removed.

          • Fixed a bug that could cause a crash when opening the context menu in a Blueprint that was created from the Content Browser via the "Create Blueprint Using This..." option.

          • Fixed a bug that could cause a crash while opening the Blueprint context menu after changes have been made to a Blueprint with open children.

          • Fixed a bug that could cause a seemingly random crash sometime after opening the Blueprint Editor (after an aborted asset deletion took place).

          • Fixed a bug that could cause Actor bound event-dispatcher nodes to break on load (no longer firing when the associated Actor triggered the event).

          • Fixed a bug that could cause Blueprint EventDispatcher nodes to have the wrong signature.

          • Fixed a bug that could result in a crash when deleting a Blueprint interface, before removing it from other Blueprints.

          • Fixed a bug that would let you modify a Blueprint's defaults while playing in the Editor.

          • Fixed a bug that would mark new function call nodes with an error until that Blueprint was fully recompiled.

          • Fixed a bug where renaming a timeline node would not update timeline variable nodes.

          • Fixed a bug where the Blueprint context menu wouldn't show AddComponent options associated with assets you have selected in the Content Browser.

          • Fixed a bug with Multi Gate nodes, where executing multiple from different functions would stomp memory and likely cause a crash.

          • Fixed a bug with the Blueprint editor's details tab, where a crash could happen if you closed and reopened it.

          • Fixed a bug with the Get Data Table Row node, where its output type could revert on load resulting to disconnected pins.

          • Fixed a crash caused by improper handling of Restrict To Class metadata keyword

          • Fixed a crash hitting F7 to compile a Blueprint while focused on a default value entry node in the Blueprint editor

          • Fixed a crash when closing a Blueprint Editor while a variable is selected.

          • Fixed a crash when creating a blueprint that is based on a C++ class if no destination folder was selected during creation.

          • Fixed a crash when undoing pasting a Custom Event node.

          • Fixed a crash with creating Macro Blueprint Libraries or Function Blueprint Libraries and attempting to spawn default events.

          • Fixed a cyclic dependency bug where changes made to a Blueprint's defaults wouldn't save until you compiled the Blueprint first.

          • Fixed a regression in the Blueprint class defaults editor in which changing the material on a mesh component would not be applied to instances of the Blueprint class.

          • Fixed 'Add call to parent function' for event overrides

          • Fixed an issue where it was possible to end up with an orphaned Animation Blueprint in a PIE session, which could result in more than one available instance in the Debug Filter menu while debugging the event graph.

          • Fixed an issue with dependent parent/child Blueprints, where the child's property values could be reset on load.

          • Fixed Blueprint compile issues after undo/redo of any action involving a Format Text node.

          • Fixed Blueprint compiler error after deleting a Format Text node.

          • Fixed blueprint error "Directions are not Compatible"

          • Fixed broken Actor attachments during post-compile reinstancing when the parent and child Actor are of the same Blueprint Class type.

          • Fixed crash caused by graph's names collision.

          • Fixed crash caused by hanging event graph in Data Only blueprint.

          • Fixed crash caused by trashed class referenced by context menu database.

          • Fixed crash caused by DateTime variable while blueprint compilation

          • Fixed crash that occurred when shutting down the Blueprint Diff or Blueprint Merge tool when they were launched via the command line

          • Fixed crash when a node expands pins for a structure that was deleted.

          • Fixed crash when a parent class of an actor in a level is recompiled.

          • Fixed crash when an event on a component, that is called from an actor's constructor, is deleted.

          • Fixed crash when applying changes to blueprint if an Actor needed to be reinstanced.

          • Fixed crash when blueprint is compiled shortly after its child was reparented.

          • Fixed crash when blueprint uses an interface function , that takes as parameter another interface.

          • Fixed crash when caused by Anim Blueprint while Hot Reload

          • Fixed crash when rotation value in transform struct is edited

          • Fixed crash when Text property was read from null object.

          • Fixed crash when Timeline Play Rate Blueprint node was copied and pasted between Blueprints.

          • Fixed crash when using Canvas Render Target objects in Blueprints

          • Fixed crash while blueprint renaming

          • Fixed crash while blueprint reparenting

          • Fixed crash while compiling blueprints

          • Fixed editor crash when an inherited variable is set in a child blueprint

          • Fixed faulty assertion in Make Struct node when adding a text array to a user defined structure.

          • Fixed handling of blueprint merges when no changes to the local blueprint were desired

          • Fixed inability to save a Blueprint Function Library asset containing a function that references another function in the same library after it's been loaded.

          • Fixed issue that could cause circularly dependent blueprints to crash with a TRASHCLASS error when executed

          • Fixed issue that prevented Blueprints from being based on other Object Blueprints.

          • Fixed issue where adding triggers to Matinee particle tracks would cause the associated Matinee Blueprint node to have redundant pins

          • Fixed issue with default values in nested structures used in blueprints - under some conditions they would reset to the original default value

          • Fixed issue with some ease node pins resetting themselves when the node was refreshed or reloaded

          • Fixed issues with editing local variables multiple times, often seen when editing vectors or transforms.

          • Fixed member functions of output pin objects not showing up when dragging off a different output pin

          • Fixed member functions of some output pin objects not showing up when dragging off a different output pin.

          • Fixed naming convention issues when adding new variables or event dispatchers to Blueprints. They will now be formatted like other items in Blueprints: New[Type]_[Number].

          • Fixed objects referenced only by the undo/redo buffer for blueprint constructed components being garbage collected.

          • Fixed possibility of name collision between component variables and component nodes that would prevent blueprint compilation

          • Fixed problem that caused many unnecessary warnings while Blueprint loading.

          • Fixed problem, when blueprint was marked as dirty after Play In Editor was triggered.

          • Fixed problems related to renaming and removing event dispatcher.

          • Fixed Refresh behavior of Make Array node - previously it would not remember which pins had been 'split'

          • Fixed replicated variables defined in actor component blueprints. These variables will now actually replicate.

          • Fixed several crashes when calling certain functions from Game Instance's Receive Init event in a standalone game.

          • Fixed spline mesh components in blueprints adding a new entry to the derived data cache for their collision data every time the map is loaded

            • This was causing a huge increase in the size of the DDC, especially for network shared DDCs with multiple people working on the same map

          • Fixed the name of the Cross product node to be correctly labeled "X"

          • Fixed trailing numbers and letters that appeared on initial load of a blueprint for some set/break struct nodes

          • Fixed Undo/Redo of changes to properties defined in "Native" C++ components

          • Fixes a Blueprint-related crash during editor shutdown relating to the ClassV iewer.

          • Keys that are not blueprint bindable will no longer appear in Key selector dropdowns

          • For Loop With Break and For Each Loop With Break don't increment index after break anymore.

          • Format Text nodes can no longer have breakpoints set on them.

          • Function tooltips will display the sanitized function name if there is no other tooltip available.

          • Functions from function libraries will not be filtered from the Blueprint context menu based on the Blueprint's hidden category metadata.

          • Hidden comment bubbles will no longer reappear when doing unrelated actions.

          • Improvements and optimization to node title refresh

          • Input pins for macros can again be set to type 'wildcard'

          • Input pins in call function node are properly updated after hot reload.

          • Functions with no return value and no input parameter show up as overridable in the My Blueprint dropdown

          • Float to int conversion defaults to truncate rather than floor. Does not change behavior of existing blueprints

          • Strings in bytecode reference graph names no longer change between each compilation of the blueprint

          • Improved default values for some blueprint math nodes. This will not affect existing blueprints

          • Fixed one cause of disappearing default values in blueprint classes

          • It's no longer possible to add incompatible macro actions to a graph that would prevent child Blueprint Class assets from saving.

          • Minor fix to ensure only editor worlds are considered when gathering valid level script blueprint actions.

          • Minor performance improvements when finding referencers during post-compile reinstancing (slight reduction in overall Blueprint Class compile time).

          • Modifying multiple Math Expression nodes at once will no longer crash.

          • Native C++ components marked 'Edit Anywhere' can now be re-edited after being set to 'None' in the Blueprint editor Details panel.

          • Newly created Blueprints will no longer be marked as needing to compile.

          • No longer given the option to override functions in macro libraries in the right click menu of the My Blueprint window.

          • No longer spamming "Files need check-out!" when compiling a blueprint - especially verbose when compiling a blueprint from which many other blueprints derive

          • Overridable functions list in My Blueprints now correctly hides hidden categories and functions for the class hierarchy.

          • Pasting local variable nodes outside of scope will no longer show them as valid.

          • Relative transform updates resulting from component attach/detach operations in the Blueprint class component editor are now immediately applied to instances of the Blueprint class.

          • Removed a redundant preview Actor construction pass on Blueprint editor load (minor performance improvement).

          • Removed repeated component function options from the Blueprint's context menu.

          • Removed requirement that Blueprint variables be marked "Editable" to be accessible from other Blueprints.

          • Removed 's' at the beginning of a return pin tooltip when @returns is used instead of @return in the comment block

          • Removed some excessive verbose logging when the "Find Sessions" node finds sessions.

          • Removed the Blueprint Editor's legacy node menu system.

          • Removing Custom Event nodes and other nodes that spawn graphs will free up the name.

          • Renaming macro pins will no longer rename any macros within the graph that have pins with the same name.

          • Reparenting a component-based Blueprint Class asset between scene/non-scene base types will no longer corrupt an Actor-based Blueprint Class asset's component hierarchy.

          • Replacing function local variables in collapsed graph works.

          • Reroute nodes now function correctly in an Animation graph after compiling an Animation Blueprint.

          • Selecting all nodes in a graph using keybindings will no longer assert due to null nodes being present in the graph list.

          • Small fix to prevent automatically added parent nodes from overlapping the child nodes.

          • Sub-items in the My Blueprint panel will no longer be mis-categorized into the Function's section.

          • Suppressed "Access None ..." errors.

          • Suppressed wrong warning "No value will be returned by reference."

          • Switch On String node will obey case insensitivity by default as the details view says it is set to.

          • The Custom Event Node now handles generating the proper signature when dragged from a standard, non-multicast delegate pin

          • The Days In Month Blueprint function now logs a warning instead of asserting when an invalid month is used.

          • The Render to Texture blueprint no longer requires using the "High Resolution Screenshot" dialogue to export visualization buffers as it handles that by entering the console command 'r.BufferVisualizationDumpFrames 1'

          • Fixed an issue with Gameplay Tag Widgets whereby the the popup menu would be unusable when a graph window was zoomed.

            • The pop up menu will now scale with zoom instead of clipping the content in the menu.

          • Fixed differences between the way comment bubbles worked on re-route and other nodes.

            • Now the re-route node comment can be pinned and shown/hidden the same way other nodes comments can.

          • The re-route node will show its comment bubble if hidden when the mouse hovers over the node.

            • This addresses issues with node comment bubbles newline modifier key not matching similar examples in the editor.

          • The comment bubbles now require shift + enter to insert a newline when editing text.

          • Added automatic shutdown of any asset editors that are currently editing play in editor scoped assets upon exit of play in editor mode.

          • Fixed issues when editing instances of blueprint components in the actor details panel in the main editor.

          • Compiling the component blueprint would result in component values being displayed incorrectly and out of date.

          • We now track component blueprint compilation and update the relevant part of the actor details panel so it stays up to date.

          • Fixed text visibility issues with blueprint documentation nodes. Previously we had black text on a black background which was unreadable. This has now been modified to display a lighter background.

          • Changed multi-line comment bubble's text to be more inline with editor standards. In order to insert a newline in the comments you are now required to use Ctrl + Enter

          • Fixed nested comments having issues with user selection

          • Fixed bugs when comments are resized to contain other comments, fixing the relative depth to all enclosed comments ensuring selection is possible afterwards.

          • Fixed a problem that caused a crash in editor blutilities when the custom event had parameters.

          • Fixed an issue with functions being dropped onto graphs using the skeleton class rather than the authoritative class which resulted child blueprints losing array parameter pins

          • Fixed detection of Global Editor Utility based blueprint functions and exposes the blueprints editable variable's to the Call In Editor actor blutilities through the actor details panel.

          • Fixed problems with watch values in the blueprint debugger reporting themselves as out of scope incorrectly.

          • Improved updating of available level script blueprint actions between map changes to ensure they are kept up to date more dynamically.

          • Modified timing component naming so the actual timeline node name is indicated for clarity to the user

          • Disallowed blueprint components from being re-parented to anything other than Actor Component and derived classes incorrectly.

          • Disallowed comment bubbles from having their visibility or pinned state changed when they are situated in read-only graphs.

          • Disallowed levelscript actions from external levelscripts incorrectly being placed in the current blueprint.

          • Disallowed nodes from allowing pins to be added/removed incorrectly when the owning graph is read only.

          • Disallowed the ability to modify nodes comment bubble's visibility state in read only graphs

            • After this change if the owning graph is read-only the title bar toggle button for the bubbles will no longer display.

          • Disallowed users from editing the comment text in the reference viewer.

          • Removed the workaround code to display hint text in the comment bubble's and enables the newly available functionality to display the hint in the text field widget.

          • Restored the correct functionality specific to comment nodes with regards to their comment bubbles. The comment bubbles designed purpose here is to display when the comment nodes title is no longer easily readable under zoom and to be not present otherwise.

          • Fixed a bug in the blueprint action database refresh that would assert if a blank level is compiled.

          • Fixed an issue causing asserts related to the way the map levelscript is renamed and regenerated during duplication

          • Fixed an issue where comment bubbles could modify comment text in read only graphs.

          • Fixed an issue whereby timelines containing external curves attempted to deep copy the curve as if it was owned by the timeline. External curves are now skipped leaving the reference in tact. Additionally deep copies on owned curves are now not redundantly deep copied during blueprint re-instancing.

          • Fixed issues found with blueprint graph actions causing garbage collection to fail when switching levels in certain circumstances.

          • Fixed some of the following problems with comment bubbles in material expressions.

            • The comment being applied as a custom event name instead of affecting the comment text

            • Comments being lost when compiling or closing the blueprint

            • Inconsistencies between the comment bubble and material expression properties

          • Fixed the problem with variables showing as out of scope in the blueprint debugger.

          • Implemented missing comment bubbles from array nodes which had previously just been overlooked.

          • Modified actor workflow so that when an actor is converted to a blueprint the component names the user has chosen are preserved.

          • Updates comment bubbles so that when a comment is entered through the context menu the bubble automatically displays/hides based on comment string content.

          • Uncategorized functions will no longer be categorized into a "Class" category in the Blueprint node context menu when a being displayed for a currently selected level Actor.

          • Undoing an "Apply Changes to Blueprint" action will no longer leave the editor in an invalid state that will lead to crashes with proceeding to redo and undo, or move the selected component.

          • Using the up and down arrow keys for selection in the My Blueprint window will correctly select them.

          • Variable renames will no longer break math expression nodes that utilize them.

          • We now refresh the selected Actor's component tree in the Level Editor when a component Blueprint Class changes its parent class.

          • When deleting Blueprint assets, child Blueprints will not be re-parented and recompiled when they are also slated for deletion.

          • When dragging a function in the My Blueprint window, a mouse decorator is immediately shown.

          • When entering PIE, there will no longer be log errors from function call nodes in the level Blueprint due to missing scope.

          • When pasting Event nodes in Blueprints, if there is a ghost node version of the Event, that node will be removed in favor of the newly pasted Event.

          Core

          • New: Added HSV-based linear color interpolation function (Blueprint and C++)

            • New Blueprint function: "Lerp Using HSV (Linear Color)" (in C++, you can call FLinearColor::LerpUsingHSV)

            • This interpolates between colors in HSV space, taking the shortest route between hues. Also interpolates alpha.

          • New: Added 'togglecvar' console command which allows toggling an arbitrary CVar between two values (useful when bound to a key).

          • New: Added warning log message when Engine fails to read an environment variable.

          • New: All Objects contained in a world will now be marked for garbage collection when transitioning between worlds avoiding the possibility of lingering references that prevent the old map from being garbage collected.

            • This makes the Load Map transition consistent with Seamless Travel transition.

          • New: Alt-Enter will now work to toggle fullscreen in cooked builds

          • New: Automatic world origin rebasing behavior (Distance, 3D or 2D) can now be adjusted from config files.

          • New: Enabled the ability for content projects to include plugins from third-party developers. This will link the game with the plugin making it available during game execution.

          • New: Encapsulated Child Actor Class and exposed Set Child Actor Class to Blueprints

          • New: Fixed the Editor crash during auto-save failure, which could happen even if the failure was a result of OS state (e.g. no disk space). Now it will log the error and notify the user about it without crashing.

          • New: Improve floating point precision when rendering very far from the origin. This change can prevent subtle bugs such as camera wobble or vertex wobble.

          • New: Added a guard to abort opening a project if the project's PackageFileUE4Version is higher than the currently running engine's.

          • New: Improved loading times of large profiler data sets.

          • New: It's now possible to cancel async loading.

            • This can be achieved through Cancel Async Loading function in Blueprints

            • Or by CancelAsyncLoading() native C++ function

            • Or through "CANCELASYNCLOAD" console command

          • New: Level Streaming objects have a new property "Disable Distance Streaming". This can be used by a Blueprint to temporarily disable distance-based streaming for any streaming level.

          • New: Minor improvements to 'stat levels' output to include the loading progress of a packages imports in its load percentage

          • New: Modified how feature packs are built from template data to reduce download size.

          • New: Reduced ticking overhead and optimized the task graph

          • New: Removed ability to test if a console variable has changed.

          • New: Memory Allocation Profiler using Stats

            • To run the game with the profiler use command line parameter "-memoryprofiler", to stop the profiling use the console command "stat stopfile", it will generate a new file with extension ue4statsraw located in the folder \Saved\Profiling\UnrealStats

            • To see the results use the Unreal Frontend command, usage: "UnrealFrontend.exe -run=MEMORYDUMP -INFILE=", it will generate two CSV files with all memory allocations

          • New: Added a new stats group "LoadTimeVerbose", which is disabled by default, this group can be used to monitor a very frequent stats that should be disabled by default to not decrease the performance, currently used when memory profiler is active

          • New: Added more stats to improve memory profiler accuracy

          • New: Added performance stats for tasks running on the thread pool

          • New: After executing the command "StopFPSChart" the location of the stats will be opened via file explorer

          • New: Better stats for decompress audio worker, now it also includes a name of the wave

          • New: The editor now allows modifying metadata for user plugins from the plugin browser.

          • New: The editor now checks for additional command line arguments stored in a UE4CommandLine.txt file in the root installation directory. Create this file to set arguments that the editor should always be run with.

          • New: The Flush Level Streaming function is now exposed into blueprints. Flush Level Streaming blocks the game thread until all level streaming operations have finished.

          • New: Timeline Set Playback Position now has a boolean parameter to determine whether to fire the update pin after changing the playback position.

          • New: Tweaked stats processing for better performance for high fps, 60 and above

          • New: Tweaked task graph visualizer to display more elements on the screen

          • Added checks to skip duplicating objects while saving packages. This prevents breaking assets on save if engine is in inconsistent state.

          • Added safeguards to prevent the engine from crashing when opening corrupted packages that are very small or empty.

          • Alt-Enter will now work to toggle fullscreen in cooked builds

          • Attached actors will no longer pop to the world origin and cause overlap events as part of being destroyed.

          • Begin Play will no longer called on Actors that are marked Pending Kill (about to be destroyed)

          • Change many string replace/compare/find operations which use a fixed case search pattern to be case sensitive. This avoids unnecessary expensive string case operations when searching for things like dots and slashes.

          • Changing the value of a parent class variable will now properly update after hot reload

          • Custom replication conditions like Owner Only are now checked for custom delta serialization, previously they always replicated and ignored the condition.

          • Date & time objects now provide accurate Unix timestamps for dates using a 64-bit value, rather than a 32-bit value.

          • Dynamically spawned Actors/Components that are static will now be affect by Cull Distance Volumes.

          • Fix bug where actors without a position were treated as being at 0,0,0 for computing net priority, causing replication differences depending on camera position

          • Fix component-bound events to correctly bind to the class that owns the delegate signature. This fixes issues with renaming events.

          • Fix crash when calling RPCs with complicated struct parameters

          • Fix crash when Child Actor Component is used without an owning Actor.

          • Fix crash when doing seamless level transitions in PIE due to garbage collection failing to clean up the previous World.

          • Fix issue that could cause an Actor to get Begin Play called on it twice on the client.

          • Fix issue where Begin Play would get called on Actors that had already had Begin Play called on them due to being carried over from previous level during seamless travel.

          • Fixed Client Restart not getting called correctly when depossessing and possessing a new pawn

          • Fixed subtitles showing the same line multiple times instead of each line once when using multi-line subtitle

          • Fixed a bug that caused dynamic primitives using distortion (e.g. effects) to never render if no static primitives (e.g. meshes) with distortion were also present on the screen.

          • Fixed a crash when loading a package with invalid package version caused by progress reporting object not being cleaned up properly.

          • Fixed assertion at startup when same shader format is specified twice in a project's engine config file

          • Fixed check() when console variables are getting set in a certain order.

          • Fixed config system bug that meant default ini syntax was not used when editing a file outside the games config directory.

          • Fixed crash when Pointer Event was passed to an event dispatcher

          • Fixed destructibles ignoring damage parameters that are imported from APB

          • Fixed issues that would allow Actor's Attachment Replication structure to become out of date resulting in incorrect attachment hierarchies on the client.

          • Fixed issues with flushing asynchronous loading.

          • Fixed Lightmass crash that was occurring for big enough (~4GB) files during saving.

          • Fixed map's missing asset reference, which could appear if that asset wasn't saved before the map was saved. This situation could happen for newly created objects in the Editor.

          • Fixed merging config files on Engine startup, which could result in the engine locking up

          • Fixed newly spawned tick group to not run a second time

          • Fixed property change propagation from default object to its instances.

          • Fixed rare crash during seamless travel.

          • Fixed some of the the Editor's BSP (binary space partitioning) operations, that were mistakenly clearing flags informing if given object shouldn't be loaded for client or server.

          • Fixed texture DDC threading issue that could crash on boot

          • Fixed Unreal Swarm occasional reporting "Error: A 32 bit processes cannot access modules of a 64 bit process.".

          • Fixed Unreal Swarm resolving its own IP address when the machine had more than one network adapter.

          • Improved garbage collection performance.

          • Improved the method by which we allow dynamic data changes during the Construction Script to target non-movable components (changes which are otherwise not allowed at runtime).

          • Linker circular dependency fixes: ensure that any parent default subobjects have been loaded before trying to create a CDO.

            • Fixes components in derived blueprints not inheriting default values from their parent blueprint.

          • Profiler - "Filters'n'Presets" window should now update properly according to the selected profile

          • Profiler - Fixed a crash when opening any asset with live data preview running in the Profiler

          • Reduced the likelihood of hitching during texture streaming by moving some temporary memory allocations to a worker thread.

          • Removing a stray '/' character from the final user ini, in the config cache.

          • Simple stat commands no longer hang the game when triggered from blueprints in shipping builds

          • Stats - Added missing stats for hierarchical view

          • Stats - All stats should be visible now on the hud when using command 'stat groupname+'

          • Stats - Fixed a crash when capturing stats from the beginning

          • Stats - Fixed a memory leak when destroying threads (Linux, Mac)

          • Stats - Fixed bad memory accounting for static meshes, added distance field memory usage

          • Structures, with values different than default ones, are properly saved.

          • Suppressed "Access None" errors.

          • Timer functions on objects that exist across level transitions now continue to fire in the new level.

          • UAT will not skip symbolic links on non-Linux platforms (fixes packaging projects on Windows servers that have data deduplication enabled).

          • Updated config files created on packaged games.

          • Coalesced ini files are no longer written out.

          • XML parser can now parse nested '=' characters and named entities correctly in attribute strings.

          Editor and Tools

          • New: Added the ability to specify build settings and enable plugins for content-only projects.

            • This will cause the project to be treated as if it were a code-based project.

            • The editor will attempt to build the project with the selected options.

            • This will allow users to be able to utilize non-standard plugins as well as compile the default game executable with different options.

          • New: Plugin Creation Wizard

            • Note: The wizard plugin is a Beta preview that is disabled by default and must be itself enabled in the Plugin Browser before being used

            • It can then be summoned from the main frame File menu as "Add Plugin...", and includes three templates currently:

              • Blank: Creates a minimal plugin with no functionality

              • Basic: Creates a plugin that adds a button to the main frame toolbar

              • Advanced: Creates a standalone tab window, summoned via a button on the main frame toolbar

          • New: Auto reimport improvements

            • Renames and moves within monitored directories are now detected and reacted to correctly.

            • Users can now specify virtual mapped paths for monitored directories (this allows new content files to prompt the auto creation of assets relative to the specified mapped directory)

            • It's now possible to add wildcards to include and exclude specific files from monitored directories.

            • Added a new option to ignore asset source changes on initial editor load. This is really useful when working with source control, as you can get latest without the editor running, and not have those changes all reimported.

          • New: Automatic Asset Checkout

            • Introduced an "auto checkout" mode to the Editor Preferences

            • Assets can now be optionally checked out automatically when they are modified, instead of prompting the user for checkout via a notification.

            • Additionally, attempting to modify an asset which cannot be checked out (e.g. because another user has it exclusively checked out, or because it is not at head revision) results in a warning dialog.

          • New: Added three new orthographic viewport modes

            • Added Right, Bottom and Back to the list of orthographic viewport modes, so the world can be visualized from all angles.

          • New: The pivot can now be positioned in both perspective and orthographic viewports

            • Dragging the translation widget with Alt+MMB will move the pivot location in any viewport mode.

          • New: Added a Source Control Actions button into the level toolbar

            • There is a new Source Control button on the level toolbar.

            • From here you can perform a number of source control related actions, as well as see the current state of the source control connection. The old status icon in the top right of the editor window has been removed.

          • New: Editor layouts and key binding settings are now saved common to all projects

          • New: Added ability to specify units on properties

            • Units are now shown by default on transforms and rotations. They can be customized on a per-project basis in Project Settings -> Editor -> Appearance

            • Units can be specified using a Units= meta tag.

          • New: Added "Snap Object To View" to the actor context menu.

          • New: 64 bits per pixel textures can now be exported, although the bit depth of the exported texture will be reduced (as neither .tga nor .bmp support 64-bit textures).

          • New: A.R.T. OSX port is now available

          • New: Actors referencing Blueprint assets now open the Blueprint in preference to any other referenced asset when pressing Ctrl+E in the editor.

          • New: Added a "Restart" button to the Crash Report Client.

          • New: Added a blueprint callable function that can show/hide the engine content in the content browser

          • New: Added a button to restart the editor when changing hardware settings.

          • New: Added a dummy plugin for WebBrowser so that it can be included optionally

          • New: Added a keybinding for zooming in a graph editor. The default binding is '+' and '-' to zoom in and out

          • New: Added a method to allow classes to register with the 'Super Search' to allow them to process search strings and return search hits as well as act on them accordingly.

          • New: Added a new scrolling mode to the Output Log window, dragging inside the window with the right mouse button. This equally applies to any instance of the SMultiLineEditableText widget.

          • New: Added a visualization of the preview light direction in asset editors when moving it via L+Click (remains visible for 1 second after releasing the mouse button)

          • New: Added Blueprint callable functions for getting and setting the Attach End To position in Cable Component.

          • New: Added configurable Hit Result Trace Distance property to Player Controller to allow customization of the trace distance used for the Actor mouse click and touch interface.

          • New: Added customization to improve display of crossfade params

          • New: Added functionality for project settings to be edited in specific config files

            • This is enabled on a per-property basis

            • Enabled for a number of IOS Project Settings (Enable Game Center, etc.)

          • New: Added ini option to be able to enable flushing of streaming before each garbage collector call.

            • This can be enabled via FlushStreamingOnGC value under [Core.System] section in engine ini.

          • New: Added log messages for Web Browser errors

          • New: Added method to set default visibility of the Unreal Widget in viewport clients.

          • New: Added option to specify whether a save dialog can be declined as opposed to cancelled. The Save All dialog now only offers 'Save' or 'Cancel' options

          • New: Added script contents validation when importing scripts for the script plugin. Added support for custom file extensions for script plugin.

          • New: Added support for loading objects with StaticLoadObject without specifying the object's name inside the package. Short package name is assumed to be the object name in such case.

          • New: Added the ability to have tags in tutorials that can be searched with the 'super search' box

          • New: Added the ability to load the latest opened level at editor startup

          • New: Added the ability to multiple select spline key points when visualizing a spline component instance in the world. Operations can then be performed on all points at once (transform, change of type, etc)

          • New: Added the ability to right click in a level editor viewport and select "Go to" to move the viewport camera the clicked location

          • New: Added the ability to specify a pixel format for RHI viewports

            • This allows us control over what back buffer format to use for specific RHI viewports. This is ignored on some RHIs (metal, gnm) where it doesn't make sense.

          • New: Added Thickness parameter to Draw Debug Directional Arrow function

          • New: Added tooltip support to Content Browser header row columns. Added Asset Registry Tag Metadata class to Editor builds, for reporting additional tag information.

          • New: Added ToolTip text to the various geometry modifier widgets.

          • New: Added use of LoadString to Web Browser window so that it can display html code directly

          • New: Added view mode menu to SCS Editor Viewport.

          • New: Allowed launcher builds to check for existence of .uprojectdirs files to add search directories

          • New: Autosave is now deferred if shaders are compiling.

          • New: Available platform editor modules are now searched for rather than being hardcoded

          • New: Changed "Create Child Blueprint Class" option in a Blueprint asset's context menu so that the new asset is created and set up for inline renaming in the Content Browser, instead of assigning a default name and opening it immediately in the Blueprint Editor.

          • New: Changed default Texture Editor background to be Checkered. Renamed Saturation view option to Desaturation.

          • New: Changed favorites menu to not have an upper limit. Favorites now organized so the most recently added/opened is at the head of the list. Only the first five favorite levels are displayed on the main menu, the others are on a submenu.

          • New: Changed Input Settings UI to use full names for punctuation keys that were hard to read before (comma etc.)

          • New: Changed the errors related to writing to a file to include the filename for which the error occurred.

          • New: Changed the Texture Editor to default to showing the alpha channel for some kinds of textures most likely to be used as alpha instead of as a mask channel

          • New: Changed Web Browser Viewport to use local size so that image is zoomed when application scale is changed.

          • New: Changed to the way default scene root components are edited.

            • Empty actors have a Default Scene Root. It was previously deleted by the first scene component you added.

            • The Default Scene Root now stays until you delete it or drag another scene component into the root position.

            • The way child components are reparented when their parent is removed has also changed slightly to preserve sibling relationships.

          • New: Data Table Editor has had a few usability improvements

            • The data table editor now has a new look and feel, and supports user resizeable columns, reordering of rows, and full undo and redo support.

            image alt text

            • You can now edit asset and class properties from within the data table editor, and array properties are now supported by the export/import process.

            image alt text

            • You can now export your data/curve tables to CSV or JSON files, and import your data/curve tables from JSON (as well as the existing CSV support).

          • New: Dragging material or texture assets over the level viewport now retains the cursor decorator window. It will be overlaid with the 'Not allowed' icon if the cursor is over a scene element which cannot have a texture or material applied to it.

          • New: Editor sessions now remember the view modes set for perspective / orthographic viewports.

          • New: Ensured that web browser window size is set correctly

          • New: Experimental and Beta warning banner will be displayed in details panels when a Component is selected in both the Blueprints and Level Editor Component trees.

          • New: Fixed an issue where copying from multiline editable text widgets would copy the incorrect newline sequence in Windows.

          • New: Fixed an issue where the drag start position in zoomed orthographic modes is incorrect, due to the trigger for drag start being determined by a scaled delta. Now uses the new RawDelta property.

          • New: Fixed issue in which the spline wasn't updated when setting/unsetting the closed loop property via a Blueprint.

          • New: Fixed various issues with taking screenshots (high res or normal). This now works correctly in all types of editor/game windows. The default image format is now .png.

          • New: If you have Simplygon, you can regenerate LODs without creating new ones.

          • New: Implemented better filtering in the "Replace References" part of the Delete Asset dialog, so that Blueprint assets are filtered by their parent class as well.

          • New: Improved splash screen to include more accurate initialization progress indication.

          • New: Improved the heuristics for detecting normal maps when importing a texture. Now normal maps with alpha should be correctly identified.

          • New: Made some optimizations to the Details panel when there are many large array properties.

          • New: In the BSP Surface Properties category in the Details panel, the scale now initialized to selected surface scale.

          • New: Level Editor viewport transform widgets are now hidden for actors that can't be moved because they don't have a scene component.

          • New: Level Export now supports everything including Skeletal Mesh, Child Actor Component (recursively), and Camera.

            • Also supports Keep Hierarchy option in Editor User Setting : this keeps current attachment hierarchy.

          • New: Localization exec and console commands now work when running games in standalone.

          • New: Lots of missing icons have been created for actions and tabs throughout the editor

          • New: Merge Actors tool has been reskinned and now has its own tab. Just enable it in Experimental Settings, and then open its tab from the Window menu. Then select the Actors you wish to merge, and click 'Merge Actors'.

          • New: New tab closing commands in the Editor

            • Close Major Tab command closes the focused major editor tab (default Ctrl+F4)

            • Close Minor Tab command closes the active window's active minor tab. The active minor tab is the one with the highlight in the tab header.

          • New: Play in Editor (PIE) has a new option that forces sub-levels to be streamed-in from the disk even if they're already loaded in the editor. 'Editor Preferences->Play->Stream Sub-Levels during Play in Editor'.

            • Normally PIE will duplicate a level already in memory the game world wants to stream the level in. PIE with this option set behaves closer how the level will be streamed in during real gameplay

            • Note that levels modified in the editor but not yet saved will still be duplicated instead of streamed.

          • New: Profiler: Added ability to resize named events list

          • New: Project Title is now displayed on PIE windows

          • New: Renamed Actor Locking editor functionality to Actor Pilot

            • Actor pilots are now initiated from the actor's context menu, rather than an unrelated menu on the viewport. Similarly, pilots can be stopped via the context menu for the actor, or from the viewport toolbar that is visible when a pilot is active.

          • New: Reworked "Create Blueprint Class" dialog in class viewer.

          • New: Russian language keyboards will now have a default console key mapped

          • New: Spline Mesh Component now has a Min/Max Boundary property to specify the bounds of the curve numerically instead of by the mesh bounds.

          • Fixed the bounds calculation for Spline Mesh Components so that it is calculated correctly given custom boundaries.

          • New: Streamlined the Select submenu in the level viewport contest menu to remove uncommon or deprecated items.

          • New: Texture LOD Settings are now configured on a per device profile basis.

            • This adds greater control for users to specify Texture LODs based on their Target Platforms and Devices.

            • Configurable, in Editor, through, View->Developer Tools->Device Profiles.

          • New: The "Merge Actors" tool now also merges LODs for the meshes

          • New: The "Merge Actors" tool now has an option to also merge materials. Each source material's components (Base Color, Normal, Roughness etc) will be flattened into a texture and arranged into a texture atlas. Supports only opaque materials.

          • New: The general feel of the Unreal Widget has been improved, in particular that of rotation, which should now respond smoothly to the user's mouse movements.

          • New: The Message Log system now supports adding a button to perform one-time actions such as repairing damaged content. Once the button is pressed and the action has been performed, the button is removed.

          • New: The OBJ file format is now accepted when importing LODs

          • New: The Pen tool in Geometry mode now disallows creating geometry whose edges self-intersect.

          • New: The Simplygon Mesh Proxy tool now has support for Metallic, Roughness and Specular material properties.

          • New: Transform and Vector properties on Scene Component subclasses can be manipulated in the level editor

            image alt text

            • Editable properties on scene component and actor subclasses can be tagged in C++ using meta=(MakeEditWidget) or in Blueprints using "Show 3D Widget"

            • It works on arrays of Transform or Vector properties as well, showing one widget for each element of the array

          • New: Updated how importing factories are sorted and prioritized.

          • New: User is warned when packaging a binary that doesn't exist.

          • New: Valid stats console commands now appear in the in-game console auto-complete list, and no longer output an 'unrecognized command' message.

          • New: You can now double-click components in your Blueprint or actor details to focus the viewport on the component.

          • Added a setting in the Matinee record movie tool to specify whether or not UMG/Slate HUD should be included in the recorded movie

          • Added back in the setting to toggle using MiKKTSpace tangent generation for static meshes

          • Adjusting the mouse capture tip to only ever be collapsed or hit test invisible. It was previously blocking clicks because the border was visible.

          • All users focus are now set to the main viewport in PIE, fixes 2nd + players controllers not having control until you click in the PIE viewport.

          • BSP converted to static meshes will no longer leave the BSP brush remaining in the level

          • Changed Play From Here so that it doesn't snap-adjust the click location to use.

          • Corrected the name of the folder to import to when inserting feature packs

          • Fix an issue where icons would not display in the curve asset editor if you enabled small icon mode.

          • Fix crash attempting to reimport a render target. Render targets cannot be reimported since they aren't generated from source art data

          • Fix crash running game/PIE when an image asset has be set to none in the touch interface layout.

          • Fix skeletal meshes not allowing editing of any materials if none were found during FBX import.

          • Fix so that pausing a PIE session (with the Pause key) actually works when PIE is in a new editor window.

          • Fix stall during streaming in sublevels due to async loading being flushed by destroying a child actor component.

          • Fixed "BugItGo" console command to work in play-in-editor mode.

          • Fixed "Map Check" error messages that were added during loading a map not being shown

            • We don't perform a full map check on loading a map in the editor, but some objects perform self-checks on load and add them as map check errors

          • Fixed "select immediate children" in the world outliner selecting recursively

          • Fixed a bug that could cause Play-in-Editor client instances to load an incorrect map if the current map hadn't been saved yet.

          • Fixed a bug that could cause the line attractor to crash the engine if both start and end point were in the same location.

          • Fixed a bug that could crash the editor under OpenGL.

          • fixed a bug where automated tests could crash if the host platform was not defined

          • Fixed a bug where the "image" field on a Slate brush was not found when searching the details panel

          • Fixed a crash importing FBX files if analytics is disabled

          • Fixed a crash in GUID struct customization

          • Fixed a crash in the Property Editor when validating an external property while there are no instances

          • Fixed a crash in the Simplygon Mesh Proxy utility when one of the source meshes has no material assigned

          • Fixed a crash on exiting the game after package streaming failed.

          • Fixed a crash renaming a level which has not been saved yet

          • Fixed a crash setting a BSP box to tessellated.

          • Fixed a crash summoning the component visualizer context menu when a viewport was in immersive mode

          • Fixed a crash when a material is used in a loading screen before the engine is fully initialized

          • Fixed a crash when adding a text array to a user defined structure.

          • Fixed a crash when attempting to generate too large a font texture.

          • Fixed a crash when attempting to turn an edge in Geometry Mode whose associated polys are coincident.

          • Fixed a crash when Garbage Collector is triggered while streaming caused by Garbage Collector claiming objects referenced only by streaming code.

          • Fixed a crash when loading corrupted asset. This will now result in a warning instead.

          • Fixed a crash when mirroring a BSP brush

          • Fixed a crash when opening the Level Blueprint for the first time, if there is an Actor in the level with the same name as the level.

          • Fixed a crash when replacing an actor with a new actor twice in a row

          • Fixed a crash when stopping Play In Editor or Simulate. It happened when Play In Editor or Simulate was started using a keyboard shortcut while dragging an actor in the viewport.

            • If an actor is mid-drag in the viewport and Play In Editor or Simulate is started, the drag operation will be cancelled and undone before starting the game.

            • If any other edit is being made (any change that can be undone in the editor) when Play In Editor or Simulate is started, the start command will be ignored and a message will be displayed to explain why this happened.

          • Fixed a crash when texture painting in Paint Mode.

          • Fixed a crash which could occur when drag selecting actors in orthographic mode if there were already a large number selected.

          • Fixed a crash which occurred when opening a texture in the Texture Editor whose assigned LOD group had been deleted from BaseEngine.ini.

          • Fixed a few framerate spikes when streaming content caused by big seek times when loading bulk data

          • Fixed a problem that could cause a crash when trying to show collision in a cooked build.

          • Fixed a small issue where custom set LoD materials were lost after reimporting a mesh.

          • Fixed an editor crash when attempting to assign a maximum texture size to a non power-of-two sized texture.

          • Fixed an editor crash when renaming levels in the content browser which are referenced as streaming levels in the world.

          • Fixed an editor crash when using 'undo' and painted vertex colors.

          • Fixed an error being generated when creating a project if new project files could not be added to source control

          • Fixed an issue in the Class Viewer which was preventing the currently selected class from being dragged and dropped into the level.

          • Fixed an issue in which the root component of an actor would be lost after hot reload if its class had changed.

          • Fixed an issue where if a project or the engine was located in a directory which UE4 uses as a platform name, the entire project or engine would be excluded from the build/creation of a game.

          • Fixed an issue where project settings updated the default config files with two entries.

          • Fixed an issue where startup movies were not being rendered in the viewport.

          • Fixed an issue where the Data Table editor could stop working depending on its window layout

          • Fixed an issue where the orbit camera delayed hiding the mouse cursor until the following update.

          • Fixed an issue where the output log would sometimes not auto-scroll to the bottom during initialization.

          • Fixed an issue where world types might change when loading a world through a redirector when streaming levels in PIE

          • Fixed animation and UMG blueprints having the wrong corner text

          • Fixed browse button in the details panel not being usable on object properties when a value cannot be edited

          • Fixed brush transform settings not updating in real time when changed in the details panel

          • Fixed BSP mirror operation so that undo works correctly.

          • Fixed bug in Color Picker where original color wasn't correctly restored upon pressing Cancel.

          • Fixed bug when fading in sounds with a start time set

          • Fixed crash clicking on columns in the Visualize Texture window

          • Fixed crash during hot reload after removing code responsible for creating a default subobject without removing its property.

          • Fixed crash on opening SoundCue Editor

          • Fixed crash when clicking repeatedly on a sprite with multiple source regions.

          • Fixed crash when importing multiple assets at once with the same name.

          • Fixed crash when launching or Stopping PIE when Running 'Effects Cave' and 'Elemental' Demos.

          • Fixed crash when pressing shift while already in tile map painting mode.

          • Fixed details panel buttons not being clickable in object properties with very large names. Slightly reworked were the asset buttons are.

          • Fixed drag-dropping a child-attached actor in the scene outliner to the World giving a bogus error message and not allowing you to reparent it.

          • Fixed edit/extrude BSP operation with multiply selected brushes. Also fixed scale for the limited case that there is exactly one surface selected.

          • Fixed editor viewports drawing when their tab was not active or visible

          • Fixed empty categories appearing in the details panel of the UMG editor

          • Fixed FBX export not exporting vertex colors for static meshes

          • Fixed FBX import menu using incorrect details panel object

          • Fixed FBX import window sometimes getting locked into an inconsistent state when importing static meshes as skeletal meshes

          • Fixed foliage tutorial to line up with new setting and UI changes.

          • Fixed graphical corruption in the editor when on a breakpoint inside a UMG widget tick event

          • Fixed inability to use ctrl modified hotkeys when tile map editor was focused.

          • Fixed issue where "Assets could not be loaded" notification was misleadingly appearing when fixing up redirectors on a folder.

          • Fixed issue where Actor properties were not having their name fetched from the actor label if no PropertyEditor were specified.

          • Fixed issue where certain physics-simulated components would have incorrect transforms when running in standalone mode.

          • Fixed issue where Dialogue Waves play with incorrect Sound Class

          • Fixed issue where moving actors from one level into the currently selected level, when hidden, would result in the actor being mutated or deleted entirely.

          • Fixed issues when building filenames for maps in the top level folder of a new project.

          • Fixed issues with actors sometimes being deleted when moving them to a new level

          • Fixed issues with BSP surface texture transform when the parent brush is scaled or rotated.

          • Fixed issues with the Brush Clip tool which would prevent clipped brushes being copied/pasted.

          • Fixed local transform preservation option sometimes missing from FBX import UI

          • Fixed LOD settings for Billboard Component and Material Billboard Component being hidden.

          • Fixed lots of crashes/issues with reimporting mesh with LODs (many were material index related)

          • Fixed object scaling when the pivot has been moved from the actor origin.

          • Fixed orthographic viewport box selection for Brush Components, so they are no longer all selected when not passing over any edges or vertices.

          • Fixed performance spikes when opening package summary in cooked builds.

          • Fixed problem where a component couldn't be added to an empty actor with attached children.

          • Fixed progress window update issue during Building in editor.

          • Fixed scene capture actors updating with data from the wrong scene in a multi-scene environment. Scene capture actors are now only updated when the scene they are associated with is updated

          • Fixed scene capture components not updating correctly in the editor or when they are part of a blueprint

          • Fixed several build errors when utilizing standalone Unreal Frontend to build game projects.

          • Fixed several crashes when undoing operations on BSP brushes.

          • Fixed several race conditions which caused crashes in the loading screen movie player

          • Fixed 'show volumes' and 'show collision' console commands so that volumes and BSPs are correctly shown.

          • Fixed streaming code not handling package summary load failures properly resulting in infinite load times.

          • Fixed subobject instancing when creating new objects from a template other than Class Default Object.

          • Fixed text export of Model objects, so that Brush objects are forward declared before being defined. This was previously causing "Ambiguous search" messages clogging the output log.

          • Fixed the "Align Brush Vertices" operation on rotated or scaled brushes.

          • Fixed the curve editor so that the Alpha graph can be edited just like the other color channels.

          • Fixed the delta translate feature not being undoable

          • Fixed the display of the "referencing property" when saving a package with "graph linked to external private objects"

          • Fixed the editor sometimes hanging when a graphics tablet was connected

          • Fixed the GPU profiler window having several missing textures when it was opened in a standalone game

          • Fixed the level editor always becoming focused when ending PIE even when it was not the active tab

          • Fixed the measure tool in orthographic viewports not working when Matinee is open

          • Fixed unloaded Blueprint components sometimes having the wrong icon

          • Fixed UV coordinates on Material Billboard Component

            • Also allow material to be read and changed at runtime.

          • Fixed warning display when a stereo sound plays with spatialization activated

          • Fixing a bug in garbage collector where purging would not call destructors on objects residing in permanent objects pool while performing exit purge

          • Gated editor flight controls to only take effect while modifier keys (ctrl, alt, shift, cmd) are not held down, to allow things like [modifier]+PageUp can be bound to other actions

          • If a transform property is marked as "Use 3D Widget", the widget rotation is now correctly represented when in local space mode.

          • Improved the error message when adding a new class fails due to a compile error

            • The fact that the error message said "failed to add class" despite the class itself being added was causing confusion.

            • In the case where adding a new class fails to hot reload (probably due a compiler error) we now state that the class itself has been added, but that you'll need to recompile the module before it will appear in the editor, and offer an easy way to open the output log to see more detailed compiler output.

            • We also automatically close the class wizard so that you're not left looking at an error message saying that "the class name is already in use".

          • Instead of marking all objects created during initial load as root set, only loaded objects will be marked as such. This fixes some issues with loading and creating blueprints.

          • Made sure there's no outstanding streaming request when Play In Editor starts.

          • Map-travel failures in PIE will now simply shut down PIE rather than try to load the default map. Avoids potential fatal error if default map subsequently fails to load.

          • Material flattening should now produce better results on materials that are using scene properties

          • Materials for the high res screenshot functionality are now only loaded when in editor builds

          • Mouse cursor no longer pops back to start point when you finish painting in a TileMap.

          • Moved buffer visualization setup code around so it can uses showflags AFTER overrides have been applied, allowing them to work correctly in non-editor modes when debug view modes are allowed.

          • Prevent toolbox being summon with keyboard shortcut when the module is unavailable.

          • Project settings which require an editor restart will now provide a toast notification when changed, asking the user if they would like to restart.

          • Removed the invalid right-click context menu from the Reference Viewer when clicking on the background.

          • Reset to default on properties in the details panel now properly propagates changes to any child instances of a Blueprint

          • Some less common editor viewport settings have been moved to the advanced section of the editor settings

          • Some minor revisions to Game Menu Builder to make it a little more usable

          • Added functions to set Menu owner, Menu Style and various click delegates

          • Added a template function for adding a custom menu item

          • Sped up editor start time by avoiding re-parsing ini files multiple times.

          • Stopped group actor bounding brackets from being rendered on viewports which are in Game View.

          • The "Merge Actors" tool now correctly processes static meshes with disabled 'Recalcuate Normals' option

          • The "Merge Actors" tool now uses the source Actor name's for the merged mesh instead of source mesh asset's name

          • The class picker now opens faster

          • The connection error popup message in the Git source control plugin has been restored

          • The current feature level mode will now persist when creating new maps or loading existing ones

          • The Git source control plugin now searches more paths for the for the required Git executable

          • The Group Actor pivot location now correctly updates when adding or removing actors to/from the group.

          • The measuring tool in orthographic viewports now works correctly when Matinee is open

          • The post process settings on Camera actors and Post Process volumes have been cleaned up and now show their own categories inside the Post Process Settings field in the details panel.

          • The reference viewer no longer loads assets that you right click on to make navigation faster.

          • The Simplygon Mesh Proxy tool will no longer crash when one of the source meshes has an empty material.

          • The Simplygon Mesh Proxy tool will no longer try to merge meshes with non-opaque materials.

          • The UMG palette view now opens the common category by default

          • To avoid autosave popups that disrupt using the editor, autosave is now prevented for a small amount of time when there is any interaction in the editor.

          • Fixed another issue where only the device profiles for the running platform are loaded on game builds.

          • Using the "Create Camera Here" command now copies the FOV of the current camera as well as the location and orientation

          • VSync is no longer forced on in the editor even when the project's system settings enable it for non-editor runtime.

          • We now rerun construction scripts after changing properties/attachments on instanced components in the level editor, in case the Construction Script is dependent on those values.

          • When you changed name of row, and selected new row without hitting enter, name is changed on the newly selected row, instead of the old one, which works counter intuitive.

          • Widgets displayed for Make EditW idget transform properties now correctly rotate to match their orientation

          • Writing a default config file with no hierarchy no longer causes a crash.

          Content Browser

          • New: Added a prototype configurable asset tag filter

            • You can configure the tag, value, and comparison operation in the context menu for the filter bar button

            • Note: Due to current assumptions about front-end filters, you can only have one tag filter active at a time

              image alt text

          • New: Added the ability to derive a Blueprint from a C++ class via the Content Browser

          • New: Created a new thumbnail renderer for Destructible Mesh assets so that they no longer use the Skeletal Mesh renderer. This was causing a lot of unneeded output log spam

          • New: Increased the time that the quick jump text in the Content Browser remains active before being reset.

          • New: Reinstated Resource Size tag so that it appears in the tooltips for assets in the Content Browser.

          • New: We now sync the Content Browser view after adding a new class, and also open the Blueprint editor when adding a new Blueprint class.

          • "Show Collections" in the Content Browser now remembers its state across editor sessions.

          • "Show in Folder" and "Show in Explorer" Content Browser context menu options have been moved out of a sub-menu because they are frequently used

          • Changed the texture thumbnail renderer to treat TEXTUREGROUP_Pixels2D like it does TEXTUREGROUP_UI, showing the texture as translucent

          • Fixed an issue with feature pack importing where corrupt data could crash or hang the editor.

          • Fixed a bug where the Content Browser could be left looking at Engine or Plugin classes after that view had been disabled via the view options.

          • Fixed a regression in which the Content Browser thumbnail icon didn't get cleared when all visualizable component nodes were deleted in the Blueprint editor.

          • Fixed an issue where renamed assets were incorrectly absent from the "In Use By Level" filter in the Content Browser until toggling the filter off and on again.

          • Fixed Checked Out filter in Content Browser.

          • Fixed crash when opening a Pak file with no files in it

          • Improved logic for creating unique asset names.

          • Reduced log spam when the path in the content browser changes

          • Renamed "Property Matrix..." to "Bulk Edit via Property Matrix..." to use a more familiar grounding term

          • Renaming an asset no longer disables the miscellaneous filters in the content browser.

          • Restored the ability to duplicate the current Level in the Content Browser.

          • When discovering assets, we are now prioritizing background search results in addition to background search files after selecting a path in an asset view.

          Landscape

          • New: Landscape splines can now split their meshes between landscape streaming levels

          • New: Landscape spline segments and control points now have a new option, bPlaceSplineMeshesInStreamingLevels.

            • This option is enabled by default for new splines but is disabled for existing content in order to preserve existing behavior.

            • With this option enabled, a landscape spline that has with meshes will automatically place its mesh components into the streaming levels corresponding to the underlying landscape.

            • If a landscape the spline crosses is divided into two levels, the meshes will automatically be divided to match the landscape components' levels

          • New: Added ability to deform a landscape using a given spline from blueprint in the editor (blutility)

            • This allows for procedural landscape modification, but be warned: changes are permanent!

          • New: Added world-space settings to the Landscape "pattern" brush

          • New: Creating and specifying a "Landscape Hole Material" is no longer required!

            • To create a landscape material that can support holes on landscape, you now simply need to connect a "Landscape Visibility Mask" material node to the (greyed out) "Opacity Mask" material output of your main landscape material - no need to create a separate material or material instance!

            • If the material is set to opaque (the default and recommended) landscape components with holes will automatically change it to use the "Masked" blend mode and holes will "just work"

            • You can still specify a "Landscape Hole Material", which will be used instead. This is no longer necessary, and provided mainly to allow old projects to upgrade cleanly

          • New: Exposed "Translucency Sort Priority" for landscape spline meshes

          • New: Landscape Spline sprites are now hidden when not in landscape spline edit mode

          • Changes made to a Landscape actor's LOD settings are now propagated to sub-level landscape proxies when the sub-levels are loaded in the editor.

          • Changing the Texture Quality settings will no longer affect landscape geometry!

          • Fixed a bug where landscape collision stopped working for components that had been painted with the Retopogolize tool, after changing the Collision Mip Level property.

          • Fixed a bug where physical materials on landscape were incorrect after changing the Collision Mip Level property or running the "RecreateLandscapeCollision" console command.

          • Fixed a crash or incorrect landscape rendering when using the editor viewport's Landscape Override LOD menu item to select an LOD greater than the landscape's maximum LOD.

          • Fixed a crash when assigning a PN-tessellated material to a landscape and then performing an undo

          • Fixed a crash when starting Play in Editor when a sublevel that contains a landscape is loaded but currently hidden in the Levels window.

          • Fixed a landscape rendering crash when streaming textures for landscapes with a small component size, or with components with ForcedLOD or LODBias set.

          • Fixed a material compiler error that occurred if a Landscape Visibility Mask node was connected to anything other than the material's Opacity Mask output.

          • Fixed a memory leak with landscape editing

          • Fixed a potential crash in the landscape brush code reported by a user

          • Fixed an issue where landscape collision was absent after the use of the 'Retopologize' tool

          • Fixed an issue where the landscape Delete Component tool would fail to remove all attached foliage instances.

          • Fixed an issue where the landscape Move Component to Current Level tool would fail to move any attached foliage instances to the current level.

          • Fixed an issue where the New Landscape tool could crash when the user attempted to create a new layer

          • Fixed importing data to a single landscape layer averaging it with the existing data in other layers rather than overwriting it

          • Fixed landscape copy/paste gizmo moving and rescaling when trying to copy from one landscape to another

          • Fixed landscape geometry errors when texture pool is full

            • Streaming for Landscape heightmaps is now prioritized above other textures - they define the geometry of the landscape, so if they are unable to stream in the required mip, they can cause serious visual issues

          • Fixed landscape physical materials being incorrect after using the landscape copy/paste tool

          • Fixed landscape static lighting errors

            • Landscape holes were not letting light through

            • Landscape could reflect the wrong colour into the static lighting

          • Fixed null landscape layers not being deleted correctly. This was causing a crash later when trying to use the paint/visibility tools

          • Fixed rendering issues for landscapes with very large component sizes caused by a numeric overflow problem.

          • Fixed rendering issues on landscapes when deploying to Android, iOS, HTML5 or the Mobile Previewer in the editor. The problem was caused by the mobile rendering data overwriting PC data during cooking.

          • Fixed the strength of the landscape weightmap painting tools

          • Fixed visual cracks and seams between real landscape components and landscape proxy meshes when using whole sub-level LOD

          • Landscape sculpting and painting tools now work correctly on mirrored landscapes (ie landscapes with a negative scale on one axis)

          • Landscape should now correctly update the physics collision data when a layer's physical material is changed

          • Landscapes created in world composition mode no longer have their section coordinates adjusted by the tool.This was causing issues with landscape UV coordinates.

          • Stopped the flashing effect on the landscape editing brushes

          • The editor now requests landscape collision data from the Derived Data Cache asynchronously. This fixes hitches when streaming landscape levels in Play in Editor mode.

          • The landscape tools no longer crash when toggling a sublevel's visibility in the Levels window while Landscape mode is active

          Material Editor

          • New: A new material function 'TransformToZVector' is useful for transforming vectors from worldspace into an a space defined by a Z vector. The X and Y basis vectors will be generated as orthogonal to the input Z vector.

          • New: Added a new material function called MatLayerBlend_BlendAngleCorrectedNormals that is useful for adding an additional normal map to a Material Layer using BlendAngleCorrectedNormals without having to break the "Material Attributes" apart. Also has a mask option.

          • New: Added three new material functions: MatLayerBlend_SeparateNormalandColorClamps: This is useful for blending two layers but clamping the alpha blend using different values for color maps and normals. MatLayerBlend_StandardWithDisplacement: This works just like _Standard but also blends the displacement layer. Very useful for landscape materials. MatLayerBlend_StandardWithMaskEdgeTint: This darkens the edge of the Top blended layer by a fraction.

          • New: Default parameter values on parameters defined inside material functions are now obtained correctly.

          • New: Fixed issue with menu listings for Material Expressions whose name doesn't begin with 'MaterialExpression'

          • New: Made certain material node properties multiline in the details panel, for clarity and readability.

          • New: New Material Function 'TransformNormals_Tangent_to_Vertex' for easily transforming normal maps for world aligned textures using the vertex normals while disregarding all tangent vectors.

          • New: New Material Function 'WorldPosition-XY' for quickly mapping XY coordinates. Useful for quick setup of landscape or ground materials.

          • New: New Material Layer Blend function called 'MatLayerBlend_MultiplyBaseColor' is useful for modulating the base color of a Material Layer. Has a V3 color input as well as a Scalar mask input.

          • New: Switched the material editor to use to use the standard in-viewport toolbar

          • Moved the 'preview shape' toolbar to the bottom right and removed 'real time' and 'show grid' options, which are now in the standard menu locations

          • Fixed an issue where a material asset thumbnail and the preview material in the Material Editor would get corrupted when reimporting a normal map texture used by that material.

          • Fixed crash that could occur when loading old Material Functions

          • Fixed issue with Material flattening that produced bad normal maps on some materials

          • Fixed parameter grouping for parameters defined in functions.

          • Improved SphereGradient-3D material function. It now uses real world depths when calculating for camera intersection which looks like convincing 3d fog.

          • Made the "Set Preview Mesh" in the Material Editor Viewport highlight when selected.

          • Moved parameters to the top of the material instance editor.

          • When compiling materials, the engine now no longer completely re-registers any components using the material, and instead just recreates the components' render state. This reduces the time taken when pressing the Apply button in the material editor.

          Matinee

          • New: Added ability to use a custom Anim Blueprint for Skeletal Meshes driven by Matinee

            • This doesn't support blending yet, but you can use 'Look At' or other procedural bone controllers with Matinee animated meshes.

          • New: Added Fade Color and Fade Audio options to Matinee camera fade tracks.

          • New: Added 'Keep Hierarchy' option when exporting a matinee

          • New: Matinee Export has an option to export with attachment hierarchy.

            • The option is Keep Hierarchy you can find in Matinee. It only exports enabled tracks. Includes Anim Tracks.

          • New: When editing a Camera Anim, we now display the Camera Anim object's properties in the details panel by default.

          • Fixed bug where quick glimpse of station occurred before start of Matinee Fight Scene.

          • Fixed existing duplicate matinee groups not being overridden when importing new tracks over the top

          • Fixed matinee color fade

          • Fixed Matinee toggle tracks not working if bActivateSystemEachUpdate was enabled (legacy feature)

          • Fixed PNG frame export from Matinee writing out bogus alpha values

          • Fixed potential crash while scrubbing in Matinee with a sound key that has no sound assigned.

          • Fixed preview of material parameter changes driven by curves of the animation that is played while scrubbing.

          • Matinee movie recording now captures UMG/Slate huds of Hide HUD is disabled in the Matinee recording window

          • Undoing a rename of a camera group now correctly undoes the same name shown in the director group

          Cascade

          • Emitters with disabled LODs to remain alive so that when re-entering LOD range, the effect became visible again.

            • This caused issues with various other effects and so has been moved behind a bool in the Emitter properties called Disabled LODs Keep Emitter Alive. This is false by default.

          • Fixed a bug in which collision channel settings were not being used properly after reloading a particle system. This caused all collisions to revert back to WorldStatic.

          • Fixed a bug in which Skel/Vert/Surf module particles would spawn at the emitter origin

          • Fixed a problem that could cause severe editor performance problems with many Cascade tabs open at a time.

          • Fixed the Spawn Using Surface Normal feature in the Skel/Vert/Surf module.

          Persona

          • New: Added a scroll bar to the notify panel to scroll through the track when zoomed

          • New: Added context menu options to directly set trigger frame or trigger time for anim notifies

          • New: Added option to the animation viewport to disable visualization of morph targets.

          • New: Added resize cursor to resize handles for anim notify states

          • New: Added search field in the Animation Detail tab

          • New: Added support for Montage to Montage synchronization.

          • New: Turn Table feature for Persona's Viewport.

          • Disabled creating animation BP in Persona until we support multi asset opening.

          • Fixed anim notify name generation not updating on property change

          • Fixed APEX clothing asset files with non-ANSI filenames failing to import when selected in Persona

          • Fixed crash in customization for rig asset when opening bone lists

          • Fixed delete operation for anim notifies deleting the first notify with a matching name.

          • Fixed delete option in animation notify context menu not working correctly on some platforms

          • Fixed flickering light in Persona when used with shadow casting materials due to light movability

          • Fixed incorrect notify list parsing on Mac

          • Fixed morph targets not displaying in Persona after component re-registration

          • Fixed preserve settings flag when reimporting clothing APB files in Persona not allowing settings to be overwritten

          • Fixed private properties being shown in the details panel for anim notifies

          • Fixed step forwards and backwards on Persona scrub panel snapping to frames

          • Fixed the add notify menu not traversing long inheritance chains to find valid classes

          • Fixed undo for changes in anim notify state duration not undoing the change

          PhAT

          • New: Added PhAT support for scaled bones.

          • Fixed orientation motor not working correctly in Phat

          • When building collision for a bone, correctly apply component space matrix to propagate scale.

          Project Browser

          • New: Made the Project Browser window a little taller so that it's clear that there's description text below the template image.

          • New projects now have a random project ID set by default.

          World Outliner

          • Deleting folders in the World Outliner now promotes all children to the level above instead of directly to the root.

          • Prevented AI controllers (and other transient actors) from being hidden in PIE Scene Outliner

          • Removed the Level Blueprint from the World Outliner view.

            • This was just an alternate route to opening the Level Blueprint, but since we can't display details for this item, we decided that it doesn't really belong in the Outliner view.

            • As before, the Level Blueprint can still be opened from the Blueprints drop-down in the toolbar.

          Static Mesh Editor

          • New: Added socket snap-to-vertex, and socket metadata.

          • New: Improving the Socket Manager's look and feel and enabling it by default.

          • New: Switched the static mesh editor to use to use the full standard in-viewport toolbar

          • The Transform toolbar is now only shown when something is selected that can be modified via the gizmo (collision, socket, etc...)

          • Fixed issue where LODs were deleted when changing the LOD group in the static mesh editor, and LODs no longer lose custom set materials / metadata when reimported.

          • Fixed socket preview mesh in the Static Mesh Editor so that it transforms as its parent socket is transformed.

          • Improved the performance of scaling collision volumes in the static mesh editor.

          Source Control

          • New: Added the ability to commit file deletions from the editor.

          • New: Asset list now updates in "Check Out Assets" dialog when "Connect to Source Control" is pressed.

          • Added implementation of Annotate File that takes a changelist

          • Checking for assets to check in is now faster with SVN

          • Fixed errors communicating an SVN servers when usernames or passwords contain spaces

          • Fixed issue where cancelling from the "Check Out" dialog during saving assets would not cancel the whole operation.

          • Fixed SVN stat