-- [[ 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 ]] -- Zen X Alex Spammer V4 (Fixed & Deobfuscated) local TweenService = game:GetService("TweenService") local Players = game:GetService("Players") local TextChatService = game:GetService("TextChatService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Lighting = game:GetService("Lighting") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer -- Better GUI Parenting Check local targetGui if gethui then targetGui = gethui() else local success, coreGuiAccess = pcall(function() return CoreGui:FindFirstChild("RobloxGui") end) if success and coreGuiAccess then targetGui = CoreGui else targetGui = LocalPlayer:FindFirstChildOfClass("PlayerGui") end end -- Brookhaven RP Remotes (Safe Check) local RE = ReplicatedStorage:FindFirstChild("RE") local RPNameEvent = RE and RE:FindFirstChild("1RPNam1eTex1t") or nil local RPColorEvent = RE and RE:FindFirstChild("1RPNam1eColo1r") or nil -- Theme Colors local bgDark = Color3.fromRGB(12, 10, 20) local bgLight = Color3.fromRGB(26, 16, 38) local accentPink = Color3.fromRGB(255, 0, 180) local accentPurple = Color3.fromRGB(140, 0, 255) local textWhite = Color3.fromRGB(250, 240, 255) local textGray = Color3.fromRGB(160, 150, 180) -- Screen Effects local Blur = Instance.new("BlurEffect", Lighting) Blur.Size = 0 local ScreenGui = Instance.new("ScreenGui", targetGui) ScreenGui.Name = "ZenXAlex_Spammer" ScreenGui.IgnoreGuiInset = true ScreenGui.ResetOnSpawn = false -- Rotating Gradient Function local function ApplySpinningGradient(parent) if not parent then return end local UIGradient = Instance.new("UIGradient", parent) UIGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, accentPurple), ColorSequenceKeypoint.new(1, accentPink) }) task.spawn(function() local rotation = 0 while parent and parent.Parent do rotation = (rotation + 2) % 360 UIGradient.Rotation = rotation task.wait(0.02) end end) end -- ========================================== -- UI Elements Setup -- ========================================== -- 1. Main Spammer Window local MainFrame = Instance.new("Frame", ScreenGui) MainFrame.Visible = false MainFrame.Size = UDim2.new(0, 520, 0, 310) MainFrame.Position = UDim2.new(0.5, -260, 1, 50) MainFrame.BackgroundColor3 = bgDark Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 16) local MainStroke = Instance.new("UIStroke", MainFrame) MainStroke.Thickness = 2 ApplySpinningGradient(MainStroke) local TitleLabel = Instance.new("TextLabel", MainFrame) TitleLabel.Size = UDim2.new(1, -40, 0, 40) TitleLabel.Position = UDim2.new(0, 20, 0, 12) TitleLabel.Text = "Welcome to Zen X Alex V4" TitleLabel.Font = Enum.Font.GothamBlack TitleLabel.TextColor3 = textWhite TitleLabel.TextSize = 17 TitleLabel.TextXAlignment = Enum.TextXAlignment.Left TitleLabel.BackgroundTransparency = 1 local TargetGrid = Instance.new("Frame", MainFrame) TargetGrid.Size = UDim2.new(0, 310, 0, 140) TargetGrid.Position = UDim2.new(0, 20, 0, 65) TargetGrid.BackgroundTransparency = 1 local GridLayout = Instance.new("UIGridLayout", TargetGrid) GridLayout.CellSize = UDim2.new(0, 145, 0, 55) GridLayout.CellPadding = UDim2.new(0, 15, 0, 15) local targetBoxes = {} for i = 1, 4 do local container = Instance.new("Frame", TargetGrid) container.BackgroundColor3 = bgLight Instance.new("UICorner", container).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke", container) stroke.Thickness = 1 stroke.Color = Color3.fromRGB(55, 38, 75) local box = Instance.new("TextBox", container) box.Size = UDim2.new(1, -20, 1, 0) box.Position = UDim2.new(0, 10, 0, 0) box.PlaceholderText = "TARGET " .. i box.PlaceholderColor3 = Color3.fromRGB(115, 100, 135) box.BackgroundColor3 = bgLight box.BackgroundTransparency = 1 box.TextColor3 = textWhite box.Font = Enum.Font.GothamBold box.TextSize = 11 box.BorderSizePixel = 0 targetBoxes[i] = box end local DelayContainer = Instance.new("Frame", MainFrame) DelayContainer.Size = UDim2.new(0, 155, 0, 140) DelayContainer.Position = UDim2.new(0, 345, 0, 65) DelayContainer.BackgroundColor3 = Color3.fromRGB(18, 14, 28) Instance.new("UICorner", DelayContainer).CornerRadius = UDim.new(0, 10) local DelayStroke = Instance.new("UIStroke", DelayContainer) DelayStroke.Thickness = 1 DelayStroke.Color = Color3.fromRGB(65, 40, 95) local DelayLabel = Instance.new("TextLabel", DelayContainer) DelayLabel.Size = UDim2.new(1, 0, 0, 25) DelayLabel.Position = UDim2.new(0, 0, 0, 12) DelayLabel.Text = " DELAY" DelayLabel.Font = Enum.Font.GothamBlack DelayLabel.TextColor3 = textGray DelayLabel.TextSize = 10 DelayLabel.BackgroundTransparency = 1 local DelayBox = Instance.new("TextBox", DelayContainer) DelayBox.Size = UDim2.new(0.8, 0, 0, 40) DelayBox.Position = UDim2.new(0.1, 0, 0, 42) DelayBox.Text = "0.8" DelayBox.PlaceholderText = "0.8" DelayBox.BackgroundColor3 = bgLight DelayBox.TextColor3 = accentPink DelayBox.Font = Enum.Font.Code DelayBox.TextSize = 16 DelayBox.BorderSizePixel = 0 Instance.new("UICorner", DelayBox).CornerRadius = UDim.new(0, 6) local DelayBoxStroke = Instance.new("UIStroke", DelayBox) DelayBoxStroke.Thickness = 1 DelayBoxStroke.Color = Color3.fromRGB(90, 45, 120) local StartButton = Instance.new("TextButton", MainFrame) StartButton.Size = UDim2.new(1, -40, 0, 55) StartButton.Position = UDim2.new(0, 20, 0, 230) StartButton.Text = "START SPAMMER" StartButton.BackgroundColor3 = bgLight StartButton.TextColor3 = accentPink StartButton.Font = Enum.Font.GothamBlack StartButton.TextSize = 14 Instance.new("UICorner", StartButton).CornerRadius = UDim.new(0, 10) local StartStroke = Instance.new("UIStroke", StartButton) StartStroke.Thickness = 1.5 ApplySpinningGradient(StartStroke) -- 2. Settings Window local SettingsFrame = Instance.new("Frame", ScreenGui) SettingsFrame.Visible = false SettingsFrame.Size = UDim2.new(0, 170, 0, 310) SettingsFrame.Position = UDim2.new(0.5, -445, 1, 50) SettingsFrame.BackgroundColor3 = bgDark Instance.new("UICorner", SettingsFrame).CornerRadius = UDim.new(0, 16) local SettingsStroke = Instance.new("UIStroke", SettingsFrame) SettingsStroke.Thickness = 2 ApplySpinningGradient(SettingsStroke) local ListLayout = Instance.new("UIListLayout", SettingsFrame) ListLayout.Padding = UDim.new(0, 6) ListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center ListLayout.VerticalAlignment = Enum.VerticalAlignment.Center -- State Variables local useEmojis = false local useRandomText = false local isSpamming = false local currentPrefix = "///===///" local prefixList = {"///===///", "@", "+++---+++"} local randomWords = {"BOOM", "BIG BOMB", "LIGHT", "AIL", "KING KONG", "SUPER", "OHHO", "EARTHQUAKE", "MAGIC", "ENDER POWER", "SKY", "BASE", "ACID", "POPULAR", "ROCKET", "CROCODILE"} local emojiList = {"😫", "😑", "😒", "🥀", "🔥", "💀", "🌪", "✨"} for _, prefixStr in pairs(prefixList) do local PrefixBtn = Instance.new("TextButton", SettingsFrame) PrefixBtn.Size = UDim2.new(0.85, 0, 0, 32) PrefixBtn.Text = prefixStr PrefixBtn.BackgroundColor3 = bgLight PrefixBtn.TextColor3 = accentPink PrefixBtn.Font = Enum.Font.Code PrefixBtn.TextSize = 13 Instance.new("UICorner", PrefixBtn).CornerRadius = UDim.new(0, 6) PrefixBtn.MouseButton1Click:Connect(function() currentPrefix = prefixStr end) end local CustomPrefixBox = Instance.new("TextBox", SettingsFrame) CustomPrefixBox.Size = UDim2.new(0.85, 0, 0, 32) CustomPrefixBox.PlaceholderText = "CUSTOM PRE..." CustomPrefixBox.PlaceholderColor3 = Color3.fromRGB(110, 100, 130) CustomPrefixBox.BackgroundColor3 = bgLight CustomPrefixBox.TextColor3 = textWhite CustomPrefixBox.Font = Enum.Font.Code CustomPrefixBox.TextSize = 12 Instance.new("UICorner", CustomPrefixBox).CornerRadius = UDim.new(0, 6) CustomPrefixBox.FocusLost:Connect(function() if CustomPrefixBox.Text ~= "" then currentPrefix = CustomPrefixBox.Text end end) local EmojiBtn = Instance.new("TextButton", SettingsFrame) EmojiBtn.Size = UDim2.new(0.85, 0, 0, 32) EmojiBtn.Text = "emojis- off" EmojiBtn.BackgroundColor3 = Color3.fromRGB(35, 15, 25) EmojiBtn.TextColor3 = Color3.fromRGB(240, 200, 220) EmojiBtn.Font = Enum.Font.GothamBold EmojiBtn.TextSize = 11 Instance.new("UICorner", EmojiBtn).CornerRadius = UDim.new(0, 6) local RandomTextBtn = Instance.new("TextButton", SettingsFrame) RandomTextBtn.Size = UDim2.new(0.85, 0, 0, 32) RandomTextBtn.Text = "rand- off" RandomTextBtn.BackgroundColor3 = Color3.fromRGB(35, 15, 25) RandomTextBtn.TextColor3 = Color3.fromRGB(240, 200, 220) RandomTextBtn.Font = Enum.Font.GothamBold RandomTextBtn.TextSize = 11 Instance.new("UICorner", RandomTextBtn).CornerRadius = UDim.new(0, 6) EmojiBtn.MouseButton1Click:Connect(function() useEmojis = not useEmojis EmojiBtn.Text = useEmojis and "emojis- ON" or "emojis- off" EmojiBtn.BackgroundColor3 = useEmojis and Color3.fromRGB(15, 35, 25) or Color3.fromRGB(35, 15, 25) EmojiBtn.TextColor3 = useEmojis and accentPink or Color3.fromRGB(240, 200, 220) end) RandomTextBtn.MouseButton1Click:Connect(function() useRandomText = not useRandomText RandomTextBtn.Text = useRandomText and "rand- ON" or "rand- off" RandomTextBtn.BackgroundColor3 = useRandomText and Color3.fromRGB(15, 35, 25) or Color3.fromRGB(35, 15, 25) RandomTextBtn.TextColor3 = useRandomText and accentPink or Color3.fromRGB(240, 200, 220) end) -- Toggle Menu Button local ToggleButton = Instance.new("ImageButton", ScreenGui) ToggleButton.Size = UDim2.new(0, 30, 0, 30) ToggleButton.Position = UDim2.new(0, 25, 1, -75) ToggleButton.BackgroundColor3 = bgDark ToggleButton.BorderSizePixel = 0 ToggleButton.ZIndex = 5 Instance.new("UICorner", ToggleButton).CornerRadius = UDim.new(1, 0) local ToggleStroke = Instance.new("UIStroke", ToggleButton) ToggleStroke.Thickness = 1 ApplySpinningGradient(ToggleStroke) local isMenuOpen = false ToggleButton.MouseButton1Click:Connect(function() isMenuOpen = not isMenuOpen if isMenuOpen then MainFrame.Visible = true SettingsFrame.Visible = true end local posMain = isMenuOpen and UDim2.new(0.5, -165, 0.5, -155) or UDim2.new(0.5, -260, 1, 50) local posSettings = isMenuOpen and UDim2.new(0.5, -345, 0.5, -155) or UDim2.new(0.5, -445, 1, 50) TweenService:Create(MainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Position = posMain}):Play() TweenService:Create(SettingsFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Position = posSettings}):Play() TweenService:Create(Blur, TweenInfo.new(0.5), {Size = isMenuOpen and 24 or 0}):Play() end) -- ========================================== -- Spammer Logic Functions -- ========================================== local function SendMessage(msg) local channel = TextChatService.TextChannels:FindFirstChild("RBXGeneral") if channel then pcall(function() channel:SendAsync(msg) end) else -- Fallback for legacy chat systems just in case local defaultChat = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if defaultChat then local sayMsg = defaultChat:FindFirstChild("SayMessageRequest") if sayMsg then sayMsg:FireServer(msg, "All") end end end end StartButton.MouseButton1Click:Connect(function() isSpamming = not isSpamming StartButton.Text = isSpamming and "STOP SPAMMER" or "START SPAMMER" StartButton.BackgroundColor3 = isSpamming and Color3.fromRGB(255, 40, 40) or bgLight if isSpamming then task.spawn(function() local index = 1 while isSpamming do local delayTime = tonumber(DelayBox.Text) or 0.8 for _, box in ipairs(targetBoxes) do if not isSpamming then break end if box.Text ~= "" then local prefixToUse = currentPrefix if useRandomText then prefixToUse = prefixList[index] index = index >= #prefixList and 1 or index + 1 end -- Prevent crash if prefix is completely empty if #prefixToUse == 0 then prefixToUse = "@" end local repeatLimit = prefixToUse ~= "@" and 80 or 110 local prefixString = string.rep(prefixToUse, math.ceil(repeatLimit / #prefixToUse)):sub(1, repeatLimit) local spamNoise = "" for _ = 1, 9 do spamNoise ..= randomWords[math.random(#randomWords)] .. " " end local targetName = box.Text:upper() if useEmojis then targetName ..= " " .. emojiList[math.random(#emojiList)] end SendMessage("[" .. prefixString .. "] [" .. targetName .. "] TMKX MEH " .. spamNoise) task.wait(delayTime) end end task.wait(0.1) end end) end end) -- ========================================== -- Ambient Loop (Rainbow UI + RP Events) -- ========================================== task.spawn(function() -- Automatically set Brookhaven Roleplay Name if events exist if RPNameEvent then pcall(function() RPNameEvent:FireServer("RolePlayName", "Zen X Alex SPAMMER V4") end) end while true do local hueColor = Color3.fromHSV(tick() % 5 / 5, 1, 1) -- Apply rainbow loop to borders if MainStroke then MainStroke.Color = hueColor end if SettingsStroke then SettingsStroke.Color = hueColor end if ToggleStroke then ToggleStroke.Color = hueColor end if RPColorEvent then pcall(function() RPColorEvent:FireServer("PickingRPNameColor", hueColor) RPColorEvent:FireServer("PickingRPBioColor", hueColor) end) end task.wait(1) end end)