VPK
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Valve VPK Preview.
At a glance
| Purpose | A Valve VPK package: the Source engine's archive directory (a _dir.vpk) that indexes files stored in numbered archive parts. |
| Extensions | .vpk |
| Poka parser | poka-vpk |
| Viewer | poka-table-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B4 Summary (see Breadth tiers) |
How much Poka reads
B4 Summary. The container and metadata are read and summarised (counts, properties, structure), but the main content is not rendered.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-vpk/src/main.rs (409 lines) and plugin.json. The three unit tests cover a well-formed tree, a tree that ends mid-entry (flagged) and an unsupported version; the corpus has no VPK. Covers .vpk and .vpk-valve. The table reads the version 1 or 2 header and walks the directory tree (extension, path, file name), giving one row per file with path, size, archive part, offset, CRC32 and preload bytes, with a summary of archives and top file types. Judgement: B4: the directory is listed but no file is extracted or shown.
What Poka does not read
- File contents are not extracted or shown, including the data in the numbered archive parts
- The version 2 MD5 sections and signature are not read or checked
- CRCs are shown, not verified
- Only the first 5,000 entries are listed
- Files over 256 MiB are cut (flagged)
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- sourcepak (candidate; MIT; Rust; https://lib.rs/crates/sourcepak) — Reads and writes VPK v1, v2 and Respawn (Titanfall) variants; repo barnabwhy/sourcepak-rs; v0.3.0, flagged unstable.
- valve_pak (candidate; MIT; Rust; https://docs.rs/crate/valve_pak/latest) — Reads and writes VPK v1 and v2 with MD5 checks; repo floydya/valve-pak-rs; v0.1.0.
- vpk (vpk-rs) (candidate; MIT; Rust; https://github.com/roman901/vpk-rs) — Limited to CS:GO-style VPKs; archives with non-zero file data section not supported.
- ValvePython/vpk (candidate; MIT; Python; https://github.com/ValvePython/vpk) — Open, list, extract and create VPKs; multi-archive creation not supported.
- rvpk (candidate; non-standard; Rust; https://github.com/panzi/rust-vpk) — A tool to create, list, check, and unpack Valve VPK files files.; v1.1.0, updated 2023-03-05; matched on lib.rs, not tested
- l4d2_addon_parser (candidate; MIT; Rust; https://crates.io/crates/l4d2_addon_parser) — Parse L4D2 VPK files and extract info from addoninfo.txt data and the mission data for campaigns, and other utilities; v1.3.1, updated 2025-11-15; matched on lib.rs, not tested
Sources
- parsers/poka-vpk/src/main.rs
- parsers/poka-vpk/plugin.json