# NIF File Format Documentation

NIF Objects | Compound Types | Enum Types | Basic Types | File Versions

## Header

The NIF file header.

### Attributes

Name | Type | Arg | Arr1 | Arr2 | Cond | Description | From | To
--- | --- | --- | --- | --- | --- | --- | --- | ---
Header String | HeaderString |  |  |  |  | 'NetImmerse File Format x.x.x.x' (versions <= 10.0.1.2) or 'Gamebryo File Format x.x.x.x' (versions >= 10.1.0.0), with x.x.x.x the version written out. Ends with a newline character (0x0A). |  |
Copyright | LineString |  | 3 |  |  | Unknown. |  | 3.1
Version | FileVersion |  |  |  |  | The NIF version, in hexadecimal notation: 0x04000002, 0x0401000C, 0x04020002, 0x04020100, 0x04020200, 0x0A000100, 0x0A010000, 0x0A020000, 0x14000004, ... | 3.3.0.13 |
Endian Type | EndianType |  |  |  |  | Determines the endianness of the data in the file. | 20.0.0.4 |
User Version | ulittle32 |  |  |  |  | An extra version number, for companies that decide to modify the file format. | 10.1.0.0 |
Num Blocks | ulittle32 |  |  |  |  | Number of file objects. | 3.3.0.13 |
User Version 2 | ulittle32 |  |  |  | (userVersion >= 10) || ((userVersion == 1) && (version != 0x0A020000)) | This also appears to be the extra user version number and must be set in some circumstances. Probably used by Bethesda to denote the Havok version. | 10.1.0.0 |
Unknown Int 3 | uint |  |  |  |  | Unknown. Possibly User Version 2? | 30.0.0.2 |
Export Info | ExportInfo |  |  |  |  | Unknown. | 10.0.1.2 | 10.0.1.2
Export Info | ExportInfo |  |  |  | (userVersion >= 10) || ((userVersion == 1) && (version != 0x0A020000)) | Unknown. | 10.1.0.0 |
Num Block Types | ushort |  |  |  |  | Number of object types in this NIF file. | 10.0.1.0 |
Block Types | SizedString |  | Num Block Types |  |  | List of all object types used in this NIF file. | 10.0.1.0 |
Block Type Index | BlockTypeIndex |  | Num Blocks |  |  | Maps file objects on their corresponding type: first file object is of type object_types[object_type_index[0]], the second of object_types[object_type_index[1]], etc. | 10.0.1.0 |
Block Size | uint |  | Num Blocks |  |  | Array of block sizes? | 20.2.0.7 |
Num Strings | uint |  |  |  |  | Number of strings. | 20.1.0.3 |
Max String Length | uint |  |  |  |  | Maximum string length. | 20.1.0.3 |
Strings | SizedString |  | Num Strings |  |  | Strings. | 20.1.0.3 |
Unknown Int 2 | uint |  |  |  |  | Unknown. | 10.0.1.0 |

### Found In