This is used to define the models fired from Bows, Crossbows and Slings, and for thrown weapons Shurikens, Throwing Axes and Darts.
Hardcoded Notes
The games ammo types are hardcoded - ie the AmmunitionType column in this 2da.
The other rows can be reordered or changed as needed - the main thing is that there should be always a matching pair of AmmunitionType and DamageRangedProjectile combination.
The 2da is read top to bottom so in the case of duplicates where AmmunitionType and DamageRangedProjectile match on more than one line the first is taken.
Adding New Damage Projectiles
See Creating Custom Damage Types for notes on this.
The gist is make 6 new rows and have a new DamageRangedProjectile entry, which links to the same column in damagetypes.2da
Do not use values 6 or 7 which are reserved for spell projectiles.
Note on client versions earlier than 1.88.8193.36 it will default back to the non-elemental lines (0 through 5) when a new row is specified, since the 2da can't be used. They also make assumptions that rows 0 through 35 are as-is in regards to the type of projectile and damage type (eg row 23 is always an electric throwing axe).
2da Columns
| Column Name | Example | Valid Values | Description |
|---|---|---|---|
| Label | acidarrow | Text | Human readable label. Not used by the engine. |
| Model | WAmAr_fxacid | ResRef of MDL | MDL to fire from the shooter to the enemy |
| ShotSound | cb_sh_prjtlacid | ResRef of sound | Sound to play from the shooters position |
| ImpactSound | scm_hitacid | ResRef of sound | Sound to play when the projectile hits the enemy |
| AmmunitionType | 1 | baseitems.2da AmmunitionType column ID | IE: Arrows are 1, Bolts are 2. etc. This is hardcoded. |
| DamageRangedProjectile | 1 | damagetypes.2da DamageRangedProjectile column reference | These map and so you can have new ones. Note: use values 8 and up for custom damage types to get them recognised. 6 and 7 are special cases used for spell projectiles. |
2da Contents
da2DA V2.0
label Model ShotSound ImpactSound AmmunitionType DamageRangedProjectile
0 arrow wamar_001 **** cb_ht_arrow1 1 0
1 bolt wambo_001 **** cb_ht_arrow1 2 0
2 bullet wambu_001 **** cb_ht_bullet1 3 0
3 dart wthdt_001 **** cb_ht_dart1 4 0
4 shuriken wthsh_001 **** cb_ht_dart1 5 0
5 throwingaxe wthax_001 **** cb_ht_throwaxe1 6 0
6 acidarrow WAmAr_fxacid cb_sh_prjtlacid scm_hitacid 1 1
7 acidbolt WAmBo_fxacid cb_sh_prjtlacid scm_hitacid 2 1
8 acidbullet WAmBu_fxacid cb_sh_prjtlacid scm_hitacid 3 1
9 aciddart WThDt_fxacid cb_sh_prjtlacid scm_hitacid 4 1
10 acidshuriken WThSh_fxacid cb_sh_prjtlacid scm_hitacid 5 1
11 acidthrowingaxe WThAx_fxacid cb_sh_prjtlacid scm_hitacid 6 1
12 coldarrow WAmAr_fxfrost cb_sh_prjtlcold scm_hitcold 1 2
13 coldbolt WAmBo_fxfrost cb_sh_prjtlcold scm_hitcold 2 2
14 coldbullet WAmBu_fxfrost cb_sh_prjtlcold scm_hitcold 3 2
15 colddart WThDt_fxfrost cb_sh_prjtlcold scm_hitcold 4 2
16 coldshuriken WThSh_fxfrost cb_sh_prjtlcold scm_hitcold 5 2
17 coldthrowingaxe WThAx_fxfrost cb_sh_prjtlcold scm_hitcold 6 2
18 elecarrow WAmAr_fxelect cb_sh_prjtlelec scm_elec 1 3
19 elecbolt WAmBo_fxelect cb_sh_prjtlelec scm_elec 2 3
20 elecbullet WAmBu_fxelect cb_sh_prjtlelec scm_elec 3 3
21 elecdart WThDt_fxelect cb_sh_prjtlelec scm_elec 4 3
22 elecshuriken WThSh_fxelect cb_sh_prjtlelec scm_elec 5 3
23 electhrowingaxe WThAx_fxelect cb_sh_prjtlelec scm_elec 6 3
24 firearrow WAmAr_fxfire cb_sh_prjtlfire scm_fire 1 4
25 firebolt WAmBo_fxfire cb_sh_prjtlfire scm_fire 2 4
26 firebullet WAmBu_fxfire cb_sh_prjtlfire scm_fire 3 4
27 firedart WThDt_fxfire cb_sh_prjtlfire scm_fire 4 4
28 fireshuriken WThSh_fxfire cb_sh_prjtlfire scm_fire 5 4
29 firethrowingaxe WThAx_fxfire cb_sh_prjtlfire scm_fire 6 4
30 sonicarrow WAmAr_fxsonic cb_sh_prjtlsonc scm_sonc 1 5
31 sonicbolt WAmBo_fxsonic cb_sh_prjtlsonc scm_sonc 2 5
32 sonicbullet WAmBu_fxsonic cb_sh_prjtlsonc scm_sonc 3 5
33 sonicdart WThDt_fxsonic cb_sh_prjtlsonc scm_sonc 4 5
34 sonicshuriken WThSh_fxsonic cb_sh_prjtlsonc scm_sonc 5 5
35 sonicthrowingaxe WThAx_fxsonic cb_sh_prjtlsonc scm_sonc 6 5