Add run-time API for handling player moderation

Why isn’t there built-in moderation for Roblox game owners on the website?

Think about it. Isn’t it super odd that you have to depend on a script inside your game to do your game’s moderation? Why can’t I just go to the website, click on my game’s webpage, and add a user to its ban list?

For a platform that focuses on child safety first, you would think adding the built-in ability for game owners to moderate their games would be the very minimum.


I propose web tools for built-in moderation and a ModerationService to tie it to in-game.


The web tools would be pretty straight forward. In the dropdown menu for your game you would simply click Moderation which would take you to the tools.

image
Example of how it could look

From within the menu, you would have the ability to add users to ban lists, mute lists and be able to kick any user from your game.

Bans could be forever, bans could be time based as well. For example you might only want to ban someone for a day for their behavior. Same could be done for mutes.

ModerationService

To tie it all together, and to make this idea work properly, I propose a ModerationService for in-game action.

Examples could be:
ModerationService:AddBan(int UserId)
ModerationService:AddTemporaryBan(int UserId, int Hours)
ModerationService:RemoveBan(int UserId)
local BanList = ModerationService:GetBanList()
ModerationService:KickPlayer(int UserId) <- allows a player to be kicked from a different server
ModerationService:AddMute(int UserId)
ModerationService:AddTemporaryMute(int UserId, int Hours)
local MuteList = ModerationService:GetMuteList()

This would allow for very powerful built-in moderation for Roblox developers that does not rely on developers making their own moderation suite scripts, or developers using others’ moderation suite scripts.


All in all, I think this is unavoidable and should be added in the future. Every service or website I know of has some sort of built-in moderation.

For new developers who come from outside Roblox, who aren’t used to the idea of having to insert custom moderation scripts, not having built-in moderation must be really weird.

Thanks for reading.

61 Likes

While I personally think this would be sort of useful it has been discussed before and I’ve kind of decided that this idea is not worth it. It’s not very hard to implement your own ban/mute system and having a whole new service like this seems somewhat pointless because of that. The Roblox chat already supports muting members and you can achieve it without modification of chat modules (to be honest most things you can achieve without forking the chat scripts).

Similarly with the chat script I personally think if something like this were to be added it should be in the form of some kind of lua library. There are already unofficial libraries to do exactly what you ask for but I can see an official library definitely being a good addition to Roblox. Perhaps it could go along with the chat modules.

2 Likes

Well I do believe I’ve clearly described the advantages of having a built-in system over using existing in-game moderation scripts already.

The fact that it doesn’t exist yet is quite frankly very surprising to me.

2 Likes

I mean, you can easily achieve both timed and permanent banning using data stores. Also muting shouldn’t be a problem as any player can ban any other player anytime in the game.

One useful side of such a thing could be IP banning, basically preventing exploiters from keep joining using alternative accounts. This is impossible to achieve with the information we are allowed to have. Other than this, I don’t think it is needed.

4 Likes

The point isn’t that it’s impossible to do it through a custom way now. I’m very aware that it is possible to do.

The point is that it should be built-in to begin with.

2 Likes

This is definitely a good idea.

First of all, just because it’s possible in Lua doesn’t mean it shouldn’t be handled internally. Why are developers constantly reinventing the wheel?

Secondly, being able to moderate from the website like that would be a huge bonus.
(Provided that they make it mobile friendly)

5 Likes

As a social-first platform, it’s very surprising to me that Roblox has no built-in or default way of muting, kicking and banning players. Since these basic functions are useful to a majority of developers, I’d expect a rudimentary moderation system to be in the game by default, instead of relying on developers to come up with their own systems of ensuring bad actors, exploiters and cheaters can’t access their games.

When multiple devs have to recreate the exact same system, I think that’s a deficiency that should be built into the platform.

I remember we actually had this back when PBS servers were a thing.
“Personal Build Servers”.
You could “Whitelist”, “Blacklist” and “give permissions, for moderation in game”.
The moderation in game, would let people kick at least, if i remember right.

4 Likes

It’s not just that you can already make this in Lua.

You’re still proposing an API which will require them to either make or insert scripts to achieve the same result you can right now. Now for my troubles with your proposed API, ignoring the whole “but we can already do this” stuff…

AddBan, AddTemporaryBan and RemoveBan are okay, no real contentions here.

Looking at GetBanList, what? I don’t see a use case for this nor does it seem scalable for giant games which could potentially have a lot of users banned or temporarily banned.

KickPlayer being able to kick someone in a different server seems pretty nifty, and I like the idea, but I also don’t see an use case for this to be run within a game script unless it’s done via user input (in which case just use web panel?).

For AddMute and AddTemporaryMute however I don’t think this is useful either. What would these do? You can’t really apply these to anything but the default Roblox chat service which would also have to implement the checks in their Lua code somehow. It’d be more like a “suggestion” tag list for any other custom implementation. Adding to that, even if you make it so other API such as Chat API returns false to accomplish your goal globally, it would be hard to differentiate between who is muted and who has privacy settings enabled.

My contentions with GetMuteList are the same was with GetBanList.

Finally, I like the idea of a web panel to be able to moderate from. Kicking users or giving them game bans through it sounds like a fancy idea I dig.

3 Likes

The idea is that you won’t have to put any scripts in your game to use moderation functionality. If you’re talking about Roblox having to insert scripts, well, writing code is kinda their job isn’t it? Having one global platform for moderation rather than multiple user-made moderation scripts seems like something Roblox should be interested in. Also for outside appearance. Imagine telling someone’s parents that their kid playing Roblox can only moderate their own game by inserting a script he’d have to find and trust. That’s a bit weird honestly. Why not cut the middle man?

Looking at GetBanList , what? I don’t see a use case for this nor does it seem scalable for giant games which could potentially have a lot of users banned or temporarily banned.

It’d be pretty useful for creating a moderation suite in-game using this API. It’s not strictly necessary but why limit to just the website or just in-game if you can have both :slight_smile:

For AddMute and AddTemporaryMute however I don’t think this is useful either. What would these do? You can’t really apply these to anything but the default Roblox chat service which would also have to implement the checks in their Lua code somehow. It’d be more like a “suggestion” tag list for any other custom implementation. Adding to that, even if you make it so other API such as Chat API returns false to accomplish your goal globally, it would be hard to differentiate between who is muted and who has privacy settings enabled.

I can see why this would be a difficult one to sell. Honestly I’d be fine with just a ban list. Figured I’d throw the mute list in there for good measure and I would assume the CoreScripts for the default chat would have to be updated accordingly to make use of this new API.

A C++ API with new backed services feels unnecessary for something like this, as this can already instead be done as a Lua library with existing platform features.

A Roblox supplied library could even be endorsed like other toolbox items. A library could utilize datastore service and could even include a (game admin only) in-game UI or a studio plugin for managing bans.

I feel that would cover most of the concerns raised above while allowing developers to modify it as needed.

1 Like

A Roblox supplied moderation suite for in-game moderation would be pretty good.

Only downside is that it requires you to be in-game to moderate, rather than moderate from an overarching position like the website. I still think the website would be a really proper place for this to exist.

There may be a another feature ask there for developer defined external game management tools. :slight_smile:

1 Like

According to a previous discussion on this topic (from memory), Roblox does not want to encourage user-driven moderation. Having users banned from games serves little purpose since things like exploiting and abusive behaviour are meant to be handled by the account-based moderation system. There are exceptions, like for example disruptive players in clan games, but they are relatively small and admin scripts do the job just fine. Implementing this feature would create a bad user-experience with probably more players than ever being banned from games.

However, I can see the utility of being able to moderate from the website, reduce development time, and provide a consistent experience with and a trusted method to implement common functionality. Roblox games themselves have become increasingly populated and commercial, so I think this might be appropriate now.

Lua widgets on the website hooked up to universe scripts in a client/server relationship? :wink:

3 Likes