It looks like I figured out what’s going on:
In order for the properties of components to be saved when loading the level, it is necessary that they are created in the actor constructor, and their CreationMethod must be equal to EComponentCreationMethod::Native (this value is set by default when creating a new component using CrteateDefaultSubobject()).
If components are created in the OnConstruction() method and their CreationMethod = EComponentCreationMethod::UserConstructionScript, then they are recreated after loading, because when loading, the values of the actor properties are loaded, which causes the re-creation of all the actor components that have CreationMethod = EComponentCreationMethod::UserConstructionScript.
1 Like