For no-cliping, this should be easy to do, with making areas that you can access, except for hackers could somehow find a way to bypass that. For flying, I could use Artic’s Anti-Fly.
But I need to make an anti-exploit script that does it for every type of hack.
I want your thoughts!
EDIT: I also want to know how I can take a hacker off the leaderboard.
well I have banning players and leaderboards in a separate script so I might need to use a module so I can get the table from anywhere (unless hackers can get into the module)
No they cant at least if its not in a local script, but if its in a script in someplace like serverscriptservice they cant access or change anything unless you have a backdoor in your game then they have full access to client and server
Don’t attempt to write any security script until you understand how the exploits used are possible.
Knowing what hackers have access to is not enough, you’ll need to know the behavior of roblox’s client-server model and that some data is necessary to replicate from client to server. This makes the exploits you’ve mentioned possible.
To take a hacker off a leaderboard manually, you can use studio’s command bar to remove datastore keys using RemoveAsync. (If you allow the API in studio)
As far as the safety of your module, decompiling is only a risk for client-run code. Server code is never accessibly by client, and therefore never can be directly manipulated by an attacker. But be careful, there are indirect ways to manipulate server-run scripts.
How I do my anti exploits is I take the scripts and then examine what they do to the player for example: Noclip, float, fly, walkspeed, tp and then I put counter measures to prevent these things. While you can’t restrict every type of hack you can combat most common ones.
To prevent accidental bans or kicks I have values in a player, for example:
When a player buys more walkspeed their walkspeed goes up by 20. The exploiter can do the same so to prevent this I put a bool value in the player which gets checked when the product is bought and unchecked when player leaves/dies which exploiters can’t check for themselves because exploits are client only and they would need to compromise your remote events to do so. So in the end the exploiter gets kicked while the non exploiter receives their product.