-- Draggable UI Spam Click Detector Script for Raise a Peter (Mobile-Friendly) -- Path: workspace.Interactables.Peter.Peter.Clickable.DropMoney -- Features: Draggable Frame + Toggle Button + Delay Slider local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local spamInterval = 0.1 -- Default delay (seconds) local isSpamming = false local clickDetector = nil local spamCoroutine = nil local toggleGui = nil -- Find the ClickDetector local function getClickDetector() local success, result = pcall(function() return workspace.Interactables.Peter.Peter.Clickable.DropMoney end) if success and result and result:IsA("ClickDetector") then return result else warn("ClickDetector not found! Path: workspace.Interactables.Peter.Peter.Clickable.DropMoney") return nil end end -- Start spamming (instant) local function startSpamming() clickDetector = getClickDetector() if not clickDetector then return end isSpamming = true print("Started spamming at " .. spamInterval .. "s intervals!") -- Instant coroutine start spamCoroutine = coroutine.create(function() while isSpamming do fireclickdetector(clickDetector) wait(spamInterval) end end) coroutine.resume(spamCoroutine) -- Auto-stop after 60s spawn(function() wait(60) if isSpamming then stopSpamming() end end) end -- Stop spamming (instant) local function stopSpamming() isSpamming = false if spamCoroutine then if coroutine.close then coroutine.close(spamCoroutine) end spamCoroutine = nil end print("Stopped spamming!") end -- Make frame draggable local function makeDraggable(frame) local dragging = false local dragStart = nil local startPos = nil frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) end -- Create UI Frame with Button + Slider local function createUI() local screenGui = Instance.new("ScreenGui") screenGui.Name = "SpamUI" screenGui.Parent = game.CoreGui screenGui.IgnoreGuiInset = true local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 200, 0, 120) mainFrame.Position = UDim2.new(1, -210, 0, 10) -- Top-right default (away from jump) mainFrame.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1) mainFrame.BackgroundTransparency = 0.2 mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 10) corner.Parent = mainFrame -- Make it draggable (ignores child inputs like button/slider) makeDraggable(mainFrame) -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Text = "Peter Money Spammer" title.TextColor3 = Color3.new(1, 1, 1) title.TextScaled = true title.Font = Enum.Font.SourceSansBold title.Parent = mainFrame -- Toggle Button local toggleButton = Instance.new("TextButton") toggleButton.Name = "ToggleButton" toggleButton.Size = UDim2.new(1, -20, 0, 30) toggleButton.Position = UDim2.new(0, 10, 0, 35) toggleButton.BackgroundColor3 = Color3.new(1, 0, 0) toggleButton.BorderSizePixel = 0 toggleButton.Text = "Start Spam" toggleButton.TextColor3 = Color3.new(1, 1, 1) toggleButton.TextScaled = true toggleButton.Font = Enum.Font.SourceSans toggleButton.Parent = mainFrame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 6) buttonCorner.Parent = toggleButton -- Toggle Logic (instant) toggleButton.Activated:Connect(function() if isSpamming then stopSpamming() toggleButton.BackgroundColor3 = Color3.new(1, 0, 0) toggleButton.Text = "Start Spam" else startSpamming() toggleButton.BackgroundColor3 = Color3.new(0, 1, 0) toggleButton.Text = "Stop Spam" end end) -- Slider for Delay local sliderLabel = Instance.new("TextLabel") sliderLabel.Size = UDim2.new(1, -20, 0, 20) sliderLabel.Position = UDim2.new(0, 10, 0, 70) sliderLabel.BackgroundTransparency = 1 sliderLabel.Text = "Delay: 0.1s" sliderLabel.TextColor3 = Color3.new(1, 1, 1) sliderLabel.TextScaled = true sliderLabel.Font = Enum.Font.SourceSans sliderLabel.Parent = mainFrame local sliderFrame = Instance.new("Frame") sliderFrame.Name = "SliderFrame" sliderFrame.Size = UDim2.new(1, -20, 0, 20) sliderFrame.Position = UDim2.new(0, 10, 0, 90) sliderFrame.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3) sliderFrame.BorderSizePixel = 0 sliderFrame.Parent = mainFrame local sliderCorner = Instance.new("UICorner") sliderCorner.CornerRadius = UDim.new(0, 10) sliderCorner.Parent = sliderFrame local sliderKnob = Instance.new("Frame") sliderKnob.Name = "SliderKnob" sliderKnob.Size = UDim2.new(0, 20, 1, 0) sliderKnob.Position = UDim2.new(0.5, -10, 0, 0) -- Middle start (0.1s) sliderKnob.BackgroundColor3 = Color3.new(1, 1, 1) sliderKnob.BorderSizePixel = 0 sliderKnob.Parent = sliderFrame local knobCorner = Instance.new("UICorner") knobCorner.CornerRadius = UDim.new(0, 10) knobCorner.Parent = sliderKnob -- Slider Drag Logic (min 0.05, max 2.0) local sliderDragging = false local sliderDragStart = nil local sliderStartPos = nil local minDelay, maxDelay = 0.05, 2.0 sliderKnob.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then sliderDragging = true sliderDragStart = input.Position sliderStartPos = sliderKnob.Position end end) UserInputService.InputChanged:Connect(function(input) if sliderDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position.X - sliderDragStart.X local currentPos = sliderStartPos.X.Scale local newScale = math.clamp(currentPos + (delta / sliderFrame.AbsoluteSize.X), 0, 1) sliderKnob.Position = UDim2.new(newScale, -10, 0, 0) -- Map to delay spamInterval = minDelay + (newScale * (maxDelay - minDelay)) sliderLabel.Text = "Delay: " .. string.format("%.2f", spamInterval) .. "s" -- Restart if spamming if isSpamming then stopSpamming() startSpamming() end end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then sliderDragging = false end end) toggleGui = screenGui end -- 'Q' Key Fallback UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.Q then if isSpamming then stopSpamming() if toggleGui and toggleGui.MainFrame.ToggleButton then toggleGui.MainFrame.ToggleButton.BackgroundColor3 = Color3.new(1, 0, 0) toggleGui.MainFrame.ToggleButton.Text = "Start Spam" end else startSpamming() if toggleGui and toggleGui.MainFrame.ToggleButton then toggleGui.MainFrame.ToggleButton.BackgroundColor3 = Color3.new(0, 1, 0) toggleGui.MainFrame.ToggleButton.Text = "Stop Spam" end end end end) -- Load UI createUI() print("Draggable UI Spam script loaded! Drag frame to reposition (top-right default).")