So I'm trying to make a NPC that follows you by using raycasting and Humanoid:MoveTo(), I think it's nearly done, but the problem is the function to find the target doesn't even return the thing that it's clearly supposed to. In the same indent as the return, it is supposed to print something, it does print it, but when I do print(FindTarget()), it outputs nil. This is my code, any help?
function FindTarget()
local DONE = nil
for i,v in pairs(workspace:GetChildren()) do
if v:FindFirstChildOfClass("Humanoid") then
local root = v:FindFirstChild("HumanoidRootPart")
if root then
local FastCastModule = require(script:WaitForChild("FastCast"))
local FastCast = FastCastModule.new()
FastCast:FireWithBlacklist(char:WaitForChild("HumanoidRootPart",1).Position,(root.Position - char.HumanoidRootPart.Position).Unit * 500,100,{script.Parent})
FastCast.RayHit:connect(function(hit,pos,_,_,bullet)
if hit and hit.Parent then
if hit.Parent == root.Parent then
print(root.Position)
DONE = root.Position
end
end
end)
end
end
if DONE ~= nil then return DONE end
end
end
while wait(.1) do
print(FindTarget())
end
--[[
Output:
[Vector3]
nil
]]
