Auto Cut tress and Auto Collect chests
Key Required

Auto Cut tress and Auto Collect chests

Cut Trees1kzuya1kzuya 1.4K views 96 executesUpdated Dec 2, 2025
5.0/ 5(3 votes)
30100% Positive
Lua Script•196 lines (5843 chars)
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

local treeRemote = ReplicatedStorage:FindFirstChild("Signal") and ReplicatedStorage.Signal:FindFirstChild("Tree")
local treesFolder = Workspace:FindFirstChild("TreesFolder")

local chopAura = false
local chopRange = 50
local chopDelay = 0.05
local autoCollect = true
local selectedChest = nil

local function rootPart()
    local c = player.Character or player.CharacterAdded:Wait()
    return c and c:FindFirstChild("HumanoidRootPart")
end

local auraThread
local function startAura()
    if auraThread then return end
    auraThread = task.spawn(function()
        while chopAura do
            local r = rootPart()
            if r and treesFolder and treeRemote then
                for _, tree in ipairs(treesFolder:GetChildren()) do
                    local hit = tree:FindFirstChild("Hitpart")
                    if hit and (r.Position - hit.Position).Magnitude <= chopRange then
                        pcall(function()
                            treeRemote:FireServer("damage", tree.Name)
                        end)
                    end
                end
            end
            task.wait(chopDelay)
        end
        auraThread = nil
    end)
end

local collectThread
local function goToChest(model)
    local r = rootPart()
    if not r or not model then return end
    local primary = model.PrimaryPart or model:FindFirstChildWhichIsA("BasePart")
    if not primary then return end
    local old = r.CFrame
    r.CFrame = primary.CFrame
    task.wait(0.35)
    local hit = model:FindFirstChild("Hitpart")
    local prompt = hit and hit:FindFirstChild("ProximityPrompt")
    if prompt then
        pcall(function() fireproximityprompt(prompt) end)
    end
    task.wait(0.15)
    if old then r.CFrame = old end
end

local function startCollect()
    if collectThread then return end
    collectThread = task.spawn(function()
        while autoCollect do
            local folder = Workspace:FindFirstChild("ChestFolder")
            if folder then
                local list = folder:GetChildren()
                if #list > 0 then
                    local toCollect = list[math.random(1, #list)]
                    pcall(function() goToChest(toCollect) end)
                end
            end
            task.wait(1)
        end
        collectThread = nil
    end)
end

if autoCollect then startCollect() end

local existing = playerGui:FindFirstChild("CutTreesGUI")
if existing then existing:Destroy() end

local gui = Instance.new("ScreenGui")
gui.Name = "CutTreesGUI"
gui.ResetOnSpawn = false
gui.Parent = playerGui

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0.4, 0, 0.5, 0)
frame.AnchorPoint = Vector2.new(0.5, 0.5)
frame.Position = UDim2.new(0.5, 0, 0.5, 0)
frame.BackgroundColor3 = Color3.fromRGB(24,24,28)
frame.BorderSizePixel = 0
frame.Parent = gui

local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0,8)
listLayout.Parent = frame

local function makeToggle(text, onChange)
    local row = Instance.new("Frame")
    row.Size = UDim2.new(1, -16, 0, 36)
    row.BackgroundTransparency = 1
    row.Parent = frame

    local lbl = Instance.new("TextLabel")
    lbl.Size = UDim2.new(0.55, 0, 1, 0)
    lbl.BackgroundTransparency = 1
    lbl.Font = Enum.Font.SourceSans
    lbl.Text = text
    lbl.TextColor3 = Color3.fromRGB(235,235,235)
    lbl.TextSize = 18
    lbl.TextXAlignment = Enum.TextXAlignment.Left
    lbl.Parent = row

    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0.4, 0, 1, 0)
    btn.Position = UDim2.new(0.58, 0, 0, 0)
    btn.Font = Enum.Font.SourceSansBold
    btn.TextSize = 18
    btn.Text = "Off"
    btn.Parent = row

    local state = false
    btn.MouseButton1Click:Connect(function()
        state = not state
        btn.Text = state and "On" or "Off"
        onChange(state)
    end)
end

local function makeValue(text, default, onChange)
    local row = Instance.new("Frame")
    row.Size = UDim2.new(1, -16, 0, 36)
    row.BackgroundTransparency = 1
    row.Parent = frame

    local lbl = Instance.new("TextLabel")
    lbl.Size = UDim2.new(0.45, 0, 1, 0)
    lbl.BackgroundTransparency = 1
    lbl.Font = Enum.Font.SourceSans
    lbl.Text = text
    lbl.TextColor3 = Color3.fromRGB(235,235,235)
    lbl.TextSize = 18
    lbl.TextXAlignment = Enum.TextXAlignment.Left
    lbl.Parent = row

    local box = Instance.new("TextBox")
    box.Size = UDim2.new(0.45, 0, 0.8, 0)
    box.Position = UDim2.new(0.5, 0, 0.08, 0)
    box.Font = Enum.Font.SourceSans
    box.Text = tostring(default)
    box.ClearTextOnFocus = false
    box.TextSize = 18
    box.Parent = row

    box.FocusLost:Connect(function()
        local v = tonumber(box.Text)
        if v then onChange(v) end
    end)
end

makeToggle("Chop Aura", function(v)
    chopAura = v
    if v then startAura() end
end)

makeValue("Range", chopRange, function(v)
    chopRange = math.clamp(v, 5, 500)
end)

makeValue("WalkSpeed", 16, function(v)
    local c = player.Character
    if c and c:FindFirstChild("Humanoid") then
        c.Humanoid.WalkSpeed = math.clamp(v, 16, 200)
    end
end)

local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 120, 0, 40)
toggleBtn.Position = UDim2.new(0.02, 0, 0.5, 0)
toggleBtn.AnchorPoint = Vector2.new(0, 0.5)
toggleBtn.Font = Enum.Font.SourceSansBold
toggleBtn.TextSize = 20
toggleBtn.Text = "Menu"
toggleBtn.Parent = gui

toggleBtn.MouseButton1Click:Connect(function()
    frame.Visible = not frame.Visible
    toggleBtn.Text = frame.Visible and "Close" or "Menu"
end)

frame.Visible = true

Features & Information

• Auto Cut Tress • Auto Collect Chests • Walkspeed changer
#cuttrees

Community Comments (11)

rsummerawrrsummerawrDec 2, 2025

this only works on world 1

Replying to @rsummerawr
1kzuya1kzuyaDec 2, 2025

@rsummerawr I never checked that there were worlds lol

morfenathanmorfenathanDec 2, 2025

HAHA 😆, you should check it first before you make the script

Replying to @morfenathan
1kzuya1kzuyaDec 3, 2025

@morfenathan haha I'm sorry I'll definitely do that from now on.

morfenathanmorfenathanDec 2, 2025

But it's working properly no bugs or anything it's clean

Replying to @morfenathan
1kzuya1kzuyaDec 3, 2025

@morfenathan Thanks!

MomksxMomksxDec 2, 2025

This script is cool but i think these script no need auto farm chests Because when you collect chests, the player is teleported and the trees just disappear.

Replying to @Momksx
1kzuya1kzuyaDec 3, 2025

@Momksx thank you so much for the testing it out and finding the error, I'll definitely post working one with no errors or bugs from now on.

morfenathanmorfenathanDec 3, 2025

Thanks for making this bro I'm waiting for this script

morfenathanmorfenathanDec 3, 2025

Don't over do it guys don't change the range to 100 it well make your game crushed but it's working properly and I really saying that this script is great

S0BXES0BXEDec 5, 2025

can u change it to where i can move the UI out of the middle of the screen? or minimize it

More Scripts for Cut Trees