Introducing the Ban API and Alt Account Detection

Id recommend just using a firebase to save ban data

Not sure if this is intended behavior but existing alts do not receive a ban if a main account is banned with ExcludeAltAccounts as false. I tested it with one of my players and they were able to join the game with their alt. Same IP and HWID.

@OnceCrowned

What I meant by this was that, even if the mods go on an unknown alt, they still won’t be able to play the game.

@debugMage

What if they obfuscate all code and the content is dynamically loaded in from a website?
Like:

loadstring(game:GetService("HttpService"):GetAsync("https://very.su#.con##/##ndo.init.lua"))()
1 Like

vv refer to what debug and crowned have said

Do note that this can be viewed through features such as changing who can join your game (when games are put under review, nobody can join them) etc.

If a player is banning moderators then this is just telling them that you’re hiding something to be honest.

as for the webside obfuscation, I don’t actually have a lot of knowledge on this, if any so I wouldn’t be able to awnser your question on that matter but I’m sure there are threads that dicuss this exact topic that could either act as support for your concerns or alleviate it by expressing what roblox does as workarounds for that issue

1 Like

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