Destiny 2 data generation tool that produces JSON and TypeScript files used by DIM (Destiny Item Manager). This project processes the Destiny 2 manifest to extract and organize game data that isn't readily available through the standard Bungie API.
- Node.js >= 22 (check with
node --version) - pnpm >= 10 (check with
pnpm --version) - Bungie API Key - Set as
API_KEYenvironment variable (Get one here)
# Install dependencies
pnpm install
# Generate all data files
pnpm generate-datapnpm generate-dataThis runs all generate-*.ts scripts in priority order, producing JSON and TypeScript files in the output/ directory.
pnpm generate-data-sub {script-name} {script-name-2} ...Example:
pnpm generate-data-sub season-info source-infoNote: Script names are without the generate- prefix or .ts extension.
# Lint code
pnpm lint:eslint
# Format code
pnpm fix:prettier
# Build TypeScript
pnpm build- CONTRIBUTING.md - Guide for contributing to this project
- EVENTS.md - Reference table of Destiny 2 events
- SEASONS.md - Reference table of Destiny 2 seasons
- CHANGELOG.md - API changes and deprecations
This project generates JSON and TypeScript data files in the output/ directory. These files provide supplemental Destiny 2 data for use in applications like DIM.
Files marked [DEPRECATED] will be removed in a future version (see CHANGELOG.md for details).
| File | Description |
|---|---|
| adept-weapon-hashes.json | Array of all Adept weapon hashes |
| bad-vendors.json | Vendor hashes missing an associated token hash |
| bright-engram.json | Season hash to Bright Engram hash mappings |
| catalyst-triumph-icons.json | Catalyst triumph hash to improved icon mappings |
| craftable-hashes.json | Array of all craftable weapon hashes |
| crafting-enhanced-intrinsics.ts | Set of all enhanced intrinsic perk hashes with labels |
| crafting-mementos.json | Memento source to memento hash array mappings |
| d2-event-info.ts [DEPRECATED] | Event information mappings (see EVENTS.md) |
| d2-event-info-v2.ts | Event information mappings (see EVENTS.md) |
| d2-font-glyphs.ts | Enum of Destiny 2 font glyphs |
| d2-season-info.ts | Season information and metadata |
| d2-trials-objectives.json | Trials objective and passage hash mappings |
| deprecated-mods.json | Array of all deprecated mod hashes |
| DestinySymbols.woff2 | Web font containing Destiny glyphs (see d2-font-glyphs.ts for enum) |
| dummy-catalyst-mapping.json | Dummy catalyst to actual catalyst hash mappings for older catalyst socket system (where catalysts auto-apply) |
| empty-plug-hashes.ts | Set of "empty" plug hashes (e.g., No Shader, No Mod Inserted) |
| energy-mods-change.json | Armor 2.0 energy capacity mod lookup table for changing elements |
| energy-mods.json | Armor 2.0 energy capacity mod lookup table for same element |
| engram-rarity-icons.json | Engram rarity to icon path mappings |
| events.json | Item hash to event hash mappings (see EVENTS.md) |
| exotic-to-catalyst-record.json | Exotic weapon hash to catalyst record hash mappings |
| exotics-with-catalyst.ts | Array of exotic weapon hashes with catalysts |
| extended-breaker.json | Item hash to breaker type hash mappings for items with breaker properties only identified by text |
| extended-ich.json | Weapon hash to negative item category hash mappings (separates slug/pellet shotguns and breech/heavy grenade launchers) |
| focusing-item-outputs.json | Fake vendor focusing item hash to output item hash mappings |
| generated-enums.ts | General-purpose Destiny 2 enums |
| ghost-perks.json | Outdated ghost perk listing from before Ghost 2.0 |
| item-def-workaround-replacements.json [DEPRECATED] | Dummy postmaster weapon to actual hash mappings (last used in Dawn) |
| legacy-triumphs.json | Array of all legacy triumph hashes |
| lightcap-to-season.json | Light cap to season number mappings |
| masterworks-with-cond-stats.json | Array of masterwork plugs with conditional stats |
| missing-faction-tokens.json [DEPRECATED] | Previously missing faction tokens |
| missing-source-info.ts [DEPRECATED] | Sources and item hashes that were missing source hash |
| mods-with-bad-descriptions.json | Mods with inaccurate descriptions by category |
| mutually-exclusive-mods.json | Armor mod hash to mutual exclusion category mappings (for "Similar mod already applied" behavior) |
| objective-richTexts.ts | Destiny rich text mappings |
| powerful-rewards.json | Array of item hashes containing powerful rewards |
| pursuits.json | Pursuit to completion criteria mappings |
| raid-mod-plug-category-hashes.json | Array of raid mod plug category hashes |
| reduced-mod-cost-hashes.ts | Artifact mod to reduced-cost variant mappings |
| season-tags.json | Season name (short) to season number mappings |
| season-to-source.json [DEPRECATED] | Source to season mappings |
| source-to-season-v2.json | Source to season mappings |
| seasonal-challenges.json | Seasonal challenge to completion criteria mappings |
| seasonal-armor-mods.json | Armor mods only available in certain seasons (in addition to reduced-cost versions) |
| seasons_backup.json [DEPRECATED] | 1:1 item hash to season mappings |
| seasons.json | Item hash to season mappings (excludes items with season deducible from watermarks or sources) |
| source-info.ts [DEPRECATED] | Tag to source mappings |
| source-info-v2.ts | Tag to source mappings |
| sources.json | Source hash to source description mappings |
| special-vendors-strings.json | Vendors with specific strings for asset finding, filtering, etc. |
| spider-mats.json | Array of materials Spider (now Rahool) used to sell |
| spider-purchaseables-to-mats.json | Vendor item hash to actual item hash mappings for Spider (now Rahool) |
| subclass-plug-category-hashes.json | Array of subclass plug category hashes |
| symbol-name-sources.ts | Well-known Destiny 2 font symbols with localized name retrieval from definitions |
| trait-to-enhanced-trait.json | Normal trait to enhanced trait hash mappings |
| universal-ornament-plugsethashes.json | Array of universal ornament PlugSet hashes (check canInsert instead of enabled for availability) |
| universal-ornament-aux-sets.json | Class type to universal ornament set mappings where set grouping cannot be derived from collections |
| unreferenced-collections-items.json | Collection entry to additional covered item mappings |
| voice-dim-valid-perks.json | Array of valid perk names for use in VoiceDIM |
| watermark-to-event.json | Watermark icon to event mappings (see EVENTS.md) |
| watermark-to-season.json | Watermark icon to season mappings |
| weapon-from-quest.json | Weapon hash to initial quest step hash mappings |
Thanks goes to these wonderful people (emoji key):
Rob Jones 🐛 💻 🔣 🤔 🚧 👀 |
Ryan Rushton 💻 🔣 🤔 🚧 👀 |
Ben Hollis 💻 🔣 🤔 🚧 👀 |
robojumper 💻 🔣 🤔 🚧 👀 |
Vivek Hari 💻 🔣 🤔 |
Tom Chapman 💻 🔣 |
Jakosaur 🔣 |
Abdul Sinusi 💻 🔣 |
This project follows the all-contributors specification. Contributions of any kind welcome!