
Keyless
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))No comments yet for this script.