local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local player = Players.LocalPlayer local camera = workspace.CurrentCamera -- Character bind local char, hum, root local function bind(c) char = c hum = c:WaitForChild("Humanoid") root = c:WaitForChild("HumanoidRootPart") end bind(player.Character or player.CharacterAdded:Wait()) player.CharacterAdded:Connect(bind) --================ GUI ================= local gui = Instance.new("ScreenGui", player.PlayerGui) gui.ResetOnSpawn = false local main = Instance.new("Frame", gui) main.Size = UDim2.fromOffset(300, 540) main.Position = UDim2.fromScale(0.05, 0.25) main.BackgroundColor3 = Color3.fromRGB(30,30,30) main.Active = true main.Draggable = true main.Visible = true Instance.new("UICorner", main).CornerRadius = UDim.new(0,12) local layout = Instance.new("UIListLayout", main) layout.Padding = UDim.new(0,6) layout.HorizontalAlignment = Enum.HorizontalAlignment.Center local function btn(text) local b = Instance.new("TextButton", main) b.Size = UDim2.new(0.9,0,0,32) b.Text = text b.Font = Enum.Font.Gotham b.TextSize = 14 b.TextColor3 = Color3.fromRGB(255,255,255) b.BackgroundColor3 = Color3.fromRGB(45,45,45) Instance.new("UICorner", b) return b end -- Buttons local CutBtn = btn("CUT ALL TREES (INSTANT)") local FlyBtn = btn("Fly") local SpeedBtn = btn("Speed") local JumpBtn = btn("Jump Boost") local GodBtn = btn("GodMode") local BrightBtn = btn("FullBright") local NoClipBtn = btn("NoClip") local ScaleBtn = btn("Weapon Size +") local ChestBtn = btn("Collect All Chests: OFF") --================ STATE ================= local S = { Fly=false, Speed=false, Jump=false, God=false, Bright=false, NoClip=false, CollectChests=false } local weaponScale = 1 --================ TREE CUT ================= CutBtn.MouseButton1Click:Connect(function() for _, m in ipairs(workspace:GetDescendants()) do if m:IsA("Model") and m.Name:lower():find("tree") then local part = m.PrimaryPart or m:FindFirstChildWhichIsA("BasePart") if part and root and (part.Position - root.Position).Magnitude <= 80 then if m:FindFirstChild("Health") then m.Health.Value = 0 end m:BreakJoints() end end end end) --================ WEAPON SCALE ================= ScaleBtn.MouseButton1Click:Connect(function() weaponScale = math.clamp(weaponScale + 0.25, 0.5, 5) for _, tool in ipairs(char:GetChildren()) do if tool:IsA("Tool") then for _, p in ipairs(tool:GetDescendants()) do if p:IsA("BasePart") then p.Size *= 1.25 end end end end ScaleBtn.Text = "Weapon Size: "..string.format("%.2f", weaponScale) end) --================ NOCLIP ================= RunService.Stepped:Connect(function() if S.NoClip and char then for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end end) --================ SPEED / JUMP / GOD ================= RunService.Heartbeat:Connect(function() if hum then hum.WalkSpeed = S.Speed and 70 or 16 hum.JumpPower = S.Jump and 120 or 50 if S.God then hum.MaxHealth = math.huge hum.Health = hum.MaxHealth end end end) --================ FULLBRIGHT ================= RunService.Heartbeat:Connect(function() if S.Bright then Lighting.Brightness = 3 Lighting.ClockTime = 14 Lighting.FogEnd = 1e9 end end) --================ FLY ================= local vel, gyro RunService.RenderStepped:Connect(function() if S.Fly and root then if not vel then vel = Instance.new("BodyVelocity", root) gyro = Instance.new("BodyGyro", root) vel.MaxForce = Vector3.new(1e5,1e5,1e5) gyro.MaxTorque = Vector3.new(1e5,1e5,1e5) end local move = Vector3.zero if UIS:IsKeyDown(Enum.KeyCode.W) then move += camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then move -= camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then move -= camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then move += camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then move += Vector3.new(0,1,0) end if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then move -= Vector3.new(0,1,0) end vel.Velocity = move * 60 gyro.CFrame = camera.CFrame else if vel then vel:Destroy(); vel=nil end if gyro then gyro:Destroy(); gyro=nil end end end) --================ COLLECT ALL CHESTS (FIXED) ================= task.spawn(function() while true do task.wait(0.05) if not S.CollectChests or not root then continue end for _, obj in ipairs(workspace:GetDescendants()) do if not S.CollectChests then break end if obj.Name:lower():find("chest") then local part = obj:IsA("Model") and (obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")) or (obj:IsA("BasePart") and obj) if part then root.CFrame = part.CFrame * CFrame.new(0,0,-3) -- click E every 0.01 sec for _, p in ipairs(obj:GetDescendants()) do if p:IsA("ProximityPrompt") then p:InputHoldBegin() task.wait(0.1) p:InputHoldEnd() end end task.wait(0.3) -- next chest delay end end end end end) --================ BUTTON TOGGLES ================= FlyBtn.MouseButton1Click:Connect(function() S.Fly = not S.Fly end) SpeedBtn.MouseButton1Click:Connect(function() S.Speed = not S.Speed end) JumpBtn.MouseButton1Click:Connect(function() S.Jump = not S.Jump end) GodBtn.MouseButton1Click:Connect(function() S.God = not S.God end) BrightBtn.MouseButton1Click:Connect(function() S.Bright = not S.Bright end) NoClipBtn.MouseButton1Click:Connect(function() S.NoClip = not S.NoClip end) ChestBtn.MouseButton1Click:Connect(function() S.CollectChests = not S.CollectChests ChestBtn.Text = "Collect All Chests: "..(S.CollectChests and "ON" or "OFF") end) --================ MENU TOGGLE ================= UIS.InputBegan:Connect(function(i,gp) if not gp and i.KeyCode == Enum.KeyCode.RightShift then main.Visible = not main.Visible end end) print("✅ Mod menu loaded (Chest toggle FIXED)")