Handling when ChatService:Chat() is called

I’m working to help remove exploiters or just detect them in general and one of the most popular exploits I see is using ChatService:Chat() to display a bubble chat over someone’s head saying a message. I’m wondering how I could detect when it’s called and who called it.

-- The code I want to detect when fired:
local ChatService = game:GetService("ChatService")

Any support is helpful!

chatservice is not a valid service name

Ignore that, I forgot the service.

anyway this is “exploit” is useless. only the exploiter can see it lol

I know this type of exploit. You don’t have to worry about it as it is harmless.

Besides, it’s pointless to secure the client as they have access to everything that is replicated to them. The only thing that’s worth doing is securing the server such as, purchasing an item whereas you would be checking their cash if they have enough and if the item that they’re trying to buy is in the game content or not and overall, just common requirements for that item. If these pass, then you let them purchase it.

Furthermore, you could disable BubbleChat which I don’t think is ideal and is what you’re trying to look for here because I would assume that you would want to keep it in the game. As @p49p0 said, it doesn’t affect other players other than themselves as it is local and only THEY can see it.

So long as they don’t have a serversided executor (ss), you’re good. Usually the only way they could do this is by infecting your game with backdoor scripts that they stored inside of models from the toolbox. There are a lot of them nowadays, so be careful the next time you’re browsing through the toolbox menu. Here’s a very informative article on how to refrain from getting your game backdoored:

Anyways, this is besides the point. This isn’t what you asked. If you’re afraid of “them” potentially framing others but themselves into saying bad stuff or really just rude and childish things, and screenshotting the footage for submission etc, then don’t. This can easily be avoided. I don’t know what kind of games you’re making, but I hope it will do well for you.

Again, many people have said this. There is no way to prevent exploits other than securing the server. If you’re making a game, then expect your game to be exploited. If your game has bad security such as, insignificant checks then your game is bound to be abused (e.g: client fires a SetPlayerCash remote, server gives 999999 cash, the value that they put in the event’s arguments). You should take this as a note for when you’re making a game, don’t make the same mistake as the others do or did in the past. You’re better than them and you can change as a developer too.

Here’s visual proof that it’s only client-sided, and not server-sided. This is done thanks to the Chat service, and with its :Chat method:

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.