Issues with .Touched event & preventing exploiters

So, a fellow comrade from a development group I’m in has pointed this out, and I’d like to try it myself.

I’m not sure if this is a bug, but if there is a “Sensor” that has a ServerScript with the Touched event, it’ll work as normal.

But on the Client Side, for example: an exploiter, deletes the Sensor part that the ServerScript is referencing the Touched event to is deleted, it no longer fires .Touched since the part is deleted Client Side.

Server Side, the part is still there, ServerScript as well.
I’m not sure if this is a bug, so I’m posting in Scripting Support to see if anyone would like to help me fix the .Touched event from being deleted by exploiters.

I’m not actually looking towards Region3 for this one though, unfortunately. :frowning:

My remedy to bypass exploiters from causing .Touched to not detect them is by constantly cloning and deleting the part, ServerSide. Of course, the Touched script will be inside the part so it gets cloned as well.

If the part is still there on the server and .Touched is detecting them on the server, then what’s the harm if they delete the part on the Client? Just have your important .Touched logic be on the server.

1 Like

The issue is that the client has to be the one firing the Touched events for the server to see them. If the client does not know the server wants touch events, or if some exploit on the client forces it not to send touch events, the server will not detect touches* by the player’s character or any client-owned parts.

*reliably.

I believe OP is asking for a way to detect touched events when the client isn’t sending them. As far as I know, that’s not possible, but what you can do is use a little TouchMod (credit to @Vaeb) to detect when their character is intersecting the part anyway (i.e. legs touching). A con is that this only works with brick parts, but it can’t be bypassed by the client unless they use more obvious exploits (flying over the part/etc).

2 Likes

Ah yes, I figured that the client has to fire the Touched event, instead of the Server doing that itself. Thanks for the recommendation of “TouchMod”!

But would it still be the same if it’s :GetTouchingParts?:thinking:

Anything related to GetTouchingParts or .Touched wouldn’t be fired or detect the character if an exploiter deleted the TouchInterest/Part.

1 Like

TouchMod doesn’t even use GetTouchingParts. TouchMod detects all parts very close to your target part, and then does finer calculations to detect exactly which parts are touching, and where they are touching too. It does not rely on any givens provided by Roblox, so whether or not a client is exploiting doesn’t matter. If their character is physically touching the part, TouchMod will find it. It doesn’t depend on physics at all.

1 Like