Visual Effects are controlled by visualeffects.2da. While you have separate models and sounds, these are combined here. They are called from EffectVisualEffect and EffectBeam script functions.
Additionally see progfx.2da for new, unhardcoded things like MIRVs and others, introduced in later NWN:EE patches. These are linked directly from the ProgFX_ columns below.
Note there are several lines in visualeffects.2da which are called by the engine directly - for instance, combat hits, bleeding, gibbing etc. See Hardcoded VFX References for this list.
2DA Contents
Note that there are assumptions made for the use of effects:
- Items pointing to nodes generally need an object (creature or placeable) to apply an effect to a given part of the body
- Many VFX can be applied at a location or an object (but the objects location is used)
- Most of the config of a VFX is in the model file, which this file has little control over (except orientation and the node it is applied to)
Column Name | Example | Valid Values | Description and Notes |
---|---|---|---|
Label | VFX_DUR_BLUR | Any text | Human readable name, but commonly also the constant name in nwscript.nss |
Type_FD | F | F - "Fire and Forget" and "Impact" D - "Duration" P - "Projectile" - MIRVs B - Beam | As valid values suggests this probably ties in some assumptions the effects engine makes loading this line. Some potential ways it does this: F and P will be always be DURATION_TYPE_INSTANT. D and B will be usually not instant, but temporary or permanent (although missing beams may be forced temporary?). B and P have some kind of projectile nature B is valid in EffectBeam Copy an existing valid line for best results. |
OrientWithGround | 0 | 0, 1 | Whether or not the VFX will be orientated to the ground (eg; slopes etc.). Rarely used by actual VFXs. |
Imp_HeadCon_Node | VFX Model resref | Imp_ entries are fired at the start of when the effect is applied. However see notes under Ces_HeadCon_Node for why cessation columns may not work and fact this can be a single impact one off or a continual duration, which is just driven by the effect model itself. Visual effect applied on impact to the Head node of the target object (just at the top of the head on most models). | |
Imp_Impact_Node | VFX Model resref | Visual effect applied on the Impact node of the target object (near the center of the body in front) | |
Imp_Root_S_Node | VFX Model resref | Visual effect applied if the creature is Tiny or Small, and goes to the rootdummy node. (Note Bioware doesn't use this ever, does it even work?) | |
Imp_Root_M_Node | VFX Model resref | Visual effect applied if the creature is Medium, and goes to the rootdummy node. | |
Imp_Root_L_Node | VFX Model resref | Visual effect applied if the creature is Large, and goes to the rootdummy node. | |
Imp_Root_H_Node | VFX Model resref | Visual effect applied if the creature is Huge, and goes to the rootdummy node. | |
ProgFX_Impact | 800 | progfx.2da Integer 2da line number | In the latest NWN:EE patches this links to a line in progfx.2da. In older versions it uses game-hardcoded additions to the VFX. This is the progfx.2da line used when the impact occurs. |
SoundImpact | Sound resref | The sound file to be played once on the impact of the VFX. | |
ProgFX_Duration | 304 | progfx.2da Integer 2da line number | In the latest NWN:EE patches this links to a line in progfx.2da. In older versions it uses game-hardcoded additions to the VFX. This is the progfx.2da line used when the duration is in effect. |
SoundDuration | Sound resref | The sound file to be played continually while the VFX is ongoing | |
ProgFX_Cessation | 354 | progfx.2da Integer 2da line number | In the latest NWN:EE patches this links to a line in progfx.2da. In older versions it uses game-hardcoded additions to the VFX. This is the progfx.2da line used when the duration is ending. |
SoundCessastion | Sound resref | The sound file to be played once, when the effect has ended. It seems this is unused by the game along with the other Ces_ entries below. Bioware never uses it in any line instead using ProgFX_Cessation or simply "cessation" named animations in the vfx MDL file. Not sure if a sound can ever be played at the ending of an effect. | |
Ces_HeadCon_Node | VFX Model resref | Cessation should be the same as impact but Bioware never uses it, and the 3 cessation effects (lines 205, 206 and 207) instead use an Imp_HeadCon_Node effect, which has vce_neutral/vce_positive/vce_negative. These in fact contain "cessation" named animations. Very odd. Needs further investigation. (Likely doesn't work). This should fire when the effect cessates (ends) on the Head node. | |
Ces_Impact_Node | VFX Model resref | (Likely doesn't work). This should fire when the effect cessates (ends) on the Impact node. | |
Ces_Root_S_Node | VFX Model resref | (Likely doesn't work). This should fire when the effect cessates (ends) on the rootdummy node for Small targets (note as the other one this may double-not-work). | |
Ces_Root_M_Node | VFX Model resref | (Likely doesn't work). This should fire when the effect cessates (ends) on the rootdummy node for Medium targets | |
Ces_Root_L_Node | VFX Model resref | (Likely doesn't work). This should fire when the effect cessates (ends) on the rootdummy node for Large targets | |
Ces_Root_H_Node | VFX Model resref | (Likely doesn't work). This should fire when the effect cessates (ends) on the rootdummy node for Huge targets | |
ShakeType | 1, 2 | blank or 1, 2 | 1 = Quick one off bump 2 = A duration of larger bumps |
ShakeDelay | 0. 0.1, 0.3, 0.5, 0.7 2.5 | Float, amount of seconds | The delay for the bump in ShakeType to take place. Amount of seconds. |
ShakeDuration | 0.3, 3, 0.1, 2, 3.4, 4 | Float, amount of seconds | The duration of the shake if ShakeType is 2. One is 4 seconds in the original VFX, so can probably go pretty high. |
LowViolence | VFX Model resref | A VFX file that overrides all the Imp_ options if the game is set to low violence (no blood etc.) | |
LowQuality | VFX Model resref | A VFX file that overrides all the Imp_ options if the game is set to low graphics (less detailed models needed) | |
OrientWithObject | 0 | 1, 0 | Added in 1.64. "OrientWithObject" - will cause the visual effect to take on the orientation of the object that it is attached to. This was previously hard coded for the colored back flags that were used in Contest of Champions, but this functionality is now available for custom created visual effects as well by setting the value in this column to '1'. Eyes and flags tend to use this. |