BeginPlay is always called on the client after replication so it is the best place to put it.
As for the object, you can really do it anywhere but I would recommend doing it on the Pawn itself. You would also need to do a HasLocalNetOwner check to ensure it is another client.
So it would look something like this:
void ASomePawn::BeginPlay()
{
if (!HasLocalNetOwner() /* not owned by this client */)
{
// Show red glow.
}
}
If your game is more than a free-for-all, you may want to look into using a team system to implement this behaviour instead of HasLocalNetOwner. Unreal has one built in called Team Attitudes (but it’s honestly not that great and I would recommend making your own).