ABI 2da
The ABI_ 2da defines all skills, spells, talents and item abilities in the game.
The 2da is defined as an m2da in the M2DA_base 2da and has an ID of 1. It can be extended by m2da fragments which have names starting with ABI_. It can be referenced in scripting using the TABLE_ABILITIES_TALENTS and TABLE_ABILITIES_SPELLS constants defined in 2da_constants_h.
Structure
Column | Type | Description |
---|---|---|
ID | int | A number that uniquely identifies the entry (unless creating an M2DA override). ID numbers are listed from smallest to highest within a given file but do not need to be consecutive. |
label | string | Human-friendly description. For item abilities this appears in the item's Activated Ability drop-down list. |
namestrref | int | String Ref ID of the name of the ability. |
descstrref | int | String Ref ID of the description of the ability. |
tooltipstrref | int | String Ref ID of the buff/deff format on mouse over. (Caution: Abilities with ID over 500000 is considered as debuff and will not take the format of normal buffs.) |
strid_effect | int | String Ref ID of the buff/debuff description on mouse over. |
icon | string | Name of the icon file, without extension. |
abilitytype | int | The type of ability. See abilitytype.xls and the ABILITY_TYPE_* constants in 2da_constants_h:
|
abilitymode | int | |
conditions | int | Flags that determine what conditions must be met before this ability can be used:
|
condition_mode | int | The ID of a modal ability that must be active before this ability can be used if Conditions is set to 16. |
condition_group | int | This links modal abilities. Use the lowest integer of the group. Whenever one of these abilities is used it will turn off the other linked abilities. |
cost | float | How much Mana/Stamina an ability will cost. |
costupkeep | float | How much from the max Mana/Stamina an ability takes away until it is deactivated (modal abilities only) |
prereqability | int | The ID of a prereq ability. |
prereqlevel | int | Minimum character level to pick it up. |
prereqattribute | int | Which attribute is a prereq for the ability. See properties.xls for what this number maps to. |
prereqattvalue | int | The value the specified attribute has to be greater than. |
guitype | int | This is the category that the ability is grouped into. Things like, "Creation" and "Primal". See guitypes.xls. |
targettype | int | A bit operator which indicates which categories of targets the ability will affect. See targettype.xls and Targeting Behavior |
autotarget | int | If set to TRUE then it will automatically target a selected hostile or friendly creature. |
range | int | Range:
|
speed | int | This determines how long the ability takes to activate. 0 is instant, 1 will play the chosen Cast animation. 2+ will create an interruptable cast-bar and will play the Conjure animation for it's duration. Once the cast bar finishes filling the Cast animation will be played. |
usetype | int | Whether the ability is a passive, activated, or sustained. See abilityusetype.xls:
|
spellscript | string | This is the script that is run when the ability is used. Includes the file extension ".ncs". |
cooldown | float | The ability cooldown in seconds. |
conjurevfx | int | This is the VFX that is played during both the conjure sequence and the cast sequence of the ability. This is defined in VFX_base.xls. |
blendtree | string | Set by animators for abilities that change the default animations of a PC or party member, e.g. when you use "Shield Wall" your idle becomes a defensive crouch using your shield prominently. |
conjureanim | int | Which animation to play during the conjure sequence. A list of values is located at ANIM_base.xls. |
castanim | int | Which animation to play during the casting sequence. A list of values is located at ANIM_base.xls. |
projectile | int | This is the model name for projectiles. See PRJ_base.xls for the integers. 1 is a common one for arrow. |
autocancel | int | Obsolete |
autodraw | int | This determines how the ability handles the drawn state of weapons. See Targeting Behavior
Any spell with a speed higher than 1 should have this set to 2. The sheathing animation occurs during the conjure sequence without slowing it down, and putting away the weapon will prevent clipping. |
threat_use | float | Obsolete |
threat_impact | float | This is the amount of threat generated by each impact. May be obsolete. |
aoe_type | int |
|
aoe_idx | int | Defined areas of effect. Located at VFX_base.xls. |
aoe_param1 | float | Either the radius of the circle or degree arc of the cone. |
aoe_param2 | float | Obsolete |
vfx_impact0 | int | The VFX that is used at each impact. VFX_base.xls. See Ability_GetImpactLocationVfxId |
vfx_impact1 | int | This isn't used by the engine, but can be used as a constant in the scripts if you like. Many ITEMS use this to hold their VFX id to be used in scripting. See Ability_GetImpactObjectVfxId
Typically used by duration-based and modal abilities to reference the crust VFX to be used. |
flags | int | Bitwise flags:
So, for example, use 192 for a dispellable, modal ability that expires when the caster's mana runs out. |
showintactics | int | Set to 1 for abilities that PC or party members will want to use in the tactics system. |
showinchargen | int | Bitwise flags:
So, for example, use 7 to show in both chargen & talent/spell/skill book |
passive_id | int | Refers to an ID in passive_abilities 2da |
crust_id | int | Obsolete |
resistance | int | [Undocumented] |
damageinfo | int | [Undocumented] |
condition_appgroup | int |
Set a condition to restrict use of an ability to a specific appearance group. Only a creature that sports an appearance that belong to this group will be allowed to use the abilities. The AppearanceRestrictionGroup bit flag in the APR_ 2da determines which appearance groups a creature belongs too. |
ProcessWithEvent | int | If specified this ability does not use any of the normal ability functionality but instead fires and processes and event - meaning it even works when the game is paused. Use with care. |
fatigue | float | If it is a modal ability, this determines the level of fatigue it will incur while active. |
Remarks
During Dragon Age's development this file was automatically updated from an internal database. End user builders can update it manually.
When making abilities the best way to proceed is to copy the nearest analogous ability and then modify the specific columns you need to.