-- FUNKY V4 - ALL REQUESTS FIXED (Original behavior preserved for owner commands) -- Added protection for "Anuj" (case-insensitive + leet speak) -- All protected names now show "CANT USE THAT NAME" -- !spam with protected names blocked for everyone (including owner/admins) local Players = game:GetService("Players") local TextChatService = game:GetService("TextChatService") local UserInputService = game:GetService("UserInputService") local VirtualInputManager = game:GetService("VirtualInputManager") local player = Players.LocalPlayer local OWNER_NAME = "ShinChanHKSFF" local LIMITED_ADMINS = {"Captain_Anuj94", "Must2358”} local playerGui = player:WaitForChild("PlayerGui") -- Clean old GUIs if playerGui:FindFirstChild("FUNKY V4") then playerGui["FUNKY V4"]:Destroy() end if playerGui:FindFirstChild("FUNKY V3") then playerGui["FUNKY V3"]:Destroy() end if playerGui:FindFirstChild("FUNKY V2") then playerGui["FUNKY V2"]:Destroy() end local screenGui = Instance.new("ScreenGui") screenGui.Name = "FUNKY V4" screenGui.ResetOnSpawn = false screenGui.DisplayOrder = 999 screenGui.Parent = playerGui local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 320, 0, 180) frame.Position = UDim2.new(0.5, -160, 0.5, -90) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 35) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = screenGui local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 12) frameCorner.Parent = frame local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 35) title.BackgroundTransparency = 1 title.Text = "FUNKY V4" title.TextColor3 = Color3.fromRGB(0, 255, 255) title.Font = Enum.Font.GothamBlack title.TextSize = 24 title.Parent = frame task.spawn(function() while task.wait(0.05) and title.Parent do title.TextColor3 = Color3.fromHSV(tick() % 5 / 5, 1, 1) end end) local textBox = Instance.new("TextBox") textBox.Size = UDim2.new(0, 170, 0, 35) textBox.Position = UDim2.new(0, 100, 0, 50) textBox.BackgroundColor3 = Color3.fromRGB(45, 45, 55) textBox.PlaceholderText = "ENTER H8TER NAME" textBox.Text = "" textBox.TextColor3 = Color3.new(1, 1, 1) textBox.Font = Enum.Font.GothamSemibold textBox.TextSize = 17 textBox.ClearTextOnFocus = false textBox.Parent = frame local boxCorner = Instance.new("UICorner") boxCorner.CornerRadius = UDim.new(0, 10) boxCorner.Parent = textBox local method1Btn = Instance.new("TextButton") method1Btn.Size = UDim2.new(0, 85, 0, 30) method1Btn.Position = UDim2.new(0, 10, 0, 50) method1Btn.BackgroundColor3 = Color3.fromRGB(0, 200, 0) method1Btn.Text = "-_-_-" method1Btn.TextColor3 = Color3.new(1,1,1) method1Btn.Font = Enum.Font.GothamBold method1Btn.TextSize = 16 method1Btn.Parent = frame local m1Corner = Instance.new("UICorner") m1Corner.CornerRadius = UDim.new(0, 10) m1Corner.Parent = method1Btn local method2Btn = Instance.new("TextButton") method2Btn.Size = UDim2.new(0, 85, 0, 30) method2Btn.Position = UDim2.new(0, 10, 0, 85) method2Btn.BackgroundColor3 = Color3.fromRGB(0, 140, 0) method2Btn.Text = "____" method2Btn.TextColor3 = Color3.new(1,1,1) method2Btn.Font = Enum.Font.GothamBold method2Btn.TextSize = 16 method2Btn.Parent = frame local m2Corner = Instance.new("UICorner") m2Corner.CornerRadius = UDim.new(0, 10) m2Corner.Parent = method2Btn local method3Btn = Instance.new("TextButton") method3Btn.Size = UDim2.new(0, 85, 0, 30) method3Btn.Position = UDim2.new(0, 10, 0, 120) method3Btn.BackgroundColor3 = Color3.fromRGB(0, 140, 0) method3Btn.Text = "####" method3Btn.TextColor3 = Color3.new(1,1,1) method3Btn.Font = Enum.Font.GothamBold method3Btn.TextSize = 16 method3Btn.Parent = frame local m3Corner = Instance.new("UICorner") m3Corner.CornerRadius = UDim.new(0, 10) m3Corner.Parent = method3Btn local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 100, 0, 40) toggleBtn.Position = UDim2.new(1, -115, 1, -55) toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 0) toggleBtn.Text = "START" toggleBtn.TextColor3 = Color3.new(1, 1, 1) toggleBtn.Font = Enum.Font.GothamBold toggleBtn.TextSize = 20 toggleBtn.Parent = frame local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(0, 10) toggleCorner.Parent = toggleBtn local delayBtn = Instance.new("TextButton") delayBtn.Size = UDim2.new(0, 80, 0, 35) delayBtn.Position = UDim2.new(1, -200, 1, -52) delayBtn.BackgroundColor3 = Color3.fromRGB(180, 140, 0) delayBtn.Text = "DELAY" delayBtn.TextColor3 = Color3.new(1, 1, 1) delayBtn.Font = Enum.Font.GothamBold delayBtn.TextSize = 18 delayBtn.Parent = frame local delayCorner = Instance.new("UICorner") delayCorner.CornerRadius = UDim.new(0, 10) delayCorner.Parent = delayBtn local delayInput = Instance.new("TextBox") delayInput.Size = UDim2.new(0, 70, 0, 30) delayInput.Position = UDim2.new(1, -195, 1, -90) delayInput.BackgroundColor3 = Color3.fromRGB(45, 45, 55) delayInput.PlaceholderText = "sec" delayInput.Text = "" delayInput.TextColor3 = Color3.new(1, 1, 1) delayInput.Font = Enum.Font.GothamSemibold delayInput.TextSize = 16 delayInput.Visible = false delayInput.Parent = frame local inputCorner = Instance.new("UICorner") inputCorner.CornerRadius = UDim.new(0, 10) inputCorner.Parent = delayInput local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 30, 0, 30) closeBtn.Position = UDim2.new(1, -40, 0, 8) closeBtn.BackgroundTransparency = 1 closeBtn.Text = "X" closeBtn.TextColor3 = Color3.fromRGB(255, 100, 100) closeBtn.Font = Enum.Font.GothamBlack closeBtn.TextSize = 28 closeBtn.TextStrokeTransparency = 0.5 closeBtn.TextStrokeColor3 = Color3.fromRGB(255, 0, 0) closeBtn.Parent = frame local warningLabel = Instance.new("TextLabel") warningLabel.Size = UDim2.new(1, -20, 0, 40) warningLabel.Position = UDim2.new(0, 10, 0.75, 0) warningLabel.BackgroundTransparency = 1 warningLabel.Text = "" warningLabel.TextColor3 = Color3.fromRGB(255, 100, 100) warningLabel.Font = Enum.Font.GothamBold warningLabel.TextSize = 16 warningLabel.TextWrapped = true warningLabel.Visible = false warningLabel.Parent = frame local function showWarning(text) warningLabel.Text = text or "CANT USE THAT NAME" warningLabel.Visible = true task.delay(4, function() warningLabel.Visible = false end) end local function normalizeLeet(str) str = string.lower(str) str = str:gsub("1", "i"):gsub("!", "i"):gsub("3", "e"):gsub("4", "a"):gsub("0", "o"):gsub("5", "s"):gsub("7", "t"):gsub("@", "a"):gsub("$", "s") str = str:gsub("[^a-z]", "") return str end local function isForbiddenName(name) if not name or name == "" then return false end local normalized = normalizeLeet(name) return normalized:find("FUNKY") or normalized:find("grip") or normalized:find("grier") or normalized:find("vws") or normalized:find("yesha") end local cleanTags = {"KING","GOAT","BOSS","LEGEND","MASTER","GOD","BEAST","GIGA","CHAD","SIGMA","ALPHA","OMEGA","VOID","SHADOW","PHANTOM","NOVA","BLAZE","STORM","FROST","VORTEX","TITAN","DRAGON","REAPER","GHOST","WRAITH","NINJA","SAMURAI","WARRIOR","KNIGHT","RAIDER","HUNTER","SAVAGE","DEMON","ANGEL","CHAOS","VENOM","TOXIC","CYBER","NEON","GLITCH","STAR","MOON","SUN","GALAXY","COMET","SPEED","FLASH","TURBO","MAX","ULTIMATE","EPIC","INSANE","CRAZY","WILD","FIRE","ICE","THUNDER","LIGHTNING","FLAME","BURN","SMOKE","MIST","CLOUD","WIND","STONE","ROCK","METAL","DIAMOND","GOLD","CRYSTAL"} local spamDelays = {} local defaultSpamDelay = 2.5 local MAX_CHAT_BYTES = 200 local customEmojis = {} local muteEndTime = 0 local currentMethod = 1 local methodOverrides = {} local lockedUsers = {} local isSpamming = false local spamTask = nil local copycatTargets = {} local currentSpamName = "" local function extractTargetAndParams(rest) local words = {} for word in rest:gmatch("%S+") do table.insert(words, word) end if #words == 0 then return nil, rest end local lastWord = words[#words] local p = Players:FindFirstChild(lastWord) if p then table.remove(words, #words) return p.Name:lower(), table.concat(words, " ") end for i = #words, 1, -1 do p = Players:FindFirstChild(words[i]) if p then table.remove(words, i) return p.Name:lower(), table.concat(words, " ") end end return nil, rest end local function getSpamDelay() return spamDelays[player.Name:lower()] or defaultSpamDelay end local function antiTag(str) return str:gsub("@", "@") end local function getCurrentMethod() return methodOverrides[player.Name:lower()] or currentMethod end local function getPattern(name, tag) local emojiPart = customEmojis[player.Name:lower()] or "" local core = name .. " TMKX MAI " .. tag .. emojiPart core = antiTag(core) local available = MAX_CHAT_BYTES - #core local method = getCurrentMethod() local filler = "" if available > 0 then if method == 1 then filler = string.rep("-_", math.floor(available / 2)) elseif method == 2 then filler = string.rep("__", math.floor(available / 2)) elseif method == 3 then filler = string.rep("##", math.floor(available / 2)) end end return filler .. core end local function getCreditPattern() local core = "SCRIPT BY FUNKY" core = antiTag(core) local available = MAX_CHAT_BYTES - #core local method = getCurrentMethod() local filler = "" if available > 0 then if method == 1 then filler = string.rep("-_", math.floor(available / 2)) elseif method == 2 then filler = string.rep("__", math.floor(available / 2)) elseif method == 3 then filler = string.rep("##", math.floor(available / 2)) end end return filler .. core end local function updateMethodButtons() local locked = lockedUsers["all"] or lockedUsers[player.Name:lower()] or methodOverrides[player.Name:lower()] ~= nil if locked then method1Btn.Text = "LOCKED" method2Btn.Text = "LOCKED" method3Btn.Text = "LOCKED" method1Btn.BackgroundColor3 = Color3.fromRGB(100,100,100) method2Btn.BackgroundColor3 = Color3.fromRGB(100,100,100) method3Btn.BackgroundColor3 = Color3.fromRGB(100,100,100) delayBtn.Text = "LOCKED" delayBtn.BackgroundColor3 = Color3.fromRGB(100,100,100) else method1Btn.Text = "-_-_-" method2Btn.Text = "____" method3Btn.Text = "####" local meth = getCurrentMethod() method1Btn.BackgroundColor3 = meth == 1 and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(0, 140, 0) method2Btn.BackgroundColor3 = meth == 2 and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(0, 140, 0) method3Btn.BackgroundColor3 = meth == 3 and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(0, 140, 0) delayBtn.Text = "DELAY" delayBtn.BackgroundColor3 = Color3.fromRGB(180, 140, 0) end end local function updateToggleButton() local guiLocked = lockedUsers["all"] or lockedUsers[player.Name:lower()] if guiLocked then toggleBtn.Text = "LOCKED" toggleBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) elseif isSpamming then toggleBtn.Text = "STOP" toggleBtn.BackgroundColor3 = Color3.fromRGB(200, 0, 0) else toggleBtn.Text = "START" toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 0) end end local function sendChatMessage(msg, force) force = force or false if not force and os.time() < muteEndTime then return end if #msg > MAX_CHAT_BYTES then msg = msg:sub(1, MAX_CHAT_BYTES) end local success, channel = pcall(function() return TextChatService.TextChannels:WaitForChild("RBXGeneral", 5) end) if success and channel then pcall(function() channel:SendAsync(msg) end) end end task.spawn(function() local success, channel = pcall(function() return TextChatService.TextChannels:WaitForChild("RBXGeneral", 15) end) if success and channel then local old = channel.SendAsync channel.SendAsync = function(self, msg) if os.time() < muteEndTime then return end pcall(old, self, msg) end end end) local function handleCopycat(msg) if os.time() < muteEndTime then return end local speaker = Players:GetPlayerByUserId(msg.TextSource.UserId) if not speaker then return end local myTarget = copycatTargets[player.Name:lower()] if myTarget and speaker.Name:lower() == myTarget then sendChatMessage(msg.Text) end end local function sendMaxCountdown() local core = "SPAM STARTING IN 20 SECONDS" core = antiTag(core) local available = 200 - #core local filler = string.rep("__", math.floor(available / 2)) local fullMsg = filler .. core sendChatMessage(fullMsg) end local function startSpam(name) if isSpamming or os.time() < muteEndTime or lockedUsers["all"] or lockedUsers[player.Name:lower()] then return end if isForbiddenName(name) then showWarning("CANT USE THAT NAME") return end currentSpamName = name isSpamming = true updateToggleButton() spamTask = task.spawn(function() local i = 1 local count = 0 local tags = cleanTags local currentDelay = getSpamDelay() while isSpamming and os.time() >= muteEndTime do count = count + 1 sendChatMessage(getPattern(name, tags[i])) task.wait(currentDelay + math.random() * 3.0) i = (i % #tags) + 1 if count >= math.random(7,13) then task.wait(0.8) sendChatMessage(getCreditPattern()) task.wait(3) count = 0 end end stopSpam() end) end local function stopSpam() isSpamming = false currentSpamName = "" if spamTask then task.cancel(spamTask) spamTask = nil end updateToggleButton() end closeBtn.MouseButton1Click:Connect(function() frame.Visible = false end) UserInputService.InputBegan:Connect(function(input, gp) if not gp and input.KeyCode == Enum.KeyCode.Insert then frame.Visible = not frame.Visible end end) method1Btn.MouseButton1Click:Connect(function() if lockedUsers["all"] or lockedUsers[player.Name:lower()] or methodOverrides[player.Name:lower()] then return end currentMethod = 1 updateMethodButtons() end) method2Btn.MouseButton1Click:Connect(function() if lockedUsers["all"] or lockedUsers[player.Name:lower()] or methodOverrides[player.Name:lower()] then return end currentMethod = 2 updateMethodButtons() end) method3Btn.MouseButton1Click:Connect(function() if lockedUsers["all"] or lockedUsers[player.Name:lower()] or methodOverrides[player.Name:lower()] then return end currentMethod = 3 updateMethodButtons() end) toggleBtn.MouseButton1Click:Connect(function() if lockedUsers["all"] or lockedUsers[player.Name:lower()] or os.time() < muteEndTime then return end local name = textBox.Text:match("^%s*(.-)%s*$") if name == "" then return end if isSpamming then stopSpam() else startSpam(name) end end) delayBtn.MouseButton1Click:Connect(function() if lockedUsers["all"] or lockedUsers[player.Name:lower()] then return end delayInput.Visible = true local current = spamDelays[player.Name:lower()] or defaultSpamDelay delayInput.Text = tostring(current) delayInput:CaptureFocus() end) delayInput.FocusLost:Connect(function(enterPressed) delayInput.Visible = false if enterPressed then local inputText = delayInput.Text:match("^%s*(.-)%s*$") local num = tonumber(inputText) if num and num >= 0.1 then spamDelays[player.Name:lower()] = num if isSpamming and currentSpamName ~= "" then stopSpam() startSpam(currentSpamName) end end end delayInput.Text = "" end) frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then if delayInput.Visible then delayInput.Visible = false delayInput.Text = "" end end end) -- COMMAND HANDLER task.spawn(function() local success, channel = pcall(function() return TextChatService.TextChannels:WaitForChild("RBXGeneral", 10) end) if not success or not channel then return end channel.MessageReceived:Connect(function(msg) if not msg.TextSource then return end handleCopycat(msg) local sender = Players:GetPlayerByUserId(msg.TextSource.UserId) if not sender then return end local is_owner = sender.Name == OWNER_NAME local is_limited = table.find(LIMITED_ADMINS, sender.Name) ~= nil if not (is_owner or is_limited) then return end local text = msg.Text if not text:match("^!") then return end local cmd = text:match("^!(%S+)") if not cmd then return end cmd = cmd:lower() local rest = text:match("^!%S+ ?(.*)$") or "" local target, params = extractTargetAndParams(rest) local affectsOwner = (target and target == OWNER_NAME:lower()) or (not target and player.Name == OWNER_NAME) if is_limited and affectsOwner then sendChatMessage("Cannot target OWNER.") return end if cmd == "spam" then if params == "" then return end if isForbiddenName(params) then sendChatMessage("CANT USE THAT NAME") return end if target then if player.Name:lower() == target then sendMaxCountdown() task.wait(20) stopSpam() startSpam(params) end else sendMaxCountdown() task.wait(20) stopSpam() startSpam(params) end return end if cmd == "stop" then stopSpam() return end if cmd == "copycat" then if params == "" then return end params = params:lower() if target then copycatTargets[target] = params sendChatMessage("Copycat " .. params .. " forced on " .. target) else for _, p in Players:GetPlayers() do copycatTargets[p.Name:lower()] = params end sendChatMessage("Everyone now copycatting " .. params) end return end if cmd == "uncopycat" then if target then copycatTargets[target] = nil sendChatMessage("Copycat stopped for " .. target) else copycatTargets = {} sendChatMessage("Copycat stopped for everyone") end return end if cmd == "emoji" or cmd == "unemoji" then local emojiText = params local clear = cmd == "unemoji" or emojiText == "" if target then if clear then customEmojis[target] = nil sendChatMessage("Emoji cleared for " .. target) else customEmojis[target] = " " .. emojiText sendChatMessage("Emoji set to " .. emojiText .. " for " .. target) end else if clear then customEmojis = {} sendChatMessage("Emoji cleared for everyone") else for _, p in Players:GetPlayers() do customEmojis[p.Name:lower()] = " " .. emojiText end sendChatMessage("Emoji set to " .. emojiText .. " for everyone") end end return end if not is_owner then return end if cmd == "cmd" or cmd == "cmds" then sendChatMessage("spam [player] • stop • copycat [player] • uncopycat [player] • bot • credit") task.wait(0.8) sendChatMessage("emoji [player] • unemoji [player] • say ") task.wait(0.8) sendChatMessage("speed sec / reset [player] • kick [reason] • method <1|2|3> [player] • lock/unlock [player]") return end if cmd == "admin" then local list = table.concat(LIMITED_ADMINS, ", ") sendChatMessage("Admins: " .. (list == "" and "None" or list)) return end if cmd == "say" then if params ~= "" then sendChatMessage(params) end return end if cmd == "speed" then local lowParams = params:lower() if lowParams == "reset" then if target then spamDelays[target] = nil sendChatMessage("Delay reset to default (2.5 sec) for " .. target) else defaultSpamDelay = 2.5 spamDelays = {} sendChatMessage("Global delay reset to default (2.5 sec)") end if isSpamming and currentSpamName ~= "" then stopSpam() startSpam(currentSpamName) end return end local numStr = params:match("(%d+%.?%d*)") local hasSec = lowParams:find("sec") or lowParams:find("seconds") or lowParams:find("second") if numStr and hasSec then local newDelay = tonumber(numStr) if newDelay and newDelay >= 0.1 then if target then spamDelays[target] = newDelay sendChatMessage("Spam delay set to " .. newDelay .. " sec for " .. target) else defaultSpamDelay = newDelay spamDelays = {} sendChatMessage("Global delay set to " .. newDelay .. " sec") end if isSpamming and currentSpamName ~= "" then stopSpam() startSpam(currentSpamName) end end end return end if cmd == "kick" then local kickTarget = target or player.Name:lower() local tp = Players:FindFirstChild(kickTarget:gsub("^%l", string.upper)) or Players:FindFirstChild(kickTarget) if tp then local reason = params ~= "" and params or "KICKED BY FUNKY" task.delay(0.4, function() local found = false for _, gui in ipairs(tp.PlayerGui:GetDescendants()) do if gui:IsA("TextBox") then local name = gui.Name:lower() local ph = (gui.PlaceholderText or ""):lower() if name:find("cmd") or name:find("command") or name:find("bar") or name:find("infinite") or name:find("iy") or ph:find("command") or ph:find("infinite") or ph:find("iy") then found = true gui.Text = ";exit" task.spawn(function() task.wait(0.15) local btn = gui.Parent:FindFirstChild("Execute") or gui.Parent.Parent:FindFirstChild("Execute", true) or gui.Parent:FindFirstChild("Run") or gui.Parent.Parent:FindFirstChild("Run", true) if btn and btn:IsA("TextButton") then btn:Activate() else VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Return, false, game) task.wait(0.03) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Return, false, game) end end) break end end end task.delay(1.4, function() if not found then tp:Kick(reason) end end) end) sendChatMessage(tp.Name .. " kicked. Reason: " .. reason) else sendChatMessage("Player not found.") end return end if cmd == "method" then local num = tonumber(params:match("^(%d+)")) if num and num >= 1 and num <= 3 then if target then methodOverrides[target] = num sendChatMessage("Method " .. num .. " locked for " .. target) else currentMethod = num methodOverrides = {} sendChatMessage("Method " .. num .. " locked for everyone") end updateMethodButtons() end return end if cmd == "lock" then if target then lockedUsers[target] = true sendChatMessage("GUI locked for " .. target) else lockedUsers = {all = true} sendChatMessage("GUI locked for everyone") end updateMethodButtons() updateToggleButton() return end if cmd == "unlock" then if target then lockedUsers[target] = nil methodOverrides[target] = nil sendChatMessage("Unlocked for " .. target) else lockedUsers = {} methodOverrides = {} sendChatMessage("Unlocked for everyone") end updateMethodButtons() updateToggleButton() return end end) end) -- !credit - everyone says it with ____ filler task.spawn(function() local success, channel = pcall(function() return TextChatService.TextChannels:WaitForChild("RBXGeneral", 10) end) if not success or not channel then return end channel.MessageReceived:Connect(function(msg) if not msg.TextSource then return end local sender = Players:GetPlayerByUserId(msg.TextSource.UserId) if not sender then return end if sender.Name == OWNER_NAME and msg.Text:lower() == "!credit" then local core = "SCRIPT BY FUNKY" core = antiTag(core) local available = MAX_CHAT_BYTES - #core local filler = string.rep("__", math.floor(available / 2)) sendChatMessage(filler .. core) end end) end) -- BOT LISTENER task.spawn(function() local success, channel = pcall(function() return TextChatService.TextChannels:WaitForChild("RBXGeneral", 10) end) if not success or not channel then return end channel.MessageReceived:Connect(function(msg) if not msg.TextSource then return end local sender = Players:GetPlayerByUserId(msg.TextSource.UserId) if not sender then return end if sender.Name == OWNER_NAME and msg.Text == "!bot" then local text = "YES LORD FUNKY" local available = MAX_CHAT_BYTES - #text local filler = string.rep("_", available) sendChatMessage(filler .. text) end end) end) updateToggleButton() updateMethodButtons() print("FUNKY V4 - Anuj protected | All protected names show 'CANT USE THAT NAME' | !spam blocked for protected names | Ready")