Introducing the Ban API and Alt Account Detection

I banned my main account to test and I was still able to join on an alt.

This is strange since there were reports of the opposite, where people were having issues joining on alts and had to resort to having a friend unban them to fix this such as this case:

Thanks for the feedback! Some specific responses to your comments/questions:

I think output-only fields showing up in the generated cURL snippet is a bug - we’ll get that fixed. We also have a fix on the way for the duration sample values.

In general, in Open Cloud, the path field is the primary identifier of a resource. It’s also the URI path of the resource, which is why we use e.g. "users/156" rather than just 156. You can use "users/156" to get the referenced user (e.g. GET https://apis.roblox.com/cloud/v2/users/156)!

We annotate required fields as REQUIRED; any field without that annotation is implicitly optional.

The reason there’s no CreateUserRestriction is because the UserRestriction resource implicitly exists for all users for each experience , and is in some sense a summary of individual restrictions. This means you can always GET /cloud/v2/universes/123/user-restrictions/456 to get that summary for universe 123 and user 456, without worrying about checking for a 404. (FWIW we debated this a bit internally, long enough ago now that I don’t remember all the reasons why we eventually settled on this approach.) We also could have made this clearer in the docs (and I’ve passed along feedback to improve it).

1 Like

Maybe it takes a bit to kick in? I used my discord bot to ban my main account, then verified I was banned, which I was. Then, I logged into my alt and I was still able to get into my game.

I’ve implemented a rules page into the end of my tutorial, and players can only get perm banned by a developer. They can get banned for a day on suspicion of cheats, or a month from a system where incorrect values are passed along a remote (can only be done via exploits). I haven’t implemented something like my own chat moderation as I expect Roblox chat moderation to be sufficient.

Does this mean I don’t have to provide an appeals system if I don’t want to? If I do provide one, do I have to uphold it consistently? Do I get banned if I don’t?

It never states that you must have one, but rather that you have control over your own.

I’d hardly imagine that it would be bannable if you were to neglect / ignore your rules since you’re the one who is responsible for managing them. The only instance i’d imagine roblox moderating you is if your place(s) are being used as a space to solicit / encourage activities or similar which break the existing terms of service in which you’re knowingly allowing for those activities to occur in your game.

it’s not nessecary given the description, but it’s always good to moderate your game.

1 Like

Is there any plans to make additional API(s) for this application?

Namely, an API in order to check if an account is suspected as an alternate account- without the needing to ban them. Something like, player:IsSuspectedAlt() or something along the lines of that.

Additionally, a banned user joining doesn’t trigger any sort of connections. It would be nice to have something in the Player Service for that. ie; Players.BannedPlayerAdded, etc…

Finally, if a user is banned for any increment of one (one minute, etc…), the grammar is improper. "… by the creator for one minute ** > s < ** "

Out of curiousity, what would the use case be for this since they would basically be instantly removed from the game again upon joining

the only scenario I see this being of use is if the banned user somehow bypasses their ban (?)

1 Like

How often do you use that alt? I have been testing this and it seems like it takes a while before the system matches your alt to your main account. Only the alts which we frequently use for testing got picked up, while lesser used ones we logged into managed to slip right in despite using the exact same client.

So, when they first announced this update a few months ago, i started working on a plugin. I set up everything so when they released the update, all I had to do was add the ban/unban command.

Sadly, after testing, i get an error:
BanAsync() can only be called on the server

It is a server script
image

Here is my script:

local config: BanConfigType = {
		UserIds = {2758548757},
		Duration = 500,
		DisplayReason = 'test',
		PrivateReason = 'test2',
		ExcludeAltAccounts = false,
		ApplyToUniverse = true
	}

	local success, err = pcall(function()
		return Players:BanAsync(config)
	end)

if success then
    print(success)
else
  warn(err)
end
1 Like

hey, if its out yet, how do i set it up? sorry if its a dumb question.

There is a Documentation Page for setting this up

This is quite possibly the greatest thing to happen in the history of roblox studio (bias opinion)

Sorry for asking, but are the bans HWID and IP based, or email based?

No, it’s actually based on your MAC address, it also only detects alts that are active. I don’t know if this is supposed to be some kind of a joke from roblox.

Buddy it’s MAC address 100%. Here is a testing game I’ve made so you can check it out Testing Alt Ban Api - Roblox

Yes, we will be continuously improving the alt accounts service to use a wider variety of signals and improving model accuracy.

4 Likes

Alts that are active? Shouldn’t it be the other way around if anything. Exploiters and other players always have alts laying around.

However, that could explain why my alt wasn’t banned when I banned my main account off my game.

1 Like

Will you be able to see who’s the owner of an alt, or solely if it is an alt or not?

Another absolute W from Roblox. Been waiting for this update for a while now :pray: