Vfx persistent.2da
From NWN1 Custom Content Guide
Safe index line: 50
This means your first line should be number 50 (starting from 0). Remember the indexes must be consecutive. If line 43 has 50 written in its first column it will still be considered line 43 by the engine. If necessary use blank lines (****) to pad the 2da up to the first safe line.
| Column title | Description | Values / more description |
| <VFXID> | Index number | For the purposes of the game, the engine ignores the actual value here and only counts the number of rows from the start. Get2DAString(): This value _does_ matter when using the Get2DAString() function in order to read data. As usual, it's just good practice to index your 2DAs correctly. |
| LABEL | For those humans. Note: This value is returned if GetTag() is performed on the created AOE object. | i.e. VFX_PER_FOGACID VFX_PER_FOGFIRE ... |
| SHAPE | The shape your persistent VFX takes. Values are C (Circle), R (Rectangle). | This tells the game what shape your VFX is when calculating who is in it. Circles are round, of course. Retangles are used for wall type spells. |
| RADIUS | How large your circle is in meters. Average is about 4-7 | Keep this entry blank if your entry is a rectangle (Type R). Only used by Circles. |
| WIDTH | How wide your rectangle is in meters. Average is 10. | Keep this entry blank if your entry is a circle (Type C). Only used by Walls/Rectangles. Note that a retangle is created with the width parallel to a creator object (eg: a caster). Make this higher then the LENGTH to have the wall cover an area right to left of a casting point. |
| LENGTH | How long your rectangle is in meters. Average is about 2. | Keep this entry blank if your entry is a circle (Type C). Only used by Walls/Rectangles. Note that this is the opposite of the WIDTH, and if this is made longer then the width, then the rectangle will face away from the creating object (ie: the caster). |
| ONENTER | The script that fires when a creature enters your vfx_persistent area. | The script name isn't case sensitive, but is limited to 16 characters long. |
| ONEXIT | The script that fires when a creature leaves your vfx_persistent area. | The script name isn't case sensitive, but is limited to 16 characters long. This does not always need a value, however, it is where you clean the creature of all effects, if they have any applied. This will fire if the persistant AOE is dispelled or destroyed, and has objects in it still. |
| ONHEARTBEAT | The script that fires on the heartbeat of your vfx_persistent area. | The script name isn't case sensitive, but is limited to 16 characters long. Does not require a value, but if you want something to happen every round in the area, this is where it must go. |
| ORIENTWITHGROUND | 1 is yes, 0 is no | Only ever seen this as 0. This value likely has no impact on the game. |
| DURATIONVFX | Row # in visualeffects.2da. | What visual effect to use. Note that the models can also be VFX for the effect. |
| MODEL01, MODEL02, MODEL03 | Example entry: vps_fogacid (row 0 in vfx_persistent) | What model to use. MODEL01 - 03 are used for randomly placed effects (such as a single fog cloud) using other similarly named columns for the duration and amounts. |
| NUMACT01, NUMACT02, NUMACT03 | Should be the number of related models to use during the durations. | For example, a massive Storm of Vengance uses 15 for each of its vps_storm model values. Evards tentacles, a smaller AOE and larger VFX, uses 3 for each. |
| DURATION01, DURATION02, DURATION03 | Durations of each model, in milliseconds. | Values should be different to give randomisation to the vfx patterns. Wall of fire, for instance, uses low values of 300-530, while gas clouds are 1100-3400 |
| EDGEWGHT01, EDGEWGHT02, EDGEWGHT03 | Unsure. | Values range from 0 to 1.25 for different VFX's. Possibly to do with distance from the edge of the VFX (in %)? |
| SoundImpact | Name of the sound of the AOE impacting. | When darkness is created, for example, sps_darkness is played at the target location. Many of the gases have sounds created by additional visual effects (gas clouds exploding etc.). |
| SoundDuration | Name of the sound of the AOE over time | This is the sound created by the AOE as it is in effect. Gas clouds make gas sounds, storms make storm sounds, etc. |
| SoundCessation | Name of the sound played when the AOE is removed | Not currently used by any persistant AOE. Played when removed from play (possibly doesn't work however). |
| SoundOneShot | Random one shot sound name to be played. | Sound which is played a random amount of times during the duration, based on SoundOneShotPercentage. This is usually used for gas clouds to make the persisant sound more random, for instance. |
| MODELMIN01, MODELMIN02, MODELMIN03 | Low visual effect models for the AOE. | When low visual effects are selected, if this column is valid, these VFX models are used instead of the MODEL01-03. |
I cannot really tell you what the rest of the columns in vfx_persistent.2da do. Suffice to say, when editing I copy the one closest to what I want and modify the scripts and size for it.
