ScriptKeyless
Auto collect bricks & merge V1.1 (FREE, KEYLESS, OPEN-SRC)
Brick Collectors [WIP]Desktop compatibleDelta · Real
Description
puts all bricks into collect area, reruns every second Haven't made a ui but feel free to take the src and make one urself
GAMEBrick Collectors [WIP]
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
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/client.lua?s=6aa185bd115b852e379e4200"))()
end)
end)
--[[rscripts:analytics:end]]
local LocalPlayer = game.Players.LocalPlayer
local VoidBottom = game.Workspace:WaitForChild("CollectBits"):WaitForChild("Void"):WaitForChild("Bottom")
local Ground = game.Workspace:WaitForChild("CollectBits"):WaitForChild("Ground")
local MergePoint = Ground.CFrame + Vector3.new(0, 1, 0)
local COMPLEX_RECIPES = {
{
result = "Pen Pineapple Apple Pen bit",
ingredients = {"Pen bit", "Apple bit", "Pineapple bit"}
},
{
result = "Trophy bit",
ingredients = {"Red Paintball bit", "Blue Paintball bit", "Green Paintball bit"}
},
{
result = "Flat bit",
ingredients = {"Stick bit", "Long bit"}
},
{
result = "Brick^8 bit",
ingredients = {"Flat bit", "Big bit"}
},
{
result = "Witches Brew Hat bit",
ingredients = {"Witches Brew bit", "Witches Brew bit"} -- Needs 2
},
{
result = "Rust bit",
ingredients = {"Water bit", "Metal bit"}
}
}
_G.AutoCollect = true
_G.AutoMerge = true
task.spawn(function()
while true do
if _G.AutoCollect then
local allBricks = {}
local bricksByType = {}
for _, v in ipairs(game.Workspace:GetChildren()) do
if v:IsA("BasePart") and v:GetAttribute("Owner") == LocalPlayer.UserId then
table.insert(allBricks, v)
local name = v.Name
if not bricksByType[name] then
bricksByType[name] = {}
end
table.insert(bricksByType[name], v)
end
end
local processed = {}
if _G.AutoMerge then
for _, recipe in ipairs(COMPLEX_RECIPES) do
local canMerge = true
local ingredientsToUse = {}
local tempBricksByType = {}
for name, list in pairs(bricksByType) do
tempBricksByType[name] = {unpack(list)}
end
for _, ingName in ipairs(recipe.ingredients) do
local list = tempBricksByType[ingName]
if list and #list > 0 then
table.insert(ingredientsToUse, table.remove(list, 1))
else
canMerge = false
break
end
end
if canMerge then
for i, brick in ipairs(ingredientsToUse) do
processed[brick] = true
local offset = Vector3.new(math.random(-10,10)/100, 0, math.random(-10,10)/100)
brick.CFrame = MergePoint + offset
brick.AssemblyLinearVelocity = Vector3.zero
end
end
end
end
for _, brick in ipairs(allBricks) do
if not processed[brick] then
brick.CFrame = VoidBottom.CFrame
brick.AssemblyLinearVelocity = Vector3.new(0, -50, 0)
end
end
end
task.wait(1)
end
end)
print("Auto-Collect & Complex-Merge loaded!")
print("Toggles: _G.AutoCollect, _G.AutoMerge")
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