Hello! I am working on exploit-proofing every part of my game. If I could tell if a property (of an instance) was modified by a local script, it would help alot. For example.
Part:GetPropertyChangedSignal("Name"):Connect(function(otherpart)
if the parts name was changed by a local script then
--blah blah blah
end
end)
Client changes cannot be detected from the server as @RatiusRat has mentioned and so, this type of change has to be detected from the client using a local script. However, there are two reasons why I wouldn’t recommend you doing this:
Exploiters can get around this. Yes, there are client-sided anti-cheats out there that make use of methods to avoid exploiter interventions, but as far as I know, they are not full-proof.
Checking whether a property has been changed for all parts on the workspace is extremely taxing performance-wise. A good anti-cheat is one that does not interfere with a player’s experience.
I don’t think you’d be able to tell if you changed the part’s name on the server because then both the server/client will fire that event if the event is on both a local script and a server script. But if you only change the part’s name on the local script and put that propertychangedsignal event on the local script only then you will be able to tell.
You can also put the event on a server script but it won’t fire if the name was changed on the local script.
Edit: You could also add a print statement under the event I guess which will display whether its on client or not. And other similiar stuff.
Okay Im not sure I made it clear but the thing with the part was just an example. Soo, what I really want to do is check if a player’s movement speed was changed by a local script as I have a dash system but plan to use it fully on the server.