local player = game.Players.LocalPlayer local input = game:GetService("UserInputService") local character = player.Character or player.CharacterAdded:Wait() local point = nil local function intro() local gui = Instance.new("ScreenGui", player.PlayerGui) gui.SafeAreaCompatibility = Enum.SafeAreaCompatibility.None gui.ScreenInsets = Enum.ScreenInsets.None gui.ClipToDeviceSafeArea = false local text = Instance.new("TextLabel", gui) text.Position = UDim2.new(0, 0, 0.917, 0) text.Size = UDim2.new(0, 342, 0, 50) text.BackgroundTransparency = 1 text.TextColor3 = Color3.new(1,1,1) text.TextScaled = true text.Text = "Checkpoint Script by Cheedabob" task.wait(2) text.Text = "Press R to create checkpoint" task.wait(2) text.Text = "Press T to teleport" task.wait(2) text.Text = "Enjoy :)" task.wait(2) gui:Destroy() end local function Create(cf) point = Instance.new("Part", workspace) point.Anchored = true point.CFrame = cf point.CanCollide = false point.Transparency = 1 local bill = Instance.new("BillboardGui", point) bill.Size = UDim2.new(7,0,7,0) bill.AlwaysOnTop = true local text = Instance.new("TextLabel", bill) text.Text = "HERE" text.TextScaled = true text.TextColor3 = Color3.new(1,0,0) text.Size = UDim2.new(1,0,1,0) text.BackgroundTransparency = 1 end -- Update character reference on respawn player.CharacterAdded:Connect(function(char) character = char end) input.InputBegan:Connect(function(obj) if obj.KeyCode == Enum.KeyCode.R then if not point then if character and character:FindFirstChild("HumanoidRootPart") then Create(character.HumanoidRootPart.CFrame) end else if character then point.CFrame = character:GetPivot() end end elseif obj.KeyCode == Enum.KeyCode.T then if point and character then character:PivotTo(point.CFrame) end end end) intro()