Like ExtraLifeMatt mentioned, something needs to hold a hard reference to the BuildingManager or it will be GC’d, anything it references but doesn’t manage should also be a TWeakObjectPtr (or a UPROPERTY’d pointer, which converts it automatically) as well, and properly checked against before being used or you’ll have crashing issues when what it manages gets GC’d or invalidated. I would recommend making the BuildingManager an UObject, or an AActor if it ever needs to replicate any data to client instances of itself, and store the reference somewhere appropriate for the network environments its used in.