
Key Required VerifiedUniversal

-- [[ 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)No comments yet for this script.



