local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer -- ========================= -- Config -- ========================= local TARGET_HITBOX_SIZE = Vector3.new(70, 70, 70) local CHECK_INTERVAL = 0.2 local FIRE_COOLDOWN = 1.0 local UNLOAD_KEY = Enum.KeyCode.M local RUNTIME_FOLDER_NAME = "__ATLAS_CLIENT_RUNTIME__" local UNLOAD_EVENT_NAME = "UnloadSignal_GubbiesTaxes_v4" -- ========================= -- Maid -- ========================= local Maid = {} Maid.__index = Maid function Maid.new() return setmetatable({ tasks = {} }, Maid) end function Maid:Give(t) table.insert(self.tasks, t); return t end function Maid:DoCleaning() for i = #self.tasks, 1, -1 do local t = self.tasks[i] self.tasks[i] = nil if typeof(t) == "RBXScriptConnection" then pcall(function() t:Disconnect() end) elseif type(t) == "function" then pcall(t) elseif typeof(t) == "Instance" then pcall(function() t:Destroy() end) end end end local maid = Maid.new() local running = true -- ========================= -- Old-copy cleanup (full unload) -- ========================= local function getOrCreateRuntimeFolder() local pg = LocalPlayer:WaitForChild("PlayerGui") local folder = pg:FindFirstChild(RUNTIME_FOLDER_NAME) if not folder then folder = Instance.new("Folder") folder.Name = RUNTIME_FOLDER_NAME folder.Parent = pg end return folder end local runtimeFolder = getOrCreateRuntimeFolder() local unloadEvent = runtimeFolder:FindFirstChild(UNLOAD_EVENT_NAME) if not unloadEvent then unloadEvent = Instance.new("BindableEvent") unloadEvent.Name = UNLOAD_EVENT_NAME unloadEvent.Parent = runtimeFolder end -- kill any previous copies unloadEvent:Fire() maid:Give(unloadEvent.Event:Connect(function() if not running then return end running = false maid:DoCleaning() end)) -- ========================= -- Helpers -- ========================= local function parseCash(text: string): number? text = tostring(text or "") local digits = text:gsub("[^0-9]", "") -- strips $ , spaces, etc if digits == "" then return nil end return tonumber(digits) end local function findPayTaxes() local obj = game:FindFirstChild("PayTaxes", true) if obj and obj:IsA("RemoteEvent") then return obj end return nil end -- ========================= -- References (your paths) -- ========================= local MoneyGoalLabel = LocalPlayer:WaitForChild("PlayerGui") :WaitForChild("ScreenGui") :WaitForChild("MenuFrame") :WaitForChild("TaxesFrame") :WaitForChild("DebtFrame") :WaitForChild("MoneyGoalLabel") local MoneyValue = LocalPlayer:WaitForChild("leaderstats"):WaitForChild("Money") -- ========================= -- Hitbox resizing -- ========================= local function resizeHitbox(container: Instance) local hb = container:FindFirstChild("Hitbox") if hb and hb:IsA("BasePart") then hb.Size = TARGET_HITBOX_SIZE end end local function resizeAllGubbies() local gubbies = Workspace:FindFirstChild("Gubbies") if not gubbies then return end for _, child in ipairs(gubbies:GetChildren()) do resizeHitbox(child) end end resizeAllGubbies() local gubbiesFolder = Workspace:WaitForChild("Gubbies") maid:Give(gubbiesFolder.ChildAdded:Connect(function(child) task.defer(function() if running then resizeHitbox(child) end end) end)) -- ========================= -- Auto-fire PayTaxes -- ========================= local PayTaxes = findPayTaxes() -- keep trying in case it appears later maid:Give(task.spawn(function() while running and not PayTaxes do PayTaxes = findPayTaxes() task.wait(0.3) end end)) local lastFire = 0 maid:Give(task.spawn(function() while running do local goal = parseCash(MoneyGoalLabel.Text) local money = MoneyValue.Value if PayTaxes and goal and goal > 0 and money >= goal then local now = os.clock() if (now - lastFire) >= FIRE_COOLDOWN then lastFire = now PayTaxes:FireServer() end end task.wait(CHECK_INTERVAL) end end)) -- ========================= -- Unload key (M) -- ========================= maid:Give(UserInputService.InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == UNLOAD_KEY then running = false maid:DoCleaning() end end))