This script works perfectly, except when asked to climb up a ladder, it produces the error "Path Status: Failed." any ideas why?
--These are to disable player's controls--
local ContextActionService = game:GetService("ContextActionService")
local FREEZE_ACTION = "freezeMovement"
--general defining
local enabled = true
local tool = script.Parent
local player = game.Players.LocalPlayer
local mouse = game.Players.LocalPlayer:GetMouse()
function part(pos)
if enabled ~= false then --checks if enabled is false. This prevents spamming
--This destroys the previous visualPoint
if game.Workspace:FindFirstChild("VisualPointFor"..player.Name) then
game.Workspace:FindFirstChild("VisualPointFor"..player.Name):Destroy()
end
--This creates a visualPoint
local visualPoint = Instance.new("Part",game.Workspace)
visualPoint.Name = "VisualPointFor"..player.Name
visualPoint.Size = Vector3.new(2,2,2)
visualPoint.Shape = "Ball"
visualPoint.Anchored = true
visualPoint.BrickColor = BrickColor.new("Bright red")
visualPoint.Position = game.Players.LocalPlayer:GetMouse().Hit.p
visualPoint.CanCollide = false
visualPoint.Material = Enum.Material.Neon
visualPoint.Transparency = 0.4
visualPoint.BackSurface = Enum.SurfaceType.SmoothNoOutlines
visualPoint.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
visualPoint.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
visualPoint.TopSurface = Enum.SurfaceType.SmoothNoOutlines
visualPoint.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
visualPoint.RightSurface = Enum.SurfaceType.SmoothNoOutlines
local me = player.Name
local torso = game.Workspace:WaitForChild(me).Torso.Position
local base = game.Players.LocalPlayer:GetMouse().Hit.p
local human = game.Workspace:WaitForChild(me).Humanoid
local path = game:GetService("PathfindingService"):FindPathAsync(torso,base)
local points = path:GetWaypoints()
if path.Status == Enum.PathStatus.Success then
--disables controls
enabled = false
ContextActionService:BindAction(
FREEZE_ACTION,
function()
return Enum.ContextActionResult.Sink
end,
false,
unpack(Enum.PlayerActions:GetEnumItems())
)
for i,v in pairs(points) do
human:MoveTo(v.Position)
human.MoveToFinished:Wait()
if v.Action == Enum.PathWaypointAction.Jump then
human.Jump = true
end
end
ContextActionService:UnbindAction(FREEZE_ACTION)
--returns click access
enabled = true
else -- this is where it fails
warn("Path Status: Failed.")
end
end
end
script.Parent.Equipped:connect(function()
script.Parent.Activated:connect(function()
part(mouse.Hit)
end)
end)

2 comments
I'm unsure if the pathfinding can deal with ladders or a truss? If it cannot, attempt to just use :MoveTo() on the character to be past the ladder or truss and I believe they should climb
It should be possible... I'm trying to recreate Adv3rtize's pathfinding game and he somehow managed to do it