BasePlayer.ChatMessage or server.Broadcast

I'm trying to find the outcome for proximity chat / localchat where server.Broadcast is not working cause it is broadcasting for everyone to see.
What is being used to keep it localy ?

the main goal is to make a small plugin for players to understand they are writing in a local/proximity chat. and only players close to them can see it. (i'm thinking of a prefix or suffix added with "localchat" to notify them)
Could someone point me to the documentation so i can learn how this is performed ?

If you are wanting to listen for chat, you'd use a hook such as OnPlayerChat and check the channel used.

If you are wanting to send a message to a specific player, you can use a method like BasePlayer.ChatMessage that only they will see; Broadcast methods are for just that, broadcasting.

So basically i have to check the channel with  a hook but i'm confused here, we have 3 channels but none of them are proximity ?

0 = global
1 = team
2 = server

# A value of false makes text chat location based only (players need to be close to each other).
# Values: true, false
server.globalchat false