-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local checkpoints = {} local function getRoot() local character = player.Character if not character then return nil end return character:FindFirstChild("HumanoidRootPart") end -- PLACE CHECKPOINT local function placeCheckpoint() local root = getRoot() if not root then return end local camera = workspace.CurrentCamera local checkpoint = { cframe = root.CFrame, cameraCFrame = camera.CFrame } table.insert(checkpoints, checkpoint) -- Create checkpoint cube local part = Instance.new("Part") part.Name = "Checkpoint" part.Size = Vector3.new(2, 2, 1) -- White Neon part.Material = Enum.Material.Neon part.Color = Color3.new(1, 1, 1) part.Transparency = 0.5 -- Smooth surfaces / no studs part.TopSurface = Enum.SurfaceType.Smooth part.BottomSurface = Enum.SurfaceType.Smooth part.LeftSurface = Enum.SurfaceType.Smooth part.RightSurface = Enum.SurfaceType.Smooth part.FrontSurface = Enum.SurfaceType.Smooth part.BackSurface = Enum.SurfaceType.Smooth -- Physics part.Anchored = true part.CanCollide = false part.CanTouch = false part.CanQuery = false -- Put cube exactly where the player is part.CFrame = root.CFrame part.Parent = workspace checkpoint.part = part end -- REMOVE LAST CHECKPOINT local function removeCheckpoint() local checkpoint = checkpoints[#checkpoints] if checkpoint then if checkpoint.part then checkpoint.part:Destroy() end table.remove(checkpoints, #checkpoints) end end -- TELEPORT TO LAST CHECKPOINT local function teleportToCheckpoint() local root = getRoot() local checkpoint = checkpoints[#checkpoints] if not root or not checkpoint or not checkpoint.part then return end -- EXACT position and rotation of the white cube root.CFrame = checkpoint.part.CFrame -- Restore camera local camera = workspace.CurrentCamera camera.CameraType = Enum.CameraType.Scriptable camera.CFrame = checkpoint.cameraCFrame task.wait() camera.CameraType = Enum.CameraType.Custom end -- KEYBINDS UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.F then placeCheckpoint() elseif input.KeyCode == Enum.KeyCode.V then removeCheckpoint() elseif input.KeyCode == Enum.KeyCode.R then teleportToCheckpoint() end end)