PRO file format

Applies to:
BG2, BG2: ToB

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 f8h bytes (no BAM), 512h bytes (single target), or 768 bytes (area effect).

Detailed Description

Offset Size (datatype) Description
0x00000 4 (char array) Signature ('PRO ')
0x00004 4 (char array) Version ('V1.0')
0x00008 2 (word) Projectile type
  • 1 no BAM
  • 2 single target
  • 3 area of effect
0x0000a 2 (word) Projectile speed (0x01 to 0xFF)
0x0000c 4 (dword) Sparking flags
  • bit 0: Show sparkle
  • bit 1: Use z coordinate
  • bit 2: Loop sound (0x10)
  • bit 3: Loop sound (0x18)
  • bit 4: Do not affect direct target
  • bit 5: Draw below animate objects
Further bits are unused.
0x00010 8 (resref) WAVC file (travelling)
0x00018 8 (resref) WAVC file (explosion/reach destination)
0x00020 8 (resref) Travelling VVC/BAM
0x00028 2 (word) Spark colour (from sprkclr.2da)
  • 0 = Crashes
  • 1 = Black
  • 2 = Blue
  • 3 = Chromatic
  • 4 = Gold
  • 5 = Green
  • 6 = Purple
  • 7 = Red
  • 8 = White
  • 9 = Ice
  • 10 = Stone
  • 11 = Magenta
  • 12 = Orange
0x0002a 214 (byte) Unused
0x00100 4 (dword) BAM projectile flags
  • bit 0: Enable BAM colouring (palette at 0x11c)
  • bit 1: Enable smoke
  • bit 2: Unused
  • bit 3: Enable area lighting usage
  • bit 4: Enable area height usage
  • bit 5: Enable shadow
  • bit 6: Enable light spot
  • bit 7: Enable brighten flags
  • bit 8: Low level brighten
  • bit 9: High level brighten
0x00104 8 (resref) Projectile animation (BAM)
0x0010c 8 (resref) Shadow animation (BAM)
0x00114 1 (byte) Projectile number (BAM sequence)
0x00115 1 (byte) Shadow number (BAM sequence)
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 period
0x0012c 7 (bytes) Smoke colours
0x00133 1 (byte)
Face target granularity
  • 1 : Do not face target
  • 5 : Mirrored eastern directions (reduced granularity)
  • 9 : Mirrored eastern (full granularity)
  • 16 : Mot mirrored, not reduced
0x00134 2 (short) Projectile smoke animation (animate.ids)
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 affect projectile then an additional struct is added to the file. It has 100h (256) bytes.

Offset Size (datatype) Description
0x00200 4 (dword) Area projectile flags
  • bit 0: Projectile remains visible at destination
  • bit 1: Triggered by inanimate objects (e.g. doors)
  • bit 2: Triggered on condition
  • bit 3: Trigger during delay
  • bit 4: Use secondary projectile
  • bit 5: Use fragment graphics
  • bit 6: Target selection*
  • bit 7: Target selection*
  • bit 8: Number of triggers equal to cast mage level
  • bit 9: Number of triggers equal to cast cleric level
  • bit 10: Use VVC
  • bit 11: Cone shape
  • bit 12: Affect objects through wall, mountain, building, and off-area
  • bit 13: Check triggers from animation frame 30 (req. bit 0)
  • bit 14: Delayed explosion
  • bit 15: Affect only one target

  • *Target selection is relative to caster:
    • 00 Affect all
    • 01 Affect only enemies
    • 10 Affect all
    • 11 Affect only allies
Further bits are unused
0x00204 2 (word) Trigger radius (divide by approx 8.5 to receive diameter in feet)
0x00206 2 (word) Area of effect (divide by approx 8.5 to receive diameter in feet)
0x00208 8 (resref) Trigger sound
0x00210 2 (word) Explosion delay
0x00212 2 (short) Fragment animation (animate.ids)
0x00214 2 (word) Secondary projectile (projectl.ids-1)
0x00216 1 (byte) Trigger count (used if bits 8 and 9 at 0x200 are not set)
0x00217 1 (byte) Explosion animation (fireball.ids)
0x000218 1 (byte) Explosion colour
0x000219 1 (byte) Unused
0x00021a 2 (bytes) Explosion projectile (projectl.ids), played on affected creatures
0x00021c 8 (resref) Explosion animation (VVC)
0x000224 2 (word) Cone width (1 to 359)
0x000226 218 (bytes) Unused