So, I'm making an RPG game, and my enemies sometimes break. They don't move at all! There are no errors or anything, they just stop working.
There's a few other things in my code, like the exp on death and stuff, but here's the loop:
while true do local low = script.Parent.Detect.Value local plr = nil --check distances for _, player in pairs(game.Players:GetPlayers()) do dis = player:DistanceFromCharacter(script.Parent.Head.Position) if dis <= low then plr = player low = dis --as soon as I added this line the code started breaking end end wait(.01) -- if there is a player in range, move to it if plr and plr.Character then repeat if plr.Character:FindFirstChild("HumanoidRootPart") then move(plr.Character.HumanoidRootPart) end if plr.Character.Head.Position.Y >= script.Parent.Head.Position.Y + 1 then script.Parent.Humanoid.Jump = true end wait(.01) until plr:DistanceFromCharacter(script.Parent.Head.Position) >= script.Parent.Detect.Value or not plr.Character:FindFirstChild("HumanoidRootPart") if plr.Character:FindFirstChild("HumanoidRootPart") then move(plr.Character.HumanoidRootPart) end end end
Oh, and I should probably add the move function here too:
function move(part) if part then local to = part.Position local p = part.Parent[part.Name] script.Parent.Humanoid:MoveTo(to,p) end end
please help