How to override the functions in a component attached to a player character?

I use my Dispatcher “ResourceValueChanged” for things like that, but the exact same thing can be archieved with overriding.
Just override the function, call the parent function and add your code for the cinematic or what ever.

You only need one component for each class, this component should be a child of your base component or the base component itself.

I’m not very good at C++, but you should not use objects, because they do not provide replication by default.