How to model client specific data on server

Currently i am working on a questing system that should work well together with networking. Its quite large, but lets just focus on storing the quest state. the current design is to create an actor object in the controller that keeps track of the quest state. The actor is spawned on the server and currently the owner is also the server… but for replication purposes i only want to replicate this data to the client owning the controller… How to go about this? Should i make the controller the owner of this actor? If yes, how? Just SetOwner()? I am wondering what are best practices for these kind of cases? Examples would be great! I already checked some sources, but i couldn’t really find a similar use case.

We are now using components within the controller. These components generally need to be replicated, therefore we also replicate the controller (only to the owning client). This makes it easy to plugin logic without complicating all methods within the controller itself, keeping it very clean. Any class spawned in a component has the controller as Owner to ensure replication is only to the owning client.