This launchpad tracks the implementation status of KotOR file formats across our parsing libraries (rakata-formats) and our strongly-typed wrappers (rakata-generics).
Status Legend:
Full: Binary reader/writer implemented with roundtrip tests.
Generics: Strongly-typed wrappers and linting schemas implemented.
Partial: Basic parsing support, advanced features deferred.
Canonical: Validated against vanilla KotOR (K1) runtime behavior.
Faction & reputation table. Engine-audited spec page; not yet wrapped in rakata-generics.
BIC
Reference
Aurora player-character record: a header (Mod_CommntyName, Mod_IsPrimaryPlr, ObjectId) around a UTC creature snapshot, structurally one IFOMod_PlayerList entry. Used by character generation and transport; on disk only as the gated Player.bic, which normal K1 saves never produce. Reference-only, not separately modelled.
The save-only GFFs (NFO savenfo, PT partytable, GVT globalvars) each have a page under Save Games rather than here; they exist only inside a save folder and are handled by rakata-save. FAC keeps its own page because repute.fac is a real module and save resource. BIC gets only the reference row above: it is structurally an IFO/UTC record with no routine on-disk presence to model, and its gated Player.bic save behaviour is covered in the Save Game Deep Dive.
Because this project seeks to achieve strict interoperability with a two-decade-old engine, mere “correctness” is insufficient. We guarantee canonical behavior.
Target: Canonical vanilla Star Wars: Knights of the Old Republic 1 (2003).
Engine Audits: We do not guess how the engine behaves. Code is written exclusively from observed engine evidence notes derived from clean-room reverse engineering (via Ghidra/ret-sync). Every implementation choice is documented directly inside that format’s specific page on this site.
Verification: Behaviors are locked via deep integration tests against synthetic fixtures. If a parser perfectly round-trips an invalid file but the game engine rejects it, it is treated as a critical bug.