Description

If a standard level (without Actor Folders enabled) is added to a world-partition map (with Actor Folders enabled) as a Level Instance, and then that instance is "broken" so that its actors are incorporated into the main map directly, the resulting actors do not have their Actor Folders setup properly. As a consequence, attempting to move those actors to different folders may end up placing them in the root of the main map, instead of in the expected place.
The licensee in the linked UDN case provided a video showing the misbehavior. He also did an initial investigation into the issue and proposed an explanation and a potential fix to the code. Basically, in AActor::PostEditImport() for an actor that is coming from a actor-folders-off level into an actor-folders-on level, the SetFolderPath() function could be called when (!FolderGuid.IsValid()) instead of only when (GetFolderPath().IsNone()). See the linked UDN case for details.
Also note that there is no misbehavior if the level used as instance is configured to use Actor Folders prior to being "broken" into the world-partition level.

Steps to Reproduce

1. Create an empty basic level (which will have Actor Folders off)
2. Add 1 root folder 2 two sibling subfolders under it
3. Add 3 cubes (or any actor) to each of the 2 leaf subfolders
4. Save the level
5. Create a new Open World level (which will have Actor Folders on)
6. Drag & drop the basic level asset into the Open World level viewport
7. Select the level instance actor and break the level instance (right-click – Level – Break)
8. Drag the root folder from the broken level instance into any other folder of the world-partition level

Result:

  • One actor from each subfolder is put in the expected place in the hierarchy.
  • The other actors are put in the root of the world-partition level.

Notes:

  • There is no misbehavior if Actor Folders ("World Settings – World – Advanced – Use Actor Folder Objects) is enabled on the basic level prior to breaking the instance on the world-partition level.
  • There is no misbehavior if the level instance was created by selecting some actors of a world-partition level and using "Right-Click – Level – Create Level Instance" (since the created level already comes with Actor Folders Enabled)

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-205116 in the post.

0
Login to Vote

Fixed
Fix Commit31523541
Main Commit31523541
CreatedJan 29, 2024
ResolvedFeb 15, 2024
UpdatedMar 21, 2024