I have been fiddling around with path finding service and have come up with this for an obby bot:
local Model = game.Workspace.Waypoints local Start = game.Workspace.Obby.Start local Finish = game.Workspace.Obby.Finish local human = script.Parent.Humanoid local pfs = game:GetService("PathfindingService") local path = pfs:CreatePath({AgentRadius = 1, AgentHeight = 7, AgentCanJump = true}) local function WayPointsCreate(pathCreated) local Waypoints = pathCreated:GetWaypoints() if path.Blocked then path:ComputeAsync(Start.Position, Finish.Position) end for _, WayPoint in pairs(Waypoints) do local PathPoint = Instance.new("Part") PathPoint.Shape = Enum.PartType.Ball PathPoint.Parent = Model PathPoint.Material = Enum.Material.Neon PathPoint.Size = Vector3.new(0.5,0.5,0.5) PathPoint.Position = WayPoint.Position PathPoint.CanCollide = false PathPoint.Anchored = true end return(Waypoints) end local function Move(pathCreated) local Waypoints = WayPointsCreate(pathCreated) for _, waypoint in pairs(Waypoints) do if path.Blocked then path:ComputeAsync(Start.Position, Finish.Position) end if waypoint.Action == Enum.PathWaypointAction.Jump then human.Jump = true end human:MoveTo(waypoint.Position) human.MoveToFinished:Wait(1) end end local function Reset() for _, point in pairs(game.Workspace.Waypoints:GetChildren()) do point:Destroy() end end while true do Reset() path:ComputeAsync(Start.Position, Finish.Position) if path.Blocked then path:ComputeAsync(Start.Position, Finish.Position) end WayPointsCreate(path) Move(path) human:MoveTo(Finish.Position) Reset() local path2 = pfs:CreatePath() path2:ComputeAsync(Finish.Position, Start.Position) WayPointsCreate(path2) Move(path2) human:MoveTo(Finish.Position) end
But as you can see in this video: https://www.youtube.com/watch?v=XTsGBGDcA-Q
I beat the bot and it had a walkspeed of 30 I had obviously found a better path but I beleive it is something to do with the jumps as if you get rid of the path that connects the bot will just walk off the edge.
Any tips for better performance?