I'm trying to make it so that the player closest to a block receives a tool once a certain block is in range of a model named Horse, after the model horse is deleted. The part of the script that recognizes that the block is in range of the Horse model is working properly, but I am now trying to get it so that the script will recognize the closest player to the brick so that it knows where to put the tool. here is the script.
local tool = game.Lighting.Tools.Horse bin = script.Parent function findNearestTorso(pos) local list = game.Workspace:GetChildren() local torso = nil local dist = 1000 local temp = nil local human = nil local temp2 = nil for x = 1, #list do temp2 = list[x] if (temp2.className == "Model") and (temp2 ~= script.Parent.Parent.Parent.Parent) then temp = temp2:findFirstChild("Torso") human = temp2:findFirstChild("Humanoid") if (temp ~= nil) and (human ~= nil) and (human.Health > 0) then if (temp.Position - pos).magnitude < dist then torso = temp dist = (temp.Position - pos).magnitude script.Parent.Parent.Name = "Closest Person: " ..temp2.Name.. " l Distance: " ..(temp.Position - pos).magnitude.. " studs." end end end end return torso end while true do wait() findNearestTorso(bin.Position) end local function in_Range(part1,part2,range) if (part1.Position - part2.Position).magnitude <= range then return true -- alternatively -- return part2 end return false -- alternatively -- return nil end debounce = false while wait(0.5) do if in_Range(game.Workspace.gate,game.Workspace.Horse.Torso,30) == true then if debounce == false then debounce = true game.Workspace.Horse:Destroy() tool:Clone() .Parent = torso --This is the root of the entire problem, i'm trying to find a way to get the script to recognize where to put the tool (I want it in the closest player) wait(3) debounce = false end end end
Any help is appreciated! Thanks guys! :)