How to decide where to put game logic?

I have read the gameplay framework documentation very thoroughly, but I’m still not sure where I should put core game logic such as killing another player. My thinking is that killing is a core mechanic in most games that have it, so it should go on the GameMode since it dictates the rules of the game, but at the same time I don’t think the GameMode is supposed to handle things that are so player-specific. So PlayerControllers? Yet killing a player usually involves doing a lot of stuff with both the Pawn that kills and the one which is killed, so why not put all logic in the Pawn?

I’m currently using the latter option (talking to the Controller to handle all HUD changes) but it seems odd to do so much stuff over there and not “appeal” to the GameMode at all while doing it, which, in my mind at least, is the authority when it comes to gameplay.

What are your thoughts? How would you approach this flow of logic? Thanks a lot.

Controller is the wrong place because it is only replicated to its owner.

Either use the character and/or the GameMode.

I personally choose the GameMode because it is the only possibility to change things like damage calculation per GameMode without changing all the characters. Furthermore I use character specific attributes in tge Game Modes calculations.