Level Blueprint actor containers default values bug

If you create a level blueprint variable for an actor type where the container type is Set or Map (with the actor as either the Key or the Value), and have a placed level actor referenced in the Default Values of that container, then when you Play In Editor (PIE) the reference doesn’t not get swapped out for it’s PIE equivalent.

This means any actions you take on the actor referenced affect the ‘editor’ version and not the ‘PIE’ version, so it’ll look like you level is not behaving itself until you end PIE and then you’ll see the ‘editor’ version looking like the ‘PIE’ version should have.

You can test this by creating containers all referencing the same actor in the Default Value and then printing their path name during PIE.

Array: /Game/Maps/test/UEDPIE_0_test.test:PersistentLevel.VehicleA
Set: /Game/Maps/test/test.test:PersistentLevel.VehicleA
MapKey: /Game/Maps/test/test.test:PersistentLevel.VehicleA
MapValue: /Game/Maps/test/test.test:PersistentLevel.VehicleA

Note: Array containers are fine, the issue is only with Set and Map.

Andrew

This bug still exists in 4.21.