Issue
Hello there!
Currently, as a developer on the Roblox platform, you’re not in charge as to who can actually join your game. You don’t have any measures you can take to prevent “DoSing” your game, other than relying on Roblox and their servers, that they can handle the load. At the moment, developers and their games are currently being dislike botted, DoS-threatened & more, and this simply because there is no good system in place to prevent people from controlling who can join your game.
Just see how wide-spread this issue actually is!
Dislike botting, scam messaging in chat is actually happening while I’m writing this post. It’s wide-spread and developers can’t do anything about it until after it’s too late, before the damage has already been done.
Solutions
Developers should be allowed to set custom game join rules for players, to prevent botting of games, dislike botting, bots joining in-game to say “visit this website for free Robux” and more.
(This can also work as a whitelist/blacklist system as well).
Option 1, a dashboard
I’ve thought of two things, one is to have a “dashboard” per se, where you can have loads of custom options, and it would work pretty much like Scratch, drag & drop logic. You can set conditions, get response from a HTTP resource & more. Take a look at Cloudflare’s Page Rules section:
This could be used for people who just want to add basic rules for their game, or allow certain people to play.
Option 2, custom Lua(u) code
This allows for even more customizable settings and filter. With this you can program your terms & conditions to join the game in any way you would like.
For example, to check if the user is most likely a bot:
--// Loading in services
local HttpService = service("HttpService");
--// -> Return a function Roblox's servers will call
--// -> Paramaters:
-- -> [userId]: The player who wants to join's id
-- -> [allow]: Function(<CanJoin, boolean>, <ReasonForDenial, string>)
return function (userId, allow)
local UserInformation = HttpService:Get("/getWhateverInfo/userId");
if UserInformation.Age > 30 then
if UserInformation.badges > 5 then
-- Allow
return allow(true);
end
--// Deny the player from joining our game (if bot, if blacklisted etc.)
return allow(false, "Your account does not meet our game's critera. Sorry!");
end
end
If Roblox were to fix this issue, it would greatly improve the developers’ control of their own games. Developers shouldn’t be the ones paying the prices since Roblox doesn’t have a proper way to fight back on bots. This concept/idea can also be used in other contexts as well. I’m just proposing what Roblox can do!
I also know that some of you may not like the idea, simply because of the false-positives if a developer were to mess up something, or for other reasons like loss of players. However, that doesn’t mean the rest of us shouldn’t be introduced to a system like this.