Auto collect bricks & merge V1.1 (FREE, KEYLESS, OPEN-SRC)
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
loadstring(game:HttpGet("https://pasteblox.com/raw/t4vkhkbzyp"))()pbx pull t4vkhkbzypraw link never changes · v1 live
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")