Skip to the content
Docs

Proofs & Incident Timeline

The part of the script your players never see, and your staff live in.

What a proof is

When one player aims at, hurts, kills, cuffs, uncuffs, robs, searches, escorts or kidnaps another, the server quietly writes down how well the attacker's character recognized the victim at that exact moment.

Nobody is blocked. Nobody is warned. No player sees anything at all.

The two numbers

Every proof carries both of these:

NumberMeaning
What they knewWhat the attacker's character actually remembered — their live result, their memory, their camera report, their Lab ID
What they could reach right nowWhat a fresh look at the victim at that second could possibly have given them

That second number is what makes a proof usable. Together they read like this:

John shot Mike while he remembered him at 86 % — but with Mike's mask on, a fresh look right then could only have reached 24 %.

Which tells a staff member, in one line, that John's character did know Mike — but could not have told it was Mike under that mask at that moment. Whether that was fair play is for your staff to judge.

What is recorded

Field
Who, whom, whenCharacter, server id, time
The causeaim · damage · kill · cuff · uncuff · rob · search · escort · kidnap · custom
Both numbersas above
Where the main number came fromtheir own memory, a camera, a report, a description, a lab result
Whether it was below the act linea flag, so staff can filter on it
The victim's concealment at that momentwhat was covered
The attacker's jobso staff can tell police from robbers (Config.Proof.LogJobs)

Aim proofs need 750 ms of actually holding aim (AimMinMs), and the same pair is only logged once a minute (AimCooldown), so ordinary gunfights do not fill the log with noise. Cuff, rob, search, escort and kidnap proofs come from your police and inventory scripts — see Police, MDT & Evidence.

The incident timeline

The Timeline page of the Admin Panel tells one player's story, day by day:

  1. Pick a player first — type a name or server id, or click an online face.
  2. Choose the time window: 24 h, 7 d or 30 d.
  3. Filter by kind: Scans, Proofs, Papers, Deaths, Admin or Other (identity changes and Lab IDs), or only what was Below 80%.

Each event is one short line under Today, Yesterday or a date — Scanned Mike, Robbed by Mike, Died — with its number, a result chip and the time. Click a line for the details.

Proofs between the same two people that happen within 2 minutes of each other (Config.Proof.IncidentGapSeconds) are grouped into one incident line, Incident with Mike, instead of forty rows. Click it to see:

  • every act in it, as icons;
  • the lowest remembered and right now numbers in each direction;
  • how the death ended, if somebody went down;
  • buttons to Open pair view or Export to Discord.

Tamper-evidence

The proof log and the staff audit log are tamper-evident: a row that is changed or removed outside the panel afterwards shows up straight away.

  • Run /recognition:verifyproofs to check both logs at any time.
  • The Integrity card on the panel's Overview shows Proof chain and Audit, each with OK or Broken and the last row checked. Click Verify now to check again.

Discord

Proofs are also posted to a Discord channel automatically, in small batches. All in Config.Proof:

KeyDefaultWhat it does
DiscordtrueSend proofs to the proofs webhook
DiscordCausesevery cause onPick which causes get posted
DiscordOnlyBelowfalsetrue = only post proofs below the act line
DiscordSkipOnDutyJobs{}e.g. { 'police' } = on-duty police actions are not posted (they are still logged)

Licence identifiers are left out by default. See Discord Webhooks and Proofs for every setting.

For other scripts

Any script can add a proof of its own — a heist script logging a hostage take, a custom robbery script — with one export call. See Server Exports, LogAction.