NIF File Format Documentation

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

Compound Data Types

Name Description
AVObject Used in NiDefaultAVObjectPalette.
AdditionalDataBlock
AdditionalDataInfo
ArkTexture A texture reference used by NiArkTextureExtraData.
BSPackedAdditionalDataBlock
BSSegment Bethesda-specific node.
BSTreadTransform Bethesda-specific node.
BSTreadTransformData Bethesda-specific node.
BodyPartList Body part list for DismemberSkinInstance
BoneLOD Stores Bone Level of Detail info in a BSBoneLODExtraData
BoundingBox Bounding box.
BoundingVolume
BoxBV Box Bounding Volume
ByteArray An array of bytes.
ByteColor3 Unknown.
ByteColor4 Unknown.
ByteMatrix An array of bytes.
CapsuleBV Capsule Bounding Volume
ChannelData Channel data
Color3 A color without alpha (red, green, blue).
Color4 A color with alpha (red, green, blue, alpha).
ControllerLink In a .kf file, this links to a controllable object, via its name (or for version 10.2.0.0 and up, a link and offset to a NiStringPalette that contains the name), and a sequence of interpolators that apply to this controllable object, via links.
DecalVectorArray Array of Vectors for Decal placement in BSDecalPlacementVectorExtraData.
ElementReference
ExportInfo Information about how the file was exported
ExtraMeshDataEpicMickey
ExtraMeshDataEpicMickey2
FilePath A string that contains the path to a file.
Footer The NIF file footer.
FurniturePosition Describes a furniture position?
HalfSpaceBV
Header The NIF file header.
HingeDescriptor This constraint allows rotation about a specified axis.
InertiaMatrix An inertia matrix.
Key A generic key with support for interpolation. Type 1 is normal linear interpolation, type 2 has forward and backward tangents, and type 3 has tension, bias and continuity arguments. Note that color4 and byte always seem to be of type 1.
KeyGroup Array of vector keys (anything that can be interpolated, except rotations).
LODRange The distance range where a specific level of detail applies.
LimitedHingeDescriptor This constraint allows rotation about a specified axis, limited by specified boundaries.
MTransform
MatchGroup Group of vertex indices of vertices that match.
MaterialData Data stored per-material by NiRenderObject
Matrix22 A 2x2 matrix of float values. Stored in OpenGL column-major format.
Matrix33 A 3x3 rotation matrix; M^T M=identity, det(M)=1. Stored in OpenGL column-major format.
Matrix44 A 4x4 transformation matrix.
MeshData
MipMap Description of a MipMap within a NiPixelData object.
Morph Geometry morphing data component.
MorphWeight
MotorDescriptor
MultiTextureElement
NodeGroup A group of NiNodes references.
OblivionColFilter Oblivion's ColFilter property for Havok.
OblivionSubShape Havok Information for packed TriStrip shapes.
OldSkinData Used to store skin weights in NiTriShapeSkinController.
Particle particle array entry
ParticleDesc Particle Description.
Polygon Two dimensional screen elements.
QTransform
QuatKey Unknown.
Quaternion A quaternion.
QuaternionXYZW A quaternion as it appears in the havok objects.
RagdollDescriptor This constraint defines a cone in which an object can rotate. The shape of the cone can be controlled in two (orthogonal) directions.
Region A range of indices, which make up a region (such as a submesh).
SemanticData
ShaderTexDesc An extended texture description for shader textures.
ShortString Another string format, for short strings. Specific to Bethesda-specific header tags.
SizedString A string of given length.
SkinData Skinning data component.
SkinPartition Skinning data for a submesh, optimized for hardware skinning. Part of NiSkinPartition.
SkinPartitionUnknownItem1
SkinShape Reference to shape and skin instance.
SkinShapeGroup Unknown.
SkinTransform
SkinWeight A weighted vertex.
SphereBV A sphere.
StringPalette A list of \\0 terminated strings.
TBC Tension, bias, continuity.
TexCoord Texture coordinates (u,v). As in OpenGL; image origin is in the lower left corner.
TexDesc Texture description.
TexSource A texture source.
Triangle List of three vertex indices.
UnionBV
Vector3 A vector in 3D space (x,y,z).
Vector4 A 4-dimensional vector.
bhkCMSDBigTris Triangle indices used in pair with "Big Verts" in a bhkCompressedMeshShapeData.
bhkCMSDChunk Defines subshape chunks in bhkCompressedMeshShapeData
bhkCMSDMaterial per-chunk material, used in bhkCompressedMeshShapeData
bhkCMSDTransform A set of transformation data: translation and rotation
hkTriangle A triangle with extra data used for physics.
ns keyarray Array of keys, not interpolated (!!! for NifSkope only, use keyarray for regular use).
ns keylin Linear key type (!!! for NifSkope optimizer only, use key, keyrot, or keyvec for regular use).
ns keyrotarray Array of rotation keys (!!! for NifSkope only, use keyrotarray for regular use).
ns keyrotsub Rotation subkey (!!! Nifskope only).
ns keytan Key with tangents (!!! for NifSkope only, use keyvec instead for regular purposes).
ns keytbc A TBC key (!!! for NifSkope only, use keyvec for regular purposes).
ns keyvecarray Array of interpolable keys (!!! for NifSkope only, use keyvecarray for regular use).
ns keyvecarraytyp Array of interpolable keys (!!! for NifSkope only, use keyvecarraytyp for regular use)
physXMaterialRef
string A string type.