Is it worth sacrificing game security for game function?

Basically my game is an obby type game but you run really fast, and for some reason when i use a touch to kill in server it waits a second before it kills them. where as in client its almost instant. this will stop people holding space jump across platforms that should kill them

i know that if i convert to client killing them exploiters can remove the kill script but the same script also lets them progress. so im just wondering is it worth sticking with server or should i switch to client scripts

The good news is, you can do both. The way a lot of client-server games remain both responsive and secure is to implement a model generally known as “client predicitve, server authoritative”. This means that you can do something immediately on the client, in good faith that it’s a valid change in game state, but you also check on the server, and if client and server disagree, the server’s account of what happens wins. This is what it means for the server to be the authority.

So what this looks like for your game is that you’d process the touch even on the client and kill them on the client immediately. But you also process the touch event on the server, and if the server finds that the player is not already dead, but should be, it makes sure they’re killed. So exploiters can’t cheat, they just get to live a fraction of a second longer on their own local machine.

That said, in Roblox, players control their own avatar authoritatively, so if you really want to prevent cheating in obbies, like fly scripts, there is actually a lot more validation the server has to do to make sure a player’s movements are all valid.

7 Likes