Actually it seems to be a problem of DebugMessage which appear always everywhere.
Anyway, look at this code from ShooterGame
If it’s not the client, call a ServerRPC function that executes on the server.
I really don’t understand why the developers didn’t just do:
if( Role < ROLE_Authority )
return;
SetCurrentWeapon(Weapon, CurrentWeapon);