I don’t know much, but I think, that different player controllers would be easier to use (for example, you don’t need to steer in a car dealership, right?). On the other hand, I suppose, some of code in the second and third parts would be the same (driving a car). In this case, I would create an ActorComponent that can be added and used in both of these Controllers.