Dark_Agent

Gamepass Script

Apr 26th, 2026
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local Players = game:GetService("Players")
  2. local TweenService = game:GetService("TweenService")
  3. local UserInputService = game:GetService("UserInputService")
  4. local MarketplaceService = game:GetService("MarketplaceService")
  5.  
  6. local player = Players.LocalPlayer
  7. local playerGui = player:WaitForChild("PlayerGui")
  8.  
  9. if playerGui:FindFirstChild("SeluwiaUI") then
  10. playerGui.SeluwiaUI:Destroy()
  11. end
  12.  
  13. local screenGui = Instance.new("ScreenGui")
  14. screenGui.Name = "SeluwiaUI"
  15. screenGui.ResetOnSpawn = false
  16. screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  17. screenGui.IgnoreGuiInset = true
  18. screenGui.Parent = playerGui
  19.  
  20. local isMobile = UserInputService.TouchEnabled
  21. local autoSpeed = 100 -- signals per second
  22.  
  23. -- Helper functions
  24. local function stroke(parent, color, thickness)
  25. local s = Instance.new("UIStroke", parent)
  26. s.Color = color or Color3.fromRGB(40, 40, 56)
  27. s.Thickness = thickness or 1
  28. return s
  29. end
  30.  
  31. local function corner(parent, radius)
  32. local c = Instance.new("UICorner", parent)
  33. c.CornerRadius = UDim.new(0, radius or 10)
  34. return c
  35. end
  36.  
  37. local function getTime()
  38. return os.date("%H:%M:%S")
  39. end
  40.  
  41. -- Scale UI for mobile
  42. local panelSize
  43. local fontSizeScale = isMobile and 0.8 or 1
  44. local buttonHeight = isMobile and 36 or 28
  45. local titleBarHeight = isMobile and 44 or 52
  46. local footerHeight = isMobile and 44 or 50
  47.  
  48. if isMobile then
  49. panelSize = UDim2.new(0.9, 0, 0.7, 0)
  50. else
  51. panelSize = UDim2.new(0, 760, 0, 520)
  52. end
  53.  
  54. local panel = Instance.new("Frame")
  55. panel.Name = "Panel"
  56. panel.Size = panelSize
  57. panel.Position = UDim2.new(0.5, -panelSize.X.Offset/2, 0.5, -panelSize.Y.Offset/2)
  58. if isMobile then
  59. panel.Position = UDim2.new(0.05, 0, 0.15, 0)
  60. end
  61. panel.BackgroundColor3 = Color3.fromRGB(10, 10, 12)
  62. panel.BorderSizePixel = 0
  63. panel.Parent = screenGui
  64. corner(panel, 16)
  65. stroke(panel, Color3.fromRGB(30, 30, 42), 1)
  66.  
  67. -- Resize handle (PC only)
  68. if not isMobile then
  69. local resizeHandle = Instance.new("Frame")
  70. resizeHandle.Name = "ResizeHandle"
  71. resizeHandle.Size = UDim2.new(0, 20, 0, 20)
  72. resizeHandle.Position = UDim2.new(1, -20, 1, -20)
  73. resizeHandle.AnchorPoint = Vector2.new(1, 1)
  74. resizeHandle.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
  75. resizeHandle.BorderSizePixel = 0
  76. resizeHandle.Parent = panel
  77. corner(resizeHandle, 4)
  78. stroke(resizeHandle, Color3.fromRGB(80, 80, 110), 1)
  79.  
  80. local resizing = false
  81. local resizeStartPos, startSize
  82. resizeHandle.InputBegan:Connect(function(input)
  83. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  84. resizing = true
  85. resizeStartPos = input.Position
  86. startSize = panel.AbsoluteSize
  87. end
  88. end)
  89. UserInputService.InputChanged:Connect(function(input)
  90. if resizing and input.UserInputType == Enum.UserInputType.MouseMovement then
  91. local delta = input.Position - resizeStartPos
  92. local newWidth = math.clamp(startSize.X + delta.X, 400, 1200)
  93. local newHeight = math.clamp(startSize.Y + delta.Y, 300, 800)
  94. panel.Size = UDim2.new(0, newWidth, 0, newHeight)
  95. end
  96. end)
  97. UserInputService.InputEnded:Connect(function(input)
  98. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  99. resizing = false
  100. end
  101. end)
  102. end
  103.  
  104. -- Dragging
  105. local dragging = false
  106. local dragStart, startPos
  107.  
  108. local function onInputBegan(input)
  109. if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and not resizing then
  110. dragging = true
  111. dragStart = input.Position
  112. startPos = panel.Position
  113. end
  114. end
  115.  
  116. local function onInputChanged(input)
  117. if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
  118. local delta = input.Position - dragStart
  119. panel.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  120. end
  121. end
  122.  
  123. local function onInputEnded(input)
  124. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  125. dragging = false
  126. end
  127. end
  128.  
  129. -- Title bar
  130. local titleBar = Instance.new("Frame")
  131. titleBar.Name = "TitleBar"
  132. titleBar.Size = UDim2.new(1, 0, 0, titleBarHeight)
  133. titleBar.BackgroundColor3 = Color3.fromRGB(13, 13, 17)
  134. titleBar.BorderSizePixel = 0
  135. titleBar.Parent = panel
  136. corner(titleBar, 16)
  137. stroke(titleBar, Color3.fromRGB(22, 22, 31), 1)
  138.  
  139. local titleFill = Instance.new("Frame")
  140. titleFill.Size = UDim2.new(1, 0, 0, 18)
  141. titleFill.Position = UDim2.new(0, 0, 1, -18)
  142. titleFill.BackgroundColor3 = Color3.fromRGB(13, 13, 17)
  143. titleFill.BorderSizePixel = 0
  144. titleFill.ZIndex = titleBar.ZIndex + 1
  145. titleFill.Parent = titleBar
  146.  
  147. titleBar.InputBegan:Connect(onInputBegan)
  148. UserInputService.InputChanged:Connect(onInputChanged)
  149. UserInputService.InputEnded:Connect(onInputEnded)
  150.  
  151. -- Live dot
  152. local liveDot = Instance.new("Frame")
  153. liveDot.Size = UDim2.new(0, 9, 0, 9)
  154. liveDot.Position = UDim2.new(0, 20, 0.5, -4)
  155. liveDot.BackgroundColor3 = Color3.fromRGB(61, 255, 160)
  156. liveDot.BorderSizePixel = 0
  157. liveDot.ZIndex = titleBar.ZIndex + 2
  158. liveDot.Parent = titleBar
  159. corner(liveDot, 999)
  160.  
  161. local liveLabel = Instance.new("TextLabel")
  162. liveLabel.Size = UDim2.new(0, 50, 0, 20)
  163. liveLabel.Position = UDim2.new(0, 34, 0.5, -10)
  164. liveLabel.BackgroundTransparency = 1
  165. liveLabel.Text = "LIVE"
  166. liveLabel.TextColor3 = Color3.fromRGB(61, 255, 160)
  167. liveLabel.TextSize = 11 * fontSizeScale
  168. liveLabel.Font = Enum.Font.GothamBold
  169. liveLabel.TextXAlignment = Enum.TextXAlignment.Left
  170. liveLabel.ZIndex = titleBar.ZIndex + 2
  171. liveLabel.Parent = titleBar
  172.  
  173. task.spawn(function()
  174. while screenGui.Parent do
  175. TweenService:Create(liveDot, TweenInfo.new(1), {Size = UDim2.new(0,11,0,11), Position = UDim2.new(0,19,0.5,-5)}):Play()
  176. task.wait(1)
  177. TweenService:Create(liveDot, TweenInfo.new(1), {Size = UDim2.new(0,9,0,9), Position = UDim2.new(0,20,0.5,-4)}):Play()
  178. task.wait(1)
  179. end
  180. end)
  181.  
  182. local titleText = Instance.new("TextLabel")
  183. titleText.Size = UDim2.new(0, 200, 1, 0)
  184. titleText.Position = UDim2.new(0.5, -100, 0, 0)
  185. titleText.BackgroundTransparency = 1
  186. titleText.Text = "SELUWIA"
  187. titleText.TextColor3 = Color3.fromRGB(210, 210, 228)
  188. titleText.TextSize = 14 * fontSizeScale
  189. titleText.Font = Enum.Font.GothamBold
  190. titleText.ZIndex = titleBar.ZIndex + 2
  191. titleText.Parent = titleBar
  192.  
  193. local clearBtn = Instance.new("TextButton")
  194. clearBtn.Size = UDim2.new(0, 76, 0, 30)
  195. clearBtn.Position = UDim2.new(1, -92, 0.5, -15)
  196. clearBtn.BackgroundColor3 = Color3.fromRGB(10, 10, 12)
  197. clearBtn.Text = "X Clear"
  198. clearBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
  199. clearBtn.TextSize = 11 * fontSizeScale
  200. clearBtn.Font = Enum.Font.GothamBold
  201. clearBtn.BorderSizePixel = 0
  202. clearBtn.ZIndex = titleBar.ZIndex + 3
  203. clearBtn.Parent = titleBar
  204. corner(clearBtn, 8)
  205. stroke(clearBtn, Color3.fromRGB(80, 28, 28), 1)
  206.  
  207. clearBtn.MouseEnter:Connect(function()
  208. clearBtn.BackgroundColor3 = Color3.fromRGB(28, 10, 10)
  209. end)
  210. clearBtn.MouseLeave:Connect(function()
  211. clearBtn.BackgroundColor3 = Color3.fromRGB(10, 10, 12)
  212. end)
  213.  
  214. -- Log area
  215. local logArea = Instance.new("ScrollingFrame")
  216. logArea.Name = "LogArea"
  217. logArea.Size = UDim2.new(1, -12, 1, -(titleBarHeight + footerHeight + 10))
  218. logArea.Position = UDim2.new(0, 6, 0, titleBarHeight + 6)
  219. logArea.BackgroundTransparency = 1
  220. logArea.BorderSizePixel = 0
  221. logArea.ScrollBarThickness = isMobile and 6 or 3
  222. logArea.ScrollBarImageColor3 = Color3.fromRGB(60, 60, 90)
  223. logArea.CanvasSize = UDim2.new(0, 0, 0, 0)
  224. logArea.AutomaticCanvasSize = Enum.AutomaticSize.Y
  225. logArea.Parent = panel
  226.  
  227. local listLayout = Instance.new("UIListLayout", logArea)
  228. listLayout.SortOrder = Enum.SortOrder.LayoutOrder
  229. listLayout.Padding = UDim.new(0, isMobile and 10 or 7)
  230. listLayout.VerticalAlignment = Enum.VerticalAlignment.Top
  231.  
  232. local logPad = Instance.new("UIPadding", logArea)
  233. logPad.PaddingTop = UDim.new(0, 8)
  234. logPad.PaddingBottom = UDim.new(0, 6)
  235. logPad.PaddingLeft = UDim.new(0, 4)
  236. logPad.PaddingRight = UDim.new(0, 4)
  237.  
  238. -- Footer
  239. local footer = Instance.new("Frame")
  240. footer.Size = UDim2.new(1, 0, 0, footerHeight)
  241. footer.Position = UDim2.new(0, 0, 1, -footerHeight)
  242. footer.BackgroundColor3 = Color3.fromRGB(13, 13, 17)
  243. footer.BorderSizePixel = 0
  244. footer.Parent = panel
  245. corner(footer, 16)
  246.  
  247. local footerFill = Instance.new("Frame")
  248. footerFill.Size = UDim2.new(1, 0, 0, 18)
  249. footerFill.BackgroundColor3 = Color3.fromRGB(13, 13, 17)
  250. footerFill.BorderSizePixel = 0
  251. footerFill.Parent = footer
  252.  
  253. local countLabel = Instance.new("TextLabel")
  254. countLabel.Size = UDim2.new(0, 160, 1, 0)
  255. countLabel.Position = UDim2.new(0, 20, 0, 0)
  256. countLabel.BackgroundTransparency = 1
  257. countLabel.Text = "0 events captured"
  258. countLabel.TextColor3 = Color3.fromRGB(160, 155, 200)
  259. countLabel.TextSize = 12 * fontSizeScale
  260. countLabel.Font = Enum.Font.Gotham
  261. countLabel.TextXAlignment = Enum.TextXAlignment.Left
  262. countLabel.ZIndex = footer.ZIndex + 1
  263. countLabel.Parent = footer
  264.  
  265. local settingsBtn = Instance.new("TextButton")
  266. settingsBtn.Size = UDim2.new(0, 50, 0, buttonHeight)
  267. settingsBtn.Position = UDim2.new(1, -90, 0.5, -buttonHeight/2)
  268. settingsBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  269. settingsBtn.Text = "SET"
  270. settingsBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  271. settingsBtn.TextSize = 11 * fontSizeScale
  272. settingsBtn.Font = Enum.Font.GothamBold
  273. settingsBtn.BorderSizePixel = 0
  274. settingsBtn.ZIndex = footer.ZIndex + 1
  275. settingsBtn.Parent = footer
  276. corner(settingsBtn, 7)
  277. stroke(settingsBtn, Color3.fromRGB(55, 50, 85), 1)
  278.  
  279. local stopAllBtn = Instance.new("TextButton")
  280. stopAllBtn.Size = UDim2.new(0, 80, 0, buttonHeight)
  281. stopAllBtn.Position = UDim2.new(1, -170, 0.5, -buttonHeight/2)
  282. stopAllBtn.BackgroundColor3 = Color3.fromRGB(35, 15, 15)
  283. stopAllBtn.Text = "Stop All"
  284. stopAllBtn.TextColor3 = Color3.fromRGB(255, 120, 120)
  285. stopAllBtn.TextSize = 11 * fontSizeScale
  286. stopAllBtn.Font = Enum.Font.GothamBold
  287. stopAllBtn.BorderSizePixel = 0
  288. stopAllBtn.ZIndex = footer.ZIndex + 1
  289. stopAllBtn.Parent = footer
  290. corner(stopAllBtn, 7)
  291. stroke(stopAllBtn, Color3.fromRGB(80, 30, 30), 1)
  292.  
  293. local closeBtn = Instance.new("TextButton")
  294. closeBtn.Size = UDim2.new(0, 26, 0, 26)
  295. closeBtn.Position = UDim2.new(1, -6, 0, -6)
  296. closeBtn.AnchorPoint = Vector2.new(1, 0)
  297. closeBtn.BackgroundColor3 = Color3.fromRGB(35, 12, 12)
  298. closeBtn.Text = "X"
  299. closeBtn.TextColor3 = Color3.fromRGB(255, 90, 90)
  300. closeBtn.TextSize = 17 * fontSizeScale
  301. closeBtn.Font = Enum.Font.GothamBold
  302. closeBtn.BorderSizePixel = 0
  303. closeBtn.ZIndex = 10
  304. closeBtn.Parent = panel
  305. corner(closeBtn, 999)
  306.  
  307. -- Settings window (toggle)
  308. local settingsWindow = nil
  309. local function toggleSettings()
  310. if settingsWindow then
  311. settingsWindow:Destroy()
  312. settingsWindow = nil
  313. else
  314. settingsWindow = Instance.new("Frame")
  315. settingsWindow.Name = "SettingsWindow"
  316. settingsWindow.Size = UDim2.new(0, 300, 0, 200)
  317. settingsWindow.Position = UDim2.new(0.5, -150, 0.5, -100)
  318. settingsWindow.BackgroundColor3 = Color3.fromRGB(13, 13, 17)
  319. settingsWindow.BorderSizePixel = 0
  320. settingsWindow.ZIndex = 50
  321. settingsWindow.Parent = screenGui
  322. corner(settingsWindow, 12)
  323. stroke(settingsWindow, Color3.fromRGB(30, 30, 45), 1)
  324.  
  325. local settingsTitleBar = Instance.new("Frame")
  326. settingsTitleBar.Size = UDim2.new(1, 0, 0, 40)
  327. settingsTitleBar.BackgroundColor3 = Color3.fromRGB(10, 10, 14)
  328. settingsTitleBar.BorderSizePixel = 0
  329. settingsTitleBar.ZIndex = 51
  330. settingsTitleBar.Parent = settingsWindow
  331. corner(settingsTitleBar, 12)
  332.  
  333. local settingsTitle = Instance.new("TextLabel")
  334. settingsTitle.Size = UDim2.new(1, -40, 1, 0)
  335. settingsTitle.Position = UDim2.new(0, 10, 0, 0)
  336. settingsTitle.BackgroundTransparency = 1
  337. settingsTitle.Text = "Settings"
  338. settingsTitle.TextColor3 = Color3.fromRGB(210, 210, 228)
  339. settingsTitle.TextSize = 14
  340. settingsTitle.Font = Enum.Font.GothamBold
  341. settingsTitle.TextXAlignment = Enum.TextXAlignment.Left
  342. settingsTitle.ZIndex = 52
  343. settingsTitle.Parent = settingsTitleBar
  344.  
  345. local closeSettingsBtn = Instance.new("TextButton")
  346. closeSettingsBtn.Size = UDim2.new(0, 24, 0, 24)
  347. closeSettingsBtn.Position = UDim2.new(1, -30, 0, 8)
  348. closeSettingsBtn.BackgroundColor3 = Color3.fromRGB(35, 12, 12)
  349. closeSettingsBtn.Text = "X"
  350. closeSettingsBtn.TextColor3 = Color3.fromRGB(255, 90, 90)
  351. closeSettingsBtn.TextSize = 14
  352. closeSettingsBtn.Font = Enum.Font.GothamBold
  353. closeSettingsBtn.BorderSizePixel = 0
  354. closeSettingsBtn.ZIndex = 52
  355. closeSettingsBtn.Parent = settingsTitleBar
  356. corner(closeSettingsBtn, 12)
  357. closeSettingsBtn.MouseButton1Click:Connect(function()
  358. if settingsWindow then
  359. settingsWindow:Destroy()
  360. settingsWindow = nil
  361. end
  362. end)
  363.  
  364. -- Drag settings window
  365. local dragStartPos, dragStartMouse
  366. local draggingSettings = false
  367. settingsTitleBar.InputBegan:Connect(function(input)
  368. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  369. draggingSettings = true
  370. dragStartPos = settingsWindow.Position
  371. dragStartMouse = input.Position
  372. end
  373. end)
  374. UserInputService.InputChanged:Connect(function(input)
  375. if draggingSettings and input.UserInputType == Enum.UserInputType.MouseMovement then
  376. local delta = input.Position - dragStartMouse
  377. settingsWindow.Position = UDim2.new(dragStartPos.X.Scale, dragStartPos.X.Offset + delta.X, dragStartPos.Y.Scale, dragStartPos.Y.Offset + delta.Y)
  378. end
  379. end)
  380. UserInputService.InputEnded:Connect(function(input)
  381. if input.UserInputType == Enum.UserInputType.MouseButton1 then
  382. draggingSettings = false
  383. end
  384. end)
  385.  
  386. local speedLabel = Instance.new("TextLabel")
  387. speedLabel.Size = UDim2.new(0, 140, 0, 30)
  388. speedLabel.Position = UDim2.new(0, 20, 0, 60)
  389. speedLabel.BackgroundTransparency = 1
  390. speedLabel.Text = "Signals per second:"
  391. speedLabel.TextColor3 = Color3.fromRGB(170, 165, 220)
  392. speedLabel.TextSize = 12
  393. speedLabel.Font = Enum.Font.Gotham
  394. speedLabel.TextXAlignment = Enum.TextXAlignment.Left
  395. speedLabel.ZIndex = 51
  396. speedLabel.Parent = settingsWindow
  397.  
  398. local speedBox = Instance.new("TextBox")
  399. speedBox.Size = UDim2.new(0, 100, 0, 30)
  400. speedBox.Position = UDim2.new(0, 170, 0, 60)
  401. speedBox.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  402. speedBox.Text = tostring(autoSpeed)
  403. speedBox.TextColor3 = Color3.fromRGB(210, 210, 228)
  404. speedBox.TextSize = 12
  405. speedBox.Font = Enum.Font.Gotham
  406. speedBox.BorderSizePixel = 0
  407. speedBox.ZIndex = 51
  408. speedBox.Parent = settingsWindow
  409. corner(speedBox, 6)
  410. stroke(speedBox, Color3.fromRGB(55, 50, 85), 1)
  411.  
  412. local speedHint = Instance.new("TextLabel")
  413. speedHint.Size = UDim2.new(0, 260, 0, 20)
  414. speedHint.Position = UDim2.new(0, 20, 0, 95)
  415. speedHint.BackgroundTransparency = 1
  416. speedHint.Text = "1 = slowest | 10000 = fastest | Default: 100"
  417. speedHint.TextColor3 = Color3.fromRGB(120, 120, 158)
  418. speedHint.TextSize = 10
  419. speedHint.Font = Enum.Font.Gotham
  420. speedHint.TextXAlignment = Enum.TextXAlignment.Left
  421. speedHint.ZIndex = 51
  422. speedHint.Parent = settingsWindow
  423.  
  424. local saveBtn = Instance.new("TextButton")
  425. saveBtn.Size = UDim2.new(0, 100, 0, 32)
  426. saveBtn.Position = UDim2.new(0.5, -50, 1, -45)
  427. saveBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 55)
  428. saveBtn.Text = "Save"
  429. saveBtn.TextColor3 = Color3.fromRGB(61, 255, 160)
  430. saveBtn.TextSize = 12
  431. saveBtn.Font = Enum.Font.GothamBold
  432. saveBtn.BorderSizePixel = 0
  433. saveBtn.ZIndex = 51
  434. saveBtn.Parent = settingsWindow
  435. corner(saveBtn, 7)
  436. stroke(saveBtn, Color3.fromRGB(45, 80, 60), 1)
  437.  
  438. local savedMsg = nil
  439. saveBtn.MouseButton1Click:Connect(function()
  440. local newSpeed = tonumber(speedBox.Text)
  441. if newSpeed then
  442. newSpeed = math.floor(newSpeed)
  443. if newSpeed >= 1 and newSpeed <= 10000 then
  444. autoSpeed = newSpeed
  445. speedBox.Text = tostring(autoSpeed)
  446. speedBox.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  447. if savedMsg then savedMsg:Destroy() end
  448. savedMsg = Instance.new("TextLabel")
  449. savedMsg.Size = UDim2.new(0, 100, 0, 20)
  450. savedMsg.Position = UDim2.new(0.5, -50, 1, -20)
  451. savedMsg.BackgroundTransparency = 1
  452. savedMsg.Text = "Saved!"
  453. savedMsg.TextColor3 = Color3.fromRGB(61, 255, 160)
  454. savedMsg.TextSize = 10
  455. savedMsg.Font = Enum.Font.GothamBold
  456. savedMsg.ZIndex = 52
  457. savedMsg.Parent = settingsWindow
  458. task.wait(1.5)
  459. if savedMsg then savedMsg:Destroy() end
  460. else
  461. speedBox.BackgroundColor3 = Color3.fromRGB(80, 30, 30)
  462. task.wait(0.5)
  463. speedBox.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  464. end
  465. else
  466. speedBox.BackgroundColor3 = Color3.fromRGB(80, 30, 30)
  467. task.wait(0.5)
  468. speedBox.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  469. end
  470. end)
  471. end
  472. end
  473.  
  474. settingsBtn.MouseButton1Click:Connect(toggleSettings)
  475.  
  476. -- Visibility toggles
  477. local uiVisible = true
  478. local reopenButton = nil
  479.  
  480. local function showGui()
  481. if not screenGui.Enabled then
  482. screenGui.Enabled = true
  483. uiVisible = true
  484. if reopenButton then reopenButton.Visible = false end
  485. end
  486. end
  487.  
  488. local function hideGui()
  489. if screenGui.Enabled then
  490. screenGui.Enabled = false
  491. uiVisible = false
  492. if isMobile then
  493. if not reopenButton or not reopenButton.Parent then
  494. reopenButton = Instance.new("TextButton")
  495. reopenButton.Size = UDim2.new(0, 56, 0, 56)
  496. reopenButton.Position = UDim2.new(1, -70, 1, -70)
  497. reopenButton.AnchorPoint = Vector2.new(1, 1)
  498. reopenButton.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  499. reopenButton.Text = "S"
  500. reopenButton.TextColor3 = Color3.fromRGB(210, 210, 228)
  501. reopenButton.TextSize = 24
  502. reopenButton.Font = Enum.Font.GothamBold
  503. reopenButton.BorderSizePixel = 0
  504. reopenButton.ZIndex = 100
  505. reopenButton.Parent = playerGui
  506. corner(reopenButton, 28)
  507. stroke(reopenButton, Color3.fromRGB(80, 70, 120), 1.5)
  508.  
  509. local dragStartPos, dragStartMouse
  510. reopenButton.InputBegan:Connect(function(input)
  511. if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
  512. dragStartPos = reopenButton.Position
  513. dragStartMouse = input.Position
  514. local moveConn, endConn
  515. moveConn = UserInputService.InputChanged:Connect(function(input2)
  516. if input2.UserInputType == input.UserInputType then
  517. local delta = input2.Position - dragStartMouse
  518. reopenButton.Position = UDim2.new(dragStartPos.X.Scale, dragStartPos.X.Offset + delta.X, dragStartPos.Y.Scale, dragStartPos.Y.Offset + delta.Y)
  519. end
  520. end)
  521. endConn = UserInputService.InputEnded:Connect(function(input2)
  522. if input2.UserInputType == input.UserInputType then
  523. moveConn:Disconnect()
  524. endConn:Disconnect()
  525. end
  526. end)
  527. end
  528. end)
  529.  
  530. reopenButton.MouseButton1Click:Connect(showGui)
  531. else
  532. reopenButton.Visible = true
  533. end
  534. end
  535. end
  536. end
  537.  
  538. closeBtn.MouseButton1Click:Connect(hideGui)
  539.  
  540. if not isMobile then
  541. UserInputService.InputBegan:Connect(function(input)
  542. if input.KeyCode == Enum.KeyCode.RightShift then
  543. if uiVisible then hideGui() else showGui() end
  544. end
  545. end)
  546. end
  547.  
  548. -- Log management
  549. local eventCount = 0
  550. local entries = {}
  551. local suppressCounter = 0
  552.  
  553. local function fireFakeSignal(signalType, id)
  554. suppressCounter = suppressCounter + 1
  555. pcall(function()
  556. if signalType == "Product" then
  557. MarketplaceService:SignalPromptProductPurchaseFinished(player.UserId, id, true)
  558. elseif signalType == "Gamepass" then
  559. MarketplaceService:SignalPromptGamePassPurchaseFinished(player, id, true)
  560. elseif signalType == "Bulk" then
  561. MarketplaceService:SignalPromptBulkPurchaseFinished(player.UserId, id, true)
  562. elseif signalType == "Purchase" then
  563. MarketplaceService:SignalPromptPurchaseFinished(player.UserId, id, true)
  564. end
  565. end)
  566. suppressCounter = suppressCounter - 1
  567. end
  568.  
  569. local function makeEmptyLabel()
  570. local el = Instance.new("TextLabel")
  571. el.Name = "EmptyState"
  572. el.Size = UDim2.new(1, 0, 0, 260)
  573. el.BackgroundTransparency = 1
  574. el.Text = "Waiting for events…\nAll marketplace events will appear here."
  575. el.TextColor3 = Color3.fromRGB(120, 120, 158)
  576. el.TextSize = 13 * fontSizeScale
  577. el.Font = Enum.Font.Gotham
  578. el.TextWrapped = true
  579. el.LayoutOrder = 99999
  580. el.Parent = logArea
  581. return el
  582. end
  583.  
  584. local function setEmpty(show)
  585. local e = logArea:FindFirstChild("EmptyState")
  586. if show and not e then
  587. makeEmptyLabel()
  588. elseif not show and e then
  589. e:Destroy()
  590. end
  591. end
  592.  
  593. local activeAutoButtons = {}
  594. local activeSpamButtons = {}
  595.  
  596. local function stopAllAutoAndSpam()
  597. for btn, data in pairs(activeAutoButtons) do
  598. data.active = false
  599. if data.loop then task.cancel(data.loop) end
  600. if btn and btn.Parent then
  601. btn.Text = "Auto"
  602. btn.TextColor3 = Color3.fromRGB(170, 165, 220)
  603. btn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  604. end
  605. end
  606. table.clear(activeAutoButtons)
  607. for btn, data in pairs(activeSpamButtons) do
  608. data.active = false
  609. if data.loop then task.cancel(data.loop) end
  610. if btn and btn.Parent then
  611. btn.Text = "Run"
  612. btn.TextColor3 = Color3.fromRGB(170, 165, 220)
  613. btn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  614. end
  615. end
  616. table.clear(activeSpamButtons)
  617. end
  618.  
  619. stopAllBtn.MouseButton1Click:Connect(stopAllAutoAndSpam)
  620.  
  621. local function addLog(label, id, signalType)
  622. if suppressCounter > 0 then return end
  623. setEmpty(false)
  624. local entryHeight = isMobile and 56 or 46
  625. local entry = Instance.new("Frame")
  626. entry.Size = UDim2.new(1, -2, 0, entryHeight)
  627. entry.BackgroundColor3 = Color3.fromRGB(17, 17, 24)
  628. entry.BorderSizePixel = 0
  629. entry.LayoutOrder = -(eventCount)
  630. entry.Parent = logArea
  631. corner(entry, 10)
  632. stroke(entry, Color3.fromRGB(48, 46, 70), 1)
  633. entry.BackgroundTransparency = 1
  634. TweenService:Create(entry, TweenInfo.new(0.18), {BackgroundTransparency = 0}):Play()
  635.  
  636. local dot = Instance.new("Frame")
  637. dot.Size = UDim2.new(0, 8, 0, 8)
  638. dot.Position = UDim2.new(0, 14, 0.5, -4)
  639. dot.BackgroundColor3 = Color3.fromRGB(61, 255, 160)
  640. dot.BorderSizePixel = 0
  641. dot.Parent = entry
  642. corner(dot, 999)
  643.  
  644. local lbl = Instance.new("TextLabel")
  645. lbl.Size = UDim2.new(0, 76, 1, 0)
  646. lbl.Position = UDim2.new(0, 28, 0, 0)
  647. lbl.BackgroundTransparency = 1
  648. lbl.Text = string.upper(label)
  649. lbl.TextColor3 = Color3.fromRGB(160, 150, 210)
  650. lbl.TextSize = 10 * fontSizeScale
  651. lbl.Font = Enum.Font.GothamBold
  652. lbl.TextXAlignment = Enum.TextXAlignment.Left
  653. lbl.Parent = entry
  654.  
  655. local idEl = Instance.new("TextLabel")
  656. idEl.Size = UDim2.new(0, 200, 1, 0)
  657. idEl.Position = UDim2.new(0, 108, 0, 0)
  658. idEl.BackgroundTransparency = 1
  659. idEl.Text = tostring(id)
  660. idEl.TextColor3 = Color3.fromRGB(220, 220, 240)
  661. idEl.TextSize = 14 * fontSizeScale
  662. idEl.Font = Enum.Font.GothamBold
  663. idEl.TextXAlignment = Enum.TextXAlignment.Left
  664. idEl.TextTruncate = Enum.TextTruncate.AtEnd
  665. idEl.Parent = entry
  666.  
  667. local timeEl = Instance.new("TextLabel")
  668. timeEl.Size = UDim2.new(0, 70, 1, 0)
  669. timeEl.Position = UDim2.new(0, 320, 0, 0)
  670. timeEl.BackgroundTransparency = 1
  671. timeEl.Text = getTime()
  672. timeEl.TextColor3 = Color3.fromRGB(140, 135, 180)
  673. timeEl.TextSize = 11 * fontSizeScale
  674. timeEl.Font = Enum.Font.Gotham
  675. timeEl.Parent = entry
  676.  
  677. local buttonFrame = Instance.new("Frame")
  678. buttonFrame.Size = UDim2.new(0, 200, 1, 0)
  679. buttonFrame.Position = UDim2.new(1, -200, 0, 0)
  680. buttonFrame.BackgroundTransparency = 1
  681. buttonFrame.Parent = entry
  682.  
  683. local autoBtn = Instance.new("TextButton")
  684. autoBtn.Size = UDim2.new(0, 56, 0, buttonHeight)
  685. autoBtn.Position = UDim2.new(0, 0, 0.5, -buttonHeight/2)
  686. autoBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  687. autoBtn.Text = "Auto"
  688. autoBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  689. autoBtn.TextSize = 11 * fontSizeScale
  690. autoBtn.Font = Enum.Font.GothamBold
  691. autoBtn.BorderSizePixel = 0
  692. autoBtn.Parent = buttonFrame
  693. corner(autoBtn, 7)
  694. stroke(autoBtn, Color3.fromRGB(55, 50, 85), 1)
  695.  
  696. local copyBtn = Instance.new("TextButton")
  697. copyBtn.Size = UDim2.new(0, 56, 0, buttonHeight)
  698. copyBtn.Position = UDim2.new(0, 62, 0.5, -buttonHeight/2)
  699. copyBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  700. copyBtn.Text = "Copy"
  701. copyBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  702. copyBtn.TextSize = 11 * fontSizeScale
  703. copyBtn.Font = Enum.Font.GothamBold
  704. copyBtn.BorderSizePixel = 0
  705. copyBtn.Parent = buttonFrame
  706. corner(copyBtn, 7)
  707. stroke(copyBtn, Color3.fromRGB(55, 50, 85), 1)
  708.  
  709. local runBtn = Instance.new("TextButton")
  710. runBtn.Size = UDim2.new(0, 52, 0, buttonHeight)
  711. runBtn.Position = UDim2.new(0, 124, 0.5, -buttonHeight/2)
  712. runBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  713. runBtn.Text = "Run"
  714. runBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  715. runBtn.TextSize = 11 * fontSizeScale
  716. runBtn.Font = Enum.Font.GothamBold
  717. runBtn.BorderSizePixel = 0
  718. runBtn.Parent = buttonFrame
  719. corner(runBtn, 7)
  720. stroke(runBtn, Color3.fromRGB(55, 50, 85), 1)
  721.  
  722. copyBtn.MouseEnter:Connect(function()
  723. copyBtn.TextColor3 = Color3.fromRGB(190, 180, 255)
  724. copyBtn.BackgroundColor3 = Color3.fromRGB(22, 18, 40)
  725. end)
  726. copyBtn.MouseLeave:Connect(function()
  727. if copyBtn.Text ~= "Copied!" then
  728. copyBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  729. copyBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  730. end
  731. end)
  732. copyBtn.MouseButton1Click:Connect(function()
  733. pcall(setclipboard, tostring(id))
  734. copyBtn.Text = "Copied!"
  735. copyBtn.TextColor3 = Color3.fromRGB(200, 190, 255)
  736. task.wait(1.5)
  737. copyBtn.Text = "Copy"
  738. copyBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  739. copyBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  740. end)
  741.  
  742. local autoActive = false
  743. local autoLoop = nil
  744. local function startAuto()
  745. if autoActive then return end
  746. autoActive = true
  747. autoBtn.Text = "Auto ON"
  748. autoBtn.TextColor3 = Color3.fromRGB(255, 100, 100)
  749. autoBtn.BackgroundColor3 = Color3.fromRGB(40, 15, 15)
  750. autoLoop = task.spawn(function()
  751. local delay = autoSpeed > 0 and (1 / autoSpeed) or 0.01
  752. while autoActive and autoBtn.Parent do
  753. fireFakeSignal(signalType, id)
  754. task.wait(delay)
  755. end
  756. end)
  757. activeAutoButtons[autoBtn] = {active = true, loop = autoLoop}
  758. end
  759. local function stopAuto()
  760. autoActive = false
  761. if autoLoop then task.cancel(autoLoop) end
  762. activeAutoButtons[autoBtn] = nil
  763. if autoBtn.Parent then
  764. autoBtn.Text = "Auto"
  765. autoBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  766. autoBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  767. end
  768. end
  769. autoBtn.MouseButton1Click:Connect(function()
  770. if autoActive then stopAuto() else startAuto() end
  771. end)
  772.  
  773. local holdStart = nil
  774. local holdConnection = nil
  775. local spamLoop = nil
  776. local isSpamming = false
  777. local function startSpam()
  778. if isSpamming then return end
  779. isSpamming = true
  780. runBtn.Text = "Spamming..."
  781. runBtn.TextColor3 = Color3.fromRGB(255, 200, 0)
  782. spamLoop = task.spawn(function()
  783. while isSpamming and runBtn.Parent do
  784. fireFakeSignal(signalType, id)
  785. task.wait(0.1)
  786. end
  787. end)
  788. activeSpamButtons[runBtn] = {active = true, loop = spamLoop}
  789. end
  790. local function stopSpam()
  791. isSpamming = false
  792. if spamLoop then task.cancel(spamLoop) end
  793. activeSpamButtons[runBtn] = nil
  794. if runBtn.Parent then
  795. runBtn.Text = "Run"
  796. runBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  797. runBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  798. end
  799. end
  800.  
  801. -- Use InputBegan/InputEnded for both mouse and touch
  802. local function onRunPress()
  803. if isSpamming then return end
  804. holdStart = tick()
  805. holdConnection = task.spawn(function()
  806. while holdStart and (tick() - holdStart) < 3 do
  807. task.wait(0.1)
  808. end
  809. if holdStart and not isSpamming then
  810. startSpam()
  811. end
  812. end)
  813. end
  814.  
  815. local function onRunRelease()
  816. local heldDuration = holdStart and (tick() - holdStart) or 0
  817. holdStart = nil
  818. if holdConnection then task.cancel(holdConnection) end
  819. if isSpamming then
  820. stopSpam()
  821. elseif heldDuration < 3 then
  822. fireFakeSignal(signalType, id)
  823. runBtn.Text = "Sent!"
  824. runBtn.TextColor3 = Color3.fromRGB(61, 255, 160)
  825. task.wait(1.5)
  826. if runBtn.Parent then
  827. runBtn.Text = "Run"
  828. runBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  829. end
  830. end
  831. end
  832.  
  833. runBtn.InputBegan:Connect(function(input)
  834. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  835. onRunPress()
  836. end
  837. end)
  838. runBtn.InputEnded:Connect(function(input)
  839. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  840. onRunRelease()
  841. end
  842. end)
  843.  
  844. runBtn.MouseEnter:Connect(function()
  845. if not isSpamming then
  846. runBtn.TextColor3 = Color3.fromRGB(61, 255, 160)
  847. runBtn.BackgroundColor3 = Color3.fromRGB(10, 22, 18)
  848. end
  849. end)
  850. runBtn.MouseLeave:Connect(function()
  851. if not isSpamming and runBtn.Text == "Run" then
  852. runBtn.TextColor3 = Color3.fromRGB(170, 165, 220)
  853. runBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
  854. end
  855. end)
  856.  
  857. entry.AncestryChanged:Connect(function()
  858. if not entry.Parent then
  859. if autoActive then stopAuto() end
  860. if isSpamming then stopSpam() end
  861. for i, e in ipairs(entries) do
  862. if e == entry then
  863. table.remove(entries, i)
  864. break
  865. end
  866. end
  867. end
  868. end)
  869.  
  870. eventCount = eventCount + 1
  871. countLabel.Text = eventCount .. (eventCount == 1 and " event captured" or " events captured")
  872. table.insert(entries, entry)
  873. end
  874.  
  875. clearBtn.MouseButton1Click:Connect(function()
  876. stopAllAutoAndSpam()
  877. for _, e in ipairs(entries) do
  878. e:Destroy()
  879. end
  880. entries = {}
  881. eventCount = 0
  882. countLabel.Text = "0 events captured"
  883. setEmpty(true)
  884. end)
  885.  
  886. MarketplaceService.PromptProductPurchaseFinished:Connect(function(plr, id, bought)
  887. if suppressCounter == 0 then addLog("Product", id, "Product") end
  888. end)
  889. MarketplaceService.PromptGamePassPurchaseFinished:Connect(function(plr, id, bought)
  890. if suppressCounter == 0 then addLog("Gamepass", id, "Gamepass") end
  891. end)
  892. MarketplaceService.PromptBulkPurchaseFinished:Connect(function(userId, id, bought)
  893. if suppressCounter == 0 then addLog("Bulk", id, "Bulk") end
  894. end)
  895. MarketplaceService.PromptPurchaseFinished:Connect(function(userId, id, bought)
  896. if suppressCounter == 0 then addLog("Purchase", id, "Purchase") end
  897. end)
  898.  
  899. setEmpty(true)
Add Comment
Please, Sign In to add comment