
KeylessUniversal
![Auto Generate Infinity Cashes [WORK|KEYLESS]](https://cdn.kocakz.me/images/e297b5e36bbffa92450959a1ed89ce7ec7f29cf1ff94d208dee3341b49be2c00.webp)
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local GuiService = game:GetService("GuiService")
local player = Players.LocalPlayer
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = player:WaitForChild("PlayerGui")
screenGui.Name = "CashInserterUI"
screenGui.IgnoreGuiInset = true
screenGui.ResetOnSpawn = false
local function createFrame(parent, name, size, position, anchorPoint, backgroundColor, transparency, visible)
local frame = Instance.new("Frame")
frame.Name = name
frame.Size = size or UDim2.new(0, 100, 0, 100)
frame.Position = position or UDim2.new(0.5, 0, 0.5, 0)
frame.AnchorPoint = anchorPoint or Vector2.new(0.5, 0.5)
frame.BackgroundColor3 = backgroundColor or Color3.fromRGB(30, 30, 30)
frame.BackgroundTransparency = transparency or 0
frame.Visible = visible or true
frame.Parent = parent
return frame
end
local function createUICorner(parent, radius)
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, radius or 8)
uiCorner.Parent = parent
return uiCorner
end
local function createUIStroke(parent, color, transparency, thickness, applyToDescendants)
local uiStroke = Instance.new("UIStroke")
uiStroke.Color = color or Color3.fromRGB(255, 255, 255)
uiStroke.Transparency = transparency or 0.5
uiStroke.Thickness = thickness or 1
uiStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
if applyToDescendants then
uiStroke.Parent = parent
for _, child in ipairs(parent:GetChildren()) do
if child:IsA("GuiObject") then
createUIStroke(child, color, transparency, thickness)
end
end
else
uiStroke.Parent = parent
end
return uiStroke
end
local function createUIGradient(parent, colorSequence, rotation, transparency)
local uiGradient = Instance.new("UIGradient")
uiGradient.Color = colorSequence or ColorSequence.new(Color3.fromRGB(0, 0, 0), Color3.fromRGB(255, 255, 255))
uiGradient.Rotation = rotation or 0
uiGradient.Transparency = NumberSequence.new(transparency or 0)
uiGradient.Parent = parent
return uiGradient
end
local function createTextLabel(parent, name, text, size, position, textColor, font, textSize, transparency, visible)
local label = Instance.new("TextLabel")
label.Name = name
label.Text = text or "Label"
label.Size = size or UDim2.new(1, 0, 0, 30)
label.Position = position or UDim2.new(0, 0, 0, 0)
label.TextColor3 = textColor or Color3.fromRGB(255, 255, 255)
label.Font = font or Enum.Font.SourceSansBold
label.TextSize = textSize or 18
label.BackgroundTransparency = 1
label.TextTransparency = transparency or 0
label.Visible = visible or true
label.Parent = parent
return label
end
local function createTextButton(parent, name, text, size, position, backgroundColor, textColor, font, textSize)
local button = Instance.new("TextButton")
button.Name = name
button.Text = text or "Button"
button.Size = size or UDim2.new(0, 150, 0, 50)
button.Position = position or UDim2.new(0.5, 0, 0.5, 0)
button.AnchorPoint = Vector2.new(0.5, 0.5)
button.BackgroundColor3 = backgroundColor or Color3.fromRGB(50, 50, 50)
button.TextColor3 = textColor or Color3.fromRGB(255, 255, 255)
button.Font = font or Enum.Font.SourceSansBold
button.TextSize = textSize or 20
button.AutoButtonColor = false
button.Parent = parent
createUICorner(button, 12)
createUIStroke(button, Color3.fromRGB(100, 100, 100), 0.3, 2)
createUIGradient(button, ColorSequence.new(Color3.fromRGB(60, 60, 60), Color3.fromRGB(30, 30, 30)), 90)
return button
end
local function createTextBox(parent, name, placeholder, size, position, textColor, backgroundColor, font, textSize)
local textBox = Instance.new("TextBox")
textBox.Name = name
textBox.PlaceholderText = placeholder or "Enter value"
textBox.Size = size or UDim2.new(0, 100, 0, 30)
textBox.Position = position or UDim2.new(0, 0, 0, 0)
textBox.TextColor3 = textColor or Color3.fromRGB(255, 255, 255)
textBox.BackgroundColor3 = backgroundColor or Color3.fromRGB(40, 40, 40)
textBox.Font = font or Enum.Font.SourceSans
textBox.TextSize = textSize or 16
textBox.Parent = parent
createUICorner(textBox, 6)
createUIStroke(textBox, Color3.fromRGB(80, 80, 80), 0.4, 1)
return textBox
end
local function createSlider(parent, name, size, position, minValue, maxValue, defaultValue)
local sliderFrame = createFrame(parent, name, size or UDim2.new(1, 0, 0, 20), position)
sliderFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
createUICorner(sliderFrame, 10)
local fill = createFrame(sliderFrame, "Fill", UDim2.new(0, 0, 1, 0), UDim2.new(0, 0, 0, 0))
fill.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
createUICorner(fill, 10)
local knob = createFrame(sliderFrame, "Knob", UDim2.new(0, 20, 0, 20), UDim2.new(0, 0, 0.5, 0))
knob.AnchorPoint = Vector2.new(0, 0.5)
knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
createUICorner(knob, 10)
createUIStroke(knob, Color3.fromRGB(0, 0, 0), 0.2, 1)
local value = defaultValue or minValue
local function updateKnob(pos)
local relative = math.clamp((pos.X - sliderFrame.AbsolutePosition.X) / sliderFrame.AbsoluteSize.X, 0, 1)
value = minValue + (maxValue - minValue) * relative
knob.Position = UDim2.new(relative, -10, 0.5, 0)
fill.Size = UDim2.new(relative, 0, 1, 0)
return value
end
knob.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
local connection
connection = UserInputService.InputChanged:Connect(function(inputChanged)
if inputChanged.UserInputType == Enum.UserInputType.MouseMovement or inputChanged.UserInputType == Enum.UserInputType.Touch then
updateKnob(inputChanged.Position)
end
end)
input.InputEnded:Connect(function()
if connection then connection:Disconnect() end
end)
end
end)
sliderFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
updateKnob(input.Position)
local connection
connection = UserInputService.InputChanged:Connect(function(inputChanged)
if inputChanged.UserInputType == Enum.UserInputType.MouseMovement or inputChanged.UserInputType == Enum.UserInputType.Touch then
updateKnob(inputChanged.Position)
end
end)
input.InputEnded:Connect(function()
if connection then connection:Disconnect() end
end)
end
end)
updateKnob(Vector2.new(sliderFrame.AbsolutePosition.X + (defaultValue - minValue) / (maxValue - minValue) * sliderFrame.AbsoluteSize.X, 0))
return sliderFrame, function() return value end
end
local function tweenObject(object, properties, tweenInfo)
local tween = TweenService:Create(object, tweenInfo or TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), properties)
tween:Play()
return tween
end
local function tweenGradient(gradient, properties, tweenInfo)
local tween = TweenService:Create(gradient, tweenInfo or TweenInfo.new(0.5, Enum.EasingStyle.Sine), properties)
tween:Play()
return tween
end
local function tweenStroke(stroke, properties, tweenInfo)
local tween = TweenService:Create(stroke, tweenInfo or TweenInfo.new(0.4, Enum.EasingStyle.Quad), properties)
tween:Play()
return tween
end
local function setupButtonEffects(button, hoverColor, clickColor, normalColor, hoverScale, clickScale)
local originalSize = button.Size
local originalColor = button.BackgroundColor3
local gradient = button:FindFirstChildOfClass("UIGradient")
local stroke = button:FindFirstChildOfClass("UIStroke")
button.MouseEnter:Connect(function()
tweenObject(button, {BackgroundColor3 = hoverColor or Color3.fromRGB(70, 70, 70), Size = originalSize * (hoverScale or 1.05)})
if gradient then
tweenGradient(gradient, {Rotation = gradient.Rotation + 45})
end
if stroke then
tweenStroke(stroke, {Transparency = 0.2})
end
end)
button.MouseLeave:Connect(function()
tweenObject(button, {BackgroundColor3 = normalColor or originalColor, Size = originalSize})
if gradient then
tweenGradient(gradient, {Rotation = gradient.Rotation - 45})
end
if stroke then
tweenStroke(stroke, {Transparency = 0.5})
end
end)
button.MouseButton1Down:Connect(function()
tweenObject(button, {BackgroundColor3 = clickColor or Color3.fromRGB(40, 40, 40), Size = originalSize * (clickScale or 0.95)})
if stroke then
tweenStroke(stroke, {Color = Color3.fromRGB(255, 0, 0), Transparency = 0})
end
end)
button.MouseButton1Up:Connect(function()
tweenObject(button, {BackgroundColor3 = hoverColor or Color3.fromRGB(70, 70, 70), Size = originalSize * (hoverScale or 1.05)})
if stroke then
tweenStroke(stroke, {Color = Color3.fromRGB(100, 100, 100), Transparency = 0.2})
end
end)
end
local function setupTextBoxEffects(textBox, focusColor, unfocusColor)
local originalColor = textBox.BackgroundColor3
local stroke = textBox:FindFirstChildOfClass("UIStroke")
textBox.Focused:Connect(function()
tweenObject(textBox, {BackgroundColor3 = focusColor or Color3.fromRGB(60, 60, 60)})
if stroke then
tweenStroke(stroke, {Transparency = 0, Color = Color3.fromRGB(0, 255, 0)})
end
end)
textBox.FocusLost:Connect(function()
tweenObject(textBox, {BackgroundColor3 = unfocusColor or originalColor})
if stroke then
tweenStroke(stroke, {Transparency = 0.4, Color = Color3.fromRGB(80, 80, 80)})
end
end)
end
local function setupLabelEffects(label, changeColor)
local originalColor = label.TextColor3
label:GetPropertyChangedSignal("Text"):Connect(function()
tweenObject(label, {TextColor3 = changeColor or Color3.fromRGB(255, 200, 0)})
wait(0.5)
tweenObject(label, {TextColor3 = originalColor})
end)
end
local function createToggleButton(parent, name, textShow, textHide, size, position, callbackShow, callbackHide)
local button = createTextButton(parent, name, textShow, size, position)
local isShown = false
setupButtonEffects(button)
button.MouseButton1Click:Connect(function()
isShown = not isShown
if isShown then
button.Text = textHide
tweenObject(button, {BackgroundColor3 = Color3.fromRGB(200, 50, 50)})
if callbackShow then callbackShow() end
else
button.Text = textShow
tweenObject(button, {BackgroundColor3 = Color3.fromRGB(50, 50, 50)})
if callbackHide then callbackHide() end
end
end)
return button
end
local mainFrame = createFrame(screenGui, "MainFrame", UDim2.new(0.8, 0, 0.8, 0), UDim2.new(0.5, 0, 1.2, 0), Vector2.new(0.5, 0.5), Color3.fromRGB(25, 25, 25), 0, false)
createUICorner(mainFrame, 15)
createUIStroke(mainFrame, Color3.fromRGB(50, 50, 50), 0.2, 3, true)
createUIGradient(mainFrame, ColorSequence.new(Color3.fromRGB(40, 40, 40), Color3.fromRGB(10, 10, 10)), 45)
local titleLabel = createTextLabel(mainFrame, "Title", "Insert Cash Tester", UDim2.new(1, 0, 0, 50), UDim2.new(0, 0, 0, 10), Color3.fromRGB(255, 255, 255), Enum.Font.GothamBold, 28)
setupLabelEffects(titleLabel)
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = mainFrame
uiListLayout.Padding = UDim.new(0, 10)
uiListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
uiListLayout.SortOrder = Enum.SortOrder.LayoutOrder
local toggleButton = createToggleButton(screenGui, "ToggleUI", "Show", "Hide", UDim2.new(0, 100, 0, 40), UDim2.new(1, -20, 0, 20), Vector2.new(1, 0))
toggleButton.AnchorPoint = Vector2.new(1, 0)
setupButtonEffects(toggleButton, Color3.fromRGB(80, 80, 80), Color3.fromRGB(30, 30, 30), nil, 1.1, 0.9)
local function showMainFrame()
tweenObject(mainFrame, {Position = UDim2.new(0.5, 0, 0.5, 0), BackgroundTransparency = 0})
for _, child in ipairs(mainFrame:GetChildren()) do
if child:IsA("GuiObject") then
tweenObject(child, {Transparency = 0})
end
end
mainFrame.Visible = true
end
local function hideMainFrame()
tweenObject(mainFrame, {Position = UDim2.new(0.5, 0, 1.2, 0), BackgroundTransparency = 1})
for _, child in ipairs(mainFrame:GetChildren()) do
if child:IsA("GuiObject") then
tweenObject(child, {Transparency = 1})
end
end
task.delay(0.5, function() mainFrame.Visible = false end)
end
toggleButton.MouseButton1Click:Connect(function()
if toggleButton.Text == "Hide" then
showMainFrame()
else
hideMainFrame()
end
end)
local isCashing = false
local cashDelay = 0.1
local cashPerFire = 10 -- Estimated, as per user
local attackersRemote = ReplicatedStorage:WaitForChild("Attackers")
local function fireCashEvent()
attackersRemote:FireServer("Stalker", "Default", "Devolute")
end
local cashLoop
cashLoop = RunService.Heartbeat:Connect(function()
if isCashing then
fireCashEvent()
task.wait(cashDelay)
end
end)
local startButton = createTextButton(mainFrame, "StartButton", "Start", UDim2.new(0.6, 0, 0, 60), UDim2.new(0.5, 0, 0.3, 0))
setupButtonEffects(startButton, Color3.fromRGB(100, 255, 100), Color3.fromRGB(50, 150, 50), Color3.fromRGB(50, 200, 50), 1.05, 0.95)
startButton.MouseButton1Click:Connect(function()
isCashing = not isCashing
if isCashing then
startButton.Text = "Stop"
tweenObject(startButton, {BackgroundColor3 = Color3.fromRGB(255, 50, 50)})
else
startButton.Text = "Start"
tweenObject(startButton, {BackgroundColor3 = Color3.fromRGB(50, 200, 50)})
end
end)
local speedFrame = createFrame(mainFrame, "SpeedFrame", UDim2.new(0.8, 0, 0, 100))
local speedLabel = createTextLabel(speedFrame, "SpeedLabel", "Speed: 0.1s", UDim2.new(1, 0, 0.3, 0), UDim2.new(0, 0, 0, 0))
setupLabelEffects(speedLabel)
local slider, getSliderValue = createSlider(speedFrame, "SpeedSlider", UDim2.new(1, 0, 0.2, 0), UDim2.new(0, 0, 0.3, 0), 0.002, 1, cashDelay)
local speedBox = createTextBox(speedFrame, "SpeedBox", tostring(cashDelay), UDim2.new(0.3, 0, 0.3, 0), UDim2.new(0.7, 0, 0.7, 0))
setupTextBoxEffects(speedBox)
local cashRateLabel = createTextLabel(speedFrame, "CashRate", "Cash/sec: " .. tostring(math.round(cashPerFire / cashDelay)), UDim2.new(1, 0, 0.3, 0), UDim2.new(0, 0, 0.7, 0))
setupLabelEffects(cashRateLabel, Color3.fromRGB(0, 255, 0))
local function updateSpeed(newDelay)
cashDelay = newDelay
speedLabel.Text = "Speed: " .. string.format("%.3f", cashDelay) .. "s"
cashRateLabel.Text = "Cash/sec: " .. math.round(cashPerFire / cashDelay)
speedBox.Text = string.format("%.3f", cashDelay)
end
RunService.Heartbeat:Connect(function()
local val = getSliderValue()
if val ~= cashDelay then
updateSpeed(val)
end
end)
speedBox.FocusLost:Connect(function(enterPressed)
if enterPressed then
local num = tonumber(speedBox.Text)
if num and num >= 0.002 and num <= 1 then
updateSpeed(num)
-- Update slider position
local relative = (num - 0.002) / (1 - 0.002)
slider.Knob.Position = UDim2.new(relative, -10, 0.5, 0)
slider.Fill.Size = UDim2.new(relative, 0, 1, 0)
else
speedBox.Text = string.format("%.3f", cashDelay)
end
end
end)
local settingsFrame = createFrame(mainFrame, "SettingsFrame", UDim2.new(0.8, 0, 0.5, 0), nil, nil, nil, 1, false)
settingsFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
local settingsButton = createTextButton(mainFrame, "SettingsButton", "Settings", UDim2.new(0.6, 0, 0, 50))
setupButtonEffects(settingsButton)
local function showSettings()
tweenObject(settingsFrame, {BackgroundTransparency = 0, Position = UDim2.new(0.1, 0, 0.1, 0)})
settingsFrame.Visible = true
end
local function hideSettings()
tweenObject(settingsFrame, {BackgroundTransparency = 1, Position = UDim2.new(0.5, 0, 0.5, 0)})
task.delay(0.3, function() settingsFrame.Visible = false end)
end
settingsButton.MouseButton1Click:Connect(function()
if settingsFrame.Visible then
hideSettings()
else
showSettings()
end
end)
local animSpeedLabel = createTextLabel(settingsFrame, "AnimSpeedLabel", "Animation Speed:", UDim2.new(1, 0, 0.1, 0))
local animSpeedBox = createTextBox(settingsFrame, "AnimSpeedBox", "0.3", UDim2.new(0.5, 0, 0.1, 0), UDim2.new(0.5, 0, 0, 0))
setupTextBoxEffects(animSpeedBox)
-- Add more settings like theme color, etc.
local themeColorLabel = createTextLabel(settingsFrame, "ThemeColorLabel", "Theme Color (R,G,B):", UDim2.new(1, 0, 0.1, 0), UDim2.new(0, 0, 0.1, 0))
local themeColorBox = createTextBox(settingsFrame, "ThemeColorBox", "50,50,50", UDim2.new(0.5, 0, 0.1, 0), UDim2.new(0.5, 0, 0.1, 0))
setupTextBoxEffects(themeColorBox)
local function applyTheme(r, g, b)
local color = Color3.fromRGB(r, g, b)
mainFrame.BackgroundColor3 = color
for _, btn in ipairs(mainFrame:GetDescendants()) do
if btn:IsA("TextButton") then
btn.BackgroundColor3 = color
end
end
end
themeColorBox.FocusLost:Connect(function(enterPressed)
if enterPressed then
local parts = string.split(themeColorBox.Text, ",")
if #parts == 3 then
local r, g, b = tonumber(parts[1]), tonumber(parts[2]), tonumber(parts[3])
if r and g and b then
applyTheme(r, g, b)
end
end
end
end)
-- Current cash display
local leaderstats = player:WaitForChild("leaderstats")
local cashValue = leaderstats:WaitForChild("Cash")
local currentCashLabel = createTextLabel(mainFrame, "CurrentCash", "Current Cash: " .. cashValue.Value, UDim2.new(1, 0, 0.1, 0), UDim2.new(0, 0, 0.9, 0))
setupLabelEffects(currentCashLabel)
cashValue:GetPropertyChangedSignal("Value"):Connect(function()
currentCashLabel.Text = "Current Cash: " .. cashValue.Value
end)
-- Add log frame for fires
local logFrame = createFrame(mainFrame, "LogFrame", UDim2.new(0.8, 0, 0.3, 0), UDim2.new(0.5, 0, 0.7, 0), nil, Color3.fromRGB(15, 15, 15), 0.5)
createUICorner(logFrame, 10)
local logList = Instance.new("ScrollingFrame")
logList.Parent = logFrame
logList.Size = UDim2.new(1, 0, 1, 0)
logList.BackgroundTransparency = 1
logList.ScrollBarThickness = 5
local logLayout = Instance.new("UIListLayout")
logLayout.Parent = logList
logLayout.Padding = UDim.new(0, 5)
local function addLog(message)
local logEntry = createTextLabel(logList, "LogEntry", message, UDim2.new(1, 0, 0, 20))
logEntry.TextSize = 14
logEntry.TextTransparency = 0.2
tweenObject(logEntry, {TextTransparency = 0})
logList.CanvasSize = UDim2.new(0, 0, 0, logLayout.AbsoluteContentSize.Y)
end
-- Hook into fire
local oldFire = fireCashEvent
fireCashEvent = function()
oldFire()
addLog("Fired event at " .. os.date("%H:%M:%S"))
end
-- Auto save settings (mock, since no datastores in client)
local settings = {
delay = cashDelay,
animSpeed = 0.3,
theme = "50,50,50"
}
-- Load settings (mock)
updateSpeed(settings.delay)
animSpeedBox.Text = tostring(settings.animSpeed)
themeColorBox.Text = settings.theme
-- Add more buttons, like reset
local resetButton = createTextButton(settingsFrame, "ResetButton", "Reset Settings", UDim2.new(0.4, 0, 0.1, 0), UDim2.new(0, 0, 0.3, 0))
setupButtonEffects(resetButton)
resetButton.MouseButton1Click:Connect(function()
updateSpeed(0.1)
animSpeedBox.Text = "0.3"
themeColorBox.Text = "50,50,50"
applyTheme(50, 50, 50)
end)
-- Add hover info tips
local function createTooltip(parent, text)
local tooltip = createTextLabel(screenGui, "Tooltip", text, UDim2.new(0, 200, 0, 30), UDim2.new(0, 0, 0, 0), Color3.fromRGB(255, 255, 0), Enum.Font.SourceSans, 14, 1)
tooltip.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
tooltip.BackgroundTransparency = 0.3
createUICorner(tooltip, 5)
parent.MouseEnter:Connect(function()
tooltip.Position = UDim2.new(0, UserInputService:GetMouseLocation().X + 10, 0, UserInputService:GetMouseLocation().Y + 10)
tweenObject(tooltip, {TextTransparency = 0, BackgroundTransparency = 0.3})
end)
parent.MouseLeave:Connect(function()
tweenObject(tooltip, {TextTransparency = 1, BackgroundTransparency = 1})
end)
RunService.RenderStepped:Connect(function()
if tooltip.TextTransparency < 1 then
tooltip.Position = UDim2.new(0, UserInputService:GetMouseLocation().X + 10, 0, UserInputService:GetMouseLocation().Y + 10)
end
end)
return tooltip
end
createTooltip(startButton, "Toggle cash insertion")
createTooltip(settingsButton, "Open settings panel")
createTooltip(speedBox, "Set delay in seconds (0.002-1)")
createTooltip(resetButton, "Reset to default settings")
-- Device friendly: Scale for mobile
if GuiService:IsTenFootInterface() or UserInputService.TouchEnabled then
-- Increase sizes for mobile
mainFrame.Size = UDim2.new(0.9, 0, 0.9, 0)
startButton.Size = UDim2.new(0.7, 0, 0, 70)
settingsButton.Size = UDim2.new(0.7, 0, 0, 60)
speedBox.Size = UDim2.new(0.4, 0, 0.4, 0)
-- etc.
end
-- Add gradient animation loop
local function animateGradient(gradient)
local rot = gradient.Rotation
tweenGradient(gradient, {Rotation = rot + 360}, TweenInfo.new(10, Enum.EasingStyle.Linear))
task.delay(10, function() animateGradient(gradient) end)
end
animateGradient(mainFrame.UIGradient)
-- Add shadow effect
local function createShadow(parent)
local shadow = Instance.new("ImageLabel")
shadow.Image = "rbxassetid://1316045217" -- Roblox shadow asset
shadow.ImageTransparency = 0.7
shadow.BackgroundTransparency = 1
shadow.Size = UDim2.new(1, 20, 1, 20)
shadow.Position = UDim2.new(0, -10, 0, -10)
shadow.Parent = parent
shadow.ZIndex = parent.ZIndex - 1
return shadow
end
createShadow(mainFrame)
createShadow(toggleButton)
-- Add click sound
local clickSound = Instance.new("Sound")
clickSound.SoundId = "rbxassetid://394059828"
clickSound.Volume = 0.5
clickSound.Parent = screenGui
local function playClick(button)
button.MouseButton1Click:Connect(function()
clickSound:Play()
end)
end
playClick(startButton)
playClick(settingsButton)
playClick(resetButton)
playClick(toggleButton)
-- Add more features: Theme switcher buttons
local darkThemeButton = createTextButton(settingsFrame, "DarkTheme", "Dark Theme", UDim2.new(0.3, 0, 0.1, 0), UDim2.new(0, 0, 0.4, 0))
setupButtonEffects(darkThemeButton)
darkThemeButton.MouseButton1Click:Connect(function()
applyTheme(25, 25, 25)
themeColorBox.Text = "25,25,25"
end)
local lightThemeButton = createTextButton(settingsFrame, "LightTheme", "Light Theme", UDim2.new(0.3, 0, 0.1, 0), UDim2.new(0.35, 0, 0.4, 0))
setupButtonEffects(lightThemeButton)
lightThemeButton.MouseButton1Click:Connect(function()
applyTheme(200, 200, 200)
themeColorBox.Text = "200,200,200"
end)
local customThemeButton = createTextButton(settingsFrame, "CustomTheme", "Apply Custom", UDim2.new(0.3, 0, 0.1, 0), UDim2.new(0.7, 0, 0.4, 0))
setupButtonEffects(customThemeButton)
customThemeButton.MouseButton1Click:Connect(function()
local parts = string.split(themeColorBox.Text, ",")
if #parts == 3 then
local r, g, b = tonumber(parts[1]), tonumber(parts[2]), tonumber(parts[3])
if r and g and b then
applyTheme(r, g, b)
end
end
end)
-- Add animation speed apply
local applyAnimSpeedButton = createTextButton(settingsFrame, "ApplyAnimSpeed", "Apply Anim Speed", UDim2.new(0.5, 0, 0.1, 0), UDim2.new(0.5, 0, 0.2, 0))
setupButtonEffects(applyAnimSpeedButton)
applyAnimSpeedButton.MouseButton1Click:Connect(function()
local speed = tonumber(animSpeedBox.Text)
if speed then
-- Would affect all tweens, but for demo, print
print("Animation speed set to", speed)
end
end)
-- Extend log with clear button
local clearLogButton = createTextButton(logFrame, "ClearLog", "Clear Log", UDim2.new(0.2, 0, 0.1, 0), UDim2.new(0.8, 0, -0.1, 0))
setupButtonEffects(clearLogButton)
clearLogButton.AnchorPoint = Vector2.new(1, 0)
clearLogButton.MouseButton1Click:Connect(function()
for _, entry in ipairs(logList:GetChildren()) do
if entry:IsA("TextLabel") then
entry:Destroy()
end
end
logList.CanvasSize = UDim2.new(0, 0, 0, 0)
end)
-- Add export log feature (mock to console)
local exportLogButton = createTextButton(logFrame, "ExportLog", "Export Log", UDim2.new(0.2, 0, 0.1, 0), UDim2.new(0.6, 0, -0.1, 0))
setupButtonEffects(exportLogButton)
exportLogButton.AnchorPoint = Vector2.new(1, 0)
exportLogButton.MouseButton1Click:Connect(function()
print("Exporting log:")
for _, entry in ipairs(logList:GetChildren()) do
if entry:IsA("TextLabel") then
print(entry.Text)
end
end
end)
-- Add auto start toggle
local autoStartToggle = createToggleButton(settingsFrame, "AutoStart", "Auto Start Off", "Auto Start On", UDim2.new(0.4, 0, 0.1, 0), UDim2.new(0, 0, 0.5, 0))
local autoStart = false
autoStartToggle.MouseButton1Click:Connect(function()
autoStart = toggleButton.Text == "Auto Start On"
end)
if autoStart then
isCashing = true
startButton.Text = "Stop"
tweenObject(startButton, {BackgroundColor3 = Color3.fromRGB(255, 50, 50)})
end
-- Add delay presets
local presetFast = createTextButton(settingsFrame, "PresetFast", "Fast (0.002)", UDim2.new(0.3, 0, 0.1, 0), UDim2.new(0, 0, 0.6, 0))
setupButtonEffects(presetFast)
presetFast.MouseButton1Click:Connect(function()
updateSpeed(0.002)
slider.Knob.Position = UDim2.new(0, -10, 0.5, 0)
slider.Fill.Size = UDim2.new(0, 0, 1, 0)
end)
local presetMedium = createTextButton(settingsFrame, "PresetMedium", "Medium (0.1)", UDim2.new(0.3, 0, 0.1, 0), UDim2.new(0.35, 0, 0.6, 0))
setupButtonEffects(presetMedium)
presetMedium.MouseButton1Click:Connect(function()
updateSpeed(0.1)
local relative = (0.1 - 0.002) / (1 - 0.002)
slider.Knob.Position = UDim2.new(relative, -10, 0.5, 0)
slider.Fill.Size = UDim2.new(relative, 0, 1, 0)
end)
local presetSlow = createTextButton(settingsFrame, "PresetSlow", "Slow (1)", UDim2.new(0.3, 0, 0.1, 0), UDim2.new(0.7, 0, 0.6, 0))
setupButtonEffects(presetSlow)
presetSlow.MouseButton1Click:Connect(function()
updateSpeed(1)
slider.Knob.Position = UDim2.new(1, -10, 0.5, 0)
slider.Fill.Size = UDim2.new(1, 0, 1, 0)
end)
-- Add more UI elements for aesthetics
local decorFrame1 = createFrame(mainFrame, "Decor1", UDim2.new(0.2, 0, 0.05, 0), UDim2.new(0.1, 0, 0.05, 0), nil, Color3.fromRGB(100, 100, 255), 0.5)
createUICorner(decorFrame1, 20)
createUIGradient(decorFrame1, ColorSequence.new(Color3.fromRGB(0, 0, 255), Color3.fromRGB(255, 0, 0)), 0)
local decorFrame2 = createFrame(mainFrame, "Decor2", UDim2.new(0.2, 0, 0.05, 0), UDim2.new(0.7, 0, 0.05, 0), nil, Color3.fromRGB(255, 100, 100), 0.5)
createUICorner(decorFrame2, 20)
createUIGradient(decorFrame2, ColorSequence.new(Color3.fromRGB(255, 0, 0), Color3.fromRGB(0, 255, 0)), 180)
-- Animate decors
local function animateDecor(frame)
tweenObject(frame, {Rotation = 360}, TweenInfo.new(5, Enum.EasingStyle.Linear))
task.delay(5, function() frame.Rotation = 0 animateDecor(frame) end)
end
animateDecor(decorFrame1)
animateDecor(decorFrame2)
-- Add version label
local versionLabel = createTextLabel(screenGui, "Version", "v1.0 - Tester Tool", UDim2.new(0, 150, 0, 20), UDim2.new(0, 10, 1, -30), Color3.fromRGB(150, 150, 150), Enum.Font.SourceSansItalic, 12)
versionLabel.AnchorPoint = Vector2.new(0, 1)
-- Optimize: Disconnect on destroy
screenGui.Destroying:Connect(function()
cashLoop:Disconnect()
end)
-- Make draggable
local function makeDraggable(gui)
local dragging
local dragInput
local dragStart
local startPos
gui.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = gui.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
gui.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
local delta = input.Position - dragStart
gui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
end
makeDraggable(mainFrame)
makeDraggable(toggleButton)
-- Add fade in on load
tweenObject(screenGui, {Enabled = true}) -- Assume starts disabled, but it's enabled
toggleButton.Visible = true
-- More features: Cash goal setter
local goalFrame = createFrame(settingsFrame, "GoalFrame", UDim2.new(1, 0, 0.1, 0), UDim2.new(0, 0, 0.7, 0))
local goalLabel = createTextLabel(goalFrame, "GoalLabel", "Cash Goal:", UDim2.new(0.5, 0, 1, 0))
local goalBox = createTextBox(goalFrame, "GoalBox", "10000", UDim2.new(0.5, 0, 1, 0), UDim2.new(0.5, 0, 0, 0))
setupTextBoxEffects(goalBox)
local cashGoal = 10000
goalBox.FocusLost:Connect(function()
cashGoal = tonumber(goalBox.Text) or 10000
end)
RunService.Heartbeat:Connect(function()
if isCashing and cashValue.Value >= cashGoal then
isCashing = false
startButton.Text = "Start"
tweenObject(startButton, {BackgroundColor3 = Color3.fromRGB(50, 200, 50)})
addLog("Cash goal reached: " .. cashGoal)
end
end)
-- Add progress bar for goal
local progressBar = createFrame(settingsFrame, "ProgressBar", UDim2.new(1, 0, 0.05, 0), UDim2.new(0, 0, 0.8, 0), nil, Color3.fromRGB(20, 20, 20))
createUICorner(progressBar, 5)
local progressFill = createFrame(progressBar, "Fill", UDim2.new(0, 0, 1, 0), nil, nil, Color3.fromRGB(255, 215, 0))
createUICorner(progressFill, 5)
cashValue:GetPropertyChangedSignal("Value"):Connect(function()
local progress = math.clamp(cashValue.Value / cashGoal, 0, 1)
tweenObject(progressFill, {Size = UDim2.new(progress, 0, 1, 0)})
end)
-- Add notification system
local function notify(message, duration)
local notif = createTextLabel(screenGui, "Notification", message, UDim2.new(0.3, 0, 0, 50), UDim2.new(0.5, 0, -0.1, 0), Color3.fromRGB(255, 255, 255), Enum.Font.Gotham, 20, 1)
notif.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
notif.BackgroundTransparency = 0.4
createUICorner(notif, 10)
tweenObject(notif, {Position = UDim2.new(0.5, 0, 0.1, 0), TextTransparency = 0, BackgroundTransparency = 0.4})
task.delay(duration or 3, function()
tweenObject(notif, {Position = UDim2.new(0.5, 0, -0.1, 0), TextTransparency = 1, BackgroundTransparency = 1})
task.delay(0.5, function() notif:Destroy() end)
end)
end
-- Example notify on start
startButton.MouseButton1Click:Connect(function()
if isCashing then
notify("Cash insertion started!")
else
notify("Cash insertion stopped.", 2)
end
end)
-- Add hotkey support
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not gameProcessed then
if input.KeyCode == Enum.KeyCode.F1 then
toggleButton.MouseButton1Click:Invoke()
elseif input.KeyCode == Enum.KeyCode.F2 then
startButton.MouseButton1Click:Invoke()
end
end
end)
-- Add more hotkeys info
local hotkeysLabel = createTextLabel(settingsFrame, "Hotkeys", "Hotkeys: F1 - Toggle UI, F2 - Start/Stop", UDim2.new(1, 0, 0.1, 0), UDim2.new(0, 0, 0.9, 0), Color3.fromRGB(200, 200, 200), Enum.Font.SourceSans, 16)
-- Extend with anti-afk (mock)
local antiAfkToggle = createToggleButton(settingsFrame, "AntiAfk", "Anti-AFK Off", "Anti-AFK On", UDim2.new(0.4, 0, 0.1, 0), UDim2.new(0.6, 0, 0.5, 0))
local antiAfk = false
antiAfkToggle.MouseButton1Click:Connect(function()
antiAfk = antiAfkToggle.Text == "Anti-AFK On"
end)
RunService.Heartbeat:Connect(function()
if antiAfk then
-- Simulate movement or something, but mock
print("Anti-AFK active")
end
end)
-- Final tweaks for length and features
local extraFeatureButton = createTextButton(mainFrame, "Extra", "Extra Feature", UDim2.new(0.6, 0, 0, 50), UDim2.new(0.5, 0, 0.5, 0))
setupButtonEffects(extraFeatureButton)
extraFeatureButton.MouseButton1Click:Connect(function()
notify("Extra feature activated! (Placeholder)")
end)
-- Add particle effect on buttons (mock with frames)
local function addParticles(button)
for i = 1, 5 do
local particle = createFrame(button, "Particle" .. i, UDim2.new(0, 5, 0, 5), UDim2.new(math.random(), 0, math.random(), 0), nil, Color3.fromRGB(255, 255, math.random(0, 255)), 0.5)
createUICorner(particle, 5)
local function animateParticle()
tweenObject(particle, {Position = UDim2.new(math.random(), 0, math.random(), 0), Transparency = 1}, TweenInfo.new(2))
task.delay(2, function()
particle.Position = UDim2.new(math.random(), 0, math.random(), 0)
particle.Transparency = 0.5
animateParticle()
end)
end
animateParticle()
end
end
addParticles(startButton)
addParticles(settingsButton)No comments yet for this script.