It’s common for anti-cheat systems to intentionally delay bans to prevent cheaters from knowing what triggered the ban, even Roblox itself does this through it’s ban waves.
It would be nice if Roblox supported this feature through it’s new Ban API so developers could also protect their games with similar measures without needing to implement it themselves.
Yes this can be implemented manually, but this is a feature that should inherently be part of a ban API and not require developers to waste their time implementing it.
It could be either:
- a relative time to apply the ban (Ex: after 1 day has elapsed)
or - an absolute date timestamp that once reached applies
Current
config:Dictionary
UserIds (required; array) — Array of UserIds of players to be banned. Max size is 50.
ApplyToUniverse (optional; boolean) — Whether ban propagates to all places within the experience universe. Default is true.
Duration (required; integer) — Duration of the ban, in seconds. Permanent bans should have a value of -1. 0 and all other negative values are invalid.
DisplayReason (required; string) — The message that will be displayed to users when they attempt to and fail to join an experience. Maximum string length is 400.
PrivateReason (required; string) — Internal messaging that will be returned when querying the user's ban history. Maximum string length is 1000.
ExcludeAltAccounts (optional; boolean) — When true, Roblox does not attempt to ban alt accounts. Default is false.
Requested:
Ideally having both would be nice.
ApplyAfterSeconds is useful for just simple delayed bans without any ban-wave mechanics.
ApplyAtTimestamp is useful for ban-wave-style player bans. Let’s say you want all players banned at the 1st of the next month, timestamp is useful to sync up the wave ban timing for such a use-case.
ApplyAfterSeconds (optional; integer)
Relative delay before the ban is applied, in seconds.
Must be greater than 0.
Mutually exclusive with ApplyAtTimestamp.
ApplyAtTimestamp (optional; integer)
Absolute Unix timestamp (UTC, in seconds) at which the ban is applied.
Must be in the future.
Mutually exclusive with ApplyAfterSeconds.