
Key Required
TP to any stage in the obby
Lua Script•158 lines (4592 chars)
--[[
Checkpoint Teleport GUI
Credits: veemix373
--]]
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local UIS = game:GetService("UserInputService")
-- GUI
local gui = Instance.new("ScreenGui")
gui.Name = "CheckpointTPGui"
gui.ResetOnSpawn = false
gui.Parent = playerGui
local frame = Instance.new("Frame")
frame.Size = UDim2.fromScale(0.18, 0.22)
frame.Position = UDim2.fromScale(0.41, 0.41)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
frame.BorderSizePixel = 0
frame.Active = true
frame.Parent = gui
-- Title (draggable)
local title = Instance.new("TextLabel")
title.Size = UDim2.fromScale(1, 0.2)
title.Position = UDim2.fromScale(0, 0)
title.BackgroundTransparency = 1
title.Text = "Checkpoint TP"
title.TextColor3 = Color3.new(1,1,1)
title.TextScaled = true
title.Font = Enum.Font.Cartoon
title.Parent = frame
-- Drag support only on the title
local dragging, dragStart, startPos
title.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = frame.Position
end
end)
title.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
UIS.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
frame.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
-- Stage label
local stageLabel = Instance.new("TextLabel")
stageLabel.Size = UDim2.fromScale(1, 0.15)
stageLabel.Position = UDim2.fromScale(0, 0.2)
stageLabel.BackgroundTransparency = 1
stageLabel.Text = "Stage: 0"
stageLabel.TextColor3 = Color3.new(1,1,1)
stageLabel.TextScaled = true
stageLabel.Font = Enum.Font.Cartoon
stageLabel.Parent = frame
-- Slider background
local sliderBg = Instance.new("Frame")
sliderBg.Size = UDim2.fromScale(0.8, 0.1)
sliderBg.Position = UDim2.fromScale(0.1, 0.37)
sliderBg.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
sliderBg.Parent = frame
local sliderHandle = Instance.new("Frame")
sliderHandle.Size = UDim2.fromScale(0.03, 1)
sliderHandle.Position = UDim2.fromScale(0, 0)
sliderHandle.BackgroundColor3 = Color3.fromRGB(60, 120, 255)
sliderHandle.Parent = sliderBg
local draggingSlider = false
local selectedStage = 0
local maxStage = 192
sliderHandle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = true
end
end)
sliderHandle.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingSlider = false
end
end)
sliderBg.InputChanged:Connect(function(input)
if draggingSlider and input.UserInputType == Enum.UserInputType.MouseMovement then
local localX = math.clamp(input.Position.X - sliderBg.AbsolutePosition.X, 0, sliderBg.AbsoluteSize.X)
local scale = localX / sliderBg.AbsoluteSize.X
sliderHandle.Position = UDim2.new(scale,0,0,0)
selectedStage = math.floor(scale * maxStage)
stageLabel.Text = "Stage: "..selectedStage
end
end)
-- Start button
local startButton = Instance.new("TextButton")
startButton.Size = UDim2.fromScale(0.8, 0.15)
startButton.Position = UDim2.fromScale(0.1, 0.5)
startButton.BackgroundColor3 = Color3.fromRGB(60, 120, 255)
startButton.TextColor3 = Color3.new(1,1,1)
startButton.TextScaled = true
startButton.Font = Enum.Font.Cartoon
startButton.Text = "START"
startButton.Parent = frame
-- Status display
local status = Instance.new("TextLabel")
status.Size = UDim2.fromScale(1,0.15)
status.Position = UDim2.fromScale(0,0.68)
status.BackgroundTransparency = 1
status.Text = ""
status.TextColor3 = Color3.new(1,1,1)
status.TextScaled = true
status.Font = Enum.Font.Cartoon
status.Parent = frame
-- Teleport logic
local function runTeleport()
local folder = workspace:WaitForChild("aos"):WaitForChild("checkpoints")
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidRootPart")
startButton.Text = "RUNNING..."
status.Text = "Teleporting..."
local index = 0
while index <= selectedStage do
local checkpoint = folder:FindFirstChild(tostring(index))
if checkpoint and checkpoint:IsA("BasePart") then
hrp.CFrame = checkpoint.CFrame + Vector3.new(0,3,0)
index = index + 1
task.wait(0.25)
else
task.wait(0.2)
end
end
gui:Destroy()
end
startButton.MouseButton1Click:Connect(runTeleport)Features & Information
lets you pick which stage to tp to you can pick from 1 to 192
Community Comments (0)
No comments yet for this script.
