I’m in the process of making my game, and slowly moving onto the final few important features. However, one thing I am mostly concerned about. This being exploiters.
I know the basics of adding “anti-exploit” scripts - which include adding kicks if a players X and Z velocity run over 31 and the player gets kicked, and anti-fly hacks (without the use of a platform).
If you were me, what implementations would you suggest me adding? More the better!
Avoid using collisions as methods for important things. Leave collisions for simpler things, like opening a chest that the player would already have the right to open. (¹)
Anti-fly protections can be problematic if you do it any old way, since some devices are weaker for a given game, which causes the physics calculation to be very slow, keeping a model in the air for longer than it should. (²)
Finally, always check things through the server and not through the client. I know that some users use protections on the player’s own machine, but it is unnecessary to use the client’s processing power when you will also have to do it through the server.
¹ - The point is that collision events are not a problem, but what you can do with them is. Touched isn’t a bad event, in fact it should probably be lighter than GetPartsInPart, however, you can do some fidelity checking of the event, such as checking the distances at which the player is triggering the event, as well as the distance they were a short time ago (anticipating teleport exploits).
² - Make sure to check not only the time the player is in, but the height they are relative to the ground. In extreme cases, opt to do something simpler with the player character instead of kicking them, such as moving them or killing their character.
If you’re not a big developer, then I don’t think you need to worry about that right now. Just finish your game and if you notice that exploiting is becoming an issue, make an anti-cheat. Otherwise you’re wasting time you could be spending developing the actual game.
I have like 100 or so people interested. Most people I feel are a little sketchy. Either way, I don’t want to scare away that small audience if one person decides to ruin the experience for them. Plus, my game is far enough to release, though I’m just waiting for all the donations to come through so I can spend on advertisements, etc…