-- [[ πŸ’Ž 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")