Deadlock Research

Research Notes

Deadlock ships as compiled Source 2 assets. Nothing here is documented by Valve, so everything we know is reverse-engineered against a specific game build and goes stale when the game patches.

This directory is the pattern for keeping that knowledge durable: one question per note, every claim stamped with the build it was verified against, and every claim reproducible by running a command.

The loop

   ASK ──▶ VERIFY ──▶ WRITE ──▶ STAMP ──▶ RE-VERIFY (next patch)
    │                                          │
    └──────────────────────────────────────────┘
  1. Ask — Frame one answerable question. "Where do purchasable item stats live?" is a note. "How does Deadlock work?" is not.
  2. Verify — Answer it by running something against the real install. Never write down a claim sourced only from a forum post, a wiki, or a model's recollection. If a claim came from outside, re-derive it locally before it goes in a note.
  3. Write — Copy TEMPLATE.md to NNNN-kebab-title.md. Paste the actual commands and their actual output. Trimmed output is fine; invented output is not.
  4. Stamp — Fill verified_against with the game build from python tools/find_game.py. A note without a build stamp is a rumour.
  5. Re-verify — After a patch, re-run the Reproduce block. Update or mark stale.

Note status

statusmeaning
draftBeing written. Claims not yet all verified.
verifiedEvery claim reproduced against verified_against build.
staleGame has patched since; claims may no longer hold. Re-verify before trusting.
supersededReplaced. Points at the replacement in superseded_by.

Rules that keep this useful

Checking for staleness

python tools/find_game.py

Prints the installed build. Compare it against the verified_against field of the notes you are about to rely on. If they differ, treat those notes as stale until re-run.

Index

#NoteStatusVerified against
0001VPK archive layout and inventoryverified6679
0002Gameplay data in vdata filesverified6679
0003Decompilation toolchainverified6679
0004Localization and codename mappingverified6679
0005Prior art and ecosystemdraft6679
0006Identifying file formats from headersverified6679
0007KV3 text grammar and its trapsverified6679
0008KeyValues v1, and telling it apart from KV3verified6679
0009Machine-readable interaction and effect signalsverified6679
0010Programmatic match data and hero leaderboardsverified6679
0011The full programmatic API surface around Deadlockverified6679
0012Shop filters and item build chainsverified6679

Keep this table in sync when adding a note. It is the only index; there is no generator.

Layout

docs/research/
  README.md      this file — the pattern
  TEMPLATE.md    copy this to start a note
  NNNN-*.md      the notes          (Markdown only; the rendered site lives in site/)
tools/
  find_game.py   locate install, print build stamp
  vpkdb.py       searchable SQLite index of every archive
  vpk_list.py    enumerate VPK contents (stdlib only)

Tools here are deliberately dependency-free Python so any contributor — or any coding agent — can run them without a setup step. See AGENTS.md for how automated contributors should use this directory.