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?

2 comments

0

(File > Studio Settings > Studio > Visualization > Show Navigation Mesh) you can use this to see where an NPC would jump.

0

Thanks this helps a lot :)