Best way to implement controls

Hi, I’ve been wondering, what would the best way of placing controls for certain game ? I usually put the general controls in the PlayerController and the rest inside the pawns that are relevant to it.
What’s the best way of doing it that would work well with changing key bindings during runtime and/or a multiplayer game in which every player has his own layout of bindings ?