Deadlock Research
draftnote 0005build 66792026-08-15prior-artecosystem

Prior art and ecosystem

Question

Who else has solved Deadlock data extraction, what did they build, and what should we borrow rather than rebuild?

Summary

Findings

⚠️ Unverified. Nothing in this table has been confirmed by reading source or running code. It is a map of where to look, not a set of facts.

projectwhat it claims to dowhy it matters to us
deadlock-api/deadlock-api-assetsStatic assets API; parses hero/item data to JSON, serves images, icons, sounds. Docs at assets.deadlock-api.com/docs. FastAPI.Most established. Reference implementation for the JSON schema; also a shortcut if we just want data.
deadlock-wiki/deadbotDecompiles, parses, and uploads Deadlock data to the wiki.Closest to our pipeline shape. Likely the best reference for inheritance flattening and stat scaling.
0xThiagoAmaral/deadlock-open-assetsPre-extracted vdata, 1,700+ icons, codename maps, JSON manifests.Codename maps are the interesting artefact — validates our note 0004 join.
STmihan/deadlock-data-extractorAutomated image + data extractor; ships data/heroes.json.Simplest reference; good for a first read.
simon-lund/deadlock-dataScraped and copied data, structured.Cross-check source for validating our numbers.
Artemon121/deadlock-ability-swapperDecompiles and re-exports heroes.vdata / abilities.vdata.Demonstrates the write direction, not just read.
dougwithseismic/dezlock-dumpRuntime schema + RTTI extraction from the running process.Fundamentally different approach — see below.

Two distinct approaches

Static extraction (what notes 0001–0004 describe): read the VPKs, decompile, parse KV3. No game process involved. Reproducible, safe, offline. This is our path.

Runtime schema dumping (dezlock-dump, source2gen): attach to the running game and walk RTTI/schema metadata to recover struct layouts. Recovers information static extraction cannot — notably the meaning of fields and engine-internal structures.

Inferred: runtime dumping is only worth it if we hit a wall where field semantics are genuinely opaque. It carries anti-cheat and ToS considerations that static extraction does not, and should not be reached for casually.

Reproduce

Nothing here is reproducible yet — that is what makes this note draft. To promote it to verified, for each project:

git clone <url> /tmp/prior-art/<name>
# read the parser entry point; specifically look for:
#   - how _multibase / _class inheritance is flattened
#   - how m_subclassScaleFunction is evaluated
#   - the output JSON schema

Then rewrite the Findings table with confirmed behaviour and drop the warning banner.

Gotchas

Open questions

Sources