--// Services local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local plr = Players.LocalPlayer local playerGui = plr:WaitForChild("PlayerGui") -- Remote for step spam local stepRemote = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("StepTaken") local STEP_ARGS = { math.huge, false } -- ============================================= -- TELEPORT TARGET POSITION -- ============================================= local TELEPORT_POS = Vector3.new(-0.000005638768925564364, 3.5, -9076) -- NOTE: collider is NOT resolved here at the top. -- Button15 doesn't exist yet until we teleport near it. -- It will be resolved AFTER teleporting inside setRunning(). local collider = nil --// GUI local gui = Instance.new("ScreenGui") gui.Name = "TouchSpamGui" gui.ResetOnSpawn = false gui.Parent = playerGui local frame = Instance.new("Frame") frame.Name = "MainFrame" frame.Size = UDim2.new(0, 220, 0, 90) frame.Position = UDim2.new(0.5, -110, 0.5, -45) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = gui local topBar = Instance.new("Frame") topBar.Size = UDim2.new(1, 0, 0, 24) topBar.BackgroundColor3 = Color3.fromRGB(40, 40, 40) topBar.BorderSizePixel = 0 topBar.Parent = frame local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -48, 1, 0) title.Position = UDim2.new(0, 6, 0, 0) title.BackgroundTransparency = 1 title.Font = Enum.Font.SourceSansBold title.TextSize = 16 title.TextXAlignment = Enum.TextXAlignment.Left title.TextColor3 = Color3.new(1, 1, 1) title.Text = "ReturnButton Spam" title.Parent = topBar local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 24, 1, 0) closeBtn.Position = UDim2.new(1, -24, 0, 0) closeBtn.BackgroundTransparency = 1 closeBtn.Font = Enum.Font.SourceSansBold closeBtn.TextSize = 18 closeBtn.TextColor3 = Color3.new(1, 0.3, 0.3) closeBtn.Text = "X" closeBtn.Parent = topBar local minBtn = Instance.new("TextButton") minBtn.Size = UDim2.new(0, 24, 1, 0) minBtn.Position = UDim2.new(1, -48, 0, 0) minBtn.BackgroundTransparency = 1 minBtn.Font = Enum.Font.SourceSansBold minBtn.TextSize = 18 minBtn.TextColor3 = Color3.new(1, 1, 1) minBtn.Text = "-" minBtn.Parent = topBar local content = Instance.new("Frame") content.Size = UDim2.new(1, -12, 1, -32) content.Position = UDim2.new(0, 6, 0, 28) content.BackgroundTransparency = 1 content.Parent = frame local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1, 0, 0, 20) statusLabel.Position = UDim2.new(0, 0, 0, 0) statusLabel.BackgroundTransparency = 1 statusLabel.Font = Enum.Font.SourceSans statusLabel.TextSize = 14 statusLabel.TextXAlignment = Enum.TextXAlignment.Left statusLabel.TextColor3 = Color3.fromRGB(200, 200, 200) statusLabel.Text = "Status: Idle" statusLabel.Parent = content local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(1, 0, 0, 28) toggleBtn.Position = UDim2.new(0, 0, 0, 26) toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 120, 60) toggleBtn.BorderSizePixel = 0 toggleBtn.Font = Enum.Font.SourceSansBold toggleBtn.TextSize = 16 toggleBtn.TextColor3 = Color3.new(1, 1, 1) toggleBtn.Text = "Start" toggleBtn.Parent = content --// Logic local running = false local function getHRP() local char = plr.Character or plr.CharacterAdded:Wait() return char:FindFirstChild("HumanoidRootPart") end local function teleportToTarget(hrp) hrp.CFrame = CFrame.new(TELEPORT_POS) end -- ============================================= -- RESOLVE COLLIDER AFTER TELEPORT -- Tries to find Button15 > Collider with retries. -- Returns the collider instance or nil on timeout. -- ============================================= local function resolveCollider() statusLabel.Text = "Status: Finding Button15..." statusLabel.TextColor3 = Color3.fromRGB(220, 180, 50) local retries = 0 local maxRetries = 20 -- 20 × 0.25s = 5 seconds max wait while retries < maxRetries do local returnButtons = workspace:FindFirstChild("ReturnButtons") if returnButtons then local btn15 = returnButtons:FindFirstChild("Button15") if btn15 then local col = btn15:FindFirstChild("Collider") if col then statusLabel.Text = "Status: Collider found!" statusLabel.TextColor3 = Color3.fromRGB(100, 220, 100) task.wait(0.2) return col end end end retries += 1 task.wait(0.25) end -- Failed to find collider after all retries statusLabel.Text = "Status: Button15 not found!" statusLabel.TextColor3 = Color3.fromRGB(220, 80, 80) return nil end local function setRunning(on) if running == on then return end running = on toggleBtn.Text = running and "Stop" or "Start" toggleBtn.BackgroundColor3 = running and Color3.fromRGB(150, 70, 70) or Color3.fromRGB(60, 120, 60) if running then task.spawn(function() local hrp = getHRP() if not hrp then running = false toggleBtn.Text = "Start" toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 120, 60) statusLabel.Text = "Status: No HRP found" return end -- ============================================= -- STEP 1: Teleport to the Button15 area FIRST -- so the game streams/activates that region -- ============================================= statusLabel.Text = "Status: Teleporting..." statusLabel.TextColor3 = Color3.fromRGB(100, 180, 255) teleportToTarget(hrp) -- Wait for the area to stream in after teleport task.wait(1.5) -- ============================================= -- STEP 2: Now resolve the collider reference -- AFTER we are physically in the area -- ============================================= collider = resolveCollider() if not collider then -- Could not find it — abort running = false toggleBtn.Text = "Start" toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 120, 60) return end statusLabel.Text = "Status: Spamming" statusLabel.TextColor3 = Color3.fromRGB(200, 200, 200) -- ============================================= -- STEP 3: Spam loop -- ============================================= while running do hrp = getHRP() if hrp and collider then pcall(function() teleportToTarget(hrp) end) task.wait(0.05) pcall(function() firetouchinterest(collider, hrp, 0) firetouchinterest(collider, hrp, 1) end) pcall(function() stepRemote:FireServer(unpack(STEP_ARGS)) end) end task.wait(0.01) end statusLabel.Text = "Status: Idle" statusLabel.TextColor3 = Color3.fromRGB(200, 200, 200) end) else statusLabel.Text = "Status: Idle" statusLabel.TextColor3 = Color3.fromRGB(200, 200, 200) end end toggleBtn.MouseButton1Click:Connect(function() setRunning(not running) end) closeBtn.MouseButton1Click:Connect(function() running = false gui:Destroy() end) local minimized = false minBtn.MouseButton1Click:Connect(function() minimized = not minimized content.Visible = not minimized frame.Size = minimized and UDim2.new(0, 220, 0, 24) or UDim2.new(0, 220, 0, 90) end)