Inside Unreal: Modular Game Features

UAssetUserData is on the asset, not the component/instance; there isn’t a copy per instance / ownership of it doesn’t change over time, it’s always the asset itself (PostEditChangeOwner is called when the outer asset is modified in the editor; though it doesn’t take an argument you can get to the asset (not the instance) via GetOuter() typically).

Say you’ve got MeshAssetA which in turn has UserDataA on it. If you create another static mesh component pointing to MeshAssetA (or call SetStaticMesh on an existing one), , another copy of UserDataA isn’t created / etc…

Cheers,
Michael Noland