PRO file format

Applies to:
BG2, BG2: ToB, BGEE

General Description
This file format describes projectiles, and the files are referenced spells and projectile weapons. Projectile files can control:
  • Projectile graphics
  • Projectile speed
  • Projectile area of effect
  • Projectile sound
These files have constant length 256 bytes (no BAM), 512 bytes (single target), or 768 bytes (area of effect).


Offset Size (datatype) Description
0x00000 4 (char array) Signature ('PRO ')
0x00004 4 (char array) Version ('V1.0')
0x00008 2 (word) Projectile Type
  • 0 ⟶ No Projectile
    • Suppresses: All fields except Display String and Displayed String, which function as normal.
    • No Traveling Projectile, hits instantly (truly instant – function during Time Stop).
    • Dependency: Spell Target(Creature).
    • This projectile type is functionally identical to the hardcoded projectile: #0|PROJECTL.IDS / #1|MISSILE.IDS
      • This is projectile #1|None in Near Infinity, not #0|Default.
  • 1 ⟶ No BAM
  • 2 ⟶ Single Target
    • Activates: 0x100 – 0x1ff
  • 3 ⟶ Area of Effect
    • Activates: 0x200 – 0x2ff
0x0000a 2 (word) Projectile Speed (0x01 to 0xFF)
0x0000c 4 (dword) Sparking flags Further bits are unused.
0x00010 8 (resref) Fire Sound (WAVC file) (travelling)
  • Sound begins playing immediately.
0x00018 8 (resref) Impact Sound (WAVC file) (explosion/reach destination)
  • Sound begins playing when Traveling Projectile reaches target.
0x00020 8 (resref) Source Animation (VEF > VVC > BAM)
  • Animation travels to targeted location at +50% speed.
  • Animation plays only once, terminating when it ends.
  • Looping animations continue to play until they reach the target.
0x00028 2 (word) Particle Color (from SPRKCLR.2DA)
The following fields are used by Enhanced Editions games only:
0x0002a 2 (word) Projectile Width
  • w/ Pass Target: Proximity Radius (pixels) of Traveling Projectile.
    • Value is Horizontal Pixels, ¾ value is Vertical Pixels, 16 (12) = 1 foot.
    • Radius will be 2 more pixels than specified value.
  • w/ Comet: Relative horizontal offset of Traveling Projectile origin.
    • The exact formula is unknown as of now...
0x0002c 4 (dword) Extended flags
  • Bit 0 ⟶ Bounce from walls
    • When Projectile Type is Single Target:
      • Compatibility: only functions in combination with Pass Target
    • When Projectile Type is Area Effect:
      • Dependency: Spell Target(Creature)
        • Alters the Secondary Projectile to deliver effects (normally it does not).
        • Alters the Secondary Projectile to originate from the targeted creature, rather than the caster.
        • The Secondary Projectile still requires Secondary Projectile.
        • The Secondary Projectile will be oriented in a random direction.
        • Compatibility: with Cone-shaped, the Secondary Projectile will instead target the caster's location (but not the caster directly).
        • The Traveling Projectile of the Secondary Projectile will terminate after a number of ticks equal to Explosion Frequency.
          • It will need to impact (Single Target) or explode (Area Effect) before then.
          • Compatibility: projectiles using Limited Path Count travel for their normal distance/duration.
  • Bit 1 ⟶ Pass target
    • Projectile travels in straight line (is not homing), hitting all creatures within range of its current location every 2 ticks.
      • The projectile targets each creature only once unless Bounce from Walls is set at which point during the bounce, the targets are cleared and the projectile can target previously hit creatures once more (as expected).
    • Compatibility: Multiple Projectile functions as normal except that it will not arc this projectile.
    • Priority:
    • Suppresses:
    • Projectile Type must be either Single Target or Area Effect
    • Effect Radius: Projectile Width + 2 pixels (1:horizontal, ¾:vertical)
    • Duration: Projectile continues until reaching map edge.
    • Example: (Smashing Wave – IWDEE) ⟶ "SWAVE.PRO"
    • Option: Limited Path Count – Projectile terminates upon traveling originally targeted distance.
    • Option: Bounce from Walls – Projectile rebounds off solid walls, terminating upon the 4th wall impact.
      • Example: (Lightning Bolt) ⟶ "LIGHTB.PRO"
    • Option: Spell Target(Location)
      • Option: Hit Immediately – Projectile is stationary at targeted location.
      • Duration: Projectile remains active for 15 loops of its Projectile Animation.
      • Option: Pillar – Projectile displays all cycles of travel animation simultaneously, stacked vertically.
        • Duration: Projectile remains active for 1 cycle of its Projectile Animation.
    • Option: Spell Target(Creature)
      • Option: Hit Immediately – Projectile is stationary at targeted creature's location.
      • Effect Radius: None
      • Hits only the targeted creature, once.
      • Projectile continues to display for 15 loops of its Projectile Animation, but has no further effect.
  • Bit 2 ⟶ Draw center VVC once
  • Bit 3 ⟶ Hit immediately
    • Projectile Type must be either Single Target or Area Effect.
    • Travelling Projectile hits instantly, but is still displayed momentarily.
    • Area Effect Explosion will be slightly off center of the target('s/ed) location.
    • Compatibility: Suppressed by Lined up AoE
    • Suppresses: Lined up AoE
  • Bit 4 ⟶ Face target
    • Dependency: Activated by Draw Animation
    • Allows the Explosion Animation to be oriented in the direction of casting (the VVC and its BAM must be setup to do so as well).
      • This requires the Explosion Animation to include a VVC (VEF optional), not just a BAM.
      • Any mirroring must be specified in the VVC.
      • The VVC file's Travel Orientation must use Face Target.
  • Bit 5 ⟶ Curved path (Unknown – still "not implemented" on EE games)
  • Bit 6 ⟶ Start random frame
  • Bit 7 ⟶ Pillar
    • All cycles of Projectile Animation are displayed simultaneously, stacked vertically.
    • Compatibility: Comet ⟶ The Traveling Projectile does not use the vertical offset of the Comet trajectory.
      • Any Trailing animations of the Traveling Projectile will continue to use the Comet trajectory.
    • Projectile Type: Single Target
      • The traveling projectile will terminate after one cycle of the animation, which may occur before reaching its target/destination.
      • Hit Immediately is recommended to avoid this.
      • Suppresses: Lined up AoE, Palette.
    • Projectile Type: Area Effect
      • The animation will loop until the traveling projectile reaches its target/destination.
      • Palette is not suppressed.
  • Bit 8 ⟶ Semi-transparent trail puff VEF
  • Bit 9 ⟶ Tinted trail puff VEF
  • Bit 10 ⟶ Multiple projectiles
    • When this flag is set, the game looks at the projectile entry one number less. If that projectile also has it set, it looks at the projectile entry one number less again, until it finds a projectile without that flag set. All projectiles it finds are fired at the target.
      • Compatibility: Any of these projectiles using Limited Path Count may not impact if the arc and/or distance to the target is too large.
    • The speed of the last projectile it finds determines the overall speed of the projectile, while the speed of the specified projectile determines the "arc" (strength) of all of the projectiles.
      • Arc value should be between 0 and 90 for three projectiles. More projectiles should use progressively lower arc values.
      • Some projectiles may never impact if the arc is too big.
      • Negative values result in no arc.
    • Certain other flags in the projectile effectively disable the Multiple Projectile flag (such as being Area-Effect or a lined-up AoE (like Agannazar's Scorcher)), and those projectiles will be treated as if the flag wasn't set.
    • Compatibility: This feature is lost when the projectile is used as an Explosion Projectile or a Secondary Projectile.
  • Bit 11 ⟶ Default spell on missed
  • Bit 12 ⟶ Falling path
    • Traveling Projectile originates from target, instead of caster. (Near Instant hit)
    • Compatibility: Not viable with Pass Target
    • Suppresses: 0x100 – 0x1FF|Traveling Projectile Animation
  • Bit 13 ⟶ Comet
    • Affects: Traveling Projectile.
    • Projectile originates from upper-right or upper-left relative to target.
    • Vertical offset increased by Projectile Speed.
    • Horizontal offset increased by Projectile Width.
      • Can be positive or negative. Positive values are further right, negative values are further left.
    • Projectile Speed and Projectile Width must be chosen carefully and fully tested – various combinations are prone to crashing.
    • Compatibility:
      • Not usable with Cone-shaped. All other Area Flags work normally.
      • Not viable with Pass Target
      • Not viable with Pillar – Projectile may terminate before reaching destination.
    • Suppresses: Lined up AoE
    • Option: Spell Target(Creature)
    • Option: Spell Target(Location)
      • Projectile Type must be Area Effect
      • Example: (Comet – BG2EE) ⟶ "COMET.PRO"
    • Compatibility: Spell Target(Creature) and Spell Target(Location) will calculate their flight paths differently based on (unknown) factors.
    • Compatibility: Pillar – The Traveling Projectile will not use the vertical offset of the Comet trajectory, travelling directly horizontal.
      • Any Trailing animations of the Traveling Projectile will continue to use the Comet trajectory.
    • Option: Falling Path – Projectile originates from opposite horizontal direction.
    • Projectile Type: Area Effect – Area Effect processes as normal once Projectile reaches its target destination.
  • Bit 14 ⟶ Lined up area of effect
    • A line of Traveling Projectiles extends between the caster and the target, lasting one round.
    • Projectile Width does NOT control the width of the line.
      • The line's effect is 52 pixels wide (when directly horizontal), or 40 pixels wide (when directly vertical).
    • The target is hit immediately, and again 4 seconds (60 ticks) later.
    • Any creature in or entering the line between the caster and the target is hit immediately.
      • They are hit again if they are still in or reenter the line between the target and caster at least 3 seconds later before the projectile ends.
      • Effects with Ignore Secondary Target will not affect these creatures (EE only).
    • The Traveling Projectile will reposition itself to maintain a line between the caster and target as either of them moves around.
    • The caster is locked into facing the target for the duration, adjusting as either moves around.
    • Speed controls the number of Traveling Projectiles that are displayed between the caster and target. It still must be non-zero to avoid crashing.
      • Value represents the distance (pixels) between each animation's center point.
    • Spell Target: Creature/Object
      • Compatibility: Use Height
        • This projectile will gradually lose its height value until it is at ground level (aesthetic/cosmetic only).
          • This decline is one pixel per instance of the animation displayed between the caster and target.
    • Spell Target: Location
      • Compatibility: Use Height
        • This projectile will remain at the caster's height.
    • If Main Projectile targets a location, this projectile will maintain its height value.
    • Projectile Type: Single Target
    • Priority: Suppressed by Pillar or Multiple Projectile
    • Suppresses: Pass Target, Hit Immediately, Random Path, Palette.
    • Compatibility: Such a projectile will NOT function as the Explosion Projectile of another projectile.
    • Compatibility: when used as the Secondary Projectile of another projectile:
      • If that projectile does NOT use Bounce from Walls:
        • This projectile will ignore the target's animation height, traveling to their ground location instead of their casting height.
    • Example: (Aganazzar's Scorcher) ⟶ "SCORCHER.PRO"
    • Option: Falling Path and/or Comet – Suppresses 0x100 – 0x1ff|Traveling Projectile Animation
    • Option: Limited Path Count – Does not hit any target a second time. Projectile terminates after one second.
      • Example: (Wand of Frost – BGEE only) – hardcoded projectile: (190|PROJECTL.IDS) / (191|MISSILE.IDS)
        • Exception: this projectile is further hardcoded for all its effects to only affect the initial target, not those in-between.
  • Bit 15 ⟶ Rectangular area of effect
    • Affects target(s) in range every tick for its duration. Total number of target checks:
    • Option: Delayed Trigger – Affects targets(s) in range # Repetitions times, checked every Explosion Frequency ticks.
      • This makes it trigger more similarly to regular repeating Area Effect projectiles.
    • Area effect: Trap Size = Parallel Length, Explosion Size = Perpendicular Length
    • Oriented in the direction of casting from the caster.
    • Explosion Effect still plays as normal, but no longer represents affected area.
    • Explosion Animation must be used to represent the affected area.
      • The animation must be made to match the intended dimensions – it will not be stretched/tiled to fill the area.
      • The following flags are recommended:
        • Draw Animation – Required for Face Target to work.
          • Causes a new instance of Explosion Animation to be played every frame, stacking to become a indiscernible blob.
        • Face Target – orients Explosion Animation based on casting direction.
          • If Trap Size > Explosion Size, first animation cycle should be vertical.
          • If Trap Size < Explosion Size, first animation cycle should be horizontal.
        • Draw center VVC once – Single instance of Explosion Animation is looped over the duration.
    • Priority: Suppressed by Pass Target
    • Suppresses:
    • Example: (Wall of Moonlight – IWDEE) ⟶ "WOMOON.PRO"
  • Bit 16 ⟶ Draw behind target
  • Bit 17 ⟶ Casting glow effect
    • Projectile Animation plays first 3 cycles/sequences in order. (Mirrored as normal)
    • Designed for use with opcode #140, combined with Hit Immediately.
      • The 1st cycle/sequence is played once.
      • The 2nd cylce/sequence is looped (or cut short) until there is only enough time left to play the 3rd cycle/sequence once.
      • The 3rd cycle/sequence is then played once.
    • Also used by the various spell–school casting animations for spells.
  • Bit 18 ⟶ Travel door
  • Bit 19 ⟶ Stop/fade after hit
  • Bit 20 ⟶ Display message
    • Activates: String
    • String is displayed (by caster) twice: once when spell is selected for targeting, and again when spell is successfully cast.
      • Selecting a spell for a quick-spell slot also generates the message because this also selects the spell for targeting.
    • Spells with Ability Target 5|Caster do not trigger a targeting message, as they begin casting immediately when selected.
  • Bit 21 ⟶ Random path
    • Traveling Projectile stutters towards the intended target, moving in random directions as it moves.
    • Priority: Suppressed by Pass Target and/or Lined up AoE
    • Projectile Type: Single Target
      • Compatibility: Pillar can cause the projectile to never impact its target
      • Compatibility: Multiple projectile will both arc and stutter.
        • Arc strength and Speed must be carefully chosen to avoid projectiles flying out to nowhere.
  • Bit 22 ⟶ Start random sequence
  • Bit 23 ⟶ Colour pulse on hit
  • Bit 24 ⟶ Touch projectile
  • Bit 25 ⟶ Negate first creature target
  • Bit 26 ⟶ Negate second creature target
  • Bit 27 ⟶ Use either IDS
  • Bit 28 ⟶ Delayed payload
  • Bit 29 ⟶ Limited path count
    • Traveling Projectile terminates after it has traveled for its originally calculated duration/distance (based on the targeted location), regardless of whether it has impacted its target or not.
      • For homing projectiles, this allows the target to "dodge" the projectile, by moving a bit in any direction (except directly towards the caster) before impact.
      • Generally any distance that causes the projectile to "turn" or go beyond its original distance is enough to "dodge" it.
    • Compatibility: This behavior works the same with Pass Target, with or without Bounce from Walls.
    • Compatibility: Projectile's arced by Multiple Projectile have a higher chance to terminate before impacting the target as the arc distance increases.
    • Compatibility: Projectile's using Lined up AoE functions differently:
      • The projectile is limited to lasting only 1–2 seconds, preventing it from affecting any target a second time.
    • Special: All "VEF" projectiles (anything listed in VEFPROJ.IDS) effectively use this flag.
  • Bit 30 ⟶ IWD style check (use entries from SPLPROT.2DA for first and second creature target). It works similar to op318/326, depending on the other related flags:
    • Projectile Type must be Area Effect.
    • Activates: Creature value 1, Creature type 1, Creature value 2, Creature type 2.
    • Activates: Neg. IDS1, Neg. IDS2, Use either IDS.
    • Projectile excludes creatures as valid targets for its Area Effect if:
      • Default: Exclude objects matching Creature type 1 and matching Creature type 2
      • Use either IDS: Exclude objects matching Creature type 1 or matching Creature type 2
      • Neg. IDS1: Exclude objects not matching Creature type 1 and matching Creature type 2
      • Neg. IDS2: Exclude objects matching Creature type 1 and not matching Creature type 2
      • Neg. IDS1 + Use either IDS: Exclude objects not matching Creature type 1 and matching Creature type 2
      • Neg. IDS2 + Use either IDS: Exclude objects matching Creature type 1 and not matching Creature type 2
      • Neg. IDS1 + Neg. IDS2: Exclude objects matching Creature type 1 or matching Creature type 2
      • Neg. IDS1 + Neg. IDS2 + Use either IDS: Exclude objects matching Creature type 1 and matching Creature type 2
  • Bit 31 ⟶ Caster affected – This is related to effect target Original Caster.
    • If this flag is set, the original caster is affected once for every target.
    • Without this flag, the original caster is affected only once, but only if there is at least one target.
    • This flag should only be set on Area-Effect projectiles.
      • Single-target projectiles, even those that hit multiple targets (f.i. Lightning Bolt), will trigger Original Caster effects once for every target by default.
0x00030 4 (strref) Displayed Message
  • Dependency: Activated by Display String.
  • String is displayed (by caster) twice: once when spell is selected for targeting, and again when spell is successfully cast.
0x00034 4 (dword) Pulse Color
0x00038 2 (word) Color speed
  • Dependency: Activated by Color Pulse on hit.
  • Speed (in ticks) of Color Pulse (fades to color, then fades out, entire process takes twice as long as listed value).
0x0003a 2 (word) Screen shake amount
  • Value identical to opcode #269.
  • Screen shake occurs when Traveling Projectile reaches its target.
0x0003c 2 (word) Creature Value 1
0x0003e 2 (word) Creature Type 1
0x00040 2 (word) Creature Value 2
0x00042 2 (word) Creature Type 2
0x00044 8 (resref) Default spell (SPL)
0x0004c 8 (resref) Success spell (SPL)
0x00054 2 (word) Angle increase minimum [PSTEE]
0x00056 2 (word) Angle increase maximum [PSTEE]
0x00058 2 (word) Curve minimum [PSTEE]
0x0005a 2 (word) Curve maximum [PSTEE]
0x0005c 2 (word) THAC0 bonus [PSTEE]
0x0005e 2 (word) THAC0 bonus (non-actor) [PSTEE]
0x00060 2 (word) Radius minimum [PSTEE]
0x00062 2 (word) Radius maximum [PSTEE]
0x00064 156 (bytes) Unused

The following struct is added when the projectile is a single target or area effect projectile (see Projectile Type). It has 100h (256) bytes.

Offset Size (datatype) Description
0x00100 4 (dword) BAM projectile flags
0x00104 8 (resref) Traveling Projectile Animation (BAM)
0x0010c 8 (resref) Shadow Animation (BAM)
  • Not affected by Use Height.
  • This animation cannot be oriented.
  • Compatibility: Suppressed by Lined up AoE.
  • Compatibility: This animation does not use the vertical offset of the Traveling projectile when using Comet.
    • It travels directly horizontal at the target's vertical location.
0x00114 1 (byte) Projectile number (BAM sequence)
  • Projectile Animation uses specified Cycle/Sequence of BAM file.
  • Defaults to 0 if value exceeds number of Cycles/Sequences in BAM file.
0x00115 1 (byte) Shadow number (BAM sequence)
  • Projectile Animation Shadow uses specified Cycle/Sequence of BAM file.
  • Defaults to 0 if value exceeds number of Cycles/Sequences in BAM file.
0x00116 2 (word) Light spot intensity
0x00118 2 (word) Light spot width
0x0011a 2 (word) Light spot height
0x0011c 8 (resref) Palette (BMP)
  • STTRAVL1 = Blue
  • STTRAVL2 = Yellow
  • STTRAVL3 = Green
  • STTRAVL4 = Purple
  • STTRAVL5 = Pale purple
  • STTRAVL6 = Pink
  • STTRAVL7 = Blue
  • STTRAVL8 = Gold
0x00124 7 (bytes) Projectile colours
0x0012b 1 (byte) Smoke Puff Delay
0x0012c 7 (bytes) Smoke colours
0x00133 1 (byte) Face target granularity / "Projectile Animation" Mirroring
  • 0 ⟶ Do not mirror
  • 1 ⟶ Do not face target (Do not mirror)
  • 5 ⟶ Mirrored eastern directions (reduced granularity)
    • First 5 Cycles are Mirrored (Horizontally and/or Vertically) to reach 16 directions.
  • 9 ⟶ Mirrored eastern (full granularity)
    • First 9 Cycles are Mirrored Horizontally to reach 16 directions.
  • 16 ⟶ Not mirrored, not reduced (Do not mirror)
    • Animation contains all 16 directions.
0x00134 2 (short) Projectile smoke animation (ANIMATE.IDS)
  • Compatibility: Suppressed by Lined up AoE.
  • Compatibility: This animation follows the projectile's path when using Comet.
0x00136 8 (resref) Trailing animation 1 (BAM)
0x0013e 8 (resref) Trailing animation 2 (BAM)
0x00146 8 (resref) Trailing animation 3 (BAM)
0x0014e 2 (word) Trailing number 1 (BAM sequence)
0x00150 2 (word) Trailing number 2 (BAM sequence)
0x00152 2 (word) Trailing number 3 (BAM sequence)
0x00154 4 (dword) Flags
  • bit 0 ⟶ Puff at target
  • bit 1 ⟶ Puff at source
0x00158 168 (bytes) Unused

If the projectile is an area effect projectile then an additional struct is added to the file. It has 100h (256) bytes.

Offset Size (datatype) Description
0x00200 2 (word) Area projectile flags
  • bit 0 ⟶ Trap Visible
    • Projectile Animation plays once where it explodes.
      • Option: Triggered by Condition – animation loops until the trap expends its triggers.
      • Option: If # Repetitions > 1, animation loops until the Area Effect expires.
      • Compatibility: Any flag that suppresses 0x100–0x1ff|Traveling Projectile Animation will also suppress this animation.
      • Compatibility: This animation ignores Pillar.
      • Compatibility: When used with Delayed Explosion:
        • The projectile will not explode until the 30th frame of the animation created by Trap Visible.
        • The Explosion Frequency is delayed until that time, after which it will explode as normal until the animation ends.
        • The animation will then start over, Explosion Frequency will reset, and again be delayed until frame 30 of the animation.
        • This delay applies even to explosions that are not controlled by the Explosion Frequency:
        • This requires the Projectile Animation to have at least 30 frames – This is the animation used by Trap Visible.
          • Otherwise the projectile will never explode (but still disable saving as an active Area Effect projectile).
        • It is very likely that the 30th frame is a hardcoded value and cannot be changed.
  • bit 1 ⟶ Triggered by inanimate objects
  • bit 2 ⟶ Triggered by Condition
    • Projectile is a "Trap":
      • It will only explode if a valid target is within its Trap Size and its Explosion Size.
      • It will explode a number of times equal to # Repetitions.
      • It will check for targets instantly and every Explosion Frequency ticks.
      • Option: Delayed Trigger
        • Subsequent checks will only explode after two sequential checks are passed.
      • Option: Cone-shaped – Does not create a traditional "Trap"
        • It will only explode if a valid target is within its Explosion Size and Cone Width.
        • It will check for targets within its Explosion Size every Explosion Frequency ticks.
        • Projectile terminates after a number of checks equal to its # Repetitions, whether it explodes or not.
    • Compatibility: Suppressed by Rectangular AoE
  • bit 3 ⟶ Delayed Trigger
    • Compatibility: Skip First Condition
    • Compatibility: Triggered by Condition
      • Target checks after the first will only explode after two sequential checks are passed.
    • Compatibility: Rectangular AoE
      • Forces this option to affect targets(s) in range # Repetitions times, checked every Explosion Frequency ticks.
      • Normally it would affect target(s) in range every tick for its duration.
      • This makes it trigger more similarly to other repeating Area Effect projectiles.
  • bit 4 ⟶ Use secondary projectile
    • Dependency: Spell Target(Creature)
      • Activates the Secondary Projectile field.
      • Upon exploding, the Secondary Projectile is fired every tick at the targeted creature for the duration of the projectile.
      • The Secondary Projectile normally does NOT deliver any effects.
        • It is strictly aesthetic, it carries no effects from the spell/item. A variety of projectiles use these to generate their explosion animation (via another projectile), instead of using a VVC. For instance, all of the "Sparkle Area (color) (party/not)" projectiles do this.
      • Duration is controlled by # Repetitions, Explosion Frequency, and Skip First Condition.
      • Total number of Secondary Projectiles fired:
        • If # Repetitions < 2:
          • If Skip First Condition: Explosion Frequency + 1
          • Else: 1
        • If # Repetitions > 1:
          • If Skip First Condition: (Explosion Frequency + 1) * # Repetitions
          • Else: (Explosion Frequency + 1) * (# Repetitions - 1) + 1
      • Option: Bounce from Walls
        • Alters the Secondary Projectile to deliver effects.
        • Alters the Secondary Projectile to originate from the targeted creature, rather than the caster.
        • The Secondary Projectile will be oriented in a random direction.
        • Compatibility: With Cone-shaped, the Secondary Projectile will instead target the caster's location (but not the caster directly).
        • The Traveling Projectile of the Secondary Projectile will terminate after a number of ticks equal to Explosion Frequency.
          • In order to hit anything, it must itself be an Area-Effect projectile (or Pass-Target projectile). As already stated, this mode only functions when the target of the spell/item is a creature (not a point), and it will only fire on that creature, not all targets in range.
          • Compatibility: Projectiles using Limited Path Count travel for their normal distance/duration.
      • Either way, the Secondary Projectile is only practical for single-trigger projectiles (the Sparkle Areas or a Fireball, but not something like Web or Entangle), as the projectile is fired every tick of the projectile's duration. (Unless you want to flood the screen with visuals).
      • The Secondary Projectile does not fire until the projectile explodes.
  • bit 5 ⟶ Use fragment graphics
    • Activates Fragment Animation.
    • This animation is treated similar to the "Chunking" animation of creatures, launching the specified animation up and outward in various directions.
      • This "Chunking" will start when the projectile explodes and repeat throughout the projectile's duration, if it has one.
    • Compatibility: Triggered by Condition will only generate fragments when it explodes, once per explosion.
    • Compatibility: The direction these animation are launched is not limited by Cone-shaped.
    • Compatibility: Suppressed by a non-zero Ray Count.
  • bit 6 ⟶ Affect only enemies
  • bit 7 ⟶ Affect only allies
    • Flag Off: Projectile will only target enemies of the caster.
    • Flag On: Projectile will only target allies of the caster.
  • bit 8 ⟶ Mage-level duration
    • # Repetitions is replaced with the caster's Wizard Casting Level.
    • This ignores opcode #191.
    • (Possibly ignores Wild Mages random casting level modifier as well)
  • bit 9 ⟶ Cleric-level duration
  • bit 10 ⟶ Use VVC / Draw Animation
    • Without this flag, Explosion Animation will only be played once when and where the projectile explodes.
    • Without this flag, Explosion Animation only supports BAM files, with this flag it supports (VEF > VVC > BAM) files.
    • With this flag, Explosion Animation will be played when and where the projectile explodes, and every tick throughout the projectile's duration.
      • These animations will stack on each other, creating an unrecognizable blob.
      • Compatibility: With Draw Center VVC Once, this animation will once again play only once.
        • Works on VEF, VVC, and BAM files, but VEF/VVC files can manually set their duration to match the projectile duration.
      • Compatibility: With Face Target, this animation can be oriented in the direction of casting (the VVC and its BAM must be setup to do so as well).
        • This requires the Explosion Animation to include a VVC (VEF optional), not just a BAM.
        • Any mirroring must be specified in the VVC.
        • The VVC Travel Orientation must use Face Target.
  • bit 11 ⟶ Cone-shaped
    • It requires all targets to be in the caster's line of sight.
    • Cone-shaped projectiles automatically exclude the caster.
    • Compatibility: Not usable with Comet.
    • Area: Restricted to arc oriented in direction of casting.
    • Projectile explodes instantly, at caster's location. The following originate from the caster's location:
    • Compatibility: Rectangular AoE will override the changes to the affected area, but not changes to the visual explosion.
    • Suppresses: Pass Target
    • Option: Triggered by Condition – Explosion only occurs if valid targets are within range when cast.
      • Does not create a traditional "Trap".
      • Trap Visible still plays as normal.
    • Option: Hit Immediately – Explosion occurs at targeted location, instead of caster's location.
      • Caster is not affected by the explosion, even if they are in the affected area.
      • Option: Spell Target(Creature) – Cone arc is oriented in the opposite direction of the targeted creature's current facing.
      • Option: Spell Target(Location) – Cone arc is oriented to the Right/East.
    • Option: Falling Path – Explosion occurs at targeted location, instead of caster's location.
      • Caster is not affected by the explosion, even if they are in the affected area.
      • Cone arc is oriented to the Right/East.
      • Suppressed: Trap Visible
  • bit 12 ⟶ Ignore LOS
    • Without this flag, Explosion Animation is blocked by walls.
    • With this flag, Explosion Animation is not blocked by walls.
  • bit 13 ⟶ Delayed explosion
    • Compatibility: When used with Trap Visible:
      • The projectile will not explode until the 30th frame of the animation created by Trap Visible.
      • The Explosion Frequency is delayed until that time, after which it will explode as normal until the animation ends.
      • The animation will then start over, Explosion Frequency will reset, and again be delayed until until frame 30 of the animation.
      • This delay applies even to explosions that are not controlled by the Explosion Frequency:
      • This requires the Projectile Animation to have at least 30 frames – This is the animation used by Trap Visible.
        • Otherwise the projectile will never explode (but still disable saving as an active Area Effect projectile).
      • It is very likely that the 30th frame is a hardcoded value and cannot be changed.
  • bit 14 ⟶ Skip first condition
  • bit 15 ⟶ Single target
    • Activates fields # dice for multiple targets and Dice size for multiple targets.
    • Activates Use HD lookup and Hit Point Limit.
    • This field limits the number of valid targets for each explosion to XdY, where X = # dice for multiple targets, and Y = Dice size for multiple targets.
    • Option: Use HD lookup
      • Each explosion will only affect targets whose HD/level is equal to or less than XdY, where X = # dice for multiple targets, and Y = Dice size for multiple targets.
        • (BUG, at least on EE games) Regardless of Dice values, it cannot affect creatures whose HD/Level is 9 or greater.
    • Option: Hit Point Limit
      • Each explosion will only affect targets whose current Hit Points are equal or less than Dice size for multiple targets.
      • Each explosion will only affect a total number of targets whose current Hit Point total is equal or less than # dice for multiple targets.
Further bits are unused
0x00202 2 (word) Ray Count (EE only...?)
  • Suppresses the Secondary Projectile flag.
  • It causes the Explosion Projectile to be fired Ray Count amount of times.
    • Setting the Cone-shaped bit will cause the rays to spawn at the location of the caster. If this bit is not set and the Ray Count is nonzero, then the rays will spawn at the location of the explosion of the projectile.
    • The direction of the first ray is no longer fixed towards the southeast but is determined as follows:
      1. if the Cone-shaped bit is disabled, the first ray will continue in the same direction as the parent projectile using a vector of the caster's location to the explosion point.
      2. if the Cone-shaped bit is enabled, the first ray will travel from the caster's position towards the destination/casting point.
    • Further rays are generated based on how cone angle/angle between rays is set.
    • As of v2.6, you may nest rays in one another to construct complex-shaped areas of effect. In terms of nesting multiple rays, the point of origin of the ray one higher up the "chain" is treated as the caster's position.
  • The Explosion Projectile must be capable of hitting creatures while targeting a location or they will be just for show (Area Effect or Pass Target).
  • The Explosion Projectile's Travelling Projectile will terminate upon reaching the Explosion Size of this projectile.
    • For lightning bolt-type projectiles, this distance is used up, even as the bolt bounces (see "LIGHTB.pro" in BG1/2:EE and "IDPRO40.pro" in IWD:EE as examples).
    • For single-target projectiles, they simply travel that distance before disappearing.
    • For area-of-effect projectiles (f.i. "FIREBALL.pro"), they explode normally when reaching that distance. And as mentioned earlier, area-of-effect child projectiles can also use the ray feature themselves to generate additional rays with the direction vector determined as mentioned above.
    • This termination also applies to projectiles using Pass Target, which normally do not terminate upon reaching their destination.
  • An Explosion Projectile will explode at a distance equal to the Trap Size * "X" (see below) of this projectile.
    • Only Area Effect projectiles can explode. Those with Cone-shaped will still explode instantly.
    • The exact multiplier formula is unknown – but it's not linear.
      • The maximum trap size for an explosion size of 480 to explode before terminating is a trap size of 277 (about 1.73x).
      • The maximum trap size for an explosion size of 240 to explode before terminating is a trap size of 150 (1.6x).
      • The maximum trap size for an explosion size of 120 to explode before terminating is a trap size of 86 (about 1.39x).
      • The maximum trap size for an explosion size of 60 to explode before terminating is a trap size of 43 (about 1.39x).
      • The distance (Trap Size) to explode does NOT account for the vertical proportion of the game (where vertical distance = ¾ horizontal distance).
        • The distance (Explosion Size) for the Traveling Projectile does take the proportion into account.
        • The same value may explode a projectile going horizontal but not one going vertical, if the Explosion Size terminates it before reaching the distance.
0x00204 2 (word) Trigger Radius / Trap Size (divide by approx 8.5 to receive diameter in feet)
0x00206 2 (word) Area of effect / Explosion Size (divide by approx 8.5 to receive diameter in feet)
  • It defines the radius of the projectile.
  • Uses absolute value, or negative values use the same area as their positive counterpart.
  • Value is Horizontal Pixels, ¾ value is Vertical Pixels, 16 (12) = 1 foot.
  • Maximum effective Value: 32768 (2048 feet) // Default visual range = 448.
  • Effect Radius to trigger an Explosion Projectile on a creature.
  • Perpendicular Length (relative to casting direction) when using Rectangular AoE.
  • Terminating distance of Explosion Projectile's Traveling Projectile when using Ray Count.
    • This termination also applies to projectile using Pass Target, which normally do not terminate upon reaching their destination.
0x00208 8 (resref) Explosion Sound
  • Sound is played each tick of the projectile's duration once it explodes.
    • Should only be used for one-shot projectiles (Fireball), not be used for repeating projectiles (Web).
0x00210 2 (word) Explosion delay (Frequency)
0x00212 2 (short) Fragment Animation (ANIMATE.IDS)
  • Dependency: Activated by Fragments.
  • This animation is treated similar to the "Chunking" animation of creatures, launching the specified animation up and outward in various directions.
  • Compatibility: Triggered by Condition will only generate fragments when it explodes, once per explosion.
  • Compatibility: The direction these animation are launched is not limited by Cone-shaped.
  • Compatibility: Suppressed by a non-zero Ray Count.
0x00214 2 (word) Secondary Projectile (PROJECTL.IDS - 1)
0x00216 1 (byte) Trigger Count / # Repetitions (used if bits 8 and 9 at 0x200 are not set)
  • Along with Explosion Frequency and Delayed Trigger and Skip First Condition, determines the duration of the projectile.
  • A value of 0 and 1 are often (but not always) treated the same (as 1) – still researching...
  • Determines how many times the projectile checks for targets within its Trap Size.
    • Target(s) outside its Trap Size but within its Explosion Size are checked every tick of the duration.
  • Compatibility: When using Rectangular AoE, it only determines check count when used with Delayed Trigger.
    • Projectiles using Rectangular AoE without Delayed Trigger check for targets every tick of their duration.
  • Compatibility: When using Triggered by Condition:
    • Projectile will remain until it has triggered this many times.
0x00217 1 (byte) Explosion Effect (FIREBALL.IDS)
0x000218 1 (byte) Explosion Color
0x000219 1 (byte) Unused
0x00021a 2 (bytes) Explosion Projectile (PROJECTL.IDS), played on affected creatures
  • This projectile is fired, originating from the point of explosion, at every valid target within range, for every explosion.
  • Compatibility: When using Ray Count:
  • For Area Effect projectiles, this is normally what delivers the spell/item effects to their target.
  • Compatibility: Projectiles using Lined up AoE will NOT function as an Explosion Projectile.
  • Compatibility: Projectiles using Multiple Projectile will ignore that flag when used as an Explosion Projectile.
    • This does NOT include the still hardcoded Magic Missile projectiles.
  • The explosion projectile otherwise functions as normal for its parameters.
0x00021c 8 (resref) Explosion Animation (VVC)
0x000224 2 (word) Cone Width / Angle between Rays (0 – 65535, effectively capped at 359)
  • Angle is +1 specified value.
  • Dependency: This field can be activated by either Cone-shaped or Ray Count.
  • Option: With Cone-shaped
    • This value controls the Arc Size of the cone.
    • Arc Size = direction of casting +/- Cone Width / 2 degrees.
  • Option: With Ray Count > 0
    • This will generate additional rays relative to the initial direction of the first ray.
    • They will be generated on alternating sides of the first ray at angle increments set by this field.
      • For instance, if Ray Count is set to 5 and this field is set to 45, then rays will be generated at angles -90, -45, 0, 45, 90 degrees relative to the direction vector as described above.
      • Note that if Ray Count is an even number, the ray group will be asymmetrical unless you rotate them (see below).
      • In Spiritual Wrath's case ("IDPRO312.pro" in IWD:EE), there are 4 rays at 90 degree angles from one another, making them appear symmetrical.
The following fields are used by Enhanced Editions games only:
0x00226 2 (word) Rotate rays clockwise
  • Setting this field (0–359) will rotate the entire set of Rays spawned by the explosion clockwise.
0x00228 8 (resref) Spread Animation (VEF/VVC/BAM)
  • Dependency: Activated by Explosion Effect not being value 255|None.
  • This animation is played in "rings" around the point of origin, out to the Explosion Size.
  • Each of these "rings" has a radius in increments of Speed, resulting in a total number of rings equal to Explosion Size / Speed.
  • Each of these "rings" starts playing Speed ticks after the previous, starting with the innermost.
    • The animations will loop until:
      Once the outer-most "ring" has begun playing and the projectile's duration has expired, the "rings" will disappear at the same rate, starting with the outer-most "ring".
  • The density of animations in each ring is controlled by fields Animation Granularity and Animation Granularity Divider.
    • Lower values result in higher animation density, but very low values will create clear "gaps" in each of the diagonal directions.
  • This animation will play all of its cycles/sequences in order, and cannot be oriented.
  • Defunct: Paletted Animation should cause this animation to be recolored by the Explosion Color field, but instead just recolors it all black.
  • Option: Blend Area/Ring Anim will add transparency to the animation.
  • Option: Glow Area/Ring Anim will brighten the animation (generally make it "glow").
  • Option: Start Scattered will cause each of these animations to play at random intervals instead of looping continuously throughout the duration.
0x00230 8 (resref) Ring Animation (VEF/VVC/BAM)
  • Dependency: Activated by Explosion Effect not being value 255|None.
  • This animation expands outward from the point of origin, out to the Explosion Size, and a rate of Speed.
  • The density of animations is controlled by fields Animation Granularity and Animation Granularity Divider.
    • Lower values result in higher animation density, but very low values will create clear "gaps" in each of the diagonal directions.
  • Defunct: Paletted Ring should cause this animation to be recolored by the Explosion Color field, but instead just recolors it all black.
  • Option: Oriented fireball puffs will orient the animation in the direction it's travelling.
    • It can only mirror horizontally, not vertically. The animation will need at least these 9 directions to be properly oriented: S, SSW, SW, WSW, W, WNW, NW, NNW, N
  • Option: Blend Area/Ring Anim will add transparency to the animation.
  • Option: Glow Area/Ring Anim will brighten the animation (generally make it "glow").
0x00238 8 (resref) Area Sound (WAV)
0x00240 4 (dword) Extended flags
0x00244 2 (word) # dice for multiple targets
0x00246 2 (word) Dice size for multiple targets
0x00248 2 (word) Animation granularity
0x0024a 2 (word) Animation granularity divider
0x0024c 180 (bytes) Unused