Run it
Copy the script and paste it into your executor.
Players = :()
UserInputService = :()
player = Players.LocalPlayer
playerGui = player:()
playerGui:()
playerGui.WaypointTeleporterGui:()
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.Parent = playerGui
screenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
(frame, radius)
corner = .()
corner.CornerRadius = radius .(, )
corner.Parent = frame
(frame, color)
stroke = .()
stroke.Color = color .(,,)
stroke.Thickness =
stroke.Parent = frame
mainFrame = .()
mainFrame.Size = .(, , , )
mainFrame.Position = .(, , , )
mainFrame.BackgroundColor3 = .(,,)
mainFrame.BorderSizePixel =
mainFrame.Visible =
mainFrame.Parent = screenGui
(mainFrame)
(mainFrame, .(,,))
titleBar = .()
titleBar.Size = .(,,,)
titleBar.BackgroundColor3 = .(,,)
titleBar.BorderSizePixel =
titleBar.Parent = mainFrame
(titleBar)
titleLabel = .()
titleLabel.Size = .(,-,,)
titleLabel.Position = .(,,,)
titleLabel.BackgroundTransparency =
titleLabel.Text =
titleLabel.Font = .Font.Arcade
titleLabel.TextSize =
titleLabel.TextColor3 = .(,,)
titleLabel.TextXAlignment = .TextXAlignment.Left
titleLabel.Parent = titleBar
closeButton = .()
closeButton.Size = .(,,,)
closeButton.Position = .(,-,,)
closeButton.BackgroundColor3 = .(,,)
closeButton.BorderSizePixel =
closeButton.Text =
closeButton.Font = .Font.Arcade
closeButton.TextSize =
closeButton.TextColor3 = .(,,)
closeButton.Parent = titleBar
(closeButton, .(,))
(closeButton, .(,,))
closeButton.MouseButton1Click:(()
mainFrame.Visible =
)
toggleButton = .()
toggleButton.Size = .(,,,)
toggleButton.Position = .(,,,-)
toggleButton.BackgroundColor3 = .(,,)
toggleButton.BorderSizePixel =
toggleButton.Text =
toggleButton.Font = .Font.Arcade
toggleButton.TextSize =
toggleButton.TextColor3 = .(,,)
toggleButton.Parent = screenGui
(toggleButton, .(,))
(toggleButton, .(,,))
toggleButton.MouseButton1Click:(()
mainFrame.Visible = mainFrame.Visible
()
)
historyFrame = .()
historyFrame.Size = .(,,,)
historyFrame.BackgroundColor3 = .(,,)
historyFrame.BorderSizePixel =
historyFrame.Visible =
historyFrame.Parent = screenGui
(historyFrame)
(historyFrame, .(,,))
historyTitle = .()
historyTitle.Size = .(,,,)
historyTitle.BackgroundTransparency =
historyTitle.Text =
historyTitle.Font = .Font.Arcade
historyTitle.TextSize =
historyTitle.TextColor3 = .(,,)
historyTitle.Parent = historyFrame
historyList = .()
historyList.Size = .(,-,,-)
historyList.Position = .(,,,)
historyList.BackgroundColor3 = .(,,)
historyList.BorderSizePixel =
historyList.CanvasSize = .(,,,)
historyList.ScrollBarThickness =
historyList.Parent = historyFrame
historyLayout = .()
historyLayout.Padding = .(,)
historyLayout.Parent = historyList
()
historyFrame.Position = .(
,
mainFrame.Position.X.Offset + mainFrame.AbsoluteSize.X + ,
,
mainFrame.Position.Y.Offset
)
()
buttonsFrame = .()
buttonsFrame.Size = .(,-,,)
buttonsFrame.Position = .(,,,)
buttonsFrame.BackgroundTransparency =
buttonsFrame.Parent = mainFrame
buttonNames = {
,
,
,
}
buttons = {}
listLayout = .()
listLayout.Padding = .(,)
listLayout.Parent = buttonsFrame
_, name (buttonNames)
btn = .()
btn.Size = .(,,,)
btn.BackgroundColor3 = .(,,)
btn.BorderSizePixel =
btn.Text = name
btn.Font = .Font.Arcade
btn.TextSize =
btn.TextColor3 = .(,,)
btn.Parent = buttonsFrame
(btn, .(,))
(btn, .(,,))
buttons[name] = btn
waypoints = {}
currentWaypoint =
(wp)
btn = .()
btn.Size = .(,,,)
btn.BackgroundColor3 = .(,,)
btn.BorderSizePixel =
btn.Text = wp.name
btn.Font = .Font.Arcade
btn.TextSize =
btn.TextColor3 = .(,,)
btn.Parent = historyList
(btn, .(,))
btn.MouseButton1Click:(()
player.Character player.Character:()
player.Character.HumanoidRootPart.CFrame =
.(wp.position + .(,,))
currentWaypoint = wp
)
()
_, child (historyList:())
child:()
child:()
_, wp (waypoints)
(wp)
historyList.CanvasSize = .(,,,#waypoints * )
buttons[].MouseButton1Click:(()
player.Character player.Character:()
pos = player.Character.HumanoidRootPart.Position
wp = {
name = ..(#waypoints+),
position = pos
}
.(waypoints, wp)
currentWaypoint = wp
()
)
buttons[].MouseButton1Click:(()
currentWaypoint player.Character player.Character:()
player.Character.HumanoidRootPart.CFrame =
.(currentWaypoint.position + .(,,))
)
buttons[].MouseButton1Click:(()
historyFrame.Visible = historyFrame.Visible
()
)
buttons[].MouseButton1Click:(()
waypoints = {}
currentWaypoint =
()
)
dragging =
dragStart, startPos
(input)
delta = input.Position - dragStart
newPos = .(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
mainFrame.Position = newPos
()
mainFrame.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
dragging =
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
UserInputService.InputChanged:((input)
dragging input.UserInputType == .UserInputType.MouseMovement
(input)
)
mainFrame.Visible = The best waypoint Teleporter out there Works for Mobile and PC

Universal