-- [[ 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 ]] --[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6ab7fe45040c1e5cc65999d8"))() end) end) --[[rscripts:analytics:end]] local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local itemFolder = workspace :WaitForChild("Gameplay") :WaitForChild("Item") local collecting = false local teleporting = false local processing = {} -------------------------------------------------- -- GUI -------------------------------------------------- local gui = Instance.new("ScreenGui") gui.Name = "ItemCollectorUI" gui.ResetOnSpawn = false gui.Parent = playerGui local main = Instance.new("Frame") main.Size = UDim2.fromOffset(320, 230) main.Position = UDim2.new(0.5, -160, 0.5, -115) main.BackgroundColor3 = Color3.fromRGB(22, 22, 28) main.BorderSizePixel = 0 main.Active = true main.Parent = gui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 14) mainCorner.Parent = main local mainStroke = Instance.new("UIStroke") mainStroke.Color = Color3.fromRGB(65, 65, 80) mainStroke.Thickness = 1 mainStroke.Parent = main -------------------------------------------------- -- Header -------------------------------------------------- local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 48) header.BackgroundTransparency = 1 header.Parent = main local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -30, 1, 0) title.Position = UDim2.fromOffset(15, 0) title.BackgroundTransparency = 1 title.Text = "Item Collector" title.TextColor3 = Color3.fromRGB(245, 245, 250) title.TextSize = 18 title.Font = Enum.Font.GothamBold title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header -------------------------------------------------- -- Status -------------------------------------------------- local status = Instance.new("TextLabel") status.Size = UDim2.new(1, -30, 0, 25) status.Position = UDim2.fromOffset(15, 45) status.BackgroundTransparency = 1 status.Text = "Ready" status.TextColor3 = Color3.fromRGB(160, 160, 170) status.TextSize = 13 status.Font = Enum.Font.Gotham status.TextXAlignment = Enum.TextXAlignment.Left status.Parent = main -------------------------------------------------- -- Teleport Button -------------------------------------------------- local teleportButton = Instance.new("TextButton") teleportButton.Size = UDim2.new(1, -30, 0, 42) teleportButton.Position = UDim2.fromOffset(15, 75) teleportButton.BackgroundColor3 = Color3.fromRGB(55, 80, 130) teleportButton.BorderSizePixel = 0 teleportButton.Text = "START TELEPORTING" teleportButton.TextColor3 = Color3.fromRGB(255, 255, 255) teleportButton.TextSize = 14 teleportButton.Font = Enum.Font.GothamBold teleportButton.Parent = main local teleportCorner = Instance.new("UICorner") teleportCorner.CornerRadius = UDim.new(0, 8) teleportCorner.Parent = teleportButton -------------------------------------------------- -- Collection Button -------------------------------------------------- local collectButton = Instance.new("TextButton") collectButton.Size = UDim2.new(1, -30, 0, 42) collectButton.Position = UDim2.fromOffset(15, 125) collectButton.BackgroundColor3 = Color3.fromRGB(45, 110, 70) collectButton.BorderSizePixel = 0 collectButton.Text = "START COLLECTING" collectButton.TextColor3 = Color3.fromRGB(255, 255, 255) collectButton.TextSize = 14 collectButton.Font = Enum.Font.GothamBold collectButton.Parent = main local collectCorner = Instance.new("UICorner") collectCorner.CornerRadius = UDim.new(0, 8) collectCorner.Parent = collectButton -------------------------------------------------- -- Notifications -------------------------------------------------- local notifications = Instance.new("Frame") notifications.Size = UDim2.fromOffset(270, 320) notifications.Position = UDim2.new(1, -285, 0, 20) notifications.BackgroundTransparency = 1 notifications.Parent = gui local notificationLayout = Instance.new("UIListLayout") notificationLayout.Padding = UDim.new(0, 8) notificationLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right notificationLayout.SortOrder = Enum.SortOrder.LayoutOrder notificationLayout.Parent = notifications local function notify(itemName) local notification = Instance.new("TextLabel") notification.Size = UDim2.fromOffset(250, 44) notification.BackgroundColor3 = Color3.fromRGB(25, 25, 30) notification.BorderSizePixel = 0 notification.Text = "✓ Picked up • " .. itemName notification.TextColor3 = Color3.fromRGB(240, 240, 245) notification.TextSize = 13 notification.Font = Enum.Font.GothamMedium notification.Parent = notifications local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 9) corner.Parent = notification local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(65, 65, 80) stroke.Thickness = 1 stroke.Parent = notification task.delay(2, function() if not notification.Parent then return end local tween = TweenService:Create( notification, TweenInfo.new(0.2), { BackgroundTransparency = 1, TextTransparency = 1 } ) tween:Play() tween.Completed:Wait() if notification.Parent then notification:Destroy() end end) end -------------------------------------------------- -- Get item position -------------------------------------------------- local function getItemCFrame(item) if item:IsA("Model") then return item:GetPivot() elseif item:IsA("BasePart") then return item.CFrame end local part = item:FindFirstChildWhichIsA("BasePart", true) if part then return part.CFrame end return nil end -------------------------------------------------- -- Teleport -------------------------------------------------- local function teleportToItem(item) local character = player.Character if not character then return false end local cf = getItemCFrame(item) if not cf then return false end character:PivotTo( cf + Vector3.new(0, 3, 0) ) return true end -------------------------------------------------- -- Collect Item -------------------------------------------------- local function collectItem(item) if not collecting then return end if not item.Parent then return end if processing[item] then return end processing[item] = true local character = player.Character if not character then processing[item] = nil return end local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then processing[item] = nil return end local targetPart if item:IsA("BasePart") then targetPart = item else targetPart = item:FindFirstChildWhichIsA( "BasePart", true ) end if not targetPart then processing[item] = nil return end local prompt = item:FindFirstChildWhichIsA( "ProximityPrompt", true ) local itemName = item.Name local originalParent = item.Parent -------------------------------------------------- -- Teleport to item -------------------------------------------------- rootPart.CFrame = targetPart.CFrame + Vector3.new(0, 3, 0) task.wait(0.15) -------------------------------------------------- -- ProximityPrompt -------------------------------------------------- if prompt and fireproximityprompt then fireproximityprompt(prompt, 1) task.wait(0.25) if not item.Parent and originalParent then notify(itemName) end processing[item] = nil return end -------------------------------------------------- -- Touch collection -------------------------------------------------- if firetouchinterest then firetouchinterest( rootPart, targetPart, 0 ) task.wait() firetouchinterest( rootPart, targetPart, 1 ) task.wait(0.25) if not item.Parent and originalParent then notify(itemName) end end processing[item] = nil end -------------------------------------------------- -- Teleport Loop -------------------------------------------------- task.spawn(function() while true do if teleporting and not collecting then for _, item in ipairs(itemFolder:GetChildren()) do if not teleporting then break end teleportToItem(item) task.wait(0.25) end end task.wait(0.1) end end) -------------------------------------------------- -- Collection Loop -------------------------------------------------- task.spawn(function() while true do if collecting then for _, item in ipairs(itemFolder:GetChildren()) do if not collecting then break end task.spawn(function() collectItem(item) end) task.wait(0.2) end end task.wait(0.15) end end) -------------------------------------------------- -- New Items -------------------------------------------------- itemFolder.ChildAdded:Connect(function(item) if collecting then task.wait(0.1) if item.Parent == itemFolder then task.spawn(function() collectItem(item) end) end end end) -------------------------------------------------- -- Teleport Button -------------------------------------------------- teleportButton.Activated:Connect(function() teleporting = not teleporting if teleporting then teleportButton.Text = "STOP TELEPORTING" teleportButton.BackgroundColor3 = Color3.fromRGB(150, 65, 65) status.Text = "Teleporting..." status.TextColor3 = Color3.fromRGB(120, 180, 255) else teleportButton.Text = "START TELEPORTING" teleportButton.BackgroundColor3 = Color3.fromRGB(55, 80, 130) if not collecting then status.Text = "Ready" status.TextColor3 = Color3.fromRGB(160, 160, 170) end end end) -------------------------------------------------- -- Collection Button -------------------------------------------------- collectButton.Activated:Connect(function() collecting = not collecting if collecting then collectButton.Text = "STOP COLLECTING" collectButton.BackgroundColor3 = Color3.fromRGB(170, 55, 55) status.Text = "Collecting..." status.TextColor3 = Color3.fromRGB(100, 255, 130) else collectButton.Text = "START COLLECTING" collectButton.BackgroundColor3 = Color3.fromRGB(45, 110, 70) if not teleporting then status.Text = "Ready" status.TextColor3 = Color3.fromRGB(160, 160, 170) end end end) -------------------------------------------------- -- Dragging -------------------------------------------------- local dragging = false local dragStart local startPosition header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = main.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) 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 main.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) end end) print("[Item Collector] Loaded")