-- by Stonifam local Players = game:GetService('Players') local Player = Players.LocalPlayer local function distance(a:BasePart, b:BasePart):number return (a.Position - b.Position).Magnitude end local function getChar(plr) plr = plr or Player return plr.Character or plr.CharacterAdded:Wait() end local function getRoot(plr:Model):BasePart plr = plr or Player return getChar(plr):WaitForChild('HumanoidRootPart', 1) end local function get_closest_players() local closest = {} for _,PLAYER in ipairs(Players:GetPlayers()) do if PLAYER ~= Player then local local_root = getRoot() local target_root = getRoot(PLAYER) if local_root and target_root and distance(local_root, target_root) <= 5 then table.insert(closest, PLAYER) end end end return closest end local function get_equipped_tool_name() local char = getChar() if char then for _,tool:Tool? in ipairs(char:GetChildren()) do if tool:IsA('Tool') then return tool.Name end end end end while true do local closest = get_closest_players() for _,plr in ipairs(closest) do task.spawn(function() game:GetService("ReplicatedStorage").Events.Tools.Touched:FireServer(plr, get_equipped_tool_name(), Vector3.new(math.huge, math.huge, math.huge), 7) end) end game:GetService('RunService').RenderStepped:Wait() end