Why does OnRep_Suppression_Implementation() <- have _Implementation ?
While ReplicatedUsing = OnRep_Suppression points to OnRep_Suppression() ?
The OnRep_Suppression() is never going to get called while replication property, because there is no valid signature.
Other part here.
Not sure if I understand this. But if we have Player1 <> Server <> Player2, there is no direct connection between players.
Player2 can’t affect Player1 directly. Player 2 can only tell server “hey I shoot” (you can send more data if you wish), and server “ok lemme check, at what you shoot”.
If you hit another player, server can perform any logic you wish, and then replicate results using NetMulticast, Client, or RepNotify.
But otherwise neither you nor another player will know he has been shoot, until server can replicate it.
That’s of course not entirely true, you can make some prediction on client who started shooting (either purely cosmetic, which doesn’t have any real outcome beyond spawning cosmetic effects, or some more real prediction, where you actually shoot player and send server results to verify).