- Pokémon Essentials Version
- Non-applicable

A.B.R.A.
Ability Builder & Refinement Assistant for Pokémon SDK
Download latest version
Report Bugs
Overview
A.B.R.A. (Ability Builder & Refinement Assistant) is a specialized tool designed for Pokémon SDK (PSDK) developers to create and implement battle abilities without requiring extensive knowledge of Ruby scripting or the internal data structures of the SDK. It provides a visual interface for defining ability metadata, selecting battle events/triggers, and generating the necessary logic blocks.
What's New in the latest version?
See CHANGELOG.md for full details.
Features
- Project Integration: Connects directly to existing PSDK projects by loading .studio files.
- Metadata Management: Define internal symbols, and multi-language names and descriptions.
- Event / Trigger System: Select from 20+ battle events/triggers, including switch-in events, end-of-turn actions, damage modification, and stat changes.
- Script Generation: Automatically generates a script compatible with PSDK for your new ability.
- Condition Library: Access a library of 140+ pre-defined battle conditions with a searchable interface.
- Advanced Code Editor: Dedicated workspace with 10-space PSDK indentation and read-only / editable code separation.
- Intelligent Formatter: Global script formatting with nested block support and cursor preservation.
- Ability Updates: Edit and update existing abilities with proper file overwriting.
ABRA currently includes 17 quick action buttons for inserting common ability code:
| Action | Description |
|---|---|
| Return Condition | Insert a conditional return with if/unless support and multiple conditions |
| Insert If | Add an if/unless condition block with and/or logic |
| Change HP | Heal, damage, or set HP with dynamic amount options |
| Stat Change | Modify ATK, DEF, SPD, SPA, SPD, ACC, EVA stats |
| Apply Status | Apply poison, burn, freeze, paralysis, sleep, confusion, flinch, or cure |
| Change Weather | Set rain, sun, sandstorm, hail, or clear weather |
| Change Terrain | Set electric, grassy, misty, psychic terrain, or clear |
| Modify Item | Give, remove, or swap held items |
| Change Form | Modify Pokémon form |
| Change Type | Modify Pokémon type |
| Set Hazard | Deploy Stealth Rock, Spikes, Toxic Spikes, or Sticky Web |
| Show Ability | Display the ability activation animation |
| Display Message | Show battle messages |
| Move Priority | Modify move priority (+3 to -7) |
| Force Switch | Force a Pokémon to switch out |
| Set Effect | Add battle effects (Confusion, Flinch, Encore, Taunt, Torment, Disable, Substitute) |
| Remove Effect | Remove battle effects from a Pokémon |
Condition Categories
The condition picker organizes 140+ conditions into searchable categories:
| Category | Examples |
|---|---|
| Owner State | Owner is alive/dead, HP <= 50%, is asleep, has Magic Guard, is Poison-type |
| Battlers | Owner is on field, any battler asleep, has foes, has adjacent allies |
| Handler Checks | Can heal, burn/poison/freeze can be applied |
| Stat Checks | Attack can be raised, speed can be lowered |
| Weather & Terrain | Rain (any), sunny, hail, grassy terrain, electric terrain |
| Target/Attacker | Target is dead, attacker is ally/enemy, target type checks |
| Skill Properties | Skill is physical/special/status, made contact, is critical hit |
| Type Matchups | Super effective, not very effective, STAB, skill type checks |
| Probability | 10%/30%/50% chance |
Installation
Using Executable
Download the latest version from the releases page and run
ABRA.exe.Internationalization
A.B.R.A. supports multiple languages for the interface and the condition library:
- English
- French
- Spanish
Technical Details
A.B.R.A. automates the creation of three critical components for PSDK:
- JSON Data: Generates the ability data file located in
Data/Studio/abilities/using the db_symbol as filename. - Ruby Logic: Creates a context-aware Ruby script in
scripts/00001 ABRA_Scripts/00000 Effects/00000 Abilities/with indexed filenames (e.g.,00000 FlashFire.rb). - Text Data: Updates the local text database (CSV) for ability names and descriptions.
Battle::Effects::Ability base class and implements hooks that interact with the PSDK battle logic handlers (DamageHandler, StatChangeHandler, etc.).Terminology
- Attacker: The Pokémon using a move (previously called "Launcher")
- Target: The Pokémon receiving the effect
- @target: The ability owner (the Pokémon with this ability)
- Battlers: All alive Pokémon on the field (available in end-of-turn events)
- Logic: The battle logic controller (provides access to handlers)
Contributing
Suggestions for features, improvements, and new commonly used conditions are welcome! Please open an issue on GitHub.
- Credits
- There is no real credits, this tool is for people to make their own abilities!