local Players = game:GetService("Players") local TextChatService = game:GetService("TextChatService") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer -- ScreenGui local gui = Instance.new("ScreenGui") gui.Parent = player:WaitForChild("PlayerGui") -- 🔲 Main draggable frame local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 380, 0, 160) frame.Position = UDim2.new(0.5, -190, 0.5, -80) -- CENTER frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) frame.BorderSizePixel = 0 frame.Parent = gui frame.Active = true -- 🌈 Rainbow title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 35) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Text = "SaMDeV Spammer" title.Font = Enum.Font.GothamBold title.TextScaled = true title.Parent = frame -- Rainbow animation (GUI ONLY) local hue = 0 RunService.RenderStepped:Connect(function() hue = (hue + 0.005) % 1 title.TextColor3 = Color3.fromHSV(hue, 1, 1) end) -- TextBox local box = Instance.new("TextBox") box.Size = UDim2.new(1, -20, 0, 35) box.Position = UDim2.new(0, 10, 0, 45) box.PlaceholderText = "TextBox value" box.ClearTextOnFocus = false box.TextScaled = true box.Parent = frame -- Button local button = Instance.new("TextButton") button.Size = UDim2.new(1, -20, 0, 35) button.Position = UDim2.new(0, 10, 0, 90) button.Text = "Start / Stop" button.TextScaled = true button.Parent = frame -- 🖱 DRAGGING LOGIC local dragging = false local dragStart local startPos local function updateDrag(input) 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 frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) frame.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then updateDrag(input) end end) -- OLD PATTERN local pattern = "-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_--_-_-_-_-_--_-_-_-_--_-_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_--_-_-_-_-_-_-_-_--__-_-_-_-_-__--_-___---_-_-_(TextBox) " -- WORD LIST (ALL) local words = { "CUD","Tmr","Tmkx","Pgl","CXUD","6kka","Marja","TML","MC", "Bkl","Tmkb","Lole","Lwde","Hijda","Chalka", "Gnd","Lan","Beti","Xud","Gmdu","Ma Xuda","Ro","Khtm","Nanga", "SamDeV Script" } local spamming = false local DEFAULT_DELAY = 1 local COOLDOWN_DELAY = 3 button.MouseButton1Click:Connect(function() spamming = not spamming button.Text = spamming and "Stop" or "Start" task.spawn(function() while spamming do for i = 1, #words do if not spamming then break end local sent = false local message = pattern:gsub("%(TextBox%)", box.Text) .. words[i] while not sent and spamming do local success = pcall(function() TextChatService.TextChannels.RBXGeneral:SendAsync(message) end) if success then sent = true task.wait(DEFAULT_DELAY) else -- rate-limited → retry SAME message task.wait(COOLDOWN_DELAY) end end end end end) end)