M
ScriptKeyless
ππ Clean all the Leaves [No Key π100%] NoGui IS Inventory
π Clean all the leaves!Desktop compatibleWave Β· Codex Β· Delta Β· Synapse Z Β· Volt Β· Potassium Β· Seliware Β· OpiumWare Β· Real Β· Matcha
Description
ππ Clean all the Leaves [No Key π100%] NoGui IS Inventory
GAMEπ Clean all the leaves!
UPDATEDOct 18, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- β’ Never log in on unofficial Roblox sites or lookalike domains.
-- β’ Real Roblox links use roblox.com (check the .com ending).
-- β’ Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
local PlayerScripts = LocalPlayer:WaitForChild("PlayerScripts")
local LeafSim = require(PlayerScripts:WaitForChild("LeafSim"))
local SoundController = require(ReplicatedStorage:WaitForChild("SoundController"))
local PlayerUpgradeConfig = require(ReplicatedStorage:WaitForChild("PlayerUpgradeConfig"))
local itemAttributes = {
OwnsRake = true,
OwnsLeafBlower = true,
OwnsLeafVacuum = true,
OwnsMolotov = true,
PermRake = true,
PermLeafBlower = true,
PermLeafVacuum = true,
PermMolotov = true,
}
for attr, val in pairs(itemAttributes) do
LocalPlayer:SetAttribute(attr, val)
end
local upgradeAttributes = {
Upg_Hand_Hold = 1,
Upg_Hand_Dexterity = 5,
Upg_Hand_Grasp = 5,
Upg_Rake_Radius = 5,
Upg_Rake_Range = 4,
Upg_Rake_Stickiness = 4,
Upg_LeafBlower_Width = 5,
Upg_LeafBlower_Power = 4,
Upg_LeafBlower_Spread = 4,
LobbyWalkSpeed = 21,
LobbyBagBonus = 125,
LobbyCashMult = 1.5,
LobbyGemsMult = 1.5,
LobbyRakeDiscount = 1,
LobbyBlowerDiscount = 1,
}
for attr, val in pairs(upgradeAttributes) do
LocalPlayer:SetAttribute(attr, val)
end
local oldLevelOf = PlayerUpgradeConfig.levelOf
PlayerUpgradeConfig.levelOf = function()
return 5
end
local oldUpgEffect = LeafSim.upgEffect
LeafSim.upgEffect = function(tool, upgrade)
if tool == "Hand" then
if upgrade == "Dexterity" then
return 0
elseif upgrade == "Hold" then
return 1
elseif upgrade == "Grasp" then
return 6
end
elseif tool == "Rake" then
if upgrade == "Range" then
return 20
elseif upgrade == "Radius" then
return 6
elseif upgrade == "Stickiness" then
return 160
end
elseif tool == "LeafBlower" then
if upgrade == "Width" then
return 6
elseif upgrade == "Power" then
return 2.5
elseif upgrade == "Spread" then
return 0.2
end
end
return oldUpgEffect(tool, upgrade)
end
if STATE and STATE.onCleanup then
STATE.onCleanup(function()
PlayerUpgradeConfig.levelOf = oldLevelOf
LeafSim.upgEffect = oldUpgEffect
end)
end
local cooldownAttributes = {
HandCooldown = false,
RakeCooldown = false,
MolotovCooldown = false,
}
for attr, val in pairs(cooldownAttributes) do
LocalPlayer:SetAttribute(attr, val)
end
if STATE and STATE.namecallHook then
STATE.namecallHook("GetAttribute", function(self, method, attrName)
if self == LocalPlayer then
if itemAttributes[attrName] ~= nil then
return true
end
if upgradeAttributes[attrName] ~= nil then
return upgradeAttributes[attrName]
end
if cooldownAttributes[attrName] ~= nil then
return false
end
end
end)
end
local function connectSignal(sig, fn)
if STATE and STATE.connect then
STATE.connect(sig, fn)
else
sig:Connect(fn)
end
end
for attr, _ in pairs(cooldownAttributes) do
connectSignal(LocalPlayer:GetAttributeChangedSignal(attr), function()
if LocalPlayer:GetAttribute(attr) == true then
LocalPlayer:SetAttribute(attr, false)
end
end)
end
for attr, val in pairs(itemAttributes) do
connectSignal(LocalPlayer:GetAttributeChangedSignal(attr), function()
if LocalPlayer:GetAttribute(attr) ~= val then
LocalPlayer:SetAttribute(attr, val)
end
end)
end
for attr, val in pairs(upgradeAttributes) do
connectSignal(LocalPlayer:GetAttributeChangedSignal(attr), function()
if LocalPlayer:GetAttribute(attr) ~= val then
LocalPlayer:SetAttribute(attr, val)
end
end)
end
local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Exclude
rayParams.IgnoreWater = true
local function computeRakeAimPos()
local cam = Workspace.CurrentCamera
local char = LocalPlayer.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if not cam or not hrp then return nil end
rayParams.FilterDescendantsInstances = {char}
local result = Workspace:Raycast(cam.CFrame.Position, cam.CFrame.LookVector * 50, rayParams)
return if result then result.Position else hrp.Position + cam.CFrame.LookVector * 10
end
local isHolding = false
local function instantRake()
local aim = computeRakeAimPos()
if aim then
pcall(function() SoundController.play("RakeSFX") end)
LeafSim.rake(aim)
end
end
connectSignal(UserInputService.InputBegan, function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
isHolding = true
if (LocalPlayer:GetAttribute("SelectedTool") or "Hand") == "Rake" then
instantRake()
task.spawn(function()
while isHolding and (not STATE or STATE.alive()) do
if (LocalPlayer:GetAttribute("SelectedTool") or "Hand") == "Rake"
and not LocalPlayer:GetAttribute("JournalOpen")
and not LocalPlayer:GetAttribute("ToolShopFocus") then
instantRake()
task.wait(0.08)
else
break
end
end
end)
end
end
end)
connectSignal(UserInputService.InputEnded, function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
isHolding = false
end
end)
Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place