M
ScriptKeyless
Auto Collect Items, Anti-AFK, Walkspeed
Halo Archives {🔆}☀️Summer Update☀️Desktop & mobile readyDelta · Potassium
Description
has a GUI to toggle auto collecting, anti-AFK, and walkspeed. written with AI
GAMEHalo Archives {🔆}☀️Summer Update☀️
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop & Mobile
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. 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 BloxScripts 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]]
-- [[ Streamlined Item Collector Script with Pickup Confirmation ]]
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local VirtualUser = game:GetService("VirtualUser")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local gameplayFolder = workspace:WaitForChild("Gameplay", 5)
local itemFolder = gameplayFolder and gameplayFolder:WaitForChild("Item", 5)
if not itemFolder then
warn("[Item Collector] Failed to locate workspace.Gameplay.Item!")
return
end
--------------------------------------------------
-- Executor Detection
--------------------------------------------------
local function getExecutorName()
if typeof(identifyexecutor) == "function" then
local name, ver = identifyexecutor()
return name and (name .. (ver and (" v" .. ver) or "")) or "Unknown"
elseif typeof(getexecutorname) == "function" then
return getexecutorname()
end
return "Unknown Executor"
end
local executorName = getExecutorName()
local collecting = false
local antiAFK = false
-- WalkSpeed Slider Variables
local minSpeed = 16
local maxSpeed = 200
local currentSpeed = 16
-- Weak table for tracking items without causing memory leaks
local processing = setmetatable({}, { __mode = "k" })
-- Clean up pre-existing GUI if re-executed
if playerGui:FindFirstChild("ItemCollectorUI") then
playerGui.ItemCollectorUI:Destroy()
end
--------------------------------------------------
-- GUI Creation
--------------------------------------------------
local gui = Instance.new("ScreenGui")
gui.Name = "ItemCollectorUI"
gui.ResetOnSpawn = false
gui.Parent = playerGui
local main = Instance.new("Frame")
main.Size = UDim2.fromOffset(320, 235)
main.Position = UDim2.new(0.5, -160, 0.5, -117)
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 & Destroy Button
--------------------------------------------------
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, -70, 0, 20)
title.Position = UDim2.fromOffset(15, 8)
title.BackgroundTransparency = 1
title.Text = "Item Collector"
title.TextColor3 = Color3.fromRGB(245, 245, 250)
title.TextSize = 17
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = header
local execLabel = Instance.new("TextLabel")
execLabel.Size = UDim2.new(1, -70, 0, 14)
execLabel.Position = UDim2.fromOffset(15, 28)
execLabel.BackgroundTransparency = 1
execLabel.Text = "Executor: " .. executorName
execLabel.TextColor3 = Color3.fromRGB(120, 120, 140)
execLabel.TextSize = 11
execLabel.Font = Enum.Font.Gotham
execLabel.TextXAlignment = Enum.TextXAlignment.Left
execLabel.Parent = header
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.fromOffset(26, 26)
closeButton.Position = UDim2.new(1, -38, 0, 11)
closeButton.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
closeButton.Text = "✕"
closeButton.TextColor3 = Color3.fromRGB(200, 200, 210)
closeButton.TextSize = 13
closeButton.Font = Enum.Font.GothamBold
closeButton.AutoButtonColor = false
closeButton.Parent = header
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeButton
closeButton.MouseEnter:Connect(function()
closeButton.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
end)
closeButton.MouseLeave:Connect(function()
closeButton.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
closeButton.TextColor3 = Color3.fromRGB(200, 200, 210)
end)
closeButton.Activated:Connect(function()
collecting = false
antiAFK = false
-- Reset walk speed to default before destroying
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.WalkSpeed = 16
end
gui:Destroy()
end)
--------------------------------------------------
-- Status & Buttons
--------------------------------------------------
local status = Instance.new("TextLabel")
status.Size = UDim2.new(1, -30, 0, 20)
status.Position = UDim2.fromOffset(15, 50)
status.BackgroundTransparency = 1
status.Text = "Status: Ready"
status.TextColor3 = Color3.fromRGB(160, 160, 170)
status.TextSize = 12
status.Font = Enum.Font.Gotham
status.TextXAlignment = Enum.TextXAlignment.Left
status.Parent = main
local function createButton(text, pos, color)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -30, 0, 42)
btn.Position = pos
btn.BackgroundColor3 = color
btn.BorderSizePixel = 0
btn.Text = text
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.TextSize = 14
btn.Font = Enum.Font.GothamBold
btn.AutoButtonColor = false
btn.Parent = main
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = btn
return btn
end
local collectButton = createButton("START COLLECTING", UDim2.fromOffset(15, 75), Color3.fromRGB(45, 110, 70))
local afkButton = createButton("START ANTI-AFK", UDim2.fromOffset(15, 175), Color3.fromRGB(55, 80, 130))
--------------------------------------------------
-- WalkSpeed Slider UI
--------------------------------------------------
local sliderContainer = Instance.new("Frame")
sliderContainer.Size = UDim2.new(1, -30, 0, 42)
sliderContainer.Position = UDim2.fromOffset(15, 125)
sliderContainer.BackgroundColor3 = Color3.fromRGB(30, 30, 38)
sliderContainer.BorderSizePixel = 0
sliderContainer.Parent = main
local sliderCorner = Instance.new("UICorner")
sliderCorner.CornerRadius = UDim.new(0, 8)
sliderCorner.Parent = sliderContainer
local sliderLabel = Instance.new("TextLabel")
sliderLabel.Size = UDim2.new(1, -20, 0, 18)
sliderLabel.Position = UDim2.fromOffset(10, 4)
sliderLabel.BackgroundTransparency = 1
sliderLabel.Text = "WalkSpeed: " .. currentSpeed
sliderLabel.TextColor3 = Color3.fromRGB(240, 240, 245)
sliderLabel.TextSize = 12
sliderLabel.Font = Enum.Font.GothamBold
sliderLabel.TextXAlignment = Enum.TextXAlignment.Left
sliderLabel.Parent = sliderContainer
local sliderTrack = Instance.new("Frame")
sliderTrack.Size = UDim2.new(1, -20, 0, 6)
sliderTrack.Position = UDim2.new(0, 10, 1, -12)
sliderTrack.BackgroundColor3 = Color3.fromRGB(50, 50, 65)
sliderTrack.BorderSizePixel = 0
sliderTrack.Parent = sliderContainer
local trackCorner = Instance.new("UICorner")
trackCorner.CornerRadius = UDim.new(1, 0)
trackCorner.Parent = sliderTrack
local sliderFill = Instance.new("Frame")
sliderFill.Size = UDim2.new(0, 0, 1, 0)
sliderFill.BackgroundColor3 = Color3.fromRGB(55, 120, 200)
sliderFill.BorderSizePixel = 0
sliderFill.Parent = sliderTrack
local fillCorner = Instance.new("UICorner")
fillCorner.CornerRadius = UDim.new(1, 0)
fillCorner.Parent = sliderFill
local sliderKnob = Instance.new("Frame")
sliderKnob.Size = UDim2.fromOffset(12, 12)
sliderKnob.AnchorPoint = Vector2.new(0.5, 0.5)
sliderKnob.Position = UDim2.new(0, 0, 0.5, 0)
sliderKnob.BackgroundColor3 = Color3.fromRGB(240, 240, 250)
sliderKnob.BorderSizePixel = 0
sliderKnob.Parent = sliderTrack
local knobCorner = Instance.new("UICorner")
knobCorner.CornerRadius = UDim.new(1, 0)
knobCorner.Parent = sliderKnob
local sliding = false
local function updateSlider(input)
local mouseX = input.Position.X
local trackX = sliderTrack.AbsolutePosition.X
local trackWidth = sliderTrack.AbsoluteSize.X
local scale = math.clamp((mouseX - trackX) / trackWidth, 0, 1)
currentSpeed = math.floor(minSpeed + (maxSpeed - minSpeed) * scale)
sliderFill.Size = UDim2.new(scale, 0, 1, 0)
sliderKnob.Position = UDim2.new(scale, 0, 0.5, 0)
sliderLabel.Text = "WalkSpeed: " .. currentSpeed
end
sliderContainer.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
sliding = true
updateSlider(input)
end
end)
UserInputService.InputChanged:Connect(function(input)
if sliding and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
updateSlider(input)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
sliding = false
end
end)
--------------------------------------------------
-- 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 • " .. tostring(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
--------------------------------------------------
-- Item Collection with Confirmation
--------------------------------------------------
local function collectItem(item)
if not collecting or not item or not item.Parent or processing[item] then
return
end
processing[item] = true
pcall(function()
local character = player.Character
if not character then return end
local rootPart = character:FindFirstChild("HumanoidRootPart")
if not rootPart then return end
local targetPart = item:IsA("BasePart") and item or item:FindFirstChildWhichIsA("BasePart", true)
if not targetPart then 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.05)
-- Confirmation Loop (Max 1.5 Seconds)
local startTime = tick()
local timeout = 1.5
while collecting and item.Parent == originalParent and (tick() - startTime) < timeout do
-- Maintain position above target part
if targetPart and targetPart.Parent then
rootPart.CFrame = targetPart.CFrame + Vector3.new(0, 3, 0)
end
-- Trigger pickup
if prompt and typeof(fireproximityprompt) == "function" then
fireproximityprompt(prompt)
elseif typeof(firetouchinterest) == "function" then
firetouchinterest(rootPart, targetPart, false)
task.wait(0.02)
firetouchinterest(rootPart, targetPart, true)
end
task.wait(0.1)
end
-- Confirm if item parent was removed/changed
if not item.Parent or item.Parent ~= originalParent then
notify(itemName)
end
end)
processing[item] = nil
end
--------------------------------------------------
-- Automation Loops & Speed Enforcer
--------------------------------------------------
-- Enforce the custom WalkSpeed set by the slider
RunService.Stepped:Connect(function()
if currentSpeed > 16 then
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.WalkSpeed ~= currentSpeed then
humanoid.WalkSpeed = currentSpeed
end
end
end)
task.spawn(function()
while true do
if collecting then
for _, item in ipairs(itemFolder:GetChildren()) do
if not collecting then break end
collectItem(item)
end
end
task.wait(0.1)
end
end)
itemFolder.ChildAdded:Connect(function(item)
if collecting then
task.wait(0.1)
if item.Parent == itemFolder then
collectItem(item)
end
end
end)
--------------------------------------------------
-- Button Handlers
--------------------------------------------------
collectButton.Activated:Connect(function()
collecting = not collecting
if collecting then
collectButton.Text = "STOP COLLECTING"
collectButton.BackgroundColor3 = Color3.fromRGB(170, 55, 55)
status.Text = "Status: Collecting..."
status.TextColor3 = Color3.fromRGB(100, 255, 130)
else
collectButton.Text = "START COLLECTING"
collectButton.BackgroundColor3 = Color3.fromRGB(45, 110, 70)
status.Text = "Status: Ready"
status.TextColor3 = Color3.fromRGB(160, 160, 170)
end
end)
player.Idled:Connect(function()
if antiAFK then
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.zero)
end
end)
afkButton.Activated:Connect(function()
antiAFK = not antiAFK
if antiAFK then
afkButton.Text = "STOP ANTI-AFK"
afkButton.BackgroundColor3 = Color3.fromRGB(55, 120, 75)
status.Text = "Status: Anti-AFK Enabled"
status.TextColor3 = Color3.fromRGB(100, 220, 130)
else
afkButton.Text = "START ANTI-AFK"
afkButton.BackgroundColor3 = Color3.fromRGB(55, 80, 130)
status.Text = collecting and "Status: Collecting..." or "Status: Ready"
status.TextColor3 = collecting and Color3.fromRGB(100, 255, 130) or Color3.fromRGB(160, 160, 170)
end
end)
--------------------------------------------------
-- UI Dragging
--------------------------------------------------
local dragging, dragStart, startPos
header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = 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 dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
main.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
print("[Item Collector] Loaded successfully for " .. executorName)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place