Help me with filtering the message :cri:

local messagingservice = game:GetService("MessagingService")
local httpserv = game:GetService("HttpService")
function ServerMessageRecieved(DataRecieved)
    local textObject
    local filteredMessage
    local decodedData = httpserv:JSONDecode(DataRecieved.Data)
    local textservice = game:GetService("TextService")
    local success, errorMessage = pcall(function()
        textObject = textservice:FilterStringAsync(decodedData.message, decodedData.id)
    end)
    if success then
        print('Data for filter created')
    else
        warn(errorMessage)
    end
    local filtered, err = pcall(function()
        filteredMessage = textObject:GetNonChatStringForBroadcastAsync()
    end)
    if filtered then
        print(filteredMessage)
    else
        warn(err)
    end
    
    print(decodedData.sender)
    
    for i3, v3 in pairs(game.Players:GetChildren()) do
        wait(.3)
        print('No swears. Unfiltered')
        local clone = game.ReplicatedStorage:WaitForChild('ChatLabel'):Clone()
        clone.Parent = v3:WaitForChild('PlayerGui'):WaitForChild('MessagingService'):WaitForChild('ScrollingFrame')
        clone.Text = decodedData.sender..':'..filteredMessage
        clone.Name = 'Chatted'
    end
end
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(p, mess)
    local messagedata = {
        sender = p.Name,
        id = p.UserId,
        message = mess
    }
    local encoded = httpserv:JSONEncode(messagedata)
    messagingservice:PublishAsync('Chat', encoded)
    print('Contacted servers successfully')
end)
messagingservice:SubscribeAsync('Chat', ServerMessageRecieved)

why isnt this filtering the message… it writes the bad word the way it is
I’ve been struggling for very long
Help greatly appreciated
Thanks

1 Like

Are you testing in-game or in studio? Filter doesn’t work in studio.

3 Likes

Oh. Thanks. DIdnt know that, first time trying global chat. Thanks

2 Likes