local NPC = workspace.Dummy
function getClosestPlayer()
local closest_player, closest_distance = nil, 200
for i, player in pairs(workspace:GetChildren()) do
if player:FindFirstChild("Humanoid") and player ~= NPC then
local distance = (NPC.PrimaryPart.Position - player.PrimaryPart.Position).Magnitude
if distance < closest_distance then
closest_player = player
closest_distance = distance
end
end
end
return closest_player, closest_distance
end
while true do
local player, distance = getClosestPlayer()
if player and distance > 10 then
NPC.Humanoid:MoveTo(player.PrimaryPart.Position)
local stopped
NPC.Humanoid.MoveToFinished:Connect(function()
stopped = true
end)
repeat
local distance = (NPC.PrimaryPart.Position-player.PrimaryPart.Position).Magnitude
if distance < 10 then
NPC.Humanoid:MoveTo((NPC.HumanoidRootPart.CFrame*CFrame.new(0,0,-3)).p)
break
end
wait()
until stopped == true
else
wait(1)
end
end