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