Currently, while I was browsing some Community Tutorials (yes, I sometimes read old topic), I came across this topic:
It states in the topic and the post that the FireServer can be… changed??? In which I got confused about it. I tried to research but I can’t tell which keyword I would search. Even though this topic is very old, I still want to know how a function can be changed.
Main question: what does it mean when a function is changed??
to replace the :FireServer method with their own so they can see the arguments being passed over for a remote spy.
However they can also just overwrite the __namecall metamethod of the Instance metatable and check when :FireServer specifically is used and log the arguments that way.
Because the “original” function is cached in a variable. Then the developer constantly checks if remote_event.FireServer == cached_fire_server. If it isn’t then it has been overwritten by an exploiter.
Either way it isn’t a foolproof anti-exploit measure since the exploiter can just kill the anti-cheat script.