-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- Advanced Chat Spammer v2.5 (Pink Unload Button) -- LocalScript: StarterPlayer > StarterPlayerScripts local Players = game:GetService("Players") local CoreGui = game:GetService("CoreGui") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local player = Players.LocalPlayer -------------------------------------------------- -- GUI CREATION -------------------------------------------------- local gui = Instance.new("ScreenGui") gui.Name = "AdvancedChatSpammerUI" gui.ResetOnSpawn = false gui.Parent = CoreGui:FindFirstChild("RobloxGui") or player:WaitForChild("PlayerGui") local main = Instance.new("Frame") main.Size = UDim2.new(0, 380, 0, 485) main.Position = UDim2.new(0.5, -190, 0.5, -242.5) main.BackgroundColor3 = Color3.fromRGB(15, 11, 20) main.BorderSizePixel = 0 main.ClipsDescendants = true main.Parent = gui -- Opening Animation main.Size = UDim2.new(0, 0, 0, 0) main.Position = UDim2.new(0.5, 0, 0.5, 0) TweenService:Create(main, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Size = UDim2.new(0, 380, 0, 485), Position = UDim2.new(0.5, -190, 0.5, -242.5) }):Play() local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 16) mainCorner.Parent = main local mainStroke = Instance.new("UIStroke") mainStroke.Color = Color3.fromRGB(180, 100, 255) mainStroke.Thickness = 1.5 mainStroke.Transparency = 0.2 mainStroke.Parent = main -------------------------------------------------- -- HEADER -------------------------------------------------- local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 42) header.BackgroundColor3 = Color3.fromRGB(22, 16, 30) header.BorderSizePixel = 0 header.Parent = main local headerCorner = Instance.new("UICorner") headerCorner.CornerRadius = UDim.new(0, 16) headerCorner.Parent = header local title = Instance.new("TextLabel") title.Size = UDim2.new(0, 150, 1, 0) title.Position = UDim2.new(0, 15, 0, 0) title.BackgroundTransparency = 1 title.Text = "CHAT SPAMMER" title.RichText = true title.Font = Enum.Font.GothamBold title.TextSize = 13 title.TextColor3 = Color3.new(1, 1, 1) title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header -- MINIMIZE BUTTON (Placed cleanly next to title) local minimizeBtn = Instance.new("TextButton") minimizeBtn.Size = UDim2.new(0, 26, 0, 26) minimizeBtn.Position = UDim2.new(0, 168, 0.5, -13) minimizeBtn.BackgroundColor3 = Color3.fromRGB(32, 20, 45) minimizeBtn.Text = "-" minimizeBtn.Font = Enum.Font.GothamBold minimizeBtn.TextSize = 14 minimizeBtn.TextColor3 = Color3.fromRGB(180, 100, 255) minimizeBtn.Parent = header local minCorner = Instance.new("UICorner") minCorner.CornerRadius = UDim.new(0, 6) minCorner.Parent = minimizeBtn local minStroke = Instance.new("UIStroke") minStroke.Color = Color3.fromRGB(130, 60, 200) minStroke.Thickness = 1 minStroke.Transparency = 0.5 minStroke.Parent = minimizeBtn -- CREDITS LABEL (Moved safely to the right) local credit = Instance.new("TextLabel") credit.Size = UDim2.new(0, 120, 1, 0) credit.Position = UDim2.new(1, -130, 0, 0) credit.BackgroundTransparency = 1 credit.Text = "by veryvare" credit.Font = Enum.Font.GothamMedium credit.TextSize = 10 credit.TextColor3 = Color3.fromRGB(130, 100, 160) credit.TextXAlignment = Enum.TextXAlignment.Right credit.Parent = header -- Dragging functionality local dragging, dragStart, startPosition header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPosition = main.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart main.Position = UDim2.new(startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) -------------------------------------------------- -- CONTENT CONTAINER -------------------------------------------------- local contentContainer = Instance.new("Frame") contentContainer.Size = UDim2.new(1, 0, 1, -42) contentContainer.Position = UDim2.new(0, 0, 0, 42) contentContainer.BackgroundTransparency = 1 contentContainer.Parent = main -- CUSTOM MESSAGE INPUT BOX local chatInput = Instance.new("TextBox") chatInput.Size = UDim2.new(1, -100, 0, 36) chatInput.Position = UDim2.new(0, 15, 0, 15) chatInput.BackgroundColor3 = Color3.fromRGB(22, 16, 30) chatInput.PlaceholderText = "Type message to save..." chatInput.PlaceholderColor3 = Color3.fromRGB(110, 90, 130) chatInput.Text = "" chatInput.Font = Enum.Font.GothamMedium chatInput.TextSize = 12 chatInput.TextColor3 = Color3.fromRGB(255, 255, 255) chatInput.Parent = contentContainer local inputCorner = Instance.new("UICorner") inputCorner.CornerRadius = UDim.new(0, 8) inputCorner.Parent = chatInput local inputStroke = Instance.new("UIStroke") inputStroke.Color = Color3.fromRGB(60, 40, 80) inputStroke.Thickness = 1 inputStroke.Parent = chatInput -- SAVE BUTTON local saveBtn = Instance.new("TextButton") saveBtn.Size = UDim2.new(0, 70, 0, 36) saveBtn.Position = UDim2.new(1, -85, 0, 15) saveBtn.BackgroundColor3 = Color3.fromRGB(30, 20, 42) saveBtn.Text = "SAVE" saveBtn.Font = Enum.Font.GothamBold saveBtn.TextSize = 11 saveBtn.TextColor3 = Color3.fromRGB(180, 100, 255) saveBtn.Parent = contentContainer local saveCorner = Instance.new("UICorner") saveCorner.CornerRadius = UDim.new(0, 8) saveCorner.Parent = saveBtn local saveStroke = Instance.new("UIStroke") saveStroke.Color = Color3.fromRGB(130, 60, 200) saveStroke.Thickness = 1 saveStroke.Transparency = 0.5 saveStroke.Parent = saveBtn -- SAVED MESSAGES LIST (SCROLLING FRAME) local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Size = UDim2.new(1, -30, 0, 110) scrollFrame.Position = UDim2.new(0, 15, 0, 62) scrollFrame.BackgroundTransparency = 1 scrollFrame.BorderSizePixel = 0 scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0) scrollFrame.ScrollBarThickness = 4 scrollFrame.ScrollBarImageColor3 = Color3.fromRGB(180, 100, 255) scrollFrame.Parent = contentContainer local uiLayout = Instance.new("UIListLayout") uiLayout.SortOrder = Enum.SortOrder.LayoutOrder uiLayout.Padding = UDim.new(0, 6) uiLayout.Parent = scrollFrame uiLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scrollFrame.CanvasSize = UDim2.new(0, 0, 0, uiLayout.AbsoluteContentSize.Y) end) -- CURRENT SELECTED MESSAGE DISPLAY local selectedLabel = Instance.new("TextLabel") selectedLabel.Size = UDim2.new(1, -30, 0, 24) selectedLabel.Position = UDim2.new(0, 15, 0, 182) selectedLabel.BackgroundColor3 = Color3.fromRGB(22, 16, 30) selectedLabel.Text = "Selected: None" selectedLabel.Font = Enum.Font.GothamMedium selectedLabel.TextSize = 11 selectedLabel.TextColor3 = Color3.fromRGB(200, 150, 255) selectedLabel.Parent = contentContainer local statusCorner = Instance.new("UICorner") statusCorner.CornerRadius = UDim.new(0, 8) statusCorner.Parent = selectedLabel local statusStroke = Instance.new("UIStroke") statusStroke.Color = Color3.fromRGB(60, 40, 80) statusStroke.Thickness = 1 statusStroke.Parent = selectedLabel -- SEND MESSAGE BUTTON local sendBtn = Instance.new("TextButton") sendBtn.Size = UDim2.new(1, -30, 0, 30) sendBtn.Position = UDim2.new(0, 15, 0, 212) sendBtn.BackgroundColor3 = Color3.fromRGB(30, 20, 42) sendBtn.Text = "SEND ONCE" sendBtn.Font = Enum.Font.GothamBold sendBtn.TextSize = 11 sendBtn.TextColor3 = Color3.fromRGB(180, 100, 255) sendBtn.Parent = contentContainer local sendCorner = Instance.new("UICorner") sendCorner.CornerRadius = UDim.new(0, 8) sendCorner.Parent = sendBtn local sendStroke = Instance.new("UIStroke") sendStroke.Color = Color3.fromRGB(130, 60, 200) sendStroke.Thickness = 1 sendStroke.Transparency = 0.5 sendStroke.Parent = sendBtn -- SPAM TOGGLE BUTTON local spamBtn = Instance.new("TextButton") spamBtn.Size = UDim2.new(1, -30, 0, 30) spamBtn.Position = UDim2.new(0, 15, 0, 248) spamBtn.BackgroundColor3 = Color3.fromRGB(22, 16, 30) spamBtn.Text = "SPAM MESSAGE: OFF" spamBtn.Font = Enum.Font.GothamBold spamBtn.TextSize = 11 spamBtn.TextColor3 = Color3.fromRGB(130, 90, 170) spamBtn.Parent = contentContainer local spamCorner = Instance.new("UICorner") spamCorner.CornerRadius = UDim.new(0, 8) spamCorner.Parent = spamBtn local spamStroke = Instance.new("UIStroke") spamStroke.Color = Color3.fromRGB(60, 40, 80) spamStroke.Thickness = 1 spamStroke.Parent = spamBtn -------------------------------------------------- -- LOOP COUNTER INPUT BOX -------------------------------------------------- local loopInput = Instance.new("TextBox") loopInput.Size = UDim2.new(1, -30, 0, 30) loopInput.Position = UDim2.new(0, 15, 0, 284) loopInput.BackgroundColor3 = Color3.fromRGB(22, 16, 30) loopInput.PlaceholderText = "Max Loop Count (Leave empty for infinite)" loopInput.PlaceholderColor3 = Color3.fromRGB(110, 90, 130) loopInput.Text = "" loopInput.Font = Enum.Font.GothamMedium loopInput.TextSize = 11 loopInput.TextColor3 = Color3.fromRGB(255, 255, 255) loopInput.Parent = contentContainer local loopCorner = Instance.new("UICorner") loopCorner.CornerRadius = UDim.new(0, 8) loopCorner.Parent = loopInput local loopStroke = Instance.new("UIStroke") loopStroke.Color = Color3.fromRGB(60, 40, 80) loopStroke.Thickness = 1 loopStroke.Parent = loopInput -------------------------------------------------- -- SPEED SLIDER UI -------------------------------------------------- local speedLabel = Instance.new("TextLabel") speedLabel.Size = UDim2.new(1, -30, 0, 18) speedLabel.Position = UDim2.new(0, 15, 0, 320) speedLabel.BackgroundTransparency = 1 speedLabel.Text = "Delay: 1.5s" speedLabel.Font = Enum.Font.GothamMedium speedLabel.TextSize = 11 speedLabel.TextColor3 = Color3.fromRGB(170, 130, 210) speedLabel.TextXAlignment = Enum.TextXAlignment.Left speedLabel.Parent = contentContainer local sliderBar = Instance.new("Frame") sliderBar.Size = UDim2.new(1, -30, 0, 8) sliderBar.Position = UDim2.new(0, 15, 0, 340) sliderBar.BackgroundColor3 = Color3.fromRGB(22, 16, 30) sliderBar.BorderSizePixel = 0 sliderBar.Parent = contentContainer local sliderCorner = Instance.new("UICorner") sliderCorner.CornerRadius = UDim.new(1, 0) sliderCorner.Parent = sliderBar local sliderStroke = Instance.new("UIStroke") sliderStroke.Color = Color3.fromRGB(60, 40, 80) sliderStroke.Thickness = 1 sliderStroke.Parent = sliderBar local sliderFill = Instance.new("Frame") sliderFill.Size = UDim2.new(0.3, 0, 1, 0) sliderFill.BackgroundColor3 = Color3.fromRGB(180, 100, 255) sliderFill.BorderSizePixel = 0 sliderFill.Parent = sliderBar local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(1, 0) fillCorner.Parent = sliderFill local sliderButton = Instance.new("TextButton") sliderButton.Size = UDim2.new(1, 0, 1, 0) sliderButton.BackgroundTransparency = 1 sliderButton.Text = "" sliderButton.Parent = sliderBar -------------------------------------------------- -- UNLOAD BUTTON (BOTTOM - PINK) -------------------------------------------------- local unloadBtn = Instance.new("TextButton") unloadBtn.Size = UDim2.new(1, -30, 0, 30) unloadBtn.Position = UDim2.new(0, 15, 1, -38) unloadBtn.BackgroundColor3 = Color3.fromRGB(50, 18, 42) unloadBtn.Text = "UNLOAD MENU" unloadBtn.Font = Enum.Font.GothamBold unloadBtn.TextSize = 11 unloadBtn.TextColor3 = Color3.fromRGB(255, 105, 180) unloadBtn.Parent = contentContainer local unloadCorner = Instance.new("UICorner") unloadCorner.CornerRadius = UDim.new(0, 10) unloadCorner.Parent = unloadBtn local unloadStroke = Instance.new("UIStroke") unloadStroke.Color = Color3.fromRGB(255, 105, 180) unloadStroke.Thickness = 1 unloadStroke.Transparency = 0.5 unloadStroke.Parent = unloadBtn -------------------------------------------------- -- LOGIC & MINIMIZE SYSTEM -------------------------------------------------- local minimized = false minimizeBtn.MouseButton1Click:Connect(function() minimized = not minimized if minimized then minimizeBtn.Text = "+" TweenService:Create(main, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Size = UDim2.new(0, 380, 0, 42) }):Play() contentContainer.Visible = false else minimizeBtn.Text = "-" contentContainer.Visible = true TweenService:Create(main, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Size = UDim2.new(0, 380, 0, 485) }):Play() end end) local savedMessages = {} local activeMessage = "" local activeCardButton = nil local spamDelay = 1.5 local spamEnabled = false local function sendChatMessage(text) if text == "" then return end local success, textChatService = pcall(function() return game:GetService("TextChatService") end) if success and textChatService and textChatService.TextChannels then local channel = textChatService.TextChannels:FindFirstChild("RBXGeneral") if channel then channel:SendAsync(text) return end end local events = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if events then local sayRequest = events:FindFirstChild("SayMessageRequest") if sayRequest then sayRequest:FireServer(text, "All") end end end local function refreshSavedList() for _, child in ipairs(scrollFrame:GetChildren()) do if child:IsA("Frame") then child:Destroy() end end for _, msgText in ipairs(savedMessages) do local card = Instance.new("Frame") card.Size = UDim2.new(1, 0, 0, 30) card.BackgroundColor3 = Color3.fromRGB(22, 16, 30) card.Parent = scrollFrame local cardCorner = Instance.new("UICorner") cardCorner.CornerRadius = UDim.new(0, 8) cardCorner.Parent = card local cardStroke = Instance.new("UIStroke") cardStroke.Color = Color3.fromRGB(60, 40, 80) cardStroke.Thickness = 1 cardStroke.Parent = card local selectBtn = Instance.new("TextButton") selectBtn.Size = UDim2.new(1, -40, 1, 0) selectBtn.Position = UDim2.new(0, 8, 0, 0) selectBtn.BackgroundTransparency = 1 selectBtn.Text = msgText selectBtn.Font = Enum.Font.GothamMedium selectBtn.TextSize = 11 selectBtn.TextColor3 = Color3.fromRGB(220, 220, 220) selectBtn.TextXAlignment = Enum.TextXAlignment.Left selectBtn.Parent = card local delBtn = Instance.new("TextButton") delBtn.Size = UDim2.new(0, 22, 0, 22) delBtn.Position = UDim2.new(1, -26, 0.5, -11) delBtn.BackgroundColor3 = Color3.fromRGB(50, 18, 42) delBtn.Text = "X" delBtn.Font = Enum.Font.GothamBold delBtn.TextSize = 10 delBtn.TextColor3 = Color3.fromRGB(255, 105, 180) delBtn.Parent = card local delCorner = Instance.new("UICorner") delCorner.CornerRadius = UDim.new(0, 6) delCorner.Parent = delBtn if activeMessage == msgText then card.BackgroundColor3 = Color3.fromRGB(42, 24, 60) cardStroke.Color = Color3.fromRGB(180, 100, 255) activeCardButton = card end selectBtn.MouseButton1Click:Connect(function() if activeCardButton and activeCardButton:FindFirstChild("UIStroke") then activeCardButton.BackgroundColor3 = Color3.fromRGB(22, 16, 30) activeCardButton.UIStroke.Color = Color3.fromRGB(60, 40, 80) end activeMessage = msgText activeCardButton = card card.BackgroundColor3 = Color3.fromRGB(42, 24, 60) cardStroke.Color = Color3.fromRGB(180, 100, 255) selectedLabel.Text = "Selected: " .. msgText end) delBtn.MouseButton1Click:Connect(function() if activeMessage == msgText then activeMessage = "" activeCardButton = nil selectedLabel.Text = "Selected: None" spamEnabled = false spamBtn.Text = "SPAM MESSAGE: OFF" spamBtn.TextColor3 = Color3.fromRGB(130, 90, 170) spamBtn.BackgroundColor3 = Color3.fromRGB(22, 16, 30) end for i, v in ipairs(savedMessages) do if v == msgText then table.remove(savedMessages, i) break end end refreshSavedList() end) end end saveBtn.MouseButton1Click:Connect(function() local text = chatInput.Text if text ~= "" then table.insert(savedMessages, text) chatInput.Text = "" refreshSavedList() end end) sendBtn.MouseButton1Click:Connect(function() if activeMessage ~= "" then sendChatMessage(activeMessage) end end) local function turnOffSpam() spamEnabled = false spamBtn.Text = "SPAM MESSAGE: OFF" spamBtn.TextColor3 = Color3.fromRGB(130, 90, 170) TweenService:Create(spamBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(22, 16, 30) }):Play() end spamBtn.MouseButton1Click:Connect(function() if activeMessage == "" and not spamEnabled then return end spamEnabled = not spamEnabled if spamEnabled then spamBtn.Text = "SPAM MESSAGE: ON" spamBtn.TextColor3 = Color3.fromRGB(255, 255, 255) TweenService:Create(spamBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(160, 60, 255) }):Play() else turnOffSpam() end end) local function updateSlider(input) local pos = math.clamp((input.Position.X - sliderBar.AbsolutePosition.X) / sliderBar.AbsoluteSize.X, 0, 1) sliderFill.Size = UDim2.new(pos, 0, 1, 0) spamDelay = math.round((0.2 + (pos * 4.8)) * 10) / 10 speedLabel.Text = "Delay: " .. string.format("%.1f", spamDelay) .. "s" end local sliding = false sliderButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliding = true updateSlider(input) end end) UserInputService.InputChanged:Connect(function(input) if sliding and input.UserInputType == Enum.UserInputType.MouseMovement then updateSlider(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliding = false end end) task.spawn(function() while true do task.wait(spamDelay) if spamEnabled and activeMessage ~= "" then local maxCount = tonumber(loopInput.Text) if maxCount and maxCount > 0 then for i = 1, maxCount do if not spamEnabled then break end sendChatMessage(activeMessage) if i < maxCount then task.wait(spamDelay) end end turnOffSpam() else sendChatMessage(activeMessage) end end end end) unloadBtn.MouseButton1Click:Connect(function() spamEnabled = false local closeTween = TweenService:Create(main, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), { Size = UDim2.new(0, 0, 0, 0), Position = UDim2.new(0.5, 0, 0.5, 0) }) closeTween:Play() closeTween.Completed:Wait() gui:Destroy() end)