Reach Import Process

Halo Reach introduced a single function for importing source assets to the game engine. Use of a single function is possible because Reach relies on a sidecar XML file to define which files to import, how the files should be imported (such as defining animation types) and which tags to create.

Intermediate Files

Like previous workflows, a intermediate file is needed by Tool before source assets can be imported as tags. However, unlike previous workflows the intermediate file is a unified type: .gr2. This is the extension for a Granny 3D File. The Granny files purpose is to combine asset data, along with the special information utilised by the Halo engine (like meshes defined as portals), and allow Tool to read and process the data for importing.

.gr2 files can be created from fbx files using the tool function: fbx-to-gr2 [hr-tool]. During this process JSON files are generated by Tool. These define the extra information to be written to each node/mesh/material in its corresponding .fbx file.


A sidecar file is essential to importing an asset into the Reach engine. The sidecar gives Tool all the information about how to import intermediate files. Its basic structure can be understood as:

The path and high level tag types to be produced. For example a model sidecar always contains an output tag for a .model tag, and may have as many top level output tags as is needed (for example a single sidecar could be used to import a .crate, .scenery, and .weapon tag for a single model).

Face Collection data. Face collections cover two main areas, defining global materials and regions. Intermediate files can contain data which points to the global materials / regions defined in the sidecar. On import these regions will be applied to the imported tags.

The intermediate files to be processed and their output tags. This section is key to producing the lower level tags that are referenced by the high level tags (for example for a model, these would be .render_model, .collision, .physics, and .animations). Multiple intermediate files can be given per output tag. For example a render_model output good be made up of three different .gr2 files, each file serving as a seperate permutation. In importing a scenario sidecar, multiple files can combine into single BSPs, allowing the user to break up their source files into smaller chunks.

The basic structure of a sidecar can be generated in Foundation through Librarian. Osoyoos also has support for automated sidecar generation.


The import command uses the information in the sidecar and the intermediary files to produce tags, and will additionally correctly link these files together.

Import has its own useful shortcut in Foundation. Simply hit ctrl+T and Foundation will fill in the arguments necessary to import that particular asset. Here you can select optional arguments prior running import. Import can also be accessed by right clicking on a tag, or through Librarian.