EFF file format
Applies to:
BG1: TotS, BG2, BG2: ToB, IWD, IWD:HoW, IWD:TotL
General Description
This file format describes an effect (opcode) and its parameters. The format is an extended version of that found embedded in creatures, items and spells, and is a replacement for the version 1 embedded effects used in BG1. The engine appears to roll a probability for each valid target type, rather than one probability per attack.
Offset | Size (data type) | Description |
---|---|---|
0x0000 | 4 (char array) | Signature ('EFF ') |
0x0004 | 4 (char array) | Version ('V2.0') |
When an effect is called via an eff, several of the fields (including duration and timing mode) are overriden by the calling SPL/ITM. Other fields are copied directly from the calling SPL/ITEM and overwrite the values defined in the EFF.
Offset | Size (data type) | Description |
---|---|---|
0x0008 | 4 (char array) | External EFFs - the field is the same as the signature field from the header Embedded EFFs - this field is zeroed out |
0x000c | 4 (char array) | External EFFs - the field is the same as the version field from the header Embedded EFFs - this field is zeroed out |
0x0010 | 4 (dword) | Opcode number |
0x0014 | 4 (dword) | Target type
|
0x0018 | 4 (dword) | Power |
0x001c | 4 (dword) | Parameter 1 |
0x0020 | 4 (dword) | Parameter 2 |
0x0024 | 2 (word) | Timing mode
|
0x0026 | 2 (word) | Timing ? |
0x0028 | 4 (dword) | Duration |
0x002c | 2 (word) | Probability 1 |
0x002e | 2 (word) | Probability 2 Note: The BG1 engine treats probability as a single word, effects are applied in the range 0-probability. Note: Other engines treat probability as two values, effects are applied in the range probability <= x <= probability. Probability range is 0-99 |
0x0030 | 8 (resref) | Resource |
0x0038 | 4 (dword) | Dice Thrown |
0x003c | 4 (dword) | Dice Sides |
0x0040 | 4 (dword) | Saving throw type
|
0x0044 | 4 (dword) | Save bonus |
0x0048 | 4 (dword) | Set local variable only if non-existant |
0x004c | 4 (dword) | Primary type (school) |
0x0050 | 4 (dword) | Unknown |
0x0054 | 4 (dword) | Parent resource lowest affected level |
0x0058 | 4 (dword) | Parent resource highest affected level |
0x005c | 4 (dword) | Resistance The default behaviour is that effects cannot be dispelled and ignore resistance.
This can also be presented in the more traditional way:
|
0x0060 | 4 (dword) | Parameter 3 |
0x0064 | 4 (dword) | Parameter 4 |
0x0068 | 8 (resref) | Resource 2 |
0x0070 | 8 (resref) | Parameter 5 (VVC) (aka Resource 3) |
0x0078 | 4 (dword) | Unknown |
0x007c | 4 (dword) | Unknown |
0x0080 | 4 (dword) | Caster X coordinate |
0x0084 | 4 (dword) | Caster Y coordinate |
0x0088 | 4 (dword) | Target X coordinate |
0x008c | 4 (dword) | Target Y coordinate |
0x0090 | 4 (dword) | Parent resource type (0=None, 1=Spell, 2=Item) |
0x0094 | 8 (resref) | Parent resource |
0x009c | 4 (dword) | Parent resource flags (from SPL 0x18 or ITM ext header 0x26) |
0x00a0 | 4 (dword) | Projectile |
0x00a4 | 4 (dword) | Parent resource slot |
0x00a8 | 32 (bytes) | Variable |
0x00c8 | 4 (dword) | Caster level |
0x00cc | 4 (dword) | FirstApply (internal flag) |
0x00d0 | 4 (dword) | Secondary Type |
0x00d4 | 4*15 (dword) | Unknown |