Replay

Replay pipeline and theater concepts.

Modern Replay

Capture

  1. Normal sampling fills a bounded rolling buffer per (server, session, steam)
  2. Meaningful detection / investigation open triggers capture
  3. Pre-window preserved; post-window continues briefly
  4. Finalize → validate → checksum → store AcReplay

Format (v2)

{
  "version": 2,
  "subjectSteamId64": "...",
  "epoch": 0,
  "triggerOffsetMs": 5000,
  "frames": [{ "t": 0, "x": 0, "y": 0, "z": 0, "yaw": 0, "pitch": 0, "speed": 0 }],
  "actors": [
    { "steamId64": "...", "role": "suspect", "frames": [] },
    { "steamId64": "...", "role": "target", "frames": [] }
  ],
  "markers": [{ "t": 5000, "kind": "detection", "label": "..." }],
  "privacy": { "chat": false, "voice": false, "screen": false, "clientFiles": false }
}

v1 payloads remain readable (subject frames only).

Viewer

  • Cameras: Free, Suspect POV, Target POV, Follow Suspect
  • Speeds: 0.25× / 0.5× / 1× / 2×
  • Analysis: aim/eye angles, angular velocity (derived), speed, detection markers
  • Bookmarks: staff notes at offsets (RBAC detections.review)

Retention

  • Default expiry from risk module replayRetentionDays
  • retentionProtected + open / in_review / escalated / resolved_cheating prevent silent deletion
  • Purge expires visualization payload only — detections & investigations remain