-- // 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 = 100 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("UpperTorso") local torso2 = player2.Character:FindFirstChild("UpperTorso") 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
Whispering doesn't seem to work. What can I do to fix? Thanks in advance!