Relevancy Among Separate Clients

I’m trying to create a multiplayer game where my clients become invisible to eachother once they’re past a certain distance from eachother as in no longer replicating.
But there are a set of elements I’d like it to follow.

Let’s say 50 Meters is the distance in which they replicate, beyond that they should no longer replicate.

So if I have three clients A, B and C. If they’re all within 50 Meters they are all replicating to eachother. Then client A moves > 50 meters away from B and C, then A is no longer replicated to both B and C but client B and C are still replicated to each-other.

That’s the first element. The second element is if a client spawns a replicated Actor then that actor should essentially create a replication link between two clients.
So if Client A spawns Actor A > 50 meters away but Client B stands next to Actor A , now Client A should be replicating to Client B even though they are both > 50 meters apart. But because Client B is standing within 50 meters to Actor A ( Spawned by Client A ) that essentially removes the distances and they can replicate to eachother.

Now I’ve tried setting Net Cull Distance on the client’s characters and this sort of works for the clients but not when the client spawns an actor and another client stands near the actor.

I’ve also tried overriding IsNetRelevantFor but I might just not be understanding how this function works because I can’t get it to work either.

Does anyone know how this problem can be solved?