-- [[ 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 RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local RUN_STATE = getfenv().STATE if not RUN_STATE then RUN_STATE = { connect = function(signal, fn) return signal:Connect(fn) end, onCleanup = function() end, alive = function() return true end, } end local PLAYER = Players.LocalPlayer local PICKUP_ID = "R_E1" local auto = false local busy = false local requestCounter = 0 local gui = Instance.new("ScreenGui") gui.Name = "ChestSniper" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling local panel = Instance.new("Frame") panel.Name = "Panel" panel.Size = UDim2.fromOffset(236, 164) panel.Position = UDim2.new(1, -260, 0.5, -82) panel.BackgroundColor3 = Color3.fromRGB(18, 19, 25) panel.BorderSizePixel = 0 panel.Active = true panel.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = panel local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(62, 64, 82) stroke.Thickness = 1 stroke.Parent = panel local title = Instance.new("TextLabel") title.Text = "CHEST SNIPER" title.Font = Enum.Font.GothamBold title.TextSize = 13 title.TextColor3 = Color3.fromRGB(235, 236, 245) title.TextXAlignment = Enum.TextXAlignment.Left title.BackgroundTransparency = 1 title.Size = UDim2.new(1, -24, 0, 26) title.Position = UDim2.new(0, 12, 0, 8) title.Parent = panel local status = Instance.new("TextLabel") status.Text = "looking for chest..." status.Font = Enum.Font.Gotham status.TextSize = 12 status.TextColor3 = Color3.fromRGB(150, 154, 170) status.TextXAlignment = Enum.TextXAlignment.Left status.BackgroundTransparency = 1 status.Size = UDim2.new(1, -24, 0, 18) status.Position = UDim2.new(0, 12, 0, 33) status.Parent = panel local claimButton = Instance.new("TextButton") claimButton.Text = "TELEPORT + CLAIM [G]" claimButton.Font = Enum.Font.GothamBold claimButton.TextSize = 13 claimButton.TextColor3 = Color3.fromRGB(255, 255, 255) claimButton.BackgroundColor3 = Color3.fromRGB(112, 92, 255) claimButton.BorderSizePixel = 0 claimButton.AutoButtonColor = true claimButton.Size = UDim2.new(1, -24, 0, 34) claimButton.Position = UDim2.new(0, 12, 0, 60) claimButton.Parent = panel local claimCorner = Instance.new("UICorner") claimCorner.CornerRadius = UDim.new(0, 6) claimCorner.Parent = claimButton local autoButton = Instance.new("TextButton") autoButton.Text = "AUTO: OFF" autoButton.Font = Enum.Font.GothamBold autoButton.TextSize = 12 autoButton.TextColor3 = Color3.fromRGB(225, 226, 235) autoButton.BackgroundColor3 = Color3.fromRGB(38, 40, 52) autoButton.BorderSizePixel = 0 autoButton.AutoButtonColor = true autoButton.Size = UDim2.new(1, -24, 0, 30) autoButton.Position = UDim2.new(0, 12, 0, 102) autoButton.Parent = panel local autoCorner = Instance.new("UICorner") autoCorner.CornerRadius = UDim.new(0, 6) autoCorner.Parent = autoButton local hideButton = Instance.new("TextButton") hideButton.Text = "-" hideButton.Font = Enum.Font.GothamBold hideButton.TextSize = 14 hideButton.TextColor3 = Color3.fromRGB(150, 154, 170) hideButton.BackgroundTransparency = 1 hideButton.Size = UDim2.fromOffset(24, 24) hideButton.Position = UDim2.new(1, -30, 0, 6) hideButton.Parent = panel local footer = Instance.new("TextLabel") footer.Text = "teleports you to the chest and claims it" footer.Font = Enum.Font.Gotham footer.TextSize = 10 footer.TextColor3 = Color3.fromRGB(96, 100, 116) footer.BackgroundTransparency = 1 footer.Size = UDim2.new(1, -24, 0, 14) footer.Position = UDim2.new(0, 12, 0, 140) footer.Parent = panel gui.Parent = PLAYER:WaitForChild("PlayerGui") local function setStatus(text, color) status.Text = text status.TextColor3 = color or Color3.fromRGB(150, 154, 170) end local function findChest() local folder = workspace:FindFirstChild("Pickups") if not folder then return nil end for _, child in ipairs(folder:GetChildren()) do if child:IsA("Model") and child.Name:lower():find("chest") then return child end end return nil end local function getRoot() local character = PLAYER.Character return character and character:FindFirstChild("HumanoidRootPart") end local function fireClaim() requestCounter = (requestCounter % 255) + 1 local remote = game.ReplicatedStorage:FindFirstChild("Remotes") remote = remote and remote:FindFirstChild("Game") if not remote then return false end remote:FireServer("pc", requestCounter, PICKUP_ID) return true end local function runClaim() if busy then return end local chest = findChest() if not chest then setStatus("no chest on the map yet", Color3.fromRGB(190, 140, 90)) return end local root = getRoot() if not root then setStatus("no character", Color3.fromRGB(220, 110, 110)) return end busy = true setStatus("teleporting to chest...", Color3.fromRGB(120, 200, 255)) local ok, position = pcall(function() return chest:GetPivot().Position end) if ok and position then root.AssemblyLinearVelocity = Vector3.zero root.CFrame = CFrame.new(position + Vector3.new(0, 2.5, 0)) task.wait(0.15) end setStatus("claiming...", Color3.fromRGB(180, 150, 255)) for _ = 1, 10 do if chest.Parent == nil then setStatus("chest claimed", Color3.fromRGB(120, 230, 140)) busy = false return end if not fireClaim() then setStatus("game remote missing", Color3.fromRGB(220, 110, 110)) busy = false return end task.wait(0.25) end busy = false if chest.Parent == nil then setStatus("chest claimed", Color3.fromRGB(120, 230, 140)) else setStatus("claim sent - chest still there", Color3.fromRGB(190, 160, 100)) end end claimButton.MouseButton1Click:Connect(runClaim) autoButton.MouseButton1Click:Connect(function() auto = not auto autoButton.Text = "AUTO: " .. (auto and "ON" or "OFF") autoButton.BackgroundColor3 = auto and Color3.fromRGB(52, 150, 90) or Color3.fromRGB(38, 40, 52) setStatus(auto and "auto claim armed" or "auto claim off", auto and Color3.fromRGB(120, 230, 140) or nil) end) local collapsed = false hideButton.MouseButton1Click:Connect(function() collapsed = not collapsed panel.Size = collapsed and UDim2.fromOffset(236, 58) or UDim2.fromOffset(236, 164) hideButton.Text = collapsed and "+" or "-" claimButton.Visible = not collapsed autoButton.Visible = not collapsed status.Visible = not collapsed footer.Visible = not collapsed end) local dragging, dragStart, panelStart panel.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position panelStart = panel.Position end end) UserInputService.InputChanged:Connect(function(input) if not dragging then return end if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then local delta = input.Position - dragStart panel.Position = UDim2.new( panelStart.X.Scale, panelStart.X.Offset + delta.X, panelStart.Y.Scale, panelStart.Y.Offset + delta.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.G then runClaim() elseif input.KeyCode == Enum.KeyCode.H then panel.Visible = not panel.Visible end end) task.spawn(function() while RUN_STATE.alive() do task.wait(0.5) if not busy then local chest = findChest() if chest then if auto then runClaim() else setStatus("chest found - press G", Color3.fromRGB(120, 230, 140)) end else setStatus(auto and "auto armed - waiting for chest" or "no chest on the map yet", auto and Color3.fromRGB(120, 230, 140) or nil) end end end end) RUN_STATE.onCleanup(function() gui:Destroy() end)