When using external actors, adding/removing/replacing/editing an actor instance inside a level does not cause any modification to the Level package, which helps reduce contention for the map file on a multi-user workflow.
When a Level Blueprint is present, removing an actor causes the map to be flagged as "modified" only if the removed actor is referenced by the Level Blueprint. This is also the expected behavior when replacing an actor with another by using the "Replace selected actors with..." feature from the popup menu. However, when replacing actors in this way, the map file is currently being marked as dirty whenever a Level Blueprint is present, even if it does not reference the affected actors. This unneccessarily negates the benefit of One-File-Per-Actor on reducing contention for the map file.
The behavior seems to be caused by the call chain below. The final Modify() is called on the Level Blueprint even when there are no references to be replaced.
FLevelEditorActionCallbacks::ReplaceActors()
UEditorEngine::ReplaceSelectedActors()
UEditorEngine::ReplaceActors()
FBlueprintEditorUtils::ReplaceAllActorRefrences()
InLevelScriptBlueprint->Modify();
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-219391 in the post.
0 |
Component | UE - World Creation - Worldbuilding Tools |
---|---|
Affects Versions | 5.4.3 |
Target Fix | 5.6 |
Created | Jul 15, 2024 |
---|---|
Updated | Oct 11, 2024 |