It always frustrates me when I type a long message and see “#########”. So I decided to make a custom chat system that handles filtering in a way I prefer.
The flow I’m imagining is:
- User types message into chat box and presses Send.
- Client sends the message to the server, where it is checked as if it’s a PM to every other player on the server. The filtered strings for each player are cached on the server.
- The server sends a tuple back to the client with a list of players and whether the message was filtered for them, which is displayed to the sender in a player list with red/green status lights.
- The sender is given the chance to change the message so it can be sent to everyone, or to send it anyway.
- When a user sends a message, send every other user on the server their own filtered text. If the filter was triggered, this will be cached text after the confirmation, and if it wasn’t, it will still be filtered text, it’ll just be unaffected by the filtering.
My question is, does this run afoul of any of Roblox’s filtering rules? I know I’m not allowed to cache filter function results for re-use, but in this instance, I’d be running the filter at least once per sent message, sometimes more than once. The caching is an attempt to avoid false-tripping the spam detection by checking the same message more than once.