To clarify with text filtering

I have to run every single save-name through the text filter every time a player rejoins a game?

Isn’t that going to put a lot of stress on the filter? And make the list load really slow? And pretty much make my game unplayable when roblox’s filter does that thing where it starts throttling requests because they’re taking so long?

No. Use FilterStringForBroadcast on each save name once and you never have to filter it again. It’s a lot stricter than the other filter method, but it only has to be used once and then the resulting string can be shown to anyone.

edit: nevermind that would make too much sense

7 Likes

Oh really? I’m just getting confused because of this from the wiki

If a player’s text is saved and then is retrieved later when the player rejoins the game, that saved text needs to be filtered before it is displayed to anyone, including the player who wrote it.

from the bottom of this article
http://wiki.roblox.com/index.php?title=Text_Filtering

Yeah no. That’s the way they want you to do it in a perfect world but that’s far from the best way to do it. Once you use the broadcast filter on a string it never has to be filtered again

If you aren’t doing it this way then you aren’t following the text filtering guidelines. The text filter is updated constantly, you need to continually get the latest filter result.

But… UristMcSparks said it had to be done every time in case the filter changes.
For example if I save something as “apples” and somehow “apples” becomes bad (Could happen knowing the filter), it should get filtered out.

http://wiki.roblox.com/index.php?title=Text_Filtering#Exception
Is what @ColdSmoke should be looking at, since only the player sees the text, it should be fine to not filter.

2 Likes

That’s where I got the quote from. It says you don’t have to filter it that session, but you do need to filter it upon retrieval for whatever reason. Idk it seems very unclear.

"if the text that is being stored needs to be filtered"
So chatlogs or things you display to others should be filtered on retrieval

So what you’re saying is I don’t need to filter them at all?

Roblox currently recommends saving the raw string and filtering whenever you want to show it to the player to filter out the latest “bad words.” For example, if you filter upon saving and just keep using that prefiltered string, words like “discord” won’t be filtered out. (just using that as an example for a random word recently manually added to the banned words list) Surely there’s a way to display the saves and gradually apply the names to the listings whenever the filtering is complete.

1 Like

I think I’m more confused than when I created this thread

5 Likes

Yeah looks like you’re going to have to filter a thousand times whenever a player joins. Have fun

If you’re that concerned about filtering taking too long, maybe find a way to combine all the save names into a single string (dividing them somehow so you can separate them later) and just filter that one massive string on player join. (Although the filter is relatively contextually aware so that could backfire)

1 Like

The “context aware” chat filter would likely backfire there. And the thing is, I don’t have a limit on file saves because I’ve figured the data storage out so efficiently in my game it’s not a problem at all

So after playing my game for a long time and amassing a lot of saves, players are going to have to wait longer and longer to be able to access their saves. Roblox is so annoying sometimes

2 Likes

If only we could pass multiple strings to that one function at a time cough cough feature request cough cough

2 Likes

If only we didnt have to filter text that a player themself wrote that will only be visible to them

5 Likes

Only visible to them? Pretty sure you can leave it unfiltered then.

I might just do that but I don’t want roblox to take my game down for a month to “investigate” and then email me ransom demands for my game to go back up

3 Likes

After reading on in the wiki article, this is said:

An important caveat of this exception is when retrieving stored messages. The automated checks that Roblox does to detect if filtering is being done correctly knows to ignore text that was typed into TextBoxes, but only in the same session that the TextBox was used. If a player’s text is saved and then is retrieved later when the player rejoins the game, that saved text needs to be filtered before it is displayed to anyone, including the player who wrote it.

So oof. Sry.

Which is completely confusing because I’ve seen posts on this forum from multiple admins saying that you don’t need to filter the string from the player themselves if they’re writing it, because they obviously know what they wrote.

Edit: Doesn’t apply to saved text though, apparently. Even if that player is going to be the only one to see it. That doesn’t make much sense but okay. I understand the need to refilter after fetching the data, in case the system was updated, but I’m at a lost for the need to filter text that only that client will ever see.

Edit #2: From what I can tell, it’s to prevent the game owner from gathering sensitive information from their players, such as their addresses.