-- Cut Trees Script by JayRBLX
-- Discord: https://discord.gg/KPUPp4m9pJ
-- YouTube: https://youtube.com/@jayscriptsrblx
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
-- Key System Configuration
local Window = Rayfield:CreateWindow({
Name = "Cut Trees Script | JayRBLX",
LoadingTitle = "Cut Trees Script",
LoadingSubtitle = "by JayRBLX",
ConfigurationSaving = {
Enabled = true,
FolderName = "JayRBLXScripts",
FileName = "CutTreesConfig"
},
Discord = {
Enabled = true,
Invite = "KPUPp4m9pJ",
RememberJoins = true
},
KeySystem = true,
KeySettings = {
Title = "Cut Trees Script",
Subtitle = "Key System",
Note = "Join our discord to get the key! https://discord.gg/KPUPp4m9pJ",
FileName = "CutTreesKey",
SaveKey = false,
GrabKeyFromSite = false,
Key = {"Jcheeks130"}
}
})
-- Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local VirtualUser = game:GetService("VirtualUser")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local HumanoidRootPart = Character:WaitForChild("HumanoidRootPart")
-- Update character references on respawn
Player.CharacterAdded:Connect(function(char)
Character = char
Humanoid = char:WaitForChild("Humanoid")
HumanoidRootPart = char:WaitForChild("HumanoidRootPart")
end)
-- Variables
local AutoChop = false
local UltraAutoChop = false
local TreeHitboxWidth = 10
local TreeHitboxHeight = 10
local TreeHitboxDepth = 10
local WeaponHitboxWidth = 10
local WeaponHitboxHeight = 10
local WeaponHitboxDepth = 10
local InvisibleTool = false
local ChestESP = false
local AutoOpenChests = false
local AutoCollectChests = false
local SelectedChest = "All"
local SelectedMap = "Forest"
local FakeLevel = 1
local FakeWood = 0
local WalkSpeed = 16
local JumpPower = 50
local SpinSpeed = 0
local NoClip = false
local AntiAFK = false
-- Gamepass Variables
local XRayEnabled = false
local TwoXWood = false
local TwoXPower = false
local TwoXLoot = false
local LuckyEnabled = false
local UltraLuckyEnabled = false
-- Create Tabs
local HomeTab = Window:CreateTab("π Home", 4483362458)
local TreesTab = Window:CreateTab("π² Trees", 4483362458)
local ChestTab = Window:CreateTab("π¦ Chest", 4483362458)
local MapsTab = Window:CreateTab("πΊοΈ Maps", 4483362458)
local GamepassTab = Window:CreateTab("π Free Gamepass", 4483362458)
local PlayerTab = Window:CreateTab("π€ Player", 4483362458)
local TrollTab = Window:CreateTab("π Troll", 4483362458)
local CreditsTab = Window:CreateTab("π Credits", 4483362458)
-- HOME TAB
local HomeSection = HomeTab:CreateSection("Welcome!")
HomeTab:CreateParagraph({
Title = "β οΈ Warning",
Content = "Use this script at your own risk! We are not responsible for any bans or consequences. Use on an alt account if possible."
})
HomeTab:CreateParagraph({
Title = "π’ Message",
Content = "Welcome to Cut Trees Script by JayRBLX! Join our Discord for updates, support, and to get keys. Enjoy the script!"
})
HomeTab:CreateButton({
Name = "π Copy Discord Link",
Callback = function()
setclipboard("https://discord.gg/KPUPp4m9pJ")
Rayfield:Notify({
Title = "Copied!",
Content = "Discord link copied to clipboard",
Duration = 3,
Image = 4483362458
})
end
})
HomeTab:CreateButton({
Name = "π Copy YouTube Link",
Callback = function()
setclipboard("https://youtube.com/@jayscriptsrblx?si=94ZHB3di6FfIHY9q")
Rayfield:Notify({
Title = "Copied!",
Content = "YouTube link copied to clipboard",
Duration = 3,
Image = 4483362458
})
end
})
-- TREES TAB
local TreeSection = TreesTab:CreateSection("Tree Chopping")
TreesTab:CreateToggle({
Name = "Auto Chop Trees",
CurrentValue = false,
Flag = "AutoChop",
Callback = function(Value)
AutoChop = Value
if Value then
Rayfield:Notify({
Title = "Auto Chop",
Content = "Auto chop enabled!",
Duration = 2,
Image = 4483362458
})
end
end
})
TreesTab:CreateToggle({
Name = "Ultra Auto Chop Trees",
CurrentValue = false,
Flag = "UltraAutoChop",
Callback = function(Value)
UltraAutoChop = Value
if Value then
Rayfield:Notify({
Title = "Ultra Auto Chop",
Content = "Ultra auto chop enabled!",
Duration = 2,
Image = 4483362458
})
end
end
})
local HitboxSection = TreesTab:CreateSection("Tree Hitbox Settings")
TreesTab:CreateSlider({
Name = "Tree Hitbox Width",
Range = {1, 100},
Increment = 1,
CurrentValue = 10,
Flag = "TreeHitboxWidth",
Callback = function(Value)
TreeHitboxWidth = Value
end
})
TreesTab:CreateSlider({
Name = "Tree Hitbox Height",
Range = {1, 100},
Increment = 1,
CurrentValue = 10,
Flag = "TreeHitboxHeight",
Callback = function(Value)
TreeHitboxHeight = Value
end
})
TreesTab:CreateSlider({
Name = "Tree Hitbox Depth",
Range = {1, 100},
Increment = 1,
CurrentValue = 10,
Flag = "TreeHitboxDepth",
Callback = function(Value)
TreeHitboxDepth = Value
end
})
local WeaponHitboxSection = TreesTab:CreateSection("Weapon Hitbox Settings")
TreesTab:CreateSlider({
Name = "Weapon Hitbox Width",
Range = {1, 100},
Increment = 1,
CurrentValue = 10,
Flag = "WeaponHitboxWidth",
Callback = function(Value)
WeaponHitboxWidth = Value
end
})
TreesTab:CreateSlider({
Name = "Weapon Hitbox Height",
Range = {1, 100},
Increment = 1,
CurrentValue = 10,
Flag = "WeaponHitboxHeight",
Callback = function(Value)
WeaponHitboxHeight = Value
end
})
TreesTab:CreateSlider({
Name = "Weapon Hitbox Depth",
Range = {1, 100},
Increment = 1,
CurrentValue = 10,
Flag = "WeaponHitboxDepth",
Callback = function(Value)
WeaponHitboxDepth = Value
end
})
TreesTab:CreateToggle({
Name = "Invisible Tool",
CurrentValue = false,
Flag = "InvisibleTool",
Callback = function(Value)
InvisibleTool = Value
end
})
-- CHEST TAB
local ChestSection = ChestTab:CreateSection("Chest Settings")
ChestTab:CreateDropdown({
Name = "Select Chest Type",
Options = {"All", "Common", "Rare", "Epic", "Legendary", "Mythic"},
CurrentOption = "All",
Flag = "ChestType",
Callback = function(Option)
SelectedChest = Option
Rayfield:Notify({
Title = "Chest Selected",
Content = "Target: " .. Option,
Duration = 2,
Image = 4483362458
})
end
})
ChestTab:CreateToggle({
Name = "ESP Chest",
CurrentValue = false,
Flag = "ChestESP",
Callback = function(Value)
ChestESP = Value
end
})
ChestTab:CreateToggle({
Name = "Auto Open All Chests",
CurrentValue = false,
Flag = "AutoOpenChests",
Callback = function(Value)
AutoOpenChests = Value
end
})
ChestTab:CreateToggle({
Name = "Auto Collect Chest (Map)",
CurrentValue = false,
Flag = "AutoCollectChests",
Callback = function(Value)
AutoCollectChests = Value
end
})
-- MAPS TAB
local MapsSection = MapsTab:CreateSection("Map Teleportation")
MapsTab:CreateDropdown({
Name = "Select Map",
Options = {"Forest", "Lava", "World 3", "World 4"},
CurrentOption = "Forest",
Flag = "MapSelection",
Callback = function(Option)
SelectedMap = Option
end
})
MapsTab:CreateButton({
Name = "Teleport to Selected Map",
Callback = function()
local mapLocations = {
["Forest"] = CFrame.new(0, 5, 0),
["Lava"] = CFrame.new(1000, 5, 0),
["World 3"] = CFrame.new(2000, 5, 0),
["World 4"] = CFrame.new(3000, 5, 0)
}
if HumanoidRootPart and mapLocations[SelectedMap] then
HumanoidRootPart.CFrame = mapLocations[SelectedMap]
Rayfield:Notify({
Title = "Teleported!",
Content = "Teleported to " .. SelectedMap,
Duration = 2,
Image = 4483362458
})
end
end
})
-- FREE GAMEPASS TAB
local GamepassSection = GamepassTab:CreateSection("Free Gamepasses")
GamepassTab:CreateToggle({
Name = "X-Ray",
CurrentValue = false,
Flag = "XRay",
Callback = function(Value)
XRayEnabled = Value
if Value then
Rayfield:Notify({
Title = "X-Ray Enabled",
Content = "X-Ray gamepass activated!",
Duration = 2,
Image = 4483362458
})
end
end
})
GamepassTab:CreateToggle({
Name = "2x Wood",
CurrentValue = false,
Flag = "TwoXWood",
Callback = function(Value)
TwoXWood = Value
if Value then
Rayfield:Notify({
Title = "2x Wood Enabled",
Content = "2x Wood gamepass activated!",
Duration = 2,
Image = 4483362458
})
end
end
})
GamepassTab:CreateToggle({
Name = "2x Power",
CurrentValue = false,
Flag = "TwoXPower",
Callback = function(Value)
TwoXPower = Value
if Value then
Rayfield:Notify({
Title = "2x Power Enabled",
Content = "2x Power gamepass activated!",
Duration = 2,
Image = 4483362458
})
end
end
})
GamepassTab:CreateToggle({
Name = "2x Loot",
CurrentValue = false,
Flag = "TwoXLoot",
Callback = function(Value)
TwoXLoot = Value
if Value then
Rayfield:Notify({
Title = "2x Loot Enabled",
Content = "2x Loot gamepass activated!",
Duration = 2,
Image = 4483362458
})
end
end
})
GamepassTab:CreateToggle({
Name = "Lucky",
CurrentValue = false,
Flag = "Lucky",
Callback = function(Value)
LuckyEnabled = Value
if Value then
Rayfield:Notify({
Title = "Lucky Enabled",
Content = "Lucky gamepass activated!",
Duration = 2,
Image = 4483362458
})
end
end
})
GamepassTab:CreateToggle({
Name = "Ultra Lucky",
CurrentValue = false,
Flag = "UltraLucky",
Callback = function(Value)
UltraLuckyEnabled = Value
if Value then
Rayfield:Notify({
Title = "Ultra Lucky Enabled",
Content = "Ultra Lucky gamepass activated!",
Duration = 2,
Image = 4483362458
})
end
end
})
-- PLAYER TAB
local PlayerSection = PlayerTab:CreateSection("Player Settings")
PlayerTab:CreateSlider({
Name = "Walk Speed",
Range = {16, 500},
Increment = 1,
CurrentValue = 16,
Flag = "WalkSpeed",
Callback = function(Value)
WalkSpeed = Value
end
})
PlayerTab:CreateSlider({
Name = "Jump Boost",
Range = {50, 500},
Increment = 1,
CurrentValue = 50,
Flag = "JumpPower",
Callback = function(Value)
JumpPower = Value
end
})
PlayerTab:CreateSlider({
Name = "Spin Speed",
Range = {0, 100},
Increment = 1,
CurrentValue = 0,
Flag = "SpinSpeed",
Callback = function(Value)
SpinSpeed = Value
end
})
PlayerTab:CreateToggle({
Name = "No Clip",
CurrentValue = false,
Flag = "NoClip",
Callback = function(Value)
NoClip = Value
end
})
PlayerTab:CreateToggle({
Name = "Anti AFK",
CurrentValue = false,
Flag = "AntiAFK",
Callback = function(Value)
AntiAFK = Value
end
})
-- TROLL TAB
local TrollSection = TrollTab:CreateSection("Troll Features")
TrollTab:CreateInput({
Name = "Set Fake Level",
PlaceholderText = "Enter level",
RemoveTextAfterFocusLost = false,
Callback = function(Text)
FakeLevel = tonumber(Text) or 1
Rayfield:Notify({
Title = "Fake Level Set",
Content = "Level set to: " .. FakeLevel,
Duration = 2,
Image = 4483362458
})
end
})
TrollTab:CreateInput({
Name = "Set Fake Wood Amount",
PlaceholderText = "Enter wood amount",
RemoveTextAfterFocusLost = false,
Callback = function(Text)
FakeWood = tonumber(Text) or 0
Rayfield:Notify({
Title = "Fake Wood Set",
Content = "Wood set to: " .. FakeWood,
Duration = 2,
Image = 4483362458
})
end
})
TrollTab:CreateButton({
Name = "Admin Commands",
Callback = function()
loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))()
end
})
-- CREDITS TAB
local CreditsSection = CreditsTab:CreateSection("Script Information")
CreditsTab:CreateParagraph({
Title = "π¨βπ» Created By",
Content = "JayRBLX Scripts\n\nThank you for using this script! For more scripts, updates, and support, join our community!"
})
CreditsTab:CreateButton({
Name = "π₯ YouTube Channel",
Callback = function()
setclipboard("https://youtube.com/@jayscriptsrblx?si=94ZHB3di6FfIHY9q")
Rayfield:Notify({
Title = "Copied!",
Content = "YouTube link copied! Subscribe for more scripts!",
Duration = 3,
Image = 4483362458
})
end
})
CreditsTab:CreateButton({
Name = "π¬ Discord Server",
Callback = function()
setclipboard("https://discord.gg/KPUPp4m9pJ")
Rayfield:Notify({
Title = "Copied!",
Content = "Discord link copied! Join for support!",
Duration = 3,
Image = 4483362458
})
end
})
CreditsTab:CreateParagraph({
Title = "β‘ Script Version",
Content = "Version: 1.1.0\nLast Updated: November 2025\n\nFeatures:\nβ’ Auto Chop Trees (Fixed)\nβ’ Chest Collection (Fixed)\nβ’ Map Teleportation\nβ’ Free Gamepasses (Fixed)\nβ’ Player Enhancements\nβ’ And More!"
})
-- SCRIPT FUNCTIONS
-- Function to get all trees in the workspace
local function getAllTrees()
local trees = {}
for _, v in pairs(Workspace:GetDescendants()) do
if v:IsA("Model") and (v.Name:lower():find("tree") or v:FindFirstChild("Tree")) then
table.insert(trees, v)
end
end
return trees
end
-- Auto Chop Function (FIXED)
spawn(function()
while wait() do
if (AutoChop or UltraAutoChop) and Character then
pcall(function()
local tool = Character:FindFirstChildOfClass("Tool")
if tool and tool:FindFirstChild("Handle") then
local waitTime = UltraAutoChop and 0.001 or 0.05
-- Fire the tool activation
if tool:FindFirstChild("RemoteEvent") then
tool.RemoteEvent:FireServer()
elseif tool:FindFirstChild("Activate") then
tool:Activate()
end
-- Alternative method: Simulate mouse click
local args = {
[1] = "Swing"
}
for _, remote in pairs(ReplicatedStorage:GetDescendants()) do
if remote:IsA("RemoteEvent") and (remote.Name:lower():find("swing") or remote.Name:lower():find("chop") or remote.Name:lower():find("cut")) then
remote:FireServer(unpack(args))
end
end
wait(waitTime)
end
end)
end
end
end)
-- Tree Hitbox Modifier (FIXED)
spawn(function()
while wait(0.3) do
pcall(function()
local trees = getAllTrees()
for _, tree in pairs(trees) do
if tree:IsA("Model") then
for _, part in pairs(tree:GetDescendants()) do
if part:IsA("BasePart") and not part.Name:lower():find("leaves") then
part.Size = Vector3.new(TreeHitboxWidth, TreeHitboxHeight, TreeHitboxDepth)
part.CanCollide = false
part.Transparency = 0.5
end
end
end
end
end)
end
end)
-- Weapon Hitbox Modifier
spawn(function()
while wait(0.3) do
if Character then
pcall(function()
local tool = Character:FindFirstChildOfClass("Tool")
if tool then
for _, part in pairs(tool:GetDescendants()) do
if part:IsA("BasePart") and part.Name:lower():find("handle") or part.Name:lower():find("blade") then
part.Size = Vector3.new(WeaponHitboxWidth, WeaponHitboxHeight, WeaponHitboxDepth)
if InvisibleTool then
part.Transparency = 1
else
part.Transparency = 0
end
end
end
end
end)
end
end
end)
-- Chest ESP Function
spawn(function()
while wait(1) do
if ChestESP then
pcall(function()
for _, chest in pairs(Workspace:GetDescendants()) do
if chest:IsA("Model") and chest.Name:lower():find("chest") then
if not chest:FindFirstChild("ChestESP") then
local billboard = Instance.new("BillboardGui")
billboard.Name = "ChestESP"
billboard.Parent = chest
billboard.AlwaysOnTop = true
billboard.Size = UDim2.new(0, 100, 0, 50)
billboard.StudsOffset = Vector3.new(0, 3, 0)
local textLabel = Instance.new("TextLabel")
textLabel.Parent = billboard
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundTransparency = 1
textLabel.Text = chest.Name
textLabel.TextColor3 = Color3.fromRGB(255, 255, 0)
textLabel.TextStrokeTransparency = 0
textLabel.Font = Enum.Font.SourceSansBold
textLabel.TextSize = 18
end
end
end
end)
else
for _, chest in pairs(Workspace:GetDescendants()) do
if chest:FindFirstChild("ChestESP") then
chest.ChestESP:Destroy()
end
end
end
end
end)
-- Auto Open Chests (Near player)
spawn(function()
while wait(0.3) do
if AutoOpenChests and HumanoidRootPart then
pcall(function()
for _, chest in pairs(Workspace:GetDescendants()) do
if chest:IsA("Model") and chest.Name:lower():find("chest") then
local chestPrimary = chest:FindFirstChild("HumanoidRootPart") or chest:FindFirstChildWhichIsA("BasePart")
if chestPrimary and (HumanoidRootPart.Position - chestPrimary.Position).Magnitude < 50 then
-- Fire proximity prompt or click detector
if chest:FindFirstChildOfClass("ProximityPrompt") then
fireproximityprompt(chest:FindFirstChildOfClass("ProximityPrompt"))
elseif chest:FindFirstChildOfClass("ClickDetector") then
fireclickdetector(chest:FindFirstChildOfClass("ClickDetector"))
end
-- Try remote events
for _, remote in pairs(ReplicatedStorage:GetDescendants()) do
if remote:IsA("RemoteEvent") and (remote.Name:lower():find("chest") or remote.Name:lower():find("collect")) then
remote:FireServer(chest)
end
end
end
end
end
end)
end
end
end)
-- Auto Collect Chests (FIXED - Now collects after teleporting)
spawn(function()
while wait(1) do
if AutoCollectChests and HumanoidRootPart then
pcall(function()
for _, chest in pairs(Workspace:GetDescendants()) do
if chest:IsA("Model") and chest.Name:lower():find("chest") then
if SelectedChest == "All" or chest.Name:find(SelectedChest) then
local chestPrimary = chest:FindFirstChild("HumanoidRootPart") or chest:FindFirstChildWhichIsA("BasePart")
if chestPrimary then
-- Teleport to chest
HumanoidRootPart.CFrame = chestPrimary.CFrame * CFrame.new(0, 3, 0)
wait(0.5)
-- Collect the chest
if chest:FindFirstChildOfClass("ProximityPrompt") then
fireproximityprompt(chest:FindFirstChildOfClass("ProximityPrompt"))
elseif chest:FindFirstChildOfClass("ClickDetector") then
fireclickdetector(chest:FindFirstChildOfClass("ClickDetector"))
end
-- Try remote events
for _, remote in pairs(ReplicatedStorage:GetDescendants()) do
if remote:IsA("RemoteEvent") and (remote.Name:lower():find("chest") or remote.Name:lower():find("collect") or remote.Name:lower():find("open")) then
remote:FireServer(chest)
remote:FireServer("Collect", chest)
remote:FireServer("Open", chest)
end
end
wait(1)
end
end
end
end
end)
end
end
end)
-- Free Gamepasses (FIXED)
spawn(function()
while wait(1) do
pcall(function()
-- Hook gamepass checks to return true
local mt = getrawmetatable(game)
local oldNamecall = mt.__namecall
setreadonly(mt, false)
mt.__namecall = newcclosure(function(self, ...)
local args = {...}
local method = getnamecallmethod()
if method == "UserOwnsGamePassAsync" then
-- Return true for all gamepass checks when toggles are enabled
if XRayEnabled or TwoXWood or TwoXPower or TwoXLoot or LuckyEnabled or UltraLuckyEnabled then
return true
end
end
return oldNamecall(self, ...)
end)
setreadonly(mt, true)
end)
end
end)
-- Player Speed/Jump
RunService.Heartbeat:Connect(function()
if Humanoid then
Humanoid.WalkSpeed = WalkSpeed
Humanoid.JumpPower = JumpPower
end
end)
-- Spin
spawn(function()
while wait() do
if SpinSpeed > 0 and HumanoidRootPart then
HumanoidRootPart.CFrame = HumanoidRootPart.CFrame * CFrame.Angles(0, math.rad(SpinSpeed), 0)
end
end
end)
-- NoClip
RunService.Stepped:Connect(function()
if NoClip and Character then
for _, part in pairs(Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)
-- Anti AFK
spawn(function()
while wait(60) do
if AntiAFK then
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end
end
end)
-- Fake Level Display (Visual only)
spawn(function()
while wait(1) do
if FakeLevel > 1 then
pcall(function()
for _, gui in pairs(Player.PlayerGui:GetDescendants()) do
if gui:IsA("TextLabel") and gui.Text:lower():find("level") then
gui.Text = "Level: " .. FakeLevel
end
end
end)
end
end
end)
-- Fake Wood Display (Visual only)
spawn(function()
while wait(1) do
if FakeWood > 0 then
pcall(function()
for _, gui in pairs(Player.PlayerGui:GetDescendants()) do
if gui:IsA("TextLabel") and gui.Text:lower():find("wood") then
gui.Text = "Wood: " .. FakeWood
end
end
end)
end
end
end)
Rayfield:LoadConfiguration()