Autofarm
Key Required

Autofarm

Ban or Get Banned 🔨MediorceExploiterMediorceExploiter 1.2K views 60 executesUpdated Jan 2, 2026
0.0/ 5(2 votes)
020% Positive
Lua Script•194 lines (4785 chars)
--// ButtonsMoney Stream-Safe Auto Toucher (Client-sided, no GUI)

--========================
-- CONFIG
--========================
local SCRIPT_ENABLED = false            -- master ON / OFF
local LOOP_FOREVER = true              -- true = keep cycling, false = run once

local FIRE_DELAY_SECONDS = 0.25         -- delay between buttons
local PRELOAD_WAIT_SECONDS = 0.25      -- wait after teleport near model
local MAIN_WAIT_TIMEOUT = 1.0          -- max time to wait for Main to load

local TOUCH_HOLD_SECONDS = 0.10        -- how long to stay touching Main
local RETURN_TO_START = false           -- return to original position after full cycle

local PRELOAD_OFFSET = Vector3.new(0, 8, 0)     -- teleport offset near button model
local TOUCH_OFFSET   = Vector3.new(0, 2.25, 0)  -- offset when touching Main

-- Touch order
local PRIORITY_BUTTON_NAME = "Button4"

-- Debug output
local DEBUG = true

--========================
-- SERVICES
--========================
local Players = game:GetService("Players")
local player = Players.LocalPlayer

--========================
-- LOGGING
--========================
local function log(...)
	if DEBUG then
		print("[ButtonsMoney]", ...)
	end
end

local function warnlog(...)
	warn("[ButtonsMoney]", ...)
end

--========================
-- HELPERS
--========================
local function getCharacter()
	local character = player.Character or player.CharacterAdded:Wait()
	local hrp = character:WaitForChild("HumanoidRootPart", 10)
	return character, hrp
end

local function getButtonsFolder()
	return workspace:WaitForChild("ButtonsMoney", 10)
end

local function modelCFrame(model: Model): CFrame
	if model.PrimaryPart then
		return model.PrimaryPart.CFrame
	end
	return model:GetPivot()
end

local function findMain(model: Model): BasePart?
	local main = model:FindFirstChild("Main")
	if main and main:IsA("BasePart") then return main end

	main = model:FindFirstChild("main")
	if main and main:IsA("BasePart") then return main end

	for _, d in ipairs(model:GetDescendants()) do
		if (d.Name == "Main" or d.Name == "main") and d:IsA("BasePart") then
			return d
		end
	end

	return nil
end

local function waitForMain(model: Model, timeout: number): BasePart?
	local start = os.clock()
	while os.clock() - start < timeout do
		if not SCRIPT_ENABLED then return nil end
		local main = findMain(model)
		if main then return main end
		task.wait(0.05)
	end
	return nil
end

--========================
-- CORE ACTIONS
--========================
local function touchMain(hrp: BasePart, main: BasePart)
	hrp.CFrame = main.CFrame + TOUCH_OFFSET
	task.wait(TOUCH_HOLD_SECONDS)

	-- ensure contact
	hrp.CFrame = main.CFrame
	task.wait(0.03)
end

local function streamAndTouch(model: Model)
	if not SCRIPT_ENABLED then return end

	local _, hrp = getCharacter()
	if not hrp then return end

	-- Step 1: preload/stream in by teleporting near the MODEL
	hrp.CFrame = modelCFrame(model) + PRELOAD_OFFSET
	task.wait(PRELOAD_WAIT_SECONDS)

	-- Step 2: wait for Main to appear, then touch it
	local main = waitForMain(model, MAIN_WAIT_TIMEOUT)
	if not main then
		warnlog("Main failed to load for " .. model.Name)
		return
	end

	touchMain(hrp, main)
end

--========================
-- BUTTON ORDER
--========================
local function getOrderedButtons(folder: Instance): {Model}
	local buttons = {}

	for _, child in ipairs(folder:GetChildren()) do
		if child:IsA("Model") then
			table.insert(buttons, child)
		end
	end

	table.sort(buttons, function(a, b)
		if a.Name == PRIORITY_BUTTON_NAME then return true end
		if b.Name == PRIORITY_BUTTON_NAME then return false end
		return a.Name < b.Name
	end)

	return buttons
end

--========================
-- MAIN CYCLE
--========================
local function runCycle()
	local folder = getButtonsFolder()
	if not folder then
		warnlog("ButtonsMoney folder not found.")
		return
	end

	local _, hrp = getCharacter()
	if not hrp then return end
	local originalCFrame = hrp.CFrame

	local buttons = getOrderedButtons(folder)
	log("Buttons found:", #buttons)

	for i, model in ipairs(buttons) do
		if not SCRIPT_ENABLED then break end
		streamAndTouch(model)

		-- wait ONLY between buttons (not after the last one)
		if i < #buttons then
			task.wait(FIRE_DELAY_SECONDS)
		end
	end

	if RETURN_TO_START and SCRIPT_ENABLED then
		hrp.CFrame = originalCFrame
	end
end

--========================
-- START (NO EXTRA BREAK BETWEEN CYCLES)
--========================
log("Script started. Enabled =", SCRIPT_ENABLED)

task.spawn(function()
	while true do
		if not LOOP_FOREVER then
			if SCRIPT_ENABLED then runCycle() end
			break
		end

		if SCRIPT_ENABLED then
			runCycle() -- immediately starts next cycle after this returns
		else
			task.wait(0.1) -- small idle sleep when disabled
		end
	end
end)

Features & Information

Autofarms money, 1 mil per 30 minutes.
#autofarm#rich#infmoney#op

Community Comments (1)

made by ChatGPT 5.2

More Scripts for Ban or Get Banned 🔨