Description

After creating the BP derived class and starting PIE, the problem pointer is set to the owning component as expected.
However, after the component’s constructor, FObjectInitializer::InitProperties changes the pointer to the BP archetype (BP_CompClassName_GEN_VARIABLE), a value it's getting from the DefaultData object.
After restarting the editor, the issue no longer occurs. In this case, it appears that the pointer is set back to the expected value when the actor component and its properties are later serialized from StaticDuplicateObjectEx.

Steps to Reproduce
  • Create a struct with a TObjectPtr property
  • Create a C++ actor component class with this struct as a property
  • In the constructor for the component, set the struct’s TObjectPtr to “this”
  • Create a BP component class derived from this C++ class.
  • Create another BP class derived from the first BP class.
  • Place an instance of this BP in the level, and start PIE.
  • Observe the struct’s TObjectPtr property points to a “GEN_VARIABLE” object rather than the component itself.

See linked EPS case for test project and detailed repro steps.

Have Comments or More Details?

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

0
Login to Vote

Unresolved
CreatedMay 18, 2026
UpdatedMay 25, 2026
View Jira Issue