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.
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.
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.
Is what @ColdSmoke should be looking at, since only the player sees the text, it should be fine to not filter.
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.
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.
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)
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
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
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.
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.