-
-
Notifications
You must be signed in to change notification settings - Fork 2
File Format
unicbm edited this page Jul 8, 2026
·
3 revisions
This page is a summary. The repository docs/FORMAT.md is the source of truth.
- Magic:
CSDTRREC - Current writer format:
.dtrv7 - Runtime reader support: v3 through v7
- Current manifest ABI: 17
- Current BotController native ABI: 16
- Current DemoTracer companion API: 5
.dtr is the native replay file consumed by DemoTracer's CounterStrikeSharp plugin and the BotController runtime.
It stores demo-derived route replay evidence such as:
- Movement snapshots.
- View angles.
- Firing/input state.
- Weapon state.
- Projectile events.
- High-fidelity metadata.
- Subtick records.
- Optional command-frame data.
.dtr v7 uses a section container. Known sections include:
- Movement snapshot chain.
- Tick metadata.
- Subtick moves.
- Projectile events.
- High-fidelity metadata JSON.
- Command frames.
- Movement extra data.
Readers should skip unknown v7 section IDs by stored payload length when the format contract allows it.
The runtime reader supports v3 through v7:
- v3 files do not contain projectile metadata.
- v4 introduced projectile metadata.
- v5 added
play_start_tick_indexand bounded freeze-time replay context. - v6 added high-fidelity metadata JSON.
- v7 added the section container and optional command-frame/movement-extra sections.
- Validate magic and supported version.
- Read header counts and string fields.
- For v7, parse known sections and skip unknown sections safely.
- For legacy versions, parse the compressed body according to the version contract.
- Require mandatory movement, tick metadata, and subtick data.
- Parse metadata JSON by declared byte length.
- Verify subtick totals and replay bounds.
Use a matching server bundle for current .dtr output. If dtr_runtime or dtr_doctor reports an ABI mismatch, install the full matching server bundle and restart the server.
Start here
Convert
Playback
Reference