local Services = { Players = game:GetService("Players"), ReplicatedStorage = game:GetService("ReplicatedStorage"), VirtualInputManager = game:GetService("VirtualInputManager"), UserInputService = game:GetService("UserInputService"), TweenService = game:GetService("TweenService"), RunService = game:GetService("RunService"), CoreGui = game:GetService("CoreGui") } local LocalPlayer = Services.Players.LocalPlayer loadstring(game:HttpGet("https://raw.githubusercontent.com/MarsQQ/Unpatchabomb/master/unpatchabomb_english_words", true))() local WordList = loadstring(game:HttpGet("https://raw.githubusercontent.com/jjengu/scripts/refs/heads/main/wordbomb/words.lua"))() local WordList_Two = loadstring(game:HttpGet("https://raw.githubusercontent.com/jjengu/scripts/refs/heads/main/wordbomb/words_two.lua"))() local WordList_Three = { "pseudopseudohypoparathyroidism", "floccinaucinihilipilification", "antidisestablishmentarianism", "supercalifragilisticexpialidocious", "hexakosioihexekontahexaphobia", "dichlorodiphenyltrichloroethane", "electroencephalographically", "xenotransplantations", "counterdemonstrations", "characteristically", "unconstitutionality", "intercontinental", "phenomenological", "oversimplification", "disenfranchisement", "incompatibilities", "thermodynamically", "magnetohydrodynamics", "uncharacteristically", "electroencephalogram", "counterrevolutionary", "internationalization", "counterproductive", "environmentalists", "telecommunications", "immunohistochemistry", "hypercholesterolemia", "incomprehensibilities", "deinstitutionalization", "psychopharmacological", "reconceptualizations", "reindustrialization", "spectroscopically", "standardizations", "vulnerabilities", "westernization", "xenotransplantation", "sphenopalatineganglioneuralgia", } local MegaList = {} local function merge(tbl) for _, v in ipairs(tbl) do if type(v) == "string" then MegaList[#MegaList + 1] = v end end end merge(ENGLISH_WORDS) merge(WordList) merge(WordList_Two) merge(WordList_Three) local seen = {} local UniqueMegaList = {} for _, word in ipairs(MegaList) do local lower = string.lower(word) if not seen[lower] then seen[lower] = true UniqueMegaList[#UniqueMegaList + 1] = word end end ENGLISH_WORDS = UniqueMegaList WordList = UniqueMegaList WordList_Two = UniqueMegaList WordList_Three = UniqueMegaList local TypoNeighbours = { a="s", b="v", c="v", d="f", e="w", f="d", g="h", h="j", i="o", j="h", k="l", l="k", m="n", n="m", o="i", p="o", q="w", r="t", s="a", t="r", u="y", v="c", w="e", x="z", y="u", z="x", } local IsOnMobile = table.find({Enum.Platform.IOS, Enum.Platform.Android}, Services.UserInputService:GetPlatform()) local Games = Services.ReplicatedStorage:WaitForChild("Network"):WaitForChild("Games") local GameID = "-1" local UsedWords = {} local Typing = false local TypingActive = false local LastWord = "" local Settings = { WordList = 0, AutoType = false, AutoJoin = false, WPM = 120, WordTypeDelay = 0.3, HumaniseWPM = true, ReactionTime = 0.35, TypoChance = 0.04, BurstMin = 3, BurstMax = 7, } local burstCounter = 0 local burstTarget = math.random(3, 7) local function GetLetterDelay() local base = 60 / (Settings.WPM * 5) if Settings.HumaniseWPM then local roll = math.random() if roll < 0.15 then base = base * (0.35 + math.random() * 0.25) elseif roll < 0.80 then base = base * (0.80 + math.random() * 0.40) else base = base * (1.20 + math.random() * 0.60) end burstCounter = burstCounter + 1 if burstCounter >= burstTarget then burstCounter = 0 burstTarget = math.random(Settings.BurstMin, Settings.BurstMax) base = base + (0.04 + math.random() * 0.08) end end return math.max(base, 0.005) end local alreadyUsed = {} local function tableItemExists(array, val) for _, v in pairs(array) do if v == val then return true end end return false end local function findWord(str) local best, bestLen = nil, 0 local lowerStr = string.lower(str) local lists = {ENGLISH_WORDS, WordList, WordList_Two, WordList_Three} for _, wlist in pairs(lists) do if type(wlist) == "table" then for _, v in pairs(wlist) do if type(v) == "string" then if string.find(string.lower(v), lowerStr, 1, true) and not tableItemExists(alreadyUsed, v) then if #v > bestLen then best = v; bestLen = #v end end end end end end if best then table.insert(alreadyUsed, best) end return best end local function FindWordAuto(l) if not l or l == "" then return nil end local lowerL = string.lower(l) local lists = {ENGLISH_WORDS, WordList, WordList_Two, WordList_Three} local order = {lists[Settings.WordList + 1]} for i = 1, 4 do if i ~= Settings.WordList + 1 then table.insert(order, lists[i]) end end local best, bestLen = nil, 0 for _, wlist in ipairs(order) do if type(wlist) == "table" then for _, v in pairs(wlist) do if v and type(v) == "string" then local lv = string.lower(v) if string.find(lv, lowerL, 1, true) and not table.find(UsedWords, v) and string.upper(v) ~= LastWord and #v > bestLen then best = v; bestLen = #v end end end end end if best then table.insert(UsedWords, best); return string.upper(best) end return nil end local function GetTurn() for _, v in pairs(getgc()) do if type(v) == "function" and debug.getinfo(v).name == "updateInfoFrame" then for __, vv in ipairs(debug.getupvalues(v)) do if type(vv) == "table" and vv.PlayerID ~= nil then return vv.PlayerID end end end end return nil end local function GetLetters() for _, v in pairs(getgc()) do if type(v) == "function" and debug.getinfo(v).name == "updateInfoFrame" then for __, vv in pairs(debug.getupvalues(v)) do if type(vv) == "table" and vv.Prompt ~= nil then return vv.Prompt end end end end local PlayerGui = LocalPlayer:FindFirstChild("PlayerGui") if PlayerGui then local PromptLbl = PlayerGui:FindFirstChild("PromptLabel", true) if PromptLbl then return PromptLbl.Text end end return "" end local function SimulateKey(character) local keyCode if character == "\n" or character == "\r" then keyCode = Enum.KeyCode.Return else pcall(function() keyCode = Enum.KeyCode[string.upper(character)] end) end if keyCode then Services.VirtualInputManager:SendKeyEvent(true, keyCode, false, game) task.wait(0.01) Services.VirtualInputManager:SendKeyEvent(false, keyCode, false, game) end end local function SimulateBackspace() Services.VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Backspace, false, game) task.wait(0.01) Services.VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Backspace, false, game) end if Services.CoreGui:FindFirstChild("Unpatchabomb") then Services.CoreGui.Unpatchabomb:Destroy() end local Unpatchabomb = Instance.new("ScreenGui") Unpatchabomb.Name = "Unpatchabomb" Unpatchabomb.Parent = Services.CoreGui Unpatchabomb.ZIndexBehavior = Enum.ZIndexBehavior.Sibling Unpatchabomb.ResetOnSpawn = false local OuterFrame = Instance.new("Frame") OuterFrame.Name = "OuterFrame" OuterFrame.Parent = Unpatchabomb OuterFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30) OuterFrame.BorderSizePixel = 0 OuterFrame.Position = UDim2.new(0.5, -160, 0.5, -200) OuterFrame.Size = UDim2.new(0, 320, 0, 0) OuterFrame.ClipsDescendants = true OuterFrame.BackgroundTransparency = 1 Instance.new("UICorner", OuterFrame).CornerRadius = UDim.new(0, 8) local TopFrame = Instance.new("Frame") TopFrame.Parent = OuterFrame TopFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 12) TopFrame.BorderSizePixel = 0 TopFrame.Size = UDim2.new(1, 0, 0, 28) TopFrame.BackgroundTransparency = 1 Instance.new("UICorner", TopFrame).CornerRadius = UDim.new(0, 8) local T1 = Instance.new("TextLabel") T1.Parent = TopFrame T1.BackgroundTransparency = 1 T1.Size = UDim2.new(0.5, 0, 1, 0) T1.Position = UDim2.new(0.04, 0, 0, 0) T1.Font = Enum.Font.GothamBold T1.Text = "UNPATCHA" T1.TextColor3 = Color3.fromRGB(255, 255, 255) T1.TextSize = 14 T1.TextXAlignment = Enum.TextXAlignment.Left local T2 = Instance.new("TextLabel") T2.Parent = TopFrame T2.BackgroundTransparency = 1 T2.Size = UDim2.new(0.4, 0, 1, 0) T2.Position = UDim2.new(0.34, 0, 0, 0) T2.Font = Enum.Font.Gotham T2.Text = "BOMB | WPM" T2.TextColor3 = Color3.fromRGB(200, 200, 200) T2.TextSize = 14 T2.TextXAlignment = Enum.TextXAlignment.Left local MinimizeButton = Instance.new("TextButton") MinimizeButton.Parent = TopFrame MinimizeButton.BackgroundTransparency = 1 MinimizeButton.Position = UDim2.new(1, -28, 0, 0) MinimizeButton.Size = UDim2.new(0, 28, 1, 0) MinimizeButton.Font = Enum.Font.GothamBold MinimizeButton.Text = "—" MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255) MinimizeButton.TextSize = 18 local IntroFrame = Instance.new("Frame") IntroFrame.Parent = OuterFrame IntroFrame.BackgroundColor3 = Color3.fromRGB(22, 22, 22) IntroFrame.BorderSizePixel = 0 IntroFrame.Position = UDim2.new(0, 0, 0, 28) IntroFrame.Size = UDim2.new(1, 0, 1, -28) IntroFrame.ZIndex = 5 local function MakeIntroLabel(posY, sizeY, text, font) local l = Instance.new("TextLabel") l.Parent = IntroFrame l.BackgroundTransparency = 1 l.Position = UDim2.new(0, 0, posY, 0) l.Size = UDim2.new(1, 0, sizeY, 0) l.Font = font or Enum.Font.Gotham l.Text = text l.TextColor3 = Color3.fromRGB(255, 255, 255) l.TextScaled = true l.ZIndex = 5 return l end MakeIntroLabel(0.38, 0.15, "UNPATCHABOMB", Enum.Font.GothamBold) MakeIntroLabel(0.54, 0.08, "LET'S WIN EASILY.") local LoadingLabel = MakeIntroLabel(0.76, 0.08, "Loading...") MakeIntroLabel(0.86, 0.08, "WPM Edition") task.spawn(function() while LoadingLabel and LoadingLabel.Parent do LoadingLabel.Text = "Loading." ; task.wait(0.15) LoadingLabel.Text = "Loading.." ; task.wait(0.15) LoadingLabel.Text = "Loading..."; task.wait(0.15) end end) local MainFrame = Instance.new("Frame") MainFrame.Parent = OuterFrame MainFrame.BackgroundColor3 = Color3.fromRGB(22, 22, 22) MainFrame.BorderSizePixel = 0 MainFrame.Position = UDim2.new(0, 0, 0, 28) MainFrame.Size = UDim2.new(1, 0, 1, -28) MainFrame.ClipsDescendants = true MainFrame.BackgroundTransparency = 1 Services.TweenService:Create( OuterFrame, TweenInfo.new(0.6, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 320, 0, 360), Position = UDim2.new(0.5, -160, 0.5, -180), BackgroundTransparency = 0} ):Play() task.spawn(function() for i = 1, 10 do MainFrame.BackgroundTransparency = 1 - i/10 TopFrame.BackgroundTransparency = 1 - i/10 task.wait(0.03) end end) local function MakeLabel(parent, posY, sizeY, text, font) local l = Instance.new("TextLabel") l.Parent = parent l.BackgroundTransparency = 1 l.Position = UDim2.new(0.02, 0, posY, 0) l.Size = UDim2.new(0.96, 0, sizeY, 0) l.Font = font or Enum.Font.Gotham l.Text = text l.TextColor3 = Color3.fromRGB(255, 255, 255) l.TextScaled = true return l end local function MakeButton(parent, posY, sizeY, text, color) local b = Instance.new("TextButton") b.Parent = parent b.BackgroundColor3 = color or Color3.fromRGB(35, 35, 35) b.BorderSizePixel = 0 b.Position = UDim2.new(0.02, 0, posY, 0) b.Size = UDim2.new(0.96, 0, sizeY, 0) b.Font = Enum.Font.GothamBold b.Text = text b.TextColor3 = Color3.fromRGB(255, 255, 255) b.TextScaled = true Instance.new("UICorner", b).CornerRadius = UDim.new(0, 4) b.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 or inp.UserInputType == Enum.UserInputType.Touch then Services.TweenService:Create(b, TweenInfo.new(0.08, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(0.96, 0, sizeY * 0.95, 0)}):Play() end end) b.InputEnded:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 or inp.UserInputType == Enum.UserInputType.Touch then Services.TweenService:Create(b, TweenInfo.new(0.08, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(0.96, 0, sizeY, 0)}):Play() end end) return b end local function MakeTextBox(parent, posY, sizeY, placeholder) local tb = Instance.new("TextBox") tb.Parent = parent tb.BackgroundColor3 = Color3.fromRGB(12, 12, 12) tb.BorderSizePixel = 0 tb.Position = UDim2.new(0.02, 0, posY, 0) tb.Size = UDim2.new(0.96, 0, sizeY, 0) tb.Font = Enum.Font.GothamBold tb.PlaceholderText = placeholder tb.Text = "" tb.TextColor3 = Color3.fromRGB(255, 255, 255) tb.TextScaled = true tb.ClearTextOnFocus = true Instance.new("UICorner", tb).CornerRadius = UDim.new(0, 4) return tb end local WordText = MakeLabel(MainFrame, 0.01, 0.09, "Welcome to Unpatchabomb WPM!", Enum.Font.GothamBold) local LetterBox = MakeTextBox(MainFrame, 0.11, 0.08, "Type letters + Enter to auto-type") local StatusLabel = MakeLabel(MainFrame, 0.20, 0.08, "Status: Waiting for round...") StatusLabel.TextColor3 = Color3.fromRGB(180, 180, 180) local AutoTypeToggle = MakeButton(MainFrame, 0.29, 0.08, "Auto Type: OFF", Color3.fromRGB(40, 40, 40)) local AutoJoinToggle = MakeButton(MainFrame, 0.38, 0.08, "Auto Join: OFF", Color3.fromRGB(40, 40, 40)) local WPMBox = MakeTextBox(MainFrame, 0.47, 0.08, "Typing WPM (default: 120)") local JitterToggle = MakeButton(MainFrame, 0.56, 0.08, "Humanise WPM: ON", Color3.fromRGB(40, 80, 40)) local TypoPresets = {0, 0.02, 0.04, 0.08, 0.12, 0.20} local TypoIndex = 3 local TypoButton = MakeButton(MainFrame, 0.65, 0.08, string.format("Typo Chance: %d%%", math.floor(TypoPresets[TypoIndex] * 100)), Color3.fromRGB(80, 40, 40)) TypoButton.MouseButton1Click:Connect(function() TypoIndex = (TypoIndex % #TypoPresets) + 1 Settings.TypoChance = TypoPresets[TypoIndex] TypoButton.Text = string.format("Typo Chance: %d%%", math.floor(Settings.TypoChance * 100)) StatusLabel.Text = string.format("Status: Typo chance → %d%%", math.floor(Settings.TypoChance * 100)) end) local ListNames = {"List: English", "List: One", "List: Two", "List: Three"} local ListIndex = 1 local ListDropDown = MakeButton(MainFrame, 0.74, 0.08, ListNames[1], Color3.fromRGB(40, 40, 80)) local HowToUseText = MakeLabel(MainFrame, 0.83, 0.07, "Type letters + Enter | Auto types at WPM") HowToUseText.TextColor3 = Color3.fromRGB(140, 140, 140) local function SetStatus(msg) StatusLabel.Text = "Status: " .. msg end local TypeBox local function LinkTypeBox() local GameUI = LocalPlayer.PlayerGui:WaitForChild("GameUI", 5) if GameUI then TypeBox = GameUI:FindFirstChild("Typebox", true) GameUI.DescendantAdded:Connect(function(c) if c.Name == "Typebox" then TypeBox = c TypeBox:GetPropertyChangedSignal("Visible"):Connect(function() if Settings.AutoType then task.spawn(TryTyping) end end) end end) end end task.spawn(LinkTypeBox) local function TypeWord(word) if Typing then return end Typing = true burstCounter = 0 burstTarget = math.random(Settings.BurstMin, Settings.BurstMax) SetStatus(string.format("Typing '%s' @ %d WPM (typo: %d%%)", word, Settings.WPM, math.floor(Settings.TypoChance * 100))) if TypeBox then pcall(function() TypeBox:CaptureFocus() end) end local i = 1 while i <= #word do local char = string.sub(word, i, i) if Settings.TypoChance > 0 and math.random() < Settings.TypoChance then local lower = string.lower(char) local typoKey = TypoNeighbours[lower] or lower SimulateKey(typoKey) task.wait(GetLetterDelay()) task.wait(0.04 + math.random() * 0.08) SimulateBackspace() task.wait(0.03 + math.random() * 0.05) SimulateKey(char) else SimulateKey(char) end task.wait(GetLetterDelay()) i = i + 1 end task.wait(0.05) SimulateKey("\n") SetStatus("Submitted: " .. word) Typing = false end function TryTyping() if not Settings.AutoType or TypingActive then return end TypingActive = true while GetTurn() ~= LocalPlayer.UserId do if not Settings.AutoType then TypingActive = false return end task.wait(0.1) end if not Settings.AutoType then TypingActive = false return end local Word, attempts = nil, 0 repeat task.wait() local detectedLetters = GetLetters() if detectedLetters and detectedLetters ~= "" then LetterBox.Text = detectedLetters Word = FindWordAuto(detectedLetters) attempts += 1 if not Settings.AutoType then TypingActive = false return end end until Word or attempts >= 10 if Word then LastWord = Word task.wait(Settings.WordTypeDelay) if not Typing then TypeWord(Word) end task.wait(Settings.WordTypeDelay) if GetTurn() == LocalPlayer.UserId and Settings.AutoType then SetStatus("Still my turn — retrying…") LastWord = "" TypingActive = false TryTyping() return end else SetStatus("No word found for: " .. GetLetters()) end TypingActive = false end task.spawn(function() local lastPrompt = "" while task.wait(0.25) do if Settings.AutoType and GetTurn() == LocalPlayer.UserId and not Typing and not TypingActive then local currentPrompt = GetLetters() or "" if currentPrompt ~= "" and currentPrompt ~= lastPrompt then lastPrompt = currentPrompt task.spawn(TryTyping) end elseif GetTurn() ~= LocalPlayer.UserId then lastPrompt = "" end end end) LetterBox.FocusLost:Connect(function(enterPressed) if not enterPressed then return end local sub = LetterBox.Text if not sub or sub == "" then sub = GetLetters() if not sub or sub == "" then WordText.Text = "Error: empty input." return end end WordText.Text = sub .. " — Searching..." task.wait(0.1) local word = FindWordAuto(sub) or findWord(sub) if word then WordText.Text = "Typing: '" .. word .. "'..." task.spawn(function() TypeWord(word) WordText.Text = "Done: '" .. word .. "'" end) else WordText.Text = "No word found :(" end end) AutoTypeToggle.MouseButton1Click:Connect(function() Settings.AutoType = not Settings.AutoType local on = Settings.AutoType AutoTypeToggle.Text = "Auto Type: " .. (on and "ON" or "OFF") AutoTypeToggle.BackgroundColor3 = on and Color3.fromRGB(40, 80, 40) or Color3.fromRGB(40, 40, 40) SetStatus("Auto Type " .. (on and "Enabled" or "Disabled")) if not on then TypingActive = false end if on then task.spawn(TryTyping) end end) AutoJoinToggle.MouseButton1Click:Connect(function() Settings.AutoJoin = not Settings.AutoJoin local on = Settings.AutoJoin AutoJoinToggle.Text = "Auto Join: " .. (on and "ON" or "OFF") AutoJoinToggle.BackgroundColor3 = on and Color3.fromRGB(40, 80, 40) or Color3.fromRGB(40, 40, 40) SetStatus("Auto Join " .. (on and "Enabled" or "Disabled")) if on then for i = -1, -1000, -1 do Games.GameEvent:FireServer(i, "JoinGame") end end end) WPMBox.FocusLost:Connect(function() local n = tonumber(WPMBox.Text) if n then Settings.WPM = math.clamp(n, 10, 9999) SetStatus(string.format("WPM → %d (%.4fs/char)", Settings.WPM, 60 / (Settings.WPM * 5))) else SetStatus("Invalid WPM — enter a number.") end end) JitterToggle.MouseButton1Click:Connect(function() Settings.HumaniseWPM = not Settings.HumaniseWPM local on = Settings.HumaniseWPM JitterToggle.Text = "Humanise WPM: " .. (on and "ON" or "OFF") JitterToggle.BackgroundColor3 = on and Color3.fromRGB(40, 80, 40) or Color3.fromRGB(40, 40, 40) SetStatus("WPM jitter " .. (on and "ON" or "OFF")) end) ListDropDown.MouseButton1Click:Connect(function() ListIndex = (ListIndex % #ListNames) + 1 Settings.WordList = ListIndex - 1 ListDropDown.Text = ListNames[ListIndex] SetStatus("Word list → " .. ListNames[ListIndex]) end) do local dragging, dragInput, dragStart, startPos TopFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = OuterFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) TopFrame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) Services.UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local d = input.Position - dragStart OuterFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y ) end end) end local minimized = false MinimizeButton.MouseButton1Click:Connect(function() minimized = not minimized local targetSize = minimized and UDim2.new(0, 320, 0, 28) or UDim2.new(0, 320, 0, 360) local targetBodySize = minimized and UDim2.new(1, 0, 0, 0) or UDim2.new(1, 0, 1, -28) local glow = Instance.new("ImageLabel") glow.Parent = OuterFrame glow.BackgroundTransparency = 1 glow.Image = "rbxassetid://5028857084" glow.ImageColor3 = Color3.fromRGB(255, 255, 255) glow.Size = UDim2.new(1, 20, 1, 20) glow.Position = UDim2.new(0, -10, 0, -10) glow.ImageTransparency = 1 Services.TweenService:Create(glow, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {ImageTransparency = 0.7}):Play() task.delay(0.4, function() glow:Destroy() end) Services.TweenService:Create(OuterFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = targetSize}):Play() Services.TweenService:Create(MainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = targetBodySize}):Play() Services.TweenService:Create(IntroFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = targetBodySize}):Play() MinimizeButton.Text = minimized and "+" or "—" end) task.delay(2, function() Services.TweenService:Create(IntroFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0, 0, 1, 0)}):Play() end) Games:WaitForChild("RegisterGame").OnClientEvent:Connect(function(int) GameID = int UsedWords = {} LastWord = "" SetStatus("Game registered — ID: " .. int) if Settings.AutoJoin then Games.GameEvent:FireServer(int, "JoinGame") end task.wait(1) if Settings.AutoType then task.spawn(TryTyping) end end)