Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Archive Formats

At the heart of the Odyssey Engine is its virtual file system. Instead of loading tens of thousands of tiny loose files straight from the local disk, the engine efficiently streams them from large, concatenated archive blobs. You can think of these formats as extremely specialized zip files used to store binary models, compiled scripts, textures, and UI data.

Note

KOTOR utilizes a highly strict two-tier architecture. BIF & KEY act as the core foundational registry for all base-game assets (e.g. data/models.bif is mapped using chitin.key as the absolute global lookup index). Meanwhile, ERF & RIM files act as completely independent, self-contained archives used aggressively for loading localized module levels, stateful save games, and community mods.


Implementation Blueprints

FormatNameLayout & Purpose
BIFBinary Information FileMassive binary payload silos containing raw game assets packed end-to-end.
KEYGlobal Index FileMaster lookup table mapping precise file names directly to their internal BIF payload offset block.
ERFEncapsulated Resource FileExtremely versatile package format utilized heavily for modules (.mod), stateful save games (.sav), and generic archives (.erf).
RIMResource ImageStripped-down, fast-loading, highly compact localized module containers (often used to split up geometry models vs dynamic entity layouts).