Introducing the Ban API and Alt Account Detection

I do not know what they use to detect the alts, but all my attempts to ban the alts were unsuccessful, it’s very easy to bypass

3 Likes

I recently tried banning my main account and noticed something odd, when I logged into my alt account, it was also banned. However, when my friends tried the same with their alts, they weren’t banned.

1 Like

The creator should have complete discretion to decide who they ban and from where. There are some legitimate reasons you would want to globally ban a user (for example exploiting or even extreme NSFW). I don’t see how making it easier is an issue, especially for group owned games where it’s probably not even a single person deciding to give the global ban.

The argument that it might be unfair because of developer abuse is just unreasonable.

1 Like

Hello,

Is there a way to clear a ban history of someone ?
It would be great for the tests, or if someone would like his old behaviors to be forgotten.

(Sorry if my english isn’t perfect)

1 Like

Yay this is such a good update

2 Likes

I dont, I’m using a 2019 mac that runs on bootcamp :skull:

2 Likes

i set up a webhook so i got pinged on discord the moment this came out lol

1 Like

Banned users attempting to join will not trigger Players.PlayerAdded, as the request to join will only result in the ban message and time information being returned to the user’s device. They never receive a game server IP address and join ticket information in order to successfully join a server.

7 Likes

Is it possible to create moderators via this Ban API, e.g. assigning ban-powers to certain individuals and these same individuals can view the history and more?

1 Like

If the user you are banning is currently in a server, they will be served the kick dialogue (error 267). They will be served the new banned dialogue (error 600) when they attempt to and fail to join.

1 Like

You can use Players.GetBanHistoryAsync or the OpenCloud API List User Restrictions Logs.

2 Likes

Yes, it will kick users in another server AND if the call came from Open Cloud rather than from the engine API.

1 Like

The real answer is because I haven’t gotten around to it yet. But I will soon. Stay tuned :slight_smile:

2 Likes

I noticed that it was only showing the ban dialogue because I was teleporting while being banned. However, is it possible to start allowing new lines in kick messages again? They’re allowed in the ban dialogue but still aren’t allowed in the kick dialogue, which causes some variance in how my display reason shows up.

1 Like

this needs some more support. disregard my previous messages. sandbox experiences or backdoors can have this system taken advantage of.

this deserves to be optionally locked just like HttpService and Loadstrings.

3 Likes

Working on my own BanScript as I write this, I’d also like it if alt account detection was its own isolated thing, it would do wonders for my game.

2 Likes

Don’t worry seems like you are not missing out on much.
As of now I own a semi active 50 CCU game ( i know small ) but it’s still enough to attract up words of 100 bans a day and it seems like alts with almost the same username I.E robloxcoolkid1, robloxcoolkid2, and robloxcoolkid3 so on and so forth just keep coming back.

3 Likes

It’s not that hard to implement, can be done with a function in less then 15 lines.


local function timeToSeconds(timeString: string)
	local days, hours, minutes = 0, 0, 0

	for value, unit in string.gmatch(timeString, "(%d+)([dhm])") do
		value = tonumber(value)
		if unit == "d" then
			days = value
		elseif unit == "h" then
			hours = value
		elseif unit == "m" then
			minutes = value
		end
	end

	local totalSeconds = (days * 86400) + (hours * 3600) + (minutes * 60)
	return totalSeconds
end

local function secondsToTime(seconds)
	local days = math.floor(seconds / 86400)
	seconds = seconds % 86400
	local hours = math.floor(seconds / 3600)
	seconds = seconds % 3600
	local minutes = math.floor(seconds / 60)

	return string.format("%dd %dh %dm", days, hours, minutes)
end
2 Likes

Seems to be MAC address based which isn’t what I would consider bad, but the implementation seems to be done by ChatGPT as it doesn’t even function.

2 Likes

I’ve already implemented it myself, I was just saying that it would be nice if roblox had integrated it anyways. Kinda dumb just to allow seconds.

1 Like