Ball drop autofarm
Key Required

Ball drop autofarm

Drop Balls for BaddiesSleepdeniedSleepdenied 127 views 1.6K executesUpdated Aug 1, 2026
Unrated
00
Lua Script•198 lines (7053 chars)
local CoreGui = game:GetService("CoreGui")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer

local targetGui = (gethui and gethui()) or CoreGui

if targetGui:FindFirstChild("AutoFarmUI") then
    targetGui.AutoFarmUI:Destroy()
end

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "AutoFarmUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = targetGui

local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 220, 0, 115)
MainFrame.Position = UDim2.new(0, 50, 0, 200)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
MainFrame.BackgroundTransparency = 0.1
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Parent = ScreenGui

local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 8)
UICorner.Parent = MainFrame

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 30)
Title.BackgroundTransparency = 1
Title.Font = Enum.Font.GothamBold
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 14
Title.Text = "AutoFarm"
Title.Parent = MainFrame

local DropToggle = Instance.new("TextButton")
DropToggle.Size = UDim2.new(0, 140, 0, 30)
DropToggle.Position = UDim2.new(0, 10, 0, 35)
DropToggle.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
DropToggle.Font = Enum.Font.GothamSemibold
DropToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
DropToggle.TextSize = 12
DropToggle.Text = "Auto Drop: OFF"
DropToggle.Parent = MainFrame
Instance.new("UICorner", DropToggle).CornerRadius = UDim.new(0, 4)

local DelayBox = Instance.new("TextBox")
DelayBox.Size = UDim2.new(0, 50, 0, 30)
DelayBox.Position = UDim2.new(0, 160, 0, 35)
DelayBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
DelayBox.Font = Enum.Font.GothamSemibold
DelayBox.TextColor3 = Color3.fromRGB(255, 255, 255)
DelayBox.TextSize = 12
DelayBox.Text = "0"
DelayBox.PlaceholderText = "Delay"
DelayBox.Parent = MainFrame
Instance.new("UICorner", DelayBox).CornerRadius = UDim.new(0, 4)

local CollectToggle = Instance.new("TextButton")
CollectToggle.Size = UDim2.new(1, -20, 0, 30)
CollectToggle.Position = UDim2.new(0, 10, 0, 75)
CollectToggle.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
CollectToggle.Font = Enum.Font.GothamSemibold
CollectToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
CollectToggle.TextSize = 13
CollectToggle.Text = "Auto Collect Money: OFF"
CollectToggle.Parent = MainFrame
Instance.new("UICorner", CollectToggle).CornerRadius = UDim.new(0, 4)

-- Draggable Logic
local dragging, dragInput, dragStart, startPos
MainFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then dragging = false end
        end)
    end
end)
MainFrame.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        dragInput = input
    end
end)
UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        local delta = input.Position - dragStart
        MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end
end)

-- Farm Logic
local autoDrop = false
local autoCollect = false

-- Unanchor the player just in case they were stuck from a previous version
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
    LocalPlayer.Character.HumanoidRootPart.Anchored = false
end

local function getDelay()
    local val = tonumber(DelayBox.Text)
    return val or 0
end

local function fireUIBtn(btn)
    if getconnections then
        for _, conn in pairs(getconnections(btn.MouseButton1Click)) do conn:Fire() end
        for _, conn in pairs(getconnections(btn.Activated)) do conn:Fire() end
    end
end

local function autoDropLoop()
    while autoDrop do
        local d = getDelay()
        local btn = LocalPlayer.PlayerGui:FindFirstChild("BallDrop") 
                and LocalPlayer.PlayerGui.BallDrop:FindFirstChild("BottomContainer") 
                and LocalPlayer.PlayerGui.BallDrop.BottomContainer:FindFirstChild("DropButton")
                
        if btn then
            if d <= 0 then
                pcall(function()
                    for i = 1, 10 do
                        fireUIBtn(btn)
                    end
                end)
                task.wait()
            else
                pcall(function()
                    fireUIBtn(btn)
                end)
                task.wait(d)
            end
        else
            task.wait(0.5)
        end
    end
end

DropToggle.MouseButton1Click:Connect(function()
    autoDrop = not autoDrop
    if autoDrop then
        DropToggle.BackgroundColor3 = Color3.fromRGB(50, 200, 50)
        DropToggle.Text = "Auto Drop: ON"
        task.spawn(autoDropLoop)
    else
        DropToggle.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
        DropToggle.Text = "Auto Drop: OFF"
    end
end)

local function autoCollectLoop()
    while autoCollect do
        pcall(function()
            local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
            if hrp then
                local plots = workspace:FindFirstChild("Plots")
                if plots then
                    for _, plot in pairs(plots:GetChildren()) do
                        local slots = plot:FindFirstChild("Slots")
                        if slots then
                            for _, slot in pairs(slots:GetChildren()) do
                                local collectBtn = slot:FindFirstChild("CollectButton")
                                if collectBtn then
                                    local top = collectBtn:FindFirstChild("Top")
                                    if top and top:FindFirstChildOfClass("TouchTransmitter") then
                                        firetouchinterest(hrp, top, 0)
                                        firetouchinterest(hrp, top, 1)
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end)
        task.wait(0.1)
    end
end

CollectToggle.MouseButton1Click:Connect(function()
    autoCollect = not autoCollect
    if autoCollect then
        CollectToggle.BackgroundColor3 = Color3.fromRGB(50, 200, 50)
        CollectToggle.Text = "Auto Collect Money: ON"
        task.spawn(autoCollectLoop)
    else
        CollectToggle.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
        CollectToggle.Text = "Auto Collect Money: OFF"
    end
end)

Features & Information

- Auto ball drop - Auto collect money

Community Comments (0)

No comments yet for this script.