Bans (bans.json)

Where bans are stored and how they work.


Where they are stored

Bans are stored in the bans.json file of the CodeonShield folder. They are not stored in the cloud: they belong to your server. Back this file up.

How they are checked

Every ban stores all the identifiers of the player and their hardware tokens. When someone connects and any of them matches, they cannot join. Switching Rockstar, Steam or Discord accounts does not get around it. Local IPs (127.x, 192.168.x, 10.x) are never stored.

Temporary bans are removed on their own when they expire.

Managing bans

  • Ban: from /csmenu → Players, or automatically with Critical detections.
  • Unban: from /csmenu → Bans → Revoke ban (needs the unban action).
  • Import bans from another anticheat: with the Ban Converter.

If you edit or replace bans.json by hand, run cs reload so it is read again.

Format

[
  {
    "id": 1,
    "name": "Player",
    "identifiers": ["license:...", "discord:...", "steam:..."],
    "tokens": ["2:...", "3:..."],
    "reason": "No reason specified",
    "staff": "Console",
    "date": "2026-01-31 18:00:00",
    "expires": 1769886000
  }
]

expires is a Unix timestamp and only appears in temporary bans. Without it, the ban is permanent.