There’s just some stuff you can’t really stop from getting exploited if I’m being completely honest. Like an exploiter can just change the CClosure of the script that’s making it so they can’t completely freeze their Roblox Client. When it comes to exploiting your best prevention measures are just to make everything server sided unless absolutely necessary to be on the client. This system requires being on the client since Server Scripts don’t have RunService’s “update” functions and events due to the server not really caring about it (even though it technically could, Roblox decided it shouldn’t.)
In this case however, it seems like you guys are overthinking the possibilites instead of the reality. No matter what you do, your projects can be exploited in certain ways. Stop trying to make the “most secure anti-freeze” script as even if you could, would all that hard work even matter? Someone will just make a completely new function to end up bypassing whatever security measure you just made.
This quote sums up what I’m trying to explain. Don’t over-complicate a system that doesn’t need to be complicated. Sure it’s flawed and can do with adjustments, but trying to make it a high grade prevention method is just oversight.
Not even. They could just simply prevent OnClientInvoke from returning anything and cause the thread that invoked the RemoteFunction to hang. Typically why you will almost never see OnClientInvoke/InvokeClient being used. There is always a manual two-way remote communication going on in that case or use of coroutines.
I’m actually very surprised this post is still up and available.
There doesn’t seem to be any reliable way to detect freezing. A WindowDragging event similar to UserInputService’s WindowFocused/WindowFocusedReleased events would be very helpful.