Game data downloads¶
Boon downloads versioned JSON catalogs from boon-data. Use Boon without a Deadlock installation. These commands download the JSON files, do integrity checks, and store the files locally.
Automatic name lookups¶
hero_names(), ability_names(), ability_display_names(), modifier_names(),
and breakable_names()
read these catalogs. They use the newest verified local client version. If none
is installed, they download the latest version. An explicit
version="6712" selects that client version and downloads it if missing.
Existing installations work offline; lookup calls do not search for newer releases.
boon get explicitly downloads the latest published version.
The CLI, demo.banned_heroes, and demo.breakables use the same name policy.
demo.item_purchases uses a catalog for component links.
Use demo.get_item_purchases(data_version="6712") to select that catalog explicitly.
Empty item-event tables use no catalog.
Importing Boon does not download data.
Raw combat datasets and Demo.load() use no catalogs for their IDs.
Stat, state, imbue, and calculated-ammo queries download their selected version if missing.
Rust uses the same cache and download verification:
let names = boon::CatalogNames::load(None)?;
println!("{}", names.hero_name(1));
// Pin a client version:
let historical = boon::CatalogNames::load(Some("6712"))?;
Keep the returned Rust object for repeated lookups. CatalogNames::from_directory
reads a locally built catalog directory without downloads or manifest hash checks. CatalogNames::load does integrity checks of installed release files before reading them.
Download a client version¶
boon versions # client versions, build date/time, installed status
boon get # latest client version in the published index
boon get 6712 # a specific Deadlock client version
boon versions --local # installed versions, without network access
boon versions --json # machine-readable version metadata and status
boon get 6712 --force # repair or replace an installation after verification
boon remove 6712 # remove an installed version without network access
boon versions reads the published
versions.json.
It shows the Deadlock client version, VersionDate and VersionTime from
steam.inf, and whether its files are installed locally. Source dates and times
are kept as written, without assuming a timezone. Missing values appear as - in text and null in JSON.
JSON output includes version_date, version_time, and the boon-data release
timestamp (released_at); offline listings read these from the installation
receipt. Versions are sorted numerically, newest first. A corrupt or incomplete installation is not marked installed.
If the index is unavailable, the command reports an error and lists verified local installations.
The command fails if the index and local installations are unavailable.
--local never contacts the network.
boon get defaults to the index’s latest client version. An explicit version
with a verified installation is reused without a network request. An unknown
version fails rather than downloading a different version.
Remove a client version¶
boon remove VERSION deletes that version’s local directory, including its
installation receipt. Set a version; the command never selects one
implicitly or contacts GitHub. It also removes corrupt or incomplete caches.
Missing installations produce an error, and symlinked/redirected version
directories are rejected. --json reports the version, path, and removed: true.
boon remove 6712
boon get 6712 # download a fresh copy
Removal uses the configured BOON_DATA_DIR and does not affect remote releases.
Local storage¶
The default cache is ~/.boon/<client-version>/:
~/.boon/6712/
├── abilities.json
├── heroes.json
├── modifiers.json
├── misc.json
├── manifest.json
└── .install.json
Published JSON files are stored unchanged. Releases contain all five JSON files.
The local .install.json receipt records the requested client version and
source build date and time. It also stores the publication timestamp, snapshot,
and expected checksums. Offline listings use this receipt for file-integrity checks.
Set BOON_DATA_DIR before you import Boon or run the CLI to choose a
different cache root. For example:
BOON_DATA_DIR=/path/to/data boon get 6712
Downloads are staged under the cache root. Each file must match the size and SHA-256 checksum in the version index.
The manifest must also agree with the index. Boon makes the installation
available only after these checks pass. A failed --force
download keeps the existing installation. Ordinary downloads never replace
an invalid installation; use --force to repair it.
Different client versions can share an unchanged published snapshot. Boon resolves the exact download URLs through the index and stores files under the requested client version. The downloaded manifest retains the snapshot’s original client version and source commit.
Python access¶
from boon import data
folder = data.update("6712")
print(folder)
print(data.available_files("6712"))
print(data.catalog_path("abilities", "6712"))
print(data.manifest("6712")["source"]["commit"])
for entry in data.local_versions():
print(entry["client_version"], entry["released_at"])
Function |
Behavior |
|---|---|
|
Acquire the specified client version, or latest; return its directory |
|
Delete one local version offline, including corrupt caches; return its former directory |
|
Read the latest client version from the published index |
|
Return published version metadata dictionaries, newest first |
|
Return verified installed version metadata dictionaries, newest first; no network |
|
Validate an explicit version, otherwise choose newest installed, otherwise latest published |
|
Read the manifest, downloading missing files first |
|
List the selected release’s JSON asset names, downloading missing files first |
|
Return a verified local JSON path; accepted names are listed below |
catalog_path() accepts abilities, heroes, modifiers, misc, and manifest.
Each name also accepts its .json suffix. Other names cause DataError.
version is a numeric client-version string from boon versions, such as "6712".
It is not Boon’s package version or a replay tick.
Read helpers without a version prefer the newest installed client version.
data.update() without a version reads the online index for the latest version.
data.DataError reports network, metadata, filesystem, and integrity failures.
Set data.BOON_DATA_DIR to a Path to redirect an existing process.
Relationship to replays¶
A Deadlock ClientVersion is different of Boon’s package version.
Boon does not map it to demo.build. Opening a Demo does not select a
catalog version. Name lookups use the selection policy described above.
Select version= explicitly to get names from a particular client.
Catalogs provide names and definitions. Calculate hero stats explains how to use them to calculate the supported weapon, movement, resistance, and lifesteal stats. Use Ability stats and imbues for ability bonuses and imbues, and Player states for recorded state flags. Calculations do not change raw demo datasets.
If the published index has no designated latest (for example, after only
historical backfills), automatic downloads use the highest published client
version. An empty index produces an error without installing anything.