Consider using two basic XXMhz transceivers:
-Master loops through used ID's and transmits them one at a time.
-If a belt receives an ID other than it's own, it remains quiet.
-If a belt receives it's own ID, it transmits "Marco" (quietly) to the other belts.
-For a receiver to hear the very quiet signal, it will need to be very close.
-The RSSI signal can be monitored for signal strength to determine close(enough) proximity.
-If sufficient proximity is detected, the event is reported to the Master.
-If it receives no response, it informs the Master.
-Master proceeds to the next ID.
In this setup, you only need to provide networking (WiFi/Ethernet) to the master. (cheaper)
So that each belt can identify the others, "Marco" could be the transmitter's ID, but you'll need to add some sort of "protocol" so the belts know if the ID they hear is from the Master or another belt.
If ID is only 7 bits, the "protocol" could be as simple as a bitmask: Server = Send(ID & (1 << 7)); //1XXXXXXX Belt = Send(ID & ~(1 << 7)); //0XXXXXXX