There are a number of VFX lines which are referenced by the engine. This might be useful to know for two reasons:

  • If you wanted to replicated what it does in some instances, especially in cutscenes or controlled instances, or in spells, then you can use these to replicate the engine to be consistent.
  • In addition if you change those lines you can upgrade or change the visuals to suit your module. For instance combat blood animations, or the animations used for "Stun" applied from the On Hit item effect, or even the invisibility effect.

Most are applied exactly the same as EffectVisualEffect() will apply them however they usually cannot be sought by GetFirstEffect/GetNextEffect. In most cases they're instant effects in any case.

There are also VFX lines referenced in damagehitvisual.2da when a melee attack of a particular kind hits a target.

Hardcoded MDL references

Some parts of the engine hardcode VFX instead of loading a specific visualeffects.2da line, in this case the monk hit visuals. See also the VFX Effect Caching which essentially hardcodes the "chunk" combat models (things blowing up into messy bones and the like).

Hardcoded Effect MDLHardcoded Use
vcm_monkquiv.mdlMonk Quivering Palm attack
vcm_monkstun.mdlMonk Stunning Fist attack
vcm_monkki.mdlMonk Ki Attack

Hardcoded VFX Lines

visualeffects.2da LabelLine IDPictureDuration TypeUsage and Description
VFX_DUR_BLACKOUT5

Temporary/Permanent

EffectBlind will apply this as a custom VFX - ie if you are blinded. It references progfx.2da line 333 as well so can be altered there too.

Left pictures:

  • Effect applied, and lights from candles in the level still show up
  • Effect applied, and moused over self, self-highlight works
  • Effect applied, torch equipped and torch shows up but no light visuals from it
  • Effect applied, tab held and hightlights all visibile objects. You won't truly be "blind" although clicking around the level can be a lot harder!
VFX_DUR_INVISIBILITY6

Temporary/Permanent

Hearing, but not seeing, an object will apply this as a special VFX regardless of spell VFX.

For instance a creature around a corner but within hearing range, or those who you successfully hear stealthing but don't see. Again it references a progfx.2da line 400 so can be altered there.

VFX_DUR_MIND_AFFECTING_NEGATIVE7
Temporary/PermanentApplied when On Hit: Sleep is applied to a target.
VFX_FNF_SUMMON_GATE32

InstantUsed for dm_cowsfromhell as the "gate" the cows come from
VFX_FNF_SUMMON_MONSTER_335

InstantUsed when EffectSwarm summons a new creature after the old one is dead, so you could alter the line, remove all references to the VFX in other scripts and get a unique effect for the swarm effect.
VFX_FNF_SUMMON_UNDEAD36

Instant

Apparently Animal Companions and Familiars are undead, because this VFX line is used to summon them, referenced as VISUAL_EFFECT_SUMMON_ASSOCIATE.

You could alter this line then find all references to it in spells and change them to have a unique summon effect for familiars. Alternatively you blank the line out and apply your own VFX when the associate is summoned.

VFX_IMP_BLIND_DEAF_M46
InstantApplied to the target of On Hit: Blind and On Hit: Deaf
VFX_IMP_DEATH50
Instant

Applied to the target of:

  • On Hit: Slay Alignment
  • On Hit: Slay Alignment Group
  • On Hit: Slay Racial Group

Funnily enough it is not applied for On Hit: Vorpal.

VFX_IMP_DISEASE_S51
Instant

Used when Disease is initially applied to the given person.

Alas the payload does VFX_IMP_POISON_S instead (line 84) for some reason, possibly because most diseases turn into ability damage at that point? (or more likely a bug).

VFX_IMP_DOOM57
InstantApplied to the target of On Hit: Doom
VFX_IMP_FLAME_S61

InstantUsed for dm_cowsfromhell as the "flame" the targets are affected by the cows.
VFX_IMP_HEALING_S69

InstantThe SKILL_HEAL will apply this VFX when the heal check heals damage (which should be basically always)
VFX_IMP_POISON_S84
Instant

Used when a Poison payload is applied (either on the initial application or the later one).

Disease payload also uses this, but the initial application is the correct one (51)

VFX_IMP_POLYMORPH85

Instant

When a EffectPolymorph effect is removed (by cancelling, dispel magic, RemoveEffect, death etc.) this VFX will play.

You could use a new VFX line for starting polymorph, and alter this one to be just the "unpolmorph" line.

VFX_IMP_REDUCE_ABILITY_SCORE91
InstantOn Hit: Ability Drain and On Hit: Level Drain apply these instantly to the target.
VFX_IMP_SILENCE93
InstantOn Hit: Silence applies this (the duration visual is just the negative cessate one).
VFX_IMP_SLEEP94
InstantOn Hit: Sleep applies this (the duration visual is just the negative cessate one).
VFX_IMP_SLOW95
InstantOn Hit: Slow applies this (the duration visual is just the negative cessate one).
VFX_IMP_UNSUMMON99

Instant

Visual effect when a summon is asked to unsummon itself. Can be an animal companion, familiar, or EffectSummonCreature - see Lexicon for more information.

If set to not destroyable (so the summon doesn't disappear) it will still play this VFX regardless. Referenced internally as VISUAL_EFFECT_UNSUMMON_ASSOCIATE.

VFX_COM_BLOOD_REG_RED109

InstantOn Hit: Wounding effect applies this if the affected targets blood type (according to appearance.2da) is Red ("R")
VFX_COM_BLOOD_REG_GREEN110

InstantOn Hit: Wounding effect applies this if the affected targets blood type (according to appearance.2da) is Green ("G")
VFX_COM_BLOOD_REG_YELLOW111

InstantOn Hit: Wounding effect applies this if the affected targets blood type (according to appearance.2da) is Yellow ("Y")
VFX_COM_BLOOD_CRT_RED115

InstantWhen damage is applied (via. EffectDamage/attacks, EffectHitPointChangeWhenDying or removal of EffectTemporaryHitpoints) and the target properly dies from it, and the affected targets blood type (according to appearance.2da) is Red ("R") this is applied to them
VFX_COM_BLOOD_CRT_GREEN116

InstantWhen damage is applied (via. EffectDamage/attacks, EffectHitPointChangeWhenDying or removal of EffectTemporaryHitpoints) and the target properly dies from it, and the affected targets blood type (according to appearance.2da) is Green ("G") this is applied to them
VFX_COM_BLOOD_CRT_YELLOW117

InstantWhen damage is applied (via. EffectDamage/attacks, EffectHitPointChangeWhenDying or removal of EffectTemporaryHitpoints) and the target properly dies from it, and the affected targets blood type (according to appearance.2da) is Yellow ("Y") this is applied to them
VFX_COM_GIB119

Can't seem to trigger this VFX using ApplyEffectToObject.

Instead use the individual ones below perhaps.

InstantWhen a EffectDeath occurs (which is triggered by damage etc., the engine creates it's own EffectDeath if necessary) and it is bSpectacular - this will play and the object is removed. Explody gibs. References line 800 in progfx.2da as well with no parameters so you can't really alter this...or can you? The VFX_COM_CHUNK_ lines below seem to be used.
VFX_COM_CHUNK_RED_SMALL121

Instant

Appears to be what occurs when VFX_COM_GIB ie; Progfx type 9 (progfx.2da line 800) is used on a Small or smaller creatures with Red ("R") blood type

Note: Seems to be applied to the head node when ApplyEffectToObject is used.

VFX_COM_CHUNK_RED_MEDIUM122

Instant

Appears to be what occurs when VFX_COM_GIB ie; Progfx type 9 (progfx.2da line 800) is used on a Medium or larger creatures with Red ("R") blood type

Also dm_cowsfromhell - Cows from Hell impact on target "blood" effect

VFX_COM_CHUNK_GREEN_SMALL123

InstantAppears to be what occurs when VFX_COM_GIB ie; Progfx type 9 (progfx.2da line 800) is used on a Small or smaller creatures with Green ("G") blood type
VFX_COM_CHUNK_GREEN_MEDIUM124

InstantAppears to be what occurs when VFX_COM_GIB ie; Progfx type 9 (progfx.2da line 800) is used on a Medium or larger creatures with Green ("G") blood type
VFX_COM_CHUNK_YELLOW_SMALL125

InstantAppears to be what occurs when VFX_COM_GIB ie; Progfx type 9 (progfx.2da line 800) is used on a Small or smaller creatures with Yellow ("Y") blood type
VFX_COM_CHUNK_YELLOW_MEDIUM126

InstantAppears to be what occurs when VFX_COM_GIB ie; Progfx type 9 (progfx.2da line 800) is used on a Medium or larger creatures with Yellow ("Y") blood type
VFX_DUR_LIGHT_BLUE_5153
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_BLUE_10154
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_BLUE_15155
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_BLUE_20156
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_YELLOW_5157
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_YELLOW_10158
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_YELLOW_15159
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_YELLOW_20160
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_PURPLE_5161
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_PURPLE_10162
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_PURPLE_15163
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_PURPLE_20164
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_RED_5165
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_RED_10166
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_RED_15167
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_RED_20168
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_ORANGE_5169
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_ORANGE_10170
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_ORANGE_15171
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_ORANGE_20172
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_WHITE_5173
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_WHITE_10174
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_WHITE_15175
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_WHITE_20176
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_GREEN_5177
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_GREEN_10178
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_GREEN_15179
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_LIGHT_GREEN_20180
Temporary/PermanentHardcoded VFX line for ITEM_PROPERTY_LIGHT. iprp_color.2da has the colours listed, and iprp_lightcost has the intensity - "Dim (5M)", "Low (10M)", "Normal (15M)", "Bright (20M"), relating to these lines. Each links to the progfx.2da lines for lighting effects.
VFX_DUR_DARKVISION182

Temporary/PermanentFEAT_DARKVISION or the darkvision item property applies this light. Is linked to a progfx.2da line.
VFX_DUR_CESSATE_NEGATIVE207
Temporary/Permanent

Internally this is linked to various effects for On Hit properties. These should be:

  • On Hit: Blind
  • On Hit: Confusion
  • On Hit: Daze
  • On Hit: Deafness
  • On Hit: Dominate
  • On Hit: Doom
  • On Hit: Fear
  • On Hit: Hold (Paralyze)
  • On Hit: Death Attack
  • On Hit: Silence
  • On Hit: Sleep
  • On Hit: Slow
  • On Hit: Stun
VFX_DUR_MIND_AFFECTING_DISABLED208

Temporary/Permanent

EffectStunned, and any other source of stun (Stunning Fist, On Hit: Stun etc.) apply this visual effect while the stun is in place. It is odd, since no other mind effect seems to do this, eg; Daze.

On Hit: Confusion also applies this.

VFX_DUR_MIND_AFFECTING_DOMINATED209
Temporary/Permanent

On Hit: Daze and On Hit: Dominated applies this (along with VFX_DUR_CESSATE_NEGATIVE)

Yes it appears Daze should use the DISABLED one not the DOMINATED, a bug.

VFX_DUR_MIND_AFFECTING_FEAR218
Temporary/PermanentOn Hit: Fear applies this.
VFX_DUR_PARALYZED232
Temporary/PermanentOn Hit: Stun and the Death Attack on hit effect applies this linked to the paralysis (hold) effect.
VFX_COM_CHUNK_BONE_MEDIUM236

InstantAppears to be what occurs when VFX_COM_GIB ie; Progfx type 9 (progfx.2da line 800) is used on a creature with White ("W") blood type
VFX_COM_BLOOD_SPARK_MEDIUM238

InstantOn Hit: Wounding effect applies this if the affected targets blood type (according to appearance.2da) is White ("W")
VFX_COM_BLOOD_SPARK_LARGE239

InstantWhen damage is applied (via. EffectDamage/attacks, EffectHitPointChangeWhenDying or removal of EffectTemporaryHitpoints) and the target properly dies from it, and the affected targets blood type (according to appearance.2da) is White ("W") this is applied to them
VFX_DUR_BLINDVISION242

Temporary/Permanent

"Blind vision" - but not sure this actually is applied (it is detected as a vision type but it doesn't seem the vision type is used?)

It appears to be used in absence of any other type of "vision" eg; a normal human without Darkvision. The progfx.2da line it references is 329. It lights up areas in the default game so humans can still see stuff.

VFX_DUR_LOWLIGHTVISION243

Temporary/PermanentFEAT_LOW_LIGHT_VISION - Low Light Vision feat visual
VFX_DUR_ULTRAVISION244

Temporary/PermanentEffectUltravision applies this VFX automatically
VFX_DUR_BLIND247

Temporary/PermanentEffectBlind is applied (and you are deemed blind), then this is applied automatically
VFX_IMP_REFLEX_SAVE_THROW_USE256

Instant

GetReflexAdjustedDamage will automaically play vis VFX if the creature passed their reflex save. This function can be re-done in nwscript pretty much if you wanted to replace it.

Note ReflexSave etc. do not apply VFX, this one does because the resulting number you don't know if it was because of a feat, or because of a save.

VFX_FNF_SPELL_FAIL_HEAD292

InstantVisual effect applied when you're conjuring a spell and are interrupted (eg; damage meaning a failed concentration check). This one is used if ConjAnim is set to "head" in spells.2da. Has progfx.2da reference 1200.
VFX_FNF_SPELL_FAIL_HAND293

InstantVisual effect applied when you're conjuring a spell and are interrupted (eg; damage meaning a failed concentration check). This one is used if ConjAnim is set to "hand" in spells.2da. Has progfx.2da reference 1201.

VFX_FNF_HIGHLIGHT_FLASH_WHITE

294

InstantVisual effect applied when the speaker changes in dialog, eg: 2 different NPCs saying things like the start of SoU. Seems to be a VFX that is applied for around 1 second or so. Relates to progfx.2da value 205.
VFX_DUR_GHOSTLY_PULSE_QUICK295

Temporary/PermanentApplied when you are in stealth mode, regardless of if someone else can see you. Useful to use in a cutscene to show someone sneaky (without them actually disappearing!). Relatest to progfx.2da value 404.
VFX_DUR_PETRIFY351

Temporary/PermanentEffectPetrify applies this VFX while it is in effect, unlike other "skin" effects which are applied in the effect scripts. This might have been to assist any potential On Hit: Petrify but that doesn't exist.
VFX_DUR_FREEZE_ANIMATIONS352

Temporary/Permanent

EffectPetrify applies this VFX while it is in effect, unlike other "skin" effects which are applied in the effect scripts. This might have been to assist any potential On Hit: Petrify but that doesn't exist.

Freezing animations doesn't stop movement - thus you can slide after using an emote and freezing half way in that animation state.

VFX_COM_CHUNK_STONE_SMALL353

InstantAppears to be what occurs when VFX_COM_GIB ie; Progfx type 9 (progfx.2da line 800) is used on a Small or smaller creatures when petrified
VFX_COM_CHUNK_STONE_MEDIUM354

InstantAppears to be what occurs when VFX_COM_GIB ie; Progfx type 9 (progfx.2da line 800) is used on a Medium or larger creatures when petrified





****999

Special?

dm_cowsfromhell - Cows from Hell main visual effect - game engine refers to the reference as VISUAL_EFFECT_COW. It's recommended not to reuse this line even though it is blank since apparently the engine self-codes the relevant 2da entries for it.

It is a bit buggy if used in EffectVisualEffect, probably requires a target than using it on self (similar to how magic missile VFXs need a target).