Roblox recently released a new ban API. I think this is a great addition, and the alt account detection is much needed! However, we can’t use the new ban API because it lacks something.
We previously processed bans on our own using the kick and teleport APIs. Whenever a player joins our game and they’re already banned, we teleport them to a ban world. The “ban world” is a sub place within the universe. In this place, there’s just a GUI which tells the player all the information about their ban (reason, time remaining, appeal status) as well as an appeal form. We require 60 days to pass before allowing the user to appeal. This is automatic. When banned players submit an appeal, it’s sent to our moderator panel on our own website, where our mods are able to review them and lift bans if necessary.
Here are some screenshots of what the player sees in the ban world:
With the new ban API, there isn’t a way for us to teleport the banned player to a separate place. How are developers expected to let players appeal or view the status of their bans?
As per Roblox ToS, we cannot give players offsite links for appeals, for example a google form or our website. I also don’t want to do it some sketchy way where we have to put appeal instructions in our game description, etc. It’s super easy and seamless to have the banned player automatically teleported to the ban world when they try to join the game. We can process the ban appeal in our own way from there.
TL;DR - With the new ban API, developers need the ability to teleport banned players to a ban world for appeals and ban status info.
Additionally, I know there are some games that teleport their users to a ban world for other reasons. For example the ban world could be a copy of the actual game, but only accessible by banned players. This way banned players are still able to play the game without disrupting gameplay for all other players.
As mentioned above, there are several cases where we might want to use our own logic to handle bans.
It would be nice if we could disable the default check and being able to interface the ban API from our own code. Even something as simple as Player:IsBanned() would be great and lets us leverage the alt account detection. The Ban API is great and we’d love to start using it, but developers need more flexibility with how we want to handle our bans.
It would be better (and also easier on Roblox’s end) to just let developers define custom behavior when banned players join. There could be a new enum for BanBehavior (Enum.BanBehavior.Default and Enum.BanBehavior.Custom) passed through the config argument of BanAsync. Then, developers could just do the following:
Players.PlayerAdded:Connect(function(player)
if playerIsBanned(player) then
TeleportService:TeleportAsync(appealPlaceId, {player})
end
end)
I give my moderators on Spray Paint the option to jumpscare the worst rule breakers when they are banned, for example, so I would appreciate flexibility for a feature like this.
It’s funny the way you just mentioned exactly why Roblox should not and are not going to allow developers to do this—it would be abused for purposes other than banning the players.
Not to mention the potential privacy problems that can occur from this.
We had datastore ban lists for a long time by now, which means nothing stops anyone from doing this exact thing, regardless of whether Roblox adds an official way to handle banned players yourself or not.
I think letting people have the ability to appeal their ban from within Roblox without having to drag them out of this platform (good for any users that can’t or shouldn’t join any other social platforms), would much outweigh the negatives of a few people deciding to destroy the ears of banned users (which again, can happen anyway)
Jumpscaring players who pose a safety risk to the children to play my game has proven to be a more effective method of deterring them than traditional bans, and as stated above, has been in my game for years using data stores instead of the ban API. The main idea of custom ban behavior would also be to provide a larger variety of options to developers like chat bans, bans from using specific features like mod calls, etc. without using data stores, which can fail at times, none of which violate Roblox’s rules as far as I know. Also, I don’t see any issues with privacy from a feature like this that wouldn’t already exist with the current ban API.