- Fe - - Roblox Chat Tags Remover Script

return cleaned end

--[[ FE Roblox Chat Tags Remover Script Author: Technical Research Version: 2.0 (FE-Compliant) Placement: StarterPlayerScripts or ReplicatedFirst ]] local TextChatService = game:GetService("TextChatService")

Game developers and utility scripters need a reliable method to strip chat tags (e.g., ranks, badges, group names) from displayed messages without violating FE principles or requiring server-side privileges. - FE - Roblox Chat Tags Remover Script

-- Hook into incoming messages local function onIncomingMessage(message: ChatMessage) if not message or not message.TextSource then return nil -- allow message to pass unchanged end

-- Return the (potentially) modified message return message end return cleaned end --[[ FE Roblox Chat Tags

-- Connect if service is available if TextChatService then TextChatService.OnIncomingMessage = onIncomingMessage print("[ChatTagRemover]: Loaded successfully. Tags will be stripped.") else warn("[ChatTagRemover]: TextChatService not found. Script aborted.") end -- Advanced: Remove all tags except specific ones (e.g., [OWNER]) local WHITELIST_TAGS = "[OWNER]" local function advancedStrip(rawName: string): string local parts = {} for part in rawName:gmatch("%b[]") do table.insert(parts, part) end

-- Only modify if change actually happened if strippedSender ~= originalSender then message.TextSource = strippedSender end Script aborted

local cleaned = rawName -- Keep removing leading tags until none left while true do local newName = cleaned:gsub(TAG_PATTERN, "") if newName == cleaned then break end cleaned = newName end

local originalSender = message.TextSource local strippedSender = stripTagsFromName(originalSender)

-- Pattern: removes one or more bracketed tags at the start of the name -- Examples: "[ADMIN] John" -> "John", "[VIP][DEV] Sarah" -> "Sarah" local TAG_PATTERN = "^%[%w+%]%s*" -- matches "[TAG] " at beginning local MULTI_TAG_PATTERN = "^(%[%w+%]%s*)+" -- matches consecutive tags

local function stripTagsFromName(rawName: string): string if not rawName or rawName == "" then return rawName end