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 FromTo
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