Here are some of my cool stuff

local pfs = game:GetService("PathfindingService")
local human = script.Parent:WaitForChild("Humanoid")
local root = script.Parent:WaitForChild("HumanoidRootPart")
local path = pfs:CreatePath()
path:ComputeAsync(root.Position, game.Workspace.Ending.Position)
-- change “Ending” to what ever you want the ending part to be
local waypoints = path:GetWaypoints()
for i, waypoint in pairs(waypoints) do
print("Working")
local part = Instance.new("Part")
-- here you can mess around
part.Shape = "Ball"
part.Material = "Neon"
part.Size = Vector3.new(0.5,0.5,0.5)
part.Position = waypoint.Position + Vector3.new(0,1.5,0)
part.Anchored = true
part.CanCollide = false
part.Parent = workspace.WayPoints -- or you can put in anywhere you like but i recommend to put it in a folder
-- dont change anything bellow this line
if waypoint.Action == Enum.PathWaypointAction.Jump then
human:ChangeState(Enum.HumanoidStateType.Jumping)
end
human:MoveTo(waypoint.Position)
human.MoveToFinished:Wait()
end

-- if this script does not work then try to anchor and unanchor the npc