I have a textbox screen GUI, and whenever the player types something on it and presses enter, it fires the server to send that message to a surface GUI text label.
RS.TextBoard.OnServerEvent:Connect(function(player, text)
local filteredText = ""
local success, errorMessage = pcall(function()
filteredText = textService:FilterStringAsync(text, player.UserId)
end)
if not success then
warn('Error filtering text "', text, '": ', errorMessage)
filteredText = "Failed to filter message."
end
print(filteredText)
script.Parent.Text = filteredText
end)
Filtered text just returns the word “Instace”
I read another topic on this and I tried changing :FilterStringAsync() with :GetNonChatStringForBroadcastAsync() but that just printed a warning saying that GetNonChatStringForBroadcastAsync is not a valid member of textservice.
Read: FilterStringAsync. It returns a TextFilterResult which then you call one of the get methods from to get the string with an appropriate level of filtering. You don’t call it directly from TextService.
1 Like
And how exactly do I do that? Also what does RTFM mean?
There’s a code sample at the bottom of the page. FilterStringAsync returns a TextFilterResult, then you call a method from that result.
local filterResult = TextService:FilterStringAsync(...)
local filteredText = filterResult:GetNonChatStringForBroadcastAsync()
Second thing is irrelevant plus Google exists for that. It’s somewhat crude wording so I changed it to “read” instead. It’s an acronym regarding your questions already being answerable if you just read the documentation for the functions you were using or did some debugging.
2 Likes
Okay thanks! I changed it to this:
RS.TextBoard.OnServerEvent:Connect(function(player, text)
local filteredText = ""
local success, errorMessage = pcall(function()
filteredText = textService:FilterStringAsync(text, player.UserId)
end)
if not success then
warn('Error filtering text "', text, '": ', errorMessage)
script.Parent.Text = "Failed to filter message."
else
local filteredString = filteredText:GetNonChatStringForBroadcastAsync()
script.Parent.Text = filteredString
end
end)
I tested it but the text filter doesn’t seem to be doing it’s job.
It prints no errors.
2 Likes
Text filtering is disabled in Studio. You need to test in an online environment.
4 Likes