I found this code on the forums, but I noticed that most “whispers” or “/w” are not sending to players who are within the proximity/distance/radius mentioned in the script. The whisper does show for the user who sends the whisper, but the user receiving the whisper does not see a copy of it.
// FileName: ProximityChat.lua
// Written by: TheGamer101
// Description: Only allows players to see messages from those within a certain distance.
local Chat = game:GetService("Chat")
local RunService = game:GetService("RunService")
local ReplicatedModules = Chat:WaitForChild("ClientChatModules")
local ChatSettings = require(ReplicatedModules:WaitForChild("ChatSettings"))
local PROXIMITY_DISTANCE = 50
local function Run(ChatService)
local function WithinProximity(player1, player2)
if player1 == player2 then
return true
end
if player1.Character and player2.Character then
local torso1 = player1.Character:FindFirstChild("HumanoidRootPart")
local torso2 = player2.Character:FindFirstChild("HumanoidRootPart")
if torso1 and torso2 then
return (torso1.Position - torso2.Position).magnitude < PROXIMITY_DISTANCE
end
end
return false
end
local function ProximityChatReplicationFunction(speakerName, message, channelName)
local speakerObj = ChatService:GetSpeaker(speakerName)
local channelObj = ChatService:GetChannel(channelName)
if not speakerObj then return false end
if not channelObj then return false end
local playerObj = speakerObj:GetPlayer()
if not playerObj then return false end
for i, otherSpeakerName in pairs(channelObj:GetSpeakerList()) do
local otherSpeakerObj = ChatService:GetSpeaker(otherSpeakerName)
if otherSpeakerObj then
local otherPlayerObj = otherSpeakerObj:GetPlayer()
if otherPlayerObj then
if WithinProximity(playerObj, otherPlayerObj) then
otherSpeakerObj:SendMessage(message, channelName, speakerName, message.ExtraData)
end
end
end
end
return true
end
ChatService:RegisterProcessCommandsFunction("proximity_chat", ProximityChatReplicationFunction, ChatSettings.LowPriority)
end
return Run
EDIT / UPDATE: The whispers are being delivered, but they are being delivered to the wrong user!