Script:
local pathfindingservice = game:GetService("PathfindingService") local path = pathfindingservice:CreatePath() local Zombie = script.Parent local target local player = game.Players:GetPlayers()[math.random(1,#game.Players:GetPlayers())] if workspace:FindFirstChild(player.Name) then local char = workspace:FindFirstChild(player.Name) if char.Humanoid.Health > 0 then target = char end end local function changeTarget() local player = game.Players:GetPlayers()[math.random(1,#game.Players:GetPlayers())] if workspace:FindFirstChild(player.Name) then local char = workspace:FindFirstChild(player.Name) if char.Humanoid.Health > 0 then target = char end end end local function chaseTarget() if game.ReplicatedStorage:FindFirstChild(target.Name) then local goalPos = game.ReplicatedStorage[target.Name].Value local human = Zombie.Humanoid local torso = Zombie.Torso path:ComputeAsync(torso.Position, goalPos) local waypoints = path:GetWaypoints() for i, waypoint in pairs(waypoints) do if waypoint.Action == Enum.PathWaypointAction.Jump then human:ChangeState(Enum.HumanoidStateType.Jumping) end human:MoveTo(waypoint.Position) if target.Humanoid.Health <= 0 then changeTarget() end human.MoveToFinished:Wait() end end end while wait() do chaseTarget() end