# NIF File Format Documentation

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

## 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.

### Attributes

Name | Type | Arg | Arr1 | Arr2 | Cond | Description | From | To
--- | --- | --- | --- | --- | --- | --- | --- | ---
Target Name | string |  |  |  |  | Name of a controllable object in another NIF file. |  | 10.1.0.0
Controller | Ref<NiTimeController> |  |  |  |  | Link to a controller. |  | 10.1.0.0
Interpolator | Ref<NiInterpolator> |  |  |  |  | Link to an interpolator. | 10.1.0.106 |
Controller | Ref<NiTimeController> |  |  |  |  | Unknown link. Usually -1. | 10.1.0.106 |
Unknown Link 2 | Ref<NiObject> |  |  |  |  | Unknown. | 10.1.0.106 | 10.1.0.106
Unknown Short 0 | ushort |  |  |  |  | Unknown. | 10.1.0.106 | 10.1.0.106
Priority | byte |  |  |  |  | Idle animations tend to have low values for this, and NIF objects that have high values tend to correspond with the important parts of the animation. | 10.1.0.106 |
String Palette | Ref<NiStringPalette> |  |  |  |  | Refers to the NiStringPalette which contains the name of the controlled NIF object. | 10.2.0.0 | 20.0.0.5
Node Name | string |  |  |  |  | The name of the animated node. | 10.1.0.106 | 10.1.0.106
Node Name | string |  |  |  |  | The name of the animated node. | 20.1.0.3 |
Node Name Offset | StringOffset |  |  |  |  | Offset in the string palette where the name of the controlled node (NiNode, NiTriShape, ...) starts. | 10.2.0.0 | 20.0.0.5
Property Type | string |  |  |  |  | Name of the property (NiMaterialProperty, ...), if this controller controls a property. | 10.1.0.106 | 10.1.0.106
Property Type | string |  |  |  |  | Name of the property (NiMaterialProperty, ...), if this controller controls a property. | 20.1.0.3 |
Property Type Offset | StringOffset |  |  |  |  | Offset in the string palette where the property (NiMaterialProperty, ...) starts, if this controller controls a property. Otherwise, -1. | 10.2.0.0 | 20.0.0.5
Controller Type | string |  |  |  |  | Probably the object type name of the controller in the NIF file that is child of the controlled object. | 10.1.0.106 | 10.1.0.106
Controller Type | string |  |  |  |  | Probably the object type name of the controller in the NIF file that is child of the controlled object. | 20.1.0.3 |
Controller Type Offset | StringOffset |  |  |  |  | Apparently the offset in the string palette of some type of controller related to Interpolator (for example, a 'NiTransformInterpolator' will have here a 'NiTransformController', etc.). Sometimes the type of controller that links to the interpolator. Probably it refers to the controller in the NIF file that is child of the controlled object, via its type name. | 10.2.0.0 | 20.0.0.5
Variable 1 | string |  |  |  |  | Some variable string (such as 'SELF_ILLUM', '0-0-TT_TRANSLATE_U', 'tongue_out', etc.). | 10.1.0.106 | 10.1.0.106
Variable 1 | string |  |  |  |  | Some variable string (such as 'SELF_ILLUM', '0-0-TT_TRANSLATE_U', 'tongue_out', etc.). | 20.1.0.3 |
Variable 1 Offset | StringOffset |  |  |  |  | Offset in the string palette where some variable string starts (such as 'SELF_ILLUM', '0-0-TT_TRANSLATE_U', 'tongue_out', etc.). Usually, -1. | 10.2.0.0 | 20.0.0.5
Variable 2 | string |  |  |  |  | Another variable string, apparently used for particle system controllers. | 10.1.0.106 | 10.1.0.106
Variable 2 | string |  |  |  |  | Another variable string, apparently used for particle system controllers. | 20.1.0.3 |
Variable 2 Offset | StringOffset |  |  |  |  | Offset in the string palette where some variable string starts (so far only 'EmitterActive' and 'BirthRate' have been observed in official files, used for particle system controllers). Usually, -1. | 10.2.0.0 | 20.0.0.5

### Found In

- NiSequence