Auto Cash Sender for Autofarming
Key Required

Auto Cash Sender for Autofarming

AnomicBigDihhRandyBigDihhRandy 1.3K views 124 executesUpdated Mar 21, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•284 lines (7267 chars)
-- Auto Give Money Helper
-- Place this LocalScript in StarterPlayer > StarterPlayerScripts.

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local player = Players.LocalPlayer

local CONFIG = {
	SendInterval = 10.1,
	MaxSendAmount = 250000,
	ReserveAmount = 20000,
	TowGuiNames = { "TowFarm1_0Gui", "TowAdminFarmGui" },
	TargetPlaceholder = "Enter target username",
}

local remotes = {
	GiveMoneyToPlr = nil,
	UpdateCash = nil,
}

local ui = {
	ScreenGui = nil,
	StatusLabel = nil,
	TargetOwnerBox = nil,
}

local function trim(text)
	return string.match(text or "", "^%s*(.-)%s*$") or ""
end

local function setStatus(text)
	if ui.StatusLabel then
		ui.StatusLabel.Text = text
	end
end

local function buildGui()
	local playerGui = player:WaitForChild("PlayerGui")

	local existing = playerGui:FindFirstChild("AutoGiveMoneyHelperGui")
	if existing then
		existing:Destroy()
	end

	local screenGui = Instance.new("ScreenGui")
	screenGui.Name = "AutoGiveMoneyHelperGui"
	screenGui.IgnoreGuiInset = true
	screenGui.ResetOnSpawn = false
	screenGui.Parent = playerGui
	ui.ScreenGui = screenGui

	local frame = Instance.new("Frame")
	frame.AnchorPoint = Vector2.new(0, 1)
	frame.Position = UDim2.new(0, 14, 1, -14)
	frame.Size = UDim2.new(0, 320, 0, 96)
	frame.BackgroundColor3 = Color3.fromRGB(21, 28, 36)
	frame.BorderSizePixel = 0
	frame.Parent = screenGui

	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0, 12)
	corner.Parent = frame

	local stroke = Instance.new("UIStroke")
	stroke.Color = Color3.fromRGB(58, 123, 255)
	stroke.Transparency = 0.45
	stroke.Parent = frame

	local targetBox = Instance.new("TextBox")
	targetBox.BackgroundColor3 = Color3.fromRGB(15, 20, 26)
	targetBox.BorderSizePixel = 0
	targetBox.ClearTextOnFocus = false
	targetBox.Font = Enum.Font.Gotham
	targetBox.PlaceholderText = "Target username"
	targetBox.Position = UDim2.new(0, 12, 0, 10)
	targetBox.Size = UDim2.new(1, -24, 0, 34)
	targetBox.Text = ""
	targetBox.TextColor3 = Color3.fromRGB(230, 237, 243)
	targetBox.PlaceholderColor3 = Color3.fromRGB(139, 152, 165)
	targetBox.TextSize = 14
	targetBox.Parent = frame
	ui.TargetOwnerBox = targetBox

	local targetCorner = Instance.new("UICorner")
	targetCorner.CornerRadius = UDim.new(0, 10)
	targetCorner.Parent = targetBox

	local label = Instance.new("TextLabel")
	label.BackgroundTransparency = 1
	label.Position = UDim2.new(0, 12, 0, 52)
	label.Size = UDim2.new(1, -24, 0, 32)
	label.Font = Enum.Font.Code
	label.TextColor3 = Color3.fromRGB(230, 237, 243)
	label.TextSize = 13
	label.TextWrapped = true
	label.TextXAlignment = Enum.TextXAlignment.Left
	label.TextYAlignment = Enum.TextYAlignment.Center
	label.Text = "Auto money helper starting..."
	label.Parent = frame
	ui.StatusLabel = label
end

local function resolveRemotes()
	local eventsFolder = ReplicatedStorage:FindFirstChild("_CS")
	eventsFolder = eventsFolder and eventsFolder:FindFirstChild("Events") or ReplicatedStorage:FindFirstChild("_CS.Events")
	if not eventsFolder then
		return false
	end

	remotes.GiveMoneyToPlr = eventsFolder:FindFirstChild("GiveMoneyToPlr")
	remotes.UpdateCash = eventsFolder:FindFirstChild("UpdateCash")
	return remotes.GiveMoneyToPlr ~= nil
end

local function getTargetPlayer()
	local targetBox = ui.TargetOwnerBox
	if not targetBox then
		return nil, "Target box not ready"
	end

	local targetName = trim(targetBox.Text)
	if targetName == "" then
		return nil, "Target user is empty"
	end

	local targetPlayer = Players:FindFirstChild(targetName)
	if not targetPlayer then
		return nil, "Target user not found: " .. targetName
	end

	if targetPlayer == player then
		return nil, "Target user is yourself"
	end

	return targetPlayer
end

local function parseCashDisplayValue(text)
	local rawText = tostring(text or ""):gsub("%s+", "")
	if rawText == "" then
		return nil
	end

	local numericPart, suffix = rawText:match("([%+%-]?%d[%d,%.]*)([KMBTkmbt]?)")
	if not numericPart or numericPart == "" then
		return nil
	end

	suffix = suffix ~= "" and string.upper(suffix) or nil

	local cleaned = numericPart
	local hasComma = string.find(cleaned, ",", 1, true) ~= nil
	local hasDot = string.find(cleaned, ".", 1, true) ~= nil

	if hasComma and hasDot then
		local reversed = string.reverse(cleaned)
		local lastCommaFromEnd = string.find(reversed, ",", 1, true)
		local lastDotFromEnd = string.find(reversed, ".", 1, true)
		local lastCommaIndex = lastCommaFromEnd and (#cleaned - lastCommaFromEnd + 1) or nil
		local lastDotIndex = lastDotFromEnd and (#cleaned - lastDotFromEnd + 1) or nil

		if lastCommaIndex and lastDotIndex and lastCommaIndex > lastDotIndex then
			cleaned = cleaned:gsub("%.", "")
			cleaned = cleaned:gsub(",", ".")
		else
			cleaned = cleaned:gsub(",", "")
		end
	elseif hasComma then
		local commaCount = select(2, cleaned:gsub(",", ""))
		if commaCount == 1 then
			cleaned = cleaned:gsub(",", ".")
		else
			cleaned = cleaned:gsub(",", "")
		end
	end

	local numericValue = tonumber(cleaned)
	if not numericValue then
		return nil
	end

	local multipliers = {
		K = 1e3,
		M = 1e6,
		B = 1e9,
		T = 1e12,
	}

	return numericValue * (multipliers[suffix] or 1)
end

local function getCashDisplayLabel()
	local playerGui = player:FindFirstChild("PlayerGui")
	if not playerGui then
		return nil
	end

	for _, object in ipairs(playerGui:GetDescendants()) do
		if object:IsA("TextLabel") and object.Name == "CashDisplay" then
			return object
		end
	end

	return nil
end

local function getCurrentCash()
	if remotes.UpdateCash and remotes.UpdateCash:IsA("RemoteFunction") then
		local ok, cashValue = pcall(function()
			return remotes.UpdateCash:InvokeServer()
		end)

		if ok then
			local numericCashValue = tonumber(cashValue)
			if numericCashValue then
				return numericCashValue
			end
		end
	end

	local cashLabel = getCashDisplayLabel()
	if cashLabel then
		return parseCashDisplayValue(cashLabel.Text)
	end

	return nil
end

local function getSendAmount(currentCash)
	local cashValue = math.floor(tonumber(currentCash) or 0)
	local sendable = cashValue - CONFIG.ReserveAmount
	if sendable <= 0 then
		return 0
	end

	return math.min(CONFIG.MaxSendAmount, sendable)
end

buildGui()

if not resolveRemotes() then
	setStatus("GiveMoneyToPlr remote not found")
	return
end

setStatus("Auto money helper ready")

task.spawn(function()
	while true do
		local targetPlayer, targetError = getTargetPlayer()
		if not targetPlayer then
			setStatus(targetError or "Waiting for target user")
			task.wait(CONFIG.SendInterval)
			continue
		end

		local currentCash = getCurrentCash()
		if not currentCash then
			setStatus("Cash value unavailable")
			task.wait(CONFIG.SendInterval)
			continue
		end

		local sendAmount = getSendAmount(currentCash)
		if sendAmount <= 0 then
			setStatus("Not enough cash to send | need more than " .. tostring(CONFIG.ReserveAmount))
			task.wait(CONFIG.SendInterval)
			continue
		end

		local ok, err = pcall(function()
			remotes.GiveMoneyToPlr:FireServer(targetPlayer, tostring(sendAmount))
		end)

		if ok then
			setStatus("Sent " .. tostring(sendAmount) .. " to " .. targetPlayer.Name)
		else
			setStatus("Send failed: " .. tostring(err))
		end

		task.wait(CONFIG.SendInterval)
	end
end)

Features & Information

This script opens a gui on the bottom where you can put a username inside to send cash to (your main) and your alt will automaitcally send as much as untill he only has 20k left, you can change this inside the script somewhere. sends 250k max at once.
#Autofarm#Money#Anomic#Lakalaka

Community Comments (0)

No comments yet for this script.

More Scripts for Anomic