# NIF File Format Documentation

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

## NiParticleSystemController

A generic particle system time controller object.

### Attributes

Name | Type | Arg | Arr1 | Arr2 | Cond | Description | From | To
--- | --- | --- | --- | --- | --- | --- | --- | ---
From NiObject
From NiTimeController
Next Controller | Ref<NiTimeController> |  |  |  |  | Index of the next controller. |  |
Flags | Flags |  |  |  |  | Controller flags (usually 0x000C). Probably controls loops. Bit 0 : Anim type, 0=APP_TIME 1=APP_INIT Bit 1-2 : Cycle type 00=Loop 01=Reverse 10=Loop Bit 3 : Active Bit 4 : Play backwards |  |
Frequency | float |  |  |  |  | Frequency (is usually 1.0). |  |
Phase | float |  |  |  |  | Phase (usually 0.0). |  |
Start Time | float |  |  |  |  | Controller start time. |  |
Stop Time | float |  |  |  |  | Controller stop time. |  |
Target | Ptr<NiObjectNET> |  |  |  |  | Controller target (object index of the first controllable ancestor of this object). | 3.3.0.13 |
Unknown Integer | uint |  |  |  |  | Unknown integer. |  | 3.1
From NiParticleSystemController
Old Speed | uint |  |  |  |  | Particle speed in old files |  | 3.1
Speed | float |  |  |  |  | Particle speed | 3.3.0.13 |
Speed Random | float |  |  |  |  | Particle random speed modifier |  |
Vertical Direction | float |  |  |  |  | vertical emit direction [radians] 0.0 : up 1.6 : horizontal 3.1416 : down |  |
Vertical Angle | float |  |  |  |  | emitter's vertical opening angle [radians] |  |
Horizontal Direction | float |  |  |  |  | horizontal emit direction |  |
Horizontal Angle | float |  |  |  |  | emitter's horizontal opening angle |  |
Unknown Normal? | Vector3 |  |  |  |  | Unknown. |  |
Unknown Color? | Color4 |  |  |  |  | Unknown. |  |
Size | float |  |  |  |  | Particle size |  |
Emit Start Time | float |  |  |  |  | Particle emit start time |  |
Emit Stop Time | float |  |  |  |  | Particle emit stop time |  |
Unknown Byte | byte |  |  |  |  | Unknown byte, (=0) | 4.0.0.2 |
Old Emit Rate | uint |  |  |  |  | Particle emission rate in old files |  | 3.1
Emit Rate | float |  |  |  |  | Particle emission rate (particles per second) | 3.3.0.13 |
Lifetime | float |  |  |  |  | Particle lifetime |  |
Lifetime Random | float |  |  |  |  | Particle lifetime random modifier |  |
Emit Flags | ushort |  |  |  |  | Bit 0: Emit Rate toggle bit (0 = auto adjust, 1 = use Emit Rate value) | 4.0.0.2 |
Start Random | Vector3 |  |  |  |  | Particle random start translation vector |  |
Emitter | Ptr<NiObject> |  |  |  |  | This index targets the particle emitter object (TODO: find out what type of object this refers to). |  |
Unknown Short 2? | ushort |  |  |  |  | ? short=0 ? | 4.0.0.2 |
Unknown Float 13? | float |  |  |  |  | ? float=1.0 ? | 4.0.0.2 |
Unknown Int 1? | uint |  |  |  |  | ? int=1 ? | 4.0.0.2 |
Unknown Int 2? | uint |  |  |  |  | ? int=0 ? | 4.0.0.2 |
Unknown Short 3? | ushort |  |  |  |  | ? short=0 ? | 4.0.0.2 |
Particle Velocity | Vector3 |  |  |  |  | Particle velocity |  | 3.1
Particle Unknown Vector | Vector3 |  |  |  |  | Unknown |  | 3.1
Particle Lifetime | float |  |  |  |  | The particle's age. |  | 3.1
Particle Link | Ref<NiObject> |  |  |  |  | Unknown. |  | 3.1
Particle Timestamp | uint |  |  |  |  | Timestamp of the last update. |  | 3.1
Particle Unknown Short | ushort |  |  |  |  | Unknown short |  | 3.1
Particle Vertex Id | ushort |  |  |  |  | Particle/vertex index matches array index |  | 3.1
Num Particles | ushort |  |  |  |  | Size of the following array. (Maximum number of simultaneous active particles) | 4.0.0.2 |
Num Valid | ushort |  |  |  |  | Number of valid entries in the following array. (Number of active particles at the time the system was saved) | 4.0.0.2 |
Particles | Particle |  | Num Particles |  |  | Individual particle modifiers? | 4.0.0.2 |
Unknown Link | Ref<NiObject> |  |  |  |  | unknown int (=0xffffffff) | 4.0.0.2 |
Particle Extra | Ref<NiParticleModifier> |  |  |  |  | Link to some optional particle modifiers (NiGravity, NiParticleGrowFade, NiParticleBomb, ...) |  |
Unknown Link 2 | Ref<NiObject> |  |  |  |  | Unknown int (=0xffffffff) |  |
Trailer | byte |  |  |  |  | Trailing null byte | 4.0.0.2 |
Color Data | Ref<NiColorData> |  |  |  |  | Unknown. |  | 3.1
Unknown Float 1 | float |  |  |  |  | Unknown. |  | 3.1
Unknown Floats 2 | float |  | Particle Unknown Short |  |  | Unknown. |  | 3.1

### Parent Of

- NiBSPArrayController