bg3forge 0.1.0
First release. Everything below is validated against a full retail install
(Patch 8, 154 GB, 52 paks). See
the retail baseline
for the results and
the retail-testing guide
for reproduction instructions.
Formats
- LSPK
.pakarchives v15–v18: reader, writer, multi-part archives,
LZ4/zlib/zstd entries, incremental extraction, and patch detection - Stats
.txtwithusinginheritance, patch layering, self-using
overrides, andkeyglobal constants - Localization
.locaread/write support with handle-version precedence - Node trees in LSX, LSF versions 1–7, and LSJ, parsed into a shared
document model with format sniffing bg3forge converttranslation between.lsfand.lsx- Texture atlases and DDS icon extraction to PNG or WebP
- Quest journal, objectives, categories, markers, and metadata-level
Osiris goal scripts - Compiled Osiris stories (
story.div.osi, versions 1.13–1.15), including
metadata traversal for headers, types, functions, databases, goals,
and rules - Character equipment sets from
Stats/Generated/Equipment.txt - Pure-Python LZ4 block and frame codecs, giving the core library zero
required dependencies; native speedups are available through extras
API
Gamefacade that reads directly from installed paks in engine load
order or from a previously extracted directory- Typed models with forward and reverse relationships between items,
passives, statuses, spells, tags, templates, quests, goals, characters,
and equipment - Name-addressed collections with display-name search
- Lazy indexes for dialogs, timelines, Osiris goals, and compiled stories
- Runtime-facing item templates combining canonical root templates with
stable objects placed under module Globals and Levels TemplateNameresolution through the root-template inheritance chain- Selected icon export directly from game paks without an extraction step
- Deterministic JSON, SQLite, CSV, Markdown, and YAML exporters
- Character models with ability scores, localized template data,
archetypes, passives, tags, and resolved equipment - Journal relationships including quest objectives, categories, and
objective markers
Command-line tools
bg3forge doctor— installation and environment diagnosticsbg3forge validate— full-coverage parsing with per-file failuresbg3forge benchmark— repeatable timings, counts, and peak memorybg3forge search— archived-path search and directory aggregationbg3forge characters— character dataset exportunpack,list,convert,patches,icons, and per-dataset export
commands
Retail validation
- 30 readable primary paks and 1,041,877 indexed pak entries
- 16,132 resolved stats entries
- 232,876 localization handles
- 25,560 effective root templates
- 167 quests and 1,335 objectives
- All 11 shipped compiled Osiris story files parsed successfully
- 943 unique source goals found in compiled data, with none missing
- Final release benchmark: approximately 25.1 seconds and 827 MB peak RSS
- A downstream consumer validated 7,081 named items, all 146 curated item
records, and all 994 referenced gear icon keys