
Keyless

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



this only works on world 1
@rsummerawr I never checked that there were worlds lol
HAHA 😆, you should check it first before you make the script
@morfenathan haha I'm sorry I'll definitely do that from now on.
But it's working properly no bugs or anything it's clean
@morfenathan Thanks!
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.
@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.
Thanks for making this bro I'm waiting for this script
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
can u change it to where i can move the UI out of the middle of the screen? or minimize it