The Ability Factory is a convenience that the engine uses when loading cards. Originally, it just gave permanent cards the default "put onto the battlefield" ability when they resolve, but it has since been expanded to support many different abilities.
You can load one of these abilities by putting AbilityFactory=(ability key) into one of your card's abilities. That variable will be replaced by the entire contents of the ability. This also allows you to overwrite certain variables of that ability. For example:
[Ability0]
AbilityFactory=Undying()
rulestext=Reverse Persist
will give this card Undying, but its rules text will be "Reverse Persist" instead of "Undying" (the default values are defined in the engine)
List of Supported Ability Keys
Some of these have parentheses and some do not. The ones without parentheses will only work if you don't use parentheses. These are internally supported by the engine for other reasons, which is why they're different. All the later-added ability keys support parameters.
| Key | Description |
|---|---|
| PermanentSpellHardCast | Default behavior for resolving permanent spells. |
| AuraSpellHardCast | Default behavior for resolving aura spells. |
| CommanderReplacement | Trigger for moving commanders to exile when they die. |
| CommanderCastFromExile | Default behavior for resolving commander spells. |
| AddW | "[T]: Add [W] to your mana pool" |
| AddU | |
| AddB | |
| AddR | |
| AddG | |
| AddWU | "[T]: Add [W] or [U] to your mana pool" |
| AddWB | |
| AddRW | |
| AddGW | |
| AddUB | |
| AddUR | |
| AddGU | |
| AddBR | |
| AddBG | |
| AddRG | |
| Dredge(manacost,amount) | "[manacost], Mill [amount]: Return this from grave to hand. Activate as a sorcery." |
| Undying() | |
| Manifest() | This is the "you may turn it face up for its mana cost" pseudoability that manifested cards get. |
| SuspendActivate(turns,manacost) | |
| SuspendUpkeep() | |
| SuspendFinish() | |
| Bushido(amount) | |
| Prowess() | |
| Exalted() | |
| Morph(manacost) | |
| Megamorph(manacost) | |
| Regenerate(manacost) | |
| FlashbackReplace | Replacement effect all cards with flashback need to have |
| VanishingUpkeep() | |
| VanishingSacrifice() | |
| CipherTrigger() | The combat damage trigger for Cipher (you have to exile and link the cipher spell to something in its resolution) |
| Cycling(manacost) |





