I ran into this a few times now and I just used ActorComponents to deal with this.
So my problem is this, I want to keep my code clean and flexible and therefore delegate a few things to child objects. I used ActorComponents for this and it works just fine, but what if I want to change those components via Blueprint Defaults or create some kind of state machine?
At the moment I’m creating a simple state object that needs ticks, so I created an ActorComponent, but how can I make it so that I can swap them out on runtime and/or via DefaultProperties?
Edit: Just adding a simple example.
At the moment I’m working on firemodes for weapons. I want to create the firemode only once and I want them to be tweakable via default properties. So I created a FireModeActorComponent and my initial plan was to create subclasses of that component for Single, Burst, Automatic etc., but as it turned out, I cannot swap them in the default properties which kills my plan right there…