
Key Required

-- 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

w open source