# NIF File Format Documentation

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

## NiMesh

### Attributes

Name | Type | Arg | Arr1 | Arr2 | Cond | Description | From | To
--- | --- | --- | --- | --- | --- | --- | --- | ---
From NiObject
From NiObjectNET
Skyrim Shader Type | BSLightingShaderPropertyShaderType |  |  |  | IsDerivedType(BSLightingShaderProperty::TYPE) | Configures the main shader path |  |
Name | string |  |  |  |  | Name of this controllable object, used to refer to the object in .kf files. |  |
Has Old Extra Data | bool |  |  |  |  | Extra data for pre-3.0 versions. |  | 2.3
Old Extra Prop Name | string |  |  |  | hasOldExtraData | (=NiStringExtraData) |  | 2.3
Old Extra Internal Id | uint |  |  |  | hasOldExtraData | ref |  | 2.3
Old Extra String | string |  |  |  | hasOldExtraData | Extra string data. |  | 2.3
Unknown Byte | byte |  |  |  |  | Always 0. |  | 2.3
Extra Data | Ref<NiExtraData> |  |  |  |  | Extra data object index. (The first in a chain) | 3.0 | 4.2.2.0
Num Extra Data List | uint |  |  |  |  | The number of Extra Data objects referenced through the list. | 10.0.1.0 |
Extra Data List | Ref<NiExtraData> |  | Num Extra Data List |  |  | List of extra data indices. | 10.0.1.0 |
Controller | Ref<NiTimeController> |  |  |  |  | Controller object index. (The first in a chain) | 3.0 |
From NiAVObject
Flags | Flags |  |  |  |  | Some flags; commonly 0x000C or 0x000A. | 3.0 |
Unknown Short 1 | ushort |  |  |  |  | Unknown Flag | 20.2.0.7 |
Translation | Vector3 |  |  |  |  | The translation vector. |  |
Rotation | Matrix33 |  |  |  |  | The rotation part of the transformation matrix. |  |
Scale | float |  |  |  |  | Scaling part (only uniform scaling is supported). |  |
Velocity | Vector3 |  |  |  |  | Unknown function. Always seems to be (0, 0, 0) |  | 4.2.2.0
Num Properties | uint |  |  |  |  | The number of property objects referenced. |  |
Properties | Ref<NiProperty> |  | Num Properties |  |  | List of node properties. |  |
Unknown 1 | uint |  | 4 |  |  | Always 2,0,2,0. |  | 2.3
Unknown 2 | byte |  |  |  |  | 0 or 1. |  | 2.3
Has Bounding Box | bool |  |  |  |  | Do we have a bounding box? | 3.0 | 4.2.2.0
Bounding Box | BoundingBox |  |  |  | hasBoundingBox | The bounding box. | 3.0 | 4.2.2.0
Collision Object | Ref<NiCollisionObject> |  |  |  |  | Refers to NiCollisionObject, which is usually a bounding box or other simple collision shape. In Oblivion this links the Havok objects. | 10.0.1.0 |
From NiRenderObject
Num Materials | uint |  |  |  |  | The number of materials affecting this renderable object. |  |
Material Data | MaterialData |  | Num Materials |  |  | Per-material data. |  |
Active Material | int |  |  |  |  | The index of the currently active material. |  |
Material Needs Update Default | bool |  |  |  |  | The initial value for the flag that determines if the internal cached shader is valid. |  |
From NiMesh
Primitive Type | MeshPrimitiveType |  |  |  |  | The primitive type of the mesh, such as triangles or lines. |  |
Unknown 51 | int |  |  |  |  | Unknown. |  |
Unknown 52 | int |  |  |  |  | Unknown. |  |
Unknown 53 | int |  |  |  |  | Unknown. |  |
Unknown 54 | int |  |  |  |  | Unknown. |  |
Unknown 55 | float |  |  |  |  | Unknown. |  |
Unknown 56 | int |  |  |  |  | Unknown. |  |
Num Submeshes | ushort |  |  |  |  | The number of submeshes contained in this mesh. |  |
Instancing Enabled | bool |  |  |  |  | Sets whether hardware instancing is being used. |  |
Bound | SphereBV |  |  |  |  | The combined bounding volume of all submeshes. |  |
Num Datas | uint |  |  |  |  | Unknown. |  |
Datas | MeshData |  | Num Datas |  |  | Unknown. |  |
Num Modifiers | uint |  |  |  |  | Unknown. |  |
Modifiers | Ref<NiMeshModifier> |  | Num Modifiers |  |  | Unknown. |  |
Unknown 100 | byte |  |  |  |  | Unknown. |  |
Unknown 101 | int |  |  |  |  | Unknown. |  |
Unknown 102 | uint |  |  |  |  | Size of additional data. |  |
Unknown 103 | float |  | Unknown 102 |  |  | Unknown. |  |
Unknown 200 | int |  |  |  |  | Unknown. |  |
Unknown 201 | ExtraMeshDataEpicMickey |  | Unknown 200 |  |  | Unknown. |  |
Unknown 250 | int |  |  |  |  | Unknown. |  |
Unknown 251 | int |  | Unknown 250 |  |  | Unknown. |  |
Unknown 300 | int |  |  |  |  | Unknown. |  |
Unknown 301 | short |  |  |  |  | Unknown. |  |
Unknown 302 | int |  |  |  |  | Unknown. |  |
Unknown 303 | byte |  | Unknown 302 |  |  | Unknown. |  |
Unknown 350 | int |  |  |  |  | Unknown. |  |
Unknown 351 | ExtraMeshDataEpicMickey2 |  | Unknown 350 |  |  | Unknown. |  |
Unknown 400 | int |  |  |  |  | Unknown. |  |

### Parent Of