--[[ SAI V2 - DYNAMIC MASTER UPDATE "TGR RVX DGN DIVINE PNX VN ON TOP" PERSONALIZED FOR DELTA ]] repeat task.wait() until game:IsLoaded() local lp = game:GetService("Players").LocalPlayer local tcs = game:GetService("TextChatService") local rs = game:GetService("ReplicatedStorage") local uis = game:GetService("UserInputService") local cg = game:GetService("CoreGui") local ts = game:GetService("TweenService") local run = game:GetService("RunService") local looping = false local safeMode = false local pIdx = 1 local patternIdx = 1 local customPatterns = { "_____", "$_$", "&_&", "(?_?_)", "(/\\_ /\\_)", "(#_#_)", "(@_@)" } -- 1. UTILS local function sendGlobal(txt) pcall(function() if tcs.ChatVersion == Enum.ChatVersion.TextChatService then local channel = tcs:FindFirstChild("RBXGeneral", true) if channel then channel:SendAsync(txt) end else rs.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(txt, "All") end end) end local function makeDraggable(gui, dragPart) local dragging, dragInput, dragStart, startPos dragPart.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true; dragStart = input.Position; startPos = gui.Position end end) uis.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) run.Heartbeat:Connect(function() if dragging and dragInput then local delta = dragInput.Position - dragStart gui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) uis.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) end -- 2. GUI CONSTRUCTION if cg:FindFirstChild("SAI_V2_FINAL_MASTER") then cg:FindFirstChild("SAI_V2_FINAL_MASTER"):Destroy() end local sg = Instance.new("ScreenGui", cg); sg.Name = "SAI_V2_FINAL_MASTER" local main = Instance.new("Frame", sg) main.Size = UDim2.new(0, 260, 0, 380); main.Position = UDim2.new(0.5, -130, 0.5, -190) main.BackgroundColor3 = Color3.fromRGB(10, 10, 12); main.Visible = false; main.ClipsDescendants = true local mainStroke = Instance.new("UIStroke", main); mainStroke.Thickness = 2; mainStroke.Color = Color3.fromRGB(0, 150, 255) Instance.new("UICorner", main).CornerRadius = UDim.new(0, 10) makeDraggable(main, main) -- Tab Navigation local tabF = Instance.new("Frame", main); tabF.Size = UDim2.new(1,0,0,35); tabF.BackgroundColor3 = Color3.fromRGB(20, 20, 25) local btnSpam = Instance.new("TextButton", tabF); btnSpam.Size = UDim2.new(0.5,0,1,0); btnSpam.Text = "SPAM"; btnSpam.TextColor3 = Color3.new(1,1,1); btnSpam.BackgroundTransparency = 1; btnSpam.Font = "GothamBold" local btnCred = Instance.new("TextButton", tabF); btnCred.Size = UDim2.new(0.5,0,1,0); btnCred.Position = UDim2.new(0.5,0,0,0); btnCred.Text = "CREDITS"; btnCred.TextColor3 = Color3.new(1,1,1); btnCred.BackgroundTransparency = 1; btnCred.Font = "GothamBold" local spamP = Instance.new("Frame", main); spamP.Size = UDim2.new(1,0,0.9,0); spamP.Position = UDim2.new(0,0,0.1,0); spamP.BackgroundTransparency = 1 local credP = Instance.new("ScrollingFrame", main); credP.Visible = false; credP.Size = spamP.Size; credP.Position = spamP.Position; credP.BackgroundTransparency = 1; credP.ScrollBarThickness = 2; credP.CanvasSize = UDim2.new(0,0,1.2,0) btnSpam.MouseButton1Click:Connect(function() spamP.Visible = true; credP.Visible = false end) btnCred.MouseButton1Click:Connect(function() spamP.Visible = false; credP.Visible = true end) -- UPDATED CREDITS SECTION local crText = Instance.new("TextLabel", credP) crText.Size = UDim2.new(0.9, 0, 0, 320); crText.Position = UDim2.new(0.05, 0, 0.05, 0); crText.BackgroundTransparency = 1; crText.TextColor3 = Color3.new(1, 1, 1); crText.TextWrapped = true; crText.Font = "GothamBold"; crText.TextSize = 14; crText.TextYAlignment = 0; crText.TextXAlignment = 0 crText.Text = "SCRIPT BY SAI πŸ‘‘\nUSERNAME: Jack_fine5\n\nIf you want to join my clan DGN(Dragon) put DGN in ur name and send me a friend request I will give ur rankπŸ˜‰\n\nthx for using my script and if you want more scripts let me know:)\n\nPeace ✌🏻" -- SPAM ELEMENTS local nIn = Instance.new("TextBox", spamP); nIn.Size = UDim2.new(0.9,0,0,30); nIn.Position = UDim2.new(0.05,0,0.05,0); nIn.Text = "TARGET"; nIn.BackgroundColor3 = Color3.fromRGB(25,25,30); nIn.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", nIn) local dIn = Instance.new("TextBox", spamP); dIn.Size = UDim2.new(0.9,0,0,30); dIn.Position = UDim2.new(0.05,0,0.16,0); dIn.Text = "1.4"; dIn.BackgroundColor3 = Color3.fromRGB(25,25,30); dIn.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", dIn) local safeBtn = Instance.new("TextButton", spamP); safeBtn.Size = UDim2.new(0.9,0,0,30); safeBtn.Position = UDim2.new(0.05,0,0.28,0); safeBtn.Text = "Safe Mode: OFF"; safeBtn.BackgroundColor3 = Color3.fromRGB(30,30,35); safeBtn.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", safeBtn) local startB = Instance.new("TextButton", spamP); startB.Size = UDim2.new(0.9,0,0,35); startB.Position = UDim2.new(0.05,0,0.45,0); startB.Text = "START SPAM"; startB.BackgroundColor3 = Color3.fromRGB(0, 150, 70); startB.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", startB) local stopB = Instance.new("TextButton", spamP); stopB.Size = UDim2.new(0.9,0,0,35); stopB.Position = UDim2.new(0.05,0,0.58,0); stopB.Text = "STOP SPAM"; stopB.BackgroundColor3 = Color3.fromRGB(180, 0, 0); stopB.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", stopB) -- 3. S-BUTTON & TRAIL ORBS local sHold = Instance.new("Frame", sg); sHold.Size = UDim2.new(0, 65, 0, 65); sHold.Position = UDim2.new(0, 30, 0.5, -30); sHold.BackgroundTransparency = 1 local sBtn = Instance.new("TextButton", sHold); sBtn.Size = UDim2.new(0.7,0,0.7,0); sBtn.Position = UDim2.new(0.15,0,0.15,0); sBtn.BackgroundColor3 = Color3.new(0,0,0); sBtn.Text = "S"; sBtn.TextColor3 = Color3.new(1,1,1); sBtn.Font = "FredokaOne"; sBtn.TextSize = 24; Instance.new("UICorner", sBtn).CornerRadius = UDim.new(1,0); Instance.new("UIStroke", sBtn).Color = Color3.fromRGB(0, 150, 255) makeDraggable(sHold, sBtn) local function createOrb(color) local o = Instance.new("Frame", sHold); o.Size = UDim2.new(0,10,0,10); o.BackgroundColor3 = color; Instance.new("UICorner", o).CornerRadius = UDim.new(1,0) task.spawn(function() while task.wait(0.05) do local trail = Instance.new("Frame", sg); trail.Size = o.Size; trail.BackgroundColor3 = o.BackgroundColor3; trail.Position = o.AbsolutePosition + Vector2.new(5,5); trail.BorderSizePixel = 0; Instance.new("UICorner", trail).CornerRadius = UDim.new(1,0) ts:Create(trail, TweenInfo.new(0.4), {Size = UDim2.new(0,0,0,0), BackgroundTransparency = 1}):Play() task.wait(0.4); trail:Destroy() end end) return o end local o1, o2 = createOrb(Color3.fromRGB(0, 180, 255)), createOrb(Color3.fromRGB(0, 100, 255)) run.Heartbeat:Connect(function() local r = tick() * 4 o1.Position = UDim2.new(0.5 + math.cos(r)*1.1, -5, 0.5 + math.sin(r)*1.1, -5) o2.Position = UDim2.new(0.5 - math.cos(r)*1.1, -5, 0.5 - math.sin(r)*1.1, -5) end) -- 4. SPAM ENGINE local phrases = { "TMKX MEH INDIA πŸ˜’", "TMKX MEH KERALA πŸ˜‰", "TMKX MEH ATLANTIC OCEAN πŸ˜”", "PER KHOL 😏⚑", "PAPA KO H8 WHY😭?", "BHEEK MANG 6KEEπŸ˜”βœŒπŸ»", "TERI MAA KA REP AAJ KIYA H MENEπŸ’₯", "ROO KYU RA HπŸ€”", "ITNI JALDI BHAAG GYAπŸ₯΄", "SAI V2 USE KAR πŸ₯±", "GOP GOP KAR 🍭", "PAPA AA GYE H πŸ€ͺπŸ€™", "PAPA SE PANGA NHI MUNNA 🀫", "TMKX MEH PASINA 😏", "BAAP KO H8 DEGA 🀣", "DADDY SAI RUNS YOU πŸ˜‚", "SCRIPT BY SAI πŸ‘‘βš‘" } safeBtn.MouseButton1Click:Connect(function() safeMode = not safeMode safeBtn.Text = safeMode and "Safe Mode: ON" or "Safe Mode: OFF" safeBtn.TextColor3 = safeMode and Color3.new(0,1,0) or Color3.new(1,1,1) end) startB.MouseButton1Click:Connect(function() looping = true end) stopB.MouseButton1Click:Connect(function() looping = false end) task.spawn(function() while true do if looping then local target = nIn.Text; local phrase = phrases[pIdx]; local pat = customPatterns[patternIdx] local maxLen = 198 local currentLen = #target + #phrase + 2 local available = maxLen - currentLen local finalPattern = string.sub(string.rep(pat, 50), 1, math.max(available, 5)) sendGlobal(finalPattern .. " " .. target .. " " .. phrase) pIdx = (pIdx >= #phrases) and 1 or (pIdx + 1) patternIdx = (patternIdx >= #customPatterns) and 1 or (patternIdx + 1) local waitTime = tonumber(dIn.Text) or 1.4 if safeMode then waitTime = waitTime + (math.random(-2, 2)/10) end task.wait(math.max(waitTime, 0.1)) else task.wait(0.5) end end end) -- 5. UPDATED INTRO & STARTUP (____ PATTERN) task.spawn(function() local startupPattern = string.rep("____", 40) -- Creates long pattern sendGlobal(startupPattern .. " SAI V2 LOADED 😏✌🏻") local iS = Instance.new("ScreenGui", cg); local box = Instance.new("Frame", iS); box.Size = UDim2.new(0, 400, 0, 150); box.Position = UDim2.new(0.5, -200, 0.45, -75); box.BackgroundColor3 = Color3.new(0,0,0); box.BackgroundTransparency = 0.2; Instance.new("UIStroke", box).Color = Color3.new(0, 0.6, 1) local l = Instance.new("TextLabel", box); l.Size = UDim2.new(1,0,1,0); l.BackgroundTransparency = 1; l.TextColor3 = Color3.new(1,1,1); l.Font = "Code"; l.TextSize = 18; l.Text = ""; l.TextWrapped = true local function typeW(str) l.Text = "" for i = 1, #str do l.Text = str:sub(1,i); task.wait(0.03) end task.wait(1.5) local t = ts:Create(l, TweenInfo.new(0.3), {TextTransparency = 1}) t:Play() t.Completed:Wait() l.TextTransparency = 0 end typeW("SAI V2 LOADED 😏✌🏻") typeW("TGR RVX DGN DIVINE PNX VN ON TOP πŸ€«πŸ‘‘") iS:Destroy(); main.Visible = true end) sBtn.MouseButton1Click:Connect(function() main.Visible = not main.Visible end)