Description

The bug only happens when the ChildActorComponent is added to the BP after placing instances and saving the world. Adding the ChildActorComponent after this will result on the name of the child actor to be generated at cook time.

The problem was debugged by the licensee and he found the following:

When cooking a level, if actor is in OFPA level, UChildActorComponent::CreateChildActor sets Params.OverridePackage to non-null value (a UPackage in ExternalActors subdir that contains the owner actor) and calls UWorld::SpawnActor. Since SpawnParameters.OverridePackage is non-null, this function sets bNeedGloballyUniqueName flag and passes it to FActorSpawnUtils::MakeUniqueActorName - which uses FActorGUIDGenerator to generate a name for a new actor, which builds a GUID using machine's MAC address (bad news for deterministic cooks) and current timestamp (complete disaster for deterministic cooks).

Steps to Reproduce
  1. Create two empty actor blueprints (Test_ActorChild and Test_ActorParent in my example)
  2. Create new level, save (call it Test_Map), then enable OFPA (confirm conversion to external actors), drag an instance of Test_ActorParent, save again and close (load some other level instead)
  3. Open Test_ActorParent, add ChildActorComponent and assign Test_ActorChild as an actor to spawn.
  4. Cook normally (-run=Cook -TargetPlatform=Windows -Unversioned -cooksinglepackagenorefs -package=/Game/Test_Map)
  5. Cook in diff-only mode (-run=Cook -TargetPlatform=Windows -Unversioned -diffonly -cooksinglepackagenorefs -package=/Game/Test_Map)
  6. Observe the diffs.

Have Comments or More Details?

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

0
Login to Vote

Unresolved
CreatedFeb 16, 2026
UpdatedFeb 17, 2026
View Jira Issue