What is the correct way to create and add components at runtime ?

I have fully tested just this workflow as working

PrimitiveComponent was my chosen base class, you could use Scene component for components that dont have collision.



 UPrimitiveComponent* NewComp = ConstructObject<UPrimitiveComponent>( CompClass, TheOwner, YourObjectName);
if(NewComp)
{
  NewComp->RegisterComponent();
  //attach or set location, etc
}