
KeylessUniversal

-- [[ π S1R SHIVA MINI HUB - FINAL V22 STABLE β οΈ FULL FINAL ]] --
local LP = game:GetService("Players").LocalPlayer
local UIS = game:GetService("UserInputService")
local RS = game:GetService("ReplicatedStorage")
local TS = game:GetService("TweenService")
local TextChatService = game:GetService("TextChatService")
-- π΅ MUSIC
local music = Instance.new("Sound", workspace)
music.SoundId = "rbxassetid://95903202203393"
music.Volume = 2
music.Looped = true
music:Play()
-- GUI
local SG = Instance.new("ScreenGui", LP.PlayerGui)
SG.ResetOnSpawn = false
-- π INTRO
local Intro = Instance.new("Frame", SG)
Intro.Size = UDim2.new(0,0,0,0)
Intro.Position = UDim2.new(0.5,0,0.5,0)
Intro.AnchorPoint = Vector2.new(0.5,0.5)
Intro.BackgroundColor3 = Color3.fromRGB(255,255,255)
Intro.BackgroundTransparency = 0.4
Intro.Rotation = 45
Instance.new("UIStroke", Intro).Thickness = 4
local Holder = Instance.new("Frame", Intro)
Holder.Size = UDim2.new(1,0,1,0)
Holder.BackgroundTransparency = 1
Holder.Rotation = -45
local IntroText = Instance.new("TextLabel", Holder)
IntroText.Size = UDim2.new(1,0,1,0)
IntroText.BackgroundTransparency = 1
IntroText.TextScaled = true
IntroText.TextColor3 = Color3.new(0,0,0)
IntroText.Text = "SH SPAM 2 VERSION\nCREDIT π³-ALONE_WX5π§Ώ"
TS:Create(Intro, TweenInfo.new(0.5, Enum.EasingStyle.Back), {
Size = UDim2.new(0,300,0,300)
}):Play()
task.delay(2.5, function()
TS:Create(Intro, TweenInfo.new(0.4), {
Size = UDim2.new(0,0,0,0),
BackgroundTransparency = 1
}):Play()
task.wait(0.4)
Intro:Destroy()
end)
-- π ANTITAG
local AntiTags = {"discord","youtube","roblox","free","robux","admin","mod","exploit","hack"}
local function HasTag(t)
t = string.lower(t)
for _,v in pairs(AntiTags) do
if t:find(v,1,true) then return true end
end
return false
end
-- π MAIN
local Main = Instance.new("Frame", SG)
Main.Size = UDim2.new(0,0,0,0)
Main.Position = UDim2.new(0.5,0,0.45,0)
Main.AnchorPoint = Vector2.new(0.5,0.5)
Main.BackgroundColor3 = Color3.fromRGB(20,20,20)
Main.BackgroundTransparency = 1
Main.Rotation = 45
Main.Visible = false
local Stroke = Instance.new("UIStroke", Main)
Stroke.Thickness = 8
task.spawn(function()
while true do
for i=0,1,0.05 do Stroke.Transparency=i task.wait(0.03) end
for i=1,0,-0.05 do Stroke.Transparency=i task.wait(0.03) end
end
end)
-- π PAGES
local Page1 = Instance.new("Frame", Main)
Page1.Size = UDim2.new(0.9,0,0.9,0)
Page1.Position = UDim2.new(0.05,0,0.05,0)
Page1.BackgroundTransparency = 1
Page1.Rotation = -45
local Page2 = Page1:Clone()
Page2.Parent = Main
Page2.Visible = false
-- TITLE
local Title = Instance.new("TextLabel", Page1)
Title.Size = UDim2.new(1,0,0,40)
Title.Text = "S1R SHIVA HUB"
Title.TextScaled = true
Title.BackgroundTransparency = 1
Title.TextColor3 = Color3.new(1,1,1)
-- π POPUP
local Popup = Instance.new("TextLabel", SG)
Popup.Size = UDim2.new(0,200,0,35)
Popup.Position = UDim2.new(0.5,0,0,-40)
Popup.AnchorPoint = Vector2.new(0.5,0)
Popup.BackgroundColor3 = Color3.fromRGB(0,0,0)
Popup.TextColor3 = Color3.new(1,1,1)
Popup.TextScaled = true
Popup.BackgroundTransparency = 0.3
Popup.Visible = false
Instance.new("UICorner", Popup)
local function Notify(t)
Title.Text = t
Popup.Text = t
Popup.Visible = true
TS:Create(Popup, TweenInfo.new(0.3), {
Position = UDim2.new(0.5,0,0,10)
}):Play()
task.delay(1.5, function()
TS:Create(Popup, TweenInfo.new(0.3), {
Position = UDim2.new(0.5,0,0,-40)
}):Play()
task.wait(0.3)
Popup.Visible = false
end)
task.delay(1.5, function()
Title.Text = "S1R SHIVA HUB"
end)
end
-- BUTTON
local function Btn(p,txt,y)
local b=Instance.new("TextButton",p)
b.Size=UDim2.new(0.9,0,0,35)
b.Position=UDim2.new(0.05,0,0,y)
b.Text=txt
b.TextScaled=true
b.BackgroundTransparency=0.6
b.TextColor3=Color3.new(1,1,1)
Instance.new("UICorner",b)
return b
end
-- PAGE SWITCH
local Next = Btn(Page1,">",5)
Next.Size=UDim2.new(0,40,0,30)
Next.Position=UDim2.new(1,-45,0,5)
local Back = Btn(Page2,"<",5)
Back.Size=UDim2.new(0,40,0,30)
Back.Position=UDim2.new(0,5,0,5)
Next.MouseButton1Click:Connect(function()
Page1.Visible=false
Page2.Visible=true
Notify("PAGE 2")
end)
Back.MouseButton1Click:Connect(function()
Page2.Visible=false
Page1.Visible=true
Notify("PAGE 1")
end)
-- PAGE1 BUTTONS
local Start=Btn(Page1,"π START",50)
local Stop=Btn(Page1,"βΉ STOP",95)
local SpeedBtn=Btn(Page1,"β‘ SPEED:1",140)
local ThemeBtn=Btn(Page1,"π¨ THEME",185)
local AntiTagBtn=Btn(Page1,"π‘οΈ ANTI-TAG:ON",230)
-- INPUTS
local PatternBox=Instance.new("TextBox",Page1)
PatternBox.Size=UDim2.new(0.9,0,0,35)
PatternBox.Position=UDim2.new(0.05,0,0,270)
PatternBox.PlaceholderText="PATTERN"
PatternBox.TextScaled=true
PatternBox.BackgroundTransparency=0.7
local TargetBox=Instance.new("TextBox",Page1)
TargetBox.Size=UDim2.new(0.9,0,0,35)
TargetBox.Position=UDim2.new(0.05,0,0,310)
TargetBox.PlaceholderText="TARGET"
TargetBox.TextScaled=true
TargetBox.BackgroundTransparency=0.7
-- π₯ NORMAL SPAM
_G.SPAM=false
local speed=1
local emojis={"π₯","π","π","β‘","πΏ","π£"}
function StartSpam()
if _G.SPAM then return end
_G.SPAM=true
task.spawn(function()
while _G.SPAM do
local target = TargetBox.Text ~= "" and TargetBox.Text or "NOOB"
local patternInput = PatternBox.Text ~= "" and PatternBox.Text or "@"
local endMsg = "("..target..")TMKX CUD "..emojis[math.random(#emojis)]
local remaining = 200 - #endMsg
if remaining > 0 then
local repeatCount = math.floor(remaining/#patternInput)
local pattern = string.rep(patternInput, repeatCount)
pattern = pattern:sub(1, remaining)
Send(pattern..endMsg)
else
Send(endMsg:sub(1,200))
end
task.wait(speed)
end
end)
end
function StopSpam()
_G.SPAM=false
end
Start.MouseButton1Click:Connect(StartSpam)
Stop.MouseButton1Click:Connect(StopSpam)
-- SPEED
SpeedBtn.MouseButton1Click:Connect(function()
if speed==1 then speed=0.5 elseif speed==0.5 then speed=0.2 else speed=1 end
SpeedBtn.Text="β‘ SPEED:"..speed
end)
-- THEME
local themes={Color3.fromRGB(20,20,20),Color3.fromRGB(255,0,0),Color3.fromRGB(0,255,0)}
local ti=1
ThemeBtn.MouseButton1Click:Connect(function()
ti=ti%#themes+1
Main.BackgroundColor3=themes[ti]
Notify("THEME CHANGED")
end)
-- ANTITAG
local anti=true
AntiTagBtn.MouseButton1Click:Connect(function()
anti=not anti
AntiTagBtn.Text="π‘οΈ ANTI-TAG:"..(anti and "ON" or "OFF")
end)
-- SEND
function Send(m)
if anti and HasTag(m) then return end
if TextChatService.ChatVersion==Enum.ChatVersion.TextChatService then
local c=TextChatService.TextChannels:FindFirstChild("RBXGeneral")
if c then pcall(function() c:SendAsync(m) end) end
else
local r=RS:FindFirstChild("DefaultChatSystemChatEvents")
if r then pcall(function() r.SayMessageRequest:FireServer(m,"All") end) end
end
end
-- π PAGE 2 CUSTOM SPAM
local Title2=Instance.new("TextLabel",Page2)
Title2.Size=UDim2.new(1,0,0,40)
Title2.Text="CUSTOM SPAM"
Title2.TextScaled=true
Title2.BackgroundTransparency=1
Title2.TextColor3=Color3.new(1,1,1)
local CustomMsg=Instance.new("TextBox",Page2)
CustomMsg.Size=UDim2.new(0.9,0,0,40)
CustomMsg.Position=UDim2.new(0.05,0,0,60)
CustomMsg.PlaceholderText="ENTER MESSAGE"
CustomMsg.TextScaled=true
CustomMsg.BackgroundTransparency=0.7
local CustomDelay=Instance.new("TextBox",Page2)
CustomDelay.Size=UDim2.new(0.9,0,0,40)
CustomDelay.Position=UDim2.new(0.05,0,0,110)
CustomDelay.PlaceholderText="DELAY"
CustomDelay.TextScaled=true
CustomDelay.BackgroundTransparency=0.7
local CustomStart=Btn(Page2,"π CUSTOM START",170)
local CustomStop=Btn(Page2,"βΉ CUSTOM STOP",215)
_G.CUSTOMSPAM=false
CustomStart.MouseButton1Click:Connect(function()
if _G.CUSTOMSPAM then return end
_G.CUSTOMSPAM=true
local msg = CustomMsg.Text ~= "" and CustomMsg.Text or "HELLO"
local delay = tonumber(CustomDelay.Text) or 1
task.spawn(function()
while _G.CUSTOMSPAM do
Send(msg:sub(1,200))
task.wait(delay)
end
end)
Notify("CUSTOM STARTED")
end)
CustomStop.MouseButton1Click:Connect(function()
_G.CUSTOMSPAM=false
Notify("CUSTOM STOPPED")
end)
-- π ADMIN CMDS
local ADMIN="ALONE_WX5"
local spinning=false
local dancing=false
local function StartSpin()
if spinning then return end
spinning=true
task.spawn(function()
while spinning do
if LP.Character and LP.Character:FindFirstChild("HumanoidRootPart") then
LP.Character.HumanoidRootPart.CFrame*=CFrame.Angles(0,math.rad(25),0)
end
task.wait(0.03)
end
end)
end
local function StopSpin() spinning=false end
local function StartDance()
if dancing then return end
dancing=true
task.spawn(function()
while dancing do
if LP.Character and LP.Character:FindFirstChild("Humanoid") then
local h=LP.Character.Humanoid
h:Move(Vector3.new(math.random(-1,1),0,math.random(-1,1)))
h.Jump=true
end
task.wait(0.5)
end
end)
end
local function StopDance() dancing=false end
local function OnMessage(msg,player)
if player~=ADMIN then return end
local raw=msg
msg=string.lower(msg)
if msg:sub(1,5)=="!say " then
Send(raw:sub(6))
elseif msg=="!start spam" then
StartSpam()
elseif msg=="!stop spam" then
StopSpam()
elseif msg:sub(1,12)=="!start spam " then
TargetBox.Text=raw:sub(13)
StartSpam()
elseif msg=="!reply" then
Send("USE SH SPAM SCRIPT BESTπ³π§Ώβ
")
elseif msg=="!dance" then
StartDance()
elseif msg=="!stop dance" then
StopDance()
elseif msg=="!spin" then
StartSpin()
elseif msg=="!stop spin" then
StopSpin()
end
end
if TextChatService.ChatVersion==Enum.ChatVersion.TextChatService then
local ch=TextChatService.TextChannels:FindFirstChild("RBXGeneral")
if ch then
ch.MessageReceived:Connect(function(d)
if not d.TextSource then return end
local p=game.Players:GetPlayerByUserId(d.TextSource.UserId)
if p then OnMessage(d.Text,p.Name) end
end)
end
end
-- π OPEN BUTTON
local S=Instance.new("TextButton",SG)
S.Size=UDim2.new(0,65,0,65)
S.Position=UDim2.new(0,20,1,-110)
S.Text="S"
S.TextScaled=true
S.BackgroundColor3=Color3.fromRGB(0,0,0)
S.TextColor3=Color3.new(1,1,1)
Instance.new("UICorner",S).CornerRadius=UDim.new(1,0)
local open=false
S.MouseButton1Click:Connect(function()
if not open then
Main.Visible=true
TS:Create(Main,TweenInfo.new(0.4),{
Size=UDim2.new(0,360,0,360),
BackgroundTransparency=0.2
}):Play()
else
TS:Create(Main,TweenInfo.new(0.3),{
Size=UDim2.new(0,0,0,0),
BackgroundTransparency=1
}):Play()
task.wait(0.3)
Main.Visible=false
end
open=not open
end)
Notify("π FINAL V22 LOADED")



tres
How is it work?
sigma