Replication for multiplayer, in a range

Had a question on multicast and setting a variable w/ Rep Notify. As I understand, these replicate the information to every other client on the server. Is there a way to do that for a certain radius? My concern with this method is say;
Two characters are standing next to each other, if one character switches weapons, I want all that to be “known and seen” by the player standing next to that player… but if someone is on the other side of the map, that client doesn’t need to know that information. It just seems like things could get really expensive/taxing on a computer if all of this stuff is multicasting if you have a decent amount of player or NPCs. So I’d rather just have it in a range.

If that’s possible, by next question is can you get it to trigger if a player enters the range? So lets say a player crouches. So it triggers the crouch and the animation to go with it. If a player is on the other side of the map, I don’t want that information to multicast to them. But if they walk within range of the player, then I want them to see that that player is now crouching… if that’s possible

Thank you for any help