So I've made a zombie path finding script that works but not very well (The zombies moving stutters a lot) I know there is a way better way to make this and I was wondering how that would be done.
here is my code:
wait(5) -- Just giving time for the character to load in and also give me time for testing local PFS = game:GetService("PathfindingService") local marker = game.Workspace.PathfindingMarker local Zomhum = script.Parent.Humanoid local ZomhumRoot = script.Parent.HumanoidRootPart local players = game.Workspace.Players:GetChildren() -- i have another script that moves all the characters into a folder in the workspace local target = nil local targetLastPos = nil local currentTarget = nil local closestTarget = math.huge local chosenTarget = nil for i, player in pairs(players) do local playerDistance = (player.HumanoidRootPart.Position - ZomhumRoot.Position).magnitude currentTarget = playerDistance if currentTarget <= closestTarget then closestTarget = currentTarget chosenTarget = player elseif currentTarget > closestTarget then print("") end end local function ComputePath() local path = PFS:CreatePath() path:ComputeAsync(ZomhumRoot.Position, chosenTarget.HumanoidRootPart.Position) local waypoints = path:GetWaypoints() local x = 0 local targetPrevPos = chosenTarget.HumanoidRootPart.Position for i, waypoint in pairs(waypoints) do x=x+1 Zomhum:MoveTo(waypoint.Position) Zomhum.MoveToFinished:Wait() if chosenTarget.HumanoidRootPart.Position ~= targetPrevPos and x >= 3 then -- im using the x >=3 to try and make the movement a bit smoother x = 0 ComputePath() end end end ComputePath()