Universal Script – Spam - Verified script for Universal Roblox
Key RequiredUniversal

Universal Script – Spam

Universal ScriptAmir1368Amir1368 1K views 1.2K executesUpdated Oct 18, 2026
Unrated
00
Lua Script•312 lines (7346 chars)
local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")

local player = Players.LocalPlayer
local language = "en" -- اولین بار انگلیسی
local sending = false
local sendToken = 0

local gui = Instance.new("ScreenGui")
gui.Name = "MessagePanel"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local function corner(obj, radius)
    local c = Instance.new("UICorner")
    c.CornerRadius = UDim.new(0, radius)
    c.Parent = obj
end

local function makeButton(parent, name, size, position, color, text, textSize)
    local b = Instance.new("TextButton")
    b.Name = name
    b.Size = size
    b.Position = position
    b.BackgroundColor3 = color
    b.Text = text
    b.TextSize = textSize
    b.TextColor3 = Color3.new(1, 1, 1)
    b.Font = Enum.Font.GothamBold
    b.Parent = parent
    corner(b, 12)
    return b
end

-- دکمه باز کردن
local open = makeButton(
    gui, "OpenButton",
    UDim2.new(0, 58, 0, 58),
    UDim2.new(1, -75, 0.5, -29),
    Color3.fromRGB(80, 120, 255),
    "💬", 27
)
corner(open, 18)

-- پنل
local panel = Instance.new("Frame")
panel.Name = "MainPanel"
panel.Size = UDim2.new(0, 300, 0, 390)
panel.Position = UDim2.new(0.5, -150, 0.5, -195)
panel.BackgroundColor3 = Color3.fromRGB(28, 32, 52)
panel.Visible = false
panel.Parent = gui
corner(panel, 20)

-- عنوان
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -60, 0, 42)
title.Position = UDim2.new(0, 10, 0, 5)
title.BackgroundTransparency = 1
title.TextSize = 22
title.Font = Enum.Font.GothamBold
title.TextColor3 = Color3.new(1, 1, 1)
title.Parent = panel

-- بستن
local close = makeButton(
    panel, "CloseButton",
    UDim2.new(0, 38, 0, 38),
    UDim2.new(1, -48, 0, 8),
    Color3.fromRGB(220, 70, 80),
    "✕", 20
)

-- سازنده
local creator = Instance.new("TextLabel")
creator.Size = UDim2.new(1, -20, 0, 25)
creator.Position = UDim2.new(0, 10, 0, 45)
creator.BackgroundTransparency = 1
creator.TextSize = 14
creator.Font = Enum.Font.GothamBold
creator.TextColor3 = Color3.fromRGB(120, 180, 255)
creator.Parent = panel

-- ورودی پیام
local message = Instance.new("TextBox")
message.Name = "MessageInput"
message.Size = UDim2.new(1, -30, 0, 45)
message.Position = UDim2.new(0, 15, 0, 75)
message.BackgroundColor3 = Color3.fromRGB(50, 58, 85)
message.Text = ""
message.TextSize = 16
message.TextColor3 = Color3.new(1, 1, 1)
message.PlaceholderColor3 = Color3.fromRGB(190, 195, 210)
message.Font = Enum.Font.Gotham
message.ClearTextOnFocus = false
message.TextWrapped = true
message.Parent = panel
corner(message, 12)

-- تعداد
local count = Instance.new("TextBox")
count.Name = "MessageCount"
count.Size = UDim2.new(1, -30, 0, 45)
count.Position = UDim2.new(0, 15, 0, 130)
count.BackgroundColor3 = Color3.fromRGB(50, 58, 85)
count.Text = "1"
count.TextSize = 16
count.TextColor3 = Color3.new(1, 1, 1)
count.Font = Enum.Font.Gotham
count.ClearTextOnFocus = false
count.Parent = panel
corner(count, 12)

-- انتخاب زبان
local langButton = makeButton(
    panel, "LanguageButton",
    UDim2.new(1, -30, 0, 38),
    UDim2.new(0, 15, 0, 185),
    Color3.fromRGB(70, 100, 160),
    "زبان/Language", 15
)

-- شروع
local start = makeButton(
    panel, "StartButton",
    UDim2.new(1, -30, 0, 45),
    UDim2.new(0, 15, 0, 233),
    Color3.fromRGB(40, 175, 100),
    "", 19
)

-- توقف
local stop = makeButton(
    panel, "StopButton",
    UDim2.new(1, -30, 0, 45),
    UDim2.new(0, 15, 0, 286),
    Color3.fromRGB(220, 70, 80),
    "", 19
)

-- وضعیت
local status = Instance.new("TextLabel")
status.Name = "Status"
status.Size = UDim2.new(1, -30, 0, 28)
status.Position = UDim2.new(0, 15, 0, 340)
status.BackgroundTransparency = 1
status.TextSize = 14
status.TextColor3 = Color3.fromRGB(180, 190, 210)
status.Font = Enum.Font.Gotham
status.Parent = panel

local function tr(fa, en)
    if language == "fa" then
        return fa
    end
    return en
end

local function setStatus(fa, en)
    status.Text = tr(fa, en)
end

local function updateLanguage()
    title.Text = tr("💬 ارسال پیام", "💬 Send Message")
    creator.Text = tr(
        "ساخته شده توسط تیم Amir",
        "Made by Amir Team"
    )

    message.PlaceholderText = tr(
        "📝 متن پیام...",
        "📝 Message text..."
    )

    count.PlaceholderText = tr(
        "🔢 تعداد (حداکثر 1000)",
        "🔢 Amount (max 1000)"
    )

    start.Text = sending
        and tr("⏳ در حال ارسال...", "⏳ Sending...")
        or tr("▶ شروع", "▶ Start")

    stop.Text = tr("⛔ توقف", "⛔ Stop")
    langButton.Text = "زبان/Language"
end

-- باز و بسته کردن
open.MouseButton1Click:Connect(function()
    panel.Visible = true
end)

close.MouseButton1Click:Connect(function()
    panel.Visible = false
end)

-- تغییر زبان
langButton.MouseButton1Click:Connect(function()
    language = language == "en" and "fa" or "en"
    updateLanguage()

    if not sending then
        setStatus("آماده", "Ready")
    end
end)

-- شروع ارسال
start.MouseButton1Click:Connect(function()
    if sending then
        return
    end

    local text = message.Text
    local amount = tonumber(count.Text)

    if text:gsub("%s", "") == "" then
        setStatus("❌ متن را وارد کن", "❌ Enter a message")
        return
    end

    if not amount or amount < 1 or amount > 1000 then
        setStatus(
            "❌ تعداد باید بین 1 تا 1000 باشد",
            "❌ Amount must be between 1 and 1000"
        )
        return
    end

    amount = math.floor(amount)

    local channels = TextChatService:FindFirstChild("TextChannels")
    local channel = channels and channels:FindFirstChild("RBXGeneral")

    if not channel then
        setStatus(
            "❌ چت اصلی پیدا نشد",
            "❌ Main chat channel not found"
        )
        return
    end

    sending = true
    sendToken = sendToken + 1
    local myToken = sendToken

    updateLanguage()

    task.spawn(function()
        for i = 1, amount do
            if not sending or sendToken ~= myToken then
                break
            end

            local ok, err = pcall(function()
                channel:SendAsync(text)
            end)

            if not ok then
                sending = false
                updateLanguage()
                setStatus(
                    "❌ ارسال انجام نشد",
                    "❌ Sending failed"
                )
                warn(err)
                return
            end

            status.Text = tr(
                "ارسال " .. i .. " از " .. amount,
                "Sending " .. i .. " of " .. amount
            )

            if i < amount then
                task.wait(0.5)
            end
        end

        local completed = sending and sendToken == myToken
        sending = false
        updateLanguage()

        if completed then
            setStatus(
                "✅ ارسال پایان یافت",
                "✅ Sending finished"
            )
        end
    end)
end)

-- توقف
stop.MouseButton1Click:Connect(function()
    if sending then
        sending = false
        sendToken = sendToken + 1
        updateLanguage()
        setStatus(
            "⛔ ارسال متوقف شد",
            "⛔ Sending stopped"
        )
    else
        setStatus(
            "ارسالی در جریان نیست",
            "Nothing is being sent"
        )
    end
end)

-- نمایش اولیه انگلیسی
updateLanguage()
setStatus("Ready", "Ready")

How to Execute Universal Script – Spam

Step 1: Copy Code: Click the Copy Code button in the viewer above to grab the clean Lua loadstring.

Step 2: Launch Executor: Open a compatible, unpatched executor. If you need one, check our Roblox Executors Directory.

Step 3: Join Experience: Launch Roblox and join Universal Script.

Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.

Created By

Amir1368
Amir1368
Script User
View Author Profile

Features & Information

Execute Universal Script – Spam. Key system required, created by Amir1368, updated Oct 18, 2026. Tested and working on supported executors.

Script Changelog (4)

@QueueSpeedDemonOct 23, 2026

Edited during review before approval

@Amir1368Oct 20, 2026

Rolled back to version 1

@QueueSherlockOct 19, 2026

Edited during review before approval

@Amir1368Oct 18, 2026

Create script

Community Comments (1)

sendangsendangOct 19, 2026

hmm

Frequently Asked Questions

How do I execute Universal Script – Spam in Roblox?

To run Universal Script – Spam, copy the Lua loadstring from the code viewer above, launch Roblox and join Universal Script, attach a working executor (such as Potassium, Solara, or Delta from our Executors directory), paste the code into your executor console, and click Execute.

Is Universal Script – Spam keyless or does it require an access key?

Universal Script – Spam requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.

Is Universal Script – Spam currently safe and working?

This script is active and operational. Always test scripts using a secondary (alt) Roblox account to safeguard your main profile against anti-cheat bans.