Enforcement Actions & Policies

Enforcement

Authoritative server-side management for Warnings, Kicks, Temporary Bans, and Permanent Bans.

# Overview

R Anti-Cheat supports 4 tiers of disciplinary enforcement. Each action can be triggered manually by an in-game administrator via the Bento Dashboard or executed autonomously by the server when configured in config.luau.

  [Risk Score >= 35] ──► Tier 1: Warning Modal (Non-punitive notification)
  [Risk Score >= 70] ──► Tier 2: Server Kick (Immediate disconnection)
  [Risk Score >= 100] ─► Tier 3: Temporary Ban (24h default DataStore lock)
  [Critical Exploits] ─► Tier 4: Permanent Ban (Permanent cross-server blacklist)

# 1. Warning (Warn)

  • Impact: Non-punitive. The player remains connected to the server.
  • Trigger: Accumulated risk score $\ge 35$ (or moderator command).
  • Behavior: An in-game prompt notifies the player that anomalous behavior (such as high-latency displacement or rapid input) was detected, advising them to check their connection.

# 2. Server Ejection (Kick)

  • Impact: Immediate disconnection from the current server instance.
  • Trigger: Accumulated risk score $\ge 70$ (when Config.Punishments.AutoKick = true) or moderator action.
  • Behavior: The server invokes player:Kick(message), providing a standardized explanation:
    [RAC Security Enforcement]
    You have been kicked from the server.
    Reason: Speed / Teleport Anomaly Detected.
    

# 3. Temporary Ban (TempBan)

  • Impact: Complete account lockout from all experience places for a specified duration (default: $86,400\text{ seconds}$ = 24 hours).
  • Trigger: Repeated high-severity violations or moderator command.
  • Storage: Written to DataStoreService under the key Ban_{userId}.
  • Automatic Expiration: When the banned player rejoins after expiresAt <= os.time(), the lock is automatically lifted, and the player is admitted into the game.

# 4. Permanent Ban (PermBan)

  • Impact: Irrevocable blacklist across all servers in the experience.
  • Trigger: Honeypot triggers, confirmed multi-vector exploit clustering, or manual SuperAdmin/Owner command.
  • Synchronization: Broadcast immediately to all active servers via MessagingService:PublishAsync, causing any active sessions to terminate within milliseconds.

# Next Steps