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)