Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Best way to ban users from a game?

Asked by 3 years ago

If a user misbehaves, they get banned. However, I am having trouble deciding what the implementation would look like. I have several ideas each with pros and cons. If a player is banned at the time, the options are:

  • Not load their character and show them a 'banned' screen

  • Instantly kick them

  • Teleport them to a 'Banned' map

Option 0 is the most flexible. If I have a ban screen I can provide an 'appeal' button or similar, and I can adjust the ban screen to suit the game. However I question the security of this method, because it relies on disabling CharacterAutoLoads, and if the player hacks to remove the GUI and force their character to load, the ban is circumvented. Their username also shows up in the leaderboard while they are banned.

The most secure and intuitive way is option 1. Instantly kick them, so they do not really have an opportunity to attempt to work around the ban. However, biggest issue of this is it would be nearly impossible to provide users with a way to appeal their ban or ask for more details about why they were banned.

The last option, option 2 is also potentially flexible, but I question if it is possible to simply deny the request to teleport to another map.

I am not sure which ban implementation to go for, which should I use?

0
Ban screen can be easily exploited, the kick method is just more efficient aurich98 86 — 3y
0
Your best method is to boot them. That's how the significant majority of ban systems operate. If you're looking to add an appeal system, you can include instructions in the 'Message' parameter of the 'Kick' method which could possibly direct them to a Discord Server or suitable web-service. Ziffixture 6913 — 3y
0
@aurich98 A GUI can be removed with a simple clienside hack, but would not loading their character, so they cannot do anything, even if they remove the ban screen, be feasible? LakasoOscar 0 — 3y

Answer this question