M
ScriptKeyless
OPEN SOURCE | Auto Collect Pumpkins | Auto wait if Cooldown
[π] Junk MechanicsDesktop & mobile readyWave Β· Codex Β· Delta Β· Synapse Z Β· Volt Β· Potassium Β· Seliware Β· OpiumWare Β· Real Β· Matcha
Description
Drives to the nearest pumpkin automatically Handles the "smashing too fast" cooldown Clears the whole map, then loops Noclip + adjustable speed and height GIVE CREDITS PLEASE!
GAME[π] Junk Mechanics
UPDATEDOct 11, 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 ]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LP = Players.LocalPlayer
local PG = LP:WaitForChild("PlayerGui")
local old = PG:FindFirstChild("pumpkin farm")
if old then old:Destroy() end
local CFG = {
Speed = 150,
ArriveDist = 6,
PassTime = 0.3,
WaitAfter = 0.15,
RestartGap = 1,
AutoWait = true,
ExtraWait = 0.3,
Noclip = true,
Height = 4,
}
local function getVehicle()
local char = LP.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local seat = hum and hum.SeatPart
return seat and seat.Parent and seat.Parent.Parent
end
local function getPrimary(veh) return veh and veh:FindFirstChild("Primary") end
local vehicleBackup = {}
local function noclipCharacter()
local char = LP.Character
if not char then return end
for _, p in ipairs(char:GetDescendants()) do
if p:IsA("BasePart") and p.CanCollide then p.CanCollide = false end
end
end
local function noclipVehicle()
local veh = getVehicle()
if not veh then return end
for _, p in ipairs(veh:GetDescendants()) do
if p:IsA("BasePart") and p.CanCollide then
vehicleBackup[p] = true
p.CanCollide = false
end
end
end
local function restoreAll()
local char = LP.Character
if char then
for _, p in ipairs(char:GetDescendants()) do
if p:IsA("BasePart") then p.CanCollide = true end
end
end
for part in pairs(vehicleBackup) do
if part and part.Parent then
pcall(function() part.CanCollide = true end)
end
end
vehicleBackup = {}
end
RunService.Heartbeat:Connect(function()
if not CFG.Noclip then return end
noclipCharacter()
noclipVehicle()
end)
local function parseClock(str)
local h, m, s = str:match("(%d+):(%d+):(%d+)")
if h then return tonumber(h)*3600 + tonumber(m)*60 + tonumber(s) end
local mm, ss = str:match("(%d+):(%d+)")
if mm then return tonumber(mm)*60 + tonumber(ss) end
return nil
end
local function findCooldown()
for _, d in ipairs(PG:GetDescendants()) do
if d:IsA("TextLabel") or d:IsA("TextButton") or d:IsA("TextBox") then
local t = d.Text
if t and (t:find("too fast") or t:find("smashing") or t:find("Candy drops")) then
local secs = parseClock(t)
if secs then return secs end
end
end
end
return nil
end
local function getPos(obj)
if not obj or not obj.Parent then return nil end
if obj:IsA("BasePart") then return obj.Position end
if obj:IsA("Model") then
if obj.PrimaryPart then return obj.PrimaryPart.Position end
for _, d in ipairs(obj:GetDescendants()) do
if d:IsA("BasePart") then return d.Position end
end
end
return nil
end
local function isPumpkin(obj)
if not obj or not obj.Parent then return false end
if obj:GetAttribute("HalloweenType") == "pumpkin" then return true end
if obj.Name == "Target" then return true end
return false
end
local function scanAllPumpkins()
local folder = workspace:FindFirstChild("halloween")
if not folder then return {} end
local list = {}
for _, c in ipairs(folder:GetDescendants()) do
if isPumpkin(c) then
local pos = getPos(c)
if pos then
table.insert(list, {
obj = c,
pos = pos,
name = c:GetAttribute("HalloweenSite") or c.Name,
})
end
end
end
return list
end
local function setVel(primary, vel)
pcall(function()
primary.AssemblyLinearVelocity = vel
primary.AssemblyAngularVelocity = Vector3.zero
end)
end
local function brake(primary) setVel(primary, Vector3.zero) end
local function driveTo(targetPos, timeout)
local aimY = targetPos.Y + CFG.Height
local t0 = tick()
while tick() - t0 < timeout do
local primary = getPrimary(getVehicle())
if not primary then
task.wait(0.1)
else
local myPos = primary.Position
local delta = Vector3.new(
targetPos.X - myPos.X,
aimY - myPos.Y,
targetPos.Z - myPos.Z
)
local dist = delta.Magnitude
if dist < CFG.ArriveDist then
if dist > 0.05 then setVel(primary, delta.Unit * CFG.Speed) end
task.wait(CFG.PassTime)
brake(primary)
return true
end
setVel(primary, delta.Unit * CFG.Speed)
end
task.wait(0.03)
end
local primary = getPrimary(getVehicle())
if primary then brake(primary) end
return false
end
local running = false
local thread
local total = 0
local skipped = 0
local status = "idle"
local startTime = tick()
local visited = {}
local function clearVisited() visited = {} end
local function wasVisited(pos)
for _, v in ipairs(visited) do
if (v - pos).Magnitude < 8 then return true end
end
return false
end
local function markVisited(pos)
table.insert(visited, pos)
end
local function nearestPumpkin(myPos)
local pumps = scanAllPumpkins()
local best, bestDist
for _, p in ipairs(pumps) do
if not wasVisited(p.pos) then
local d = (p.pos - myPos).Magnitude
if not bestDist or d < bestDist then
best = p
bestDist = d
end
end
end
return best, #pumps
end
local function waitCooldown()
if not CFG.AutoWait then return end
local secs = findCooldown()
if not secs then return end
local wait = secs + CFG.ExtraWait
local t0 = tick()
local p = getPrimary(getVehicle())
if p then brake(p) end
while running and (tick() - t0) < wait do
task.wait(0.25)
end
end
local function step()
local primary = getPrimary(getVehicle())
if not primary then task.wait(0.2) return end
local target, total_count = nearestPumpkin(primary.Position)
if not target then
status = "round finished"
brake(primary)
task.wait(CFG.RestartGap)
clearVisited()
return
end
waitCooldown()
status = "-> " .. target.name .. " (" .. #visited .. "/" .. total_count .. ")"
local ok = driveTo(target.pos, 6)
total += 1
markVisited(target.pos)
status = (ok and "ok " or "timeout ") .. target.name
task.wait(CFG.WaitAfter)
end
local function start()
if running then return end
running = true
total = 0
skipped = 0
startTime = tick()
clearVisited()
status = "start"
thread = task.spawn(function()
while running do pcall(step) end
end)
end
local function stop()
if not running then return end
running = false
if thread then task.cancel(thread) thread = nil end
local p = getPrimary(getVehicle())
if p then brake(p) end
end
local gui = Instance.new("ScreenGui")
gui.Name = "pumpkin farm"
gui.ResetOnSpawn = false
gui.Parent = PG
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 240, 0, 222)
frame.Position = UDim2.new(0, 20, 0, 20)
frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.Parent = gui
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -28, 0, 20)
title.Position = UDim2.new(0, 8, 0, 4)
title.BackgroundTransparency = 1
title.Text = "pumpkin farm discord.gg/get-ravine"
title.TextColor3 = Color3.fromRGB(210, 210, 210)
title.TextXAlignment = Enum.TextXAlignment.Left
title.Font = Enum.Font.SourceSans
title.TextSize = 14
title.Parent = frame
local close = Instance.new("TextButton")
close.Size = UDim2.new(0, 20, 0, 20)
close.Position = UDim2.new(1, -24, 0, 4)
close.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
close.BorderSizePixel = 0
close.Text = "x"
close.TextColor3 = Color3.fromRGB(210, 210, 210)
close.Font = Enum.Font.SourceSans
close.TextSize = 14
close.Parent = frame
close.MouseButton1Click:Connect(function() stop() gui:Destroy() end)
local toggle = Instance.new("TextButton")
toggle.Size = UDim2.new(1, -16, 0, 26)
toggle.Position = UDim2.new(0, 8, 0, 28)
toggle.BackgroundColor3 = Color3.fromRGB(55, 55, 55)
toggle.BorderSizePixel = 0
toggle.Text = "off"
toggle.TextColor3 = Color3.fromRGB(210, 210, 210)
toggle.Font = Enum.Font.SourceSans
toggle.TextSize = 14
toggle.Parent = frame
local function mkInput(y, label, key)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0, 90, 0, 20)
lbl.Position = UDim2.new(0, 8, 0, y)
lbl.BackgroundTransparency = 1
lbl.Text = label
lbl.TextColor3 = Color3.fromRGB(190, 190, 190)
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Font = Enum.Font.SourceSans
lbl.TextSize = 13
lbl.Parent = frame
local box = Instance.new("TextBox")
box.Size = UDim2.new(0, 60, 0, 20)
box.Position = UDim2.new(0, 100, 0, y)
box.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
box.BorderSizePixel = 0
box.Text = tostring(CFG[key])
box.TextColor3 = Color3.fromRGB(210, 210, 210)
box.Font = Enum.Font.SourceSans
box.TextSize = 13
box.ClearTextOnFocus = false
box.Parent = frame
box.FocusLost:Connect(function()
local n = tonumber(box.Text)
if n and n >= 0 then CFG[key] = n else box.Text = tostring(CFG[key]) end
end)
end
mkInput(60, "speed", "Speed")
mkInput(82, "wait after","WaitAfter")
mkInput(104, "height", "Height")
local noclipBtn = Instance.new("TextButton")
noclipBtn.Size = UDim2.new(0, 108, 0, 22)
noclipBtn.Position = UDim2.new(0, 8, 0, 128)
noclipBtn.BackgroundColor3 = Color3.fromRGB(55, 55, 55)
noclipBtn.BorderSizePixel = 0
noclipBtn.Text = "noclip on"
noclipBtn.TextColor3 = Color3.fromRGB(210, 210, 210)
noclipBtn.Font = Enum.Font.SourceSans
noclipBtn.TextSize = 13
noclipBtn.Parent = frame
noclipBtn.MouseButton1Click:Connect(function()
CFG.Noclip = not CFG.Noclip
noclipBtn.Text = CFG.Noclip and "noclip on" or "noclip off"
if not CFG.Noclip then restoreAll() end
end)
local autowaitBtn = Instance.new("TextButton")
autowaitBtn.Size = UDim2.new(0, 108, 0, 22)
autowaitBtn.Position = UDim2.new(0, 124, 0, 128)
autowaitBtn.BackgroundColor3 = Color3.fromRGB(55, 55, 55)
autowaitBtn.BorderSizePixel = 0
autowaitBtn.Text = "autowait on"
autowaitBtn.TextColor3 = Color3.fromRGB(210, 210, 210)
autowaitBtn.Font = Enum.Font.SourceSans
autowaitBtn.TextSize = 13
autowaitBtn.Parent = frame
autowaitBtn.MouseButton1Click:Connect(function()
CFG.AutoWait = not CFG.AutoWait
autowaitBtn.Text = CFG.AutoWait and "autowait on" or "autowait off"
end)
local cdLabel = Instance.new("TextLabel")
cdLabel.Size = UDim2.new(1, -16, 0, 40)
cdLabel.Position = UDim2.new(0, 8, 0, 158)
cdLabel.BackgroundTransparency = 1
cdLabel.Text = "cooldown -"
cdLabel.TextColor3 = Color3.fromRGB(210, 210, 210)
cdLabel.TextXAlignment = Enum.TextXAlignment.Left
cdLabel.TextYAlignment = Enum.TextYAlignment.Top
cdLabel.Font = Enum.Font.SourceSans
cdLabel.TextSize = 14
cdLabel.Parent = frame
local function update()
local cd = findCooldown()
cdLabel.Text = "cooldown " .. (cd and (cd .. "s") or "-")
end
toggle.MouseButton1Click:Connect(function()
if running then stop() else start() end
toggle.Text = running and "on" or "off"
end)
task.spawn(function()
while gui.Parent do
update()
task.wait(0.25)
end
end)
update()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