Ability creation is one of the main aspects of Popup Dungeon and often one of the first steps when designing a new hero or enemy. There are three main categories of abilities: Normal ones, passives and reactions (also called commands if they can execute at any time). Normal abilities and reactions need four things to work properly: A name, image, ability media and at least one executable action (like dealing damage or applying a buff). Passives do not require an ability media, they trigger automatically at the beginning of the turn with no animation.
The Ability Creation Menu
The ability creation menu contains three tabs - Main, Logic and Cosmetic - which we will explore in the following.
The main properties of an ability are the best way to increase an ability's base power (besides negatives, conditions and reactions set in the Logic tab, see below). Base power always starts at 20 (for spending an card slot if you want) and acts as an multiplier to the caster's power when determining the actual statistics of an ability. This bonus factor can be calculated as: 1 + [(Ability Power - 20) / 100]. Power added to an ability via Upgrade Books during a run does not contribute to this multiplier.
Note: The Rank of an Ability acts as a multiplier to the final power calculation of an ability (i.e. after the activator's power has been added and targets defenses have been subtracted). Each rank increases power by 5%.
This tab defines the most basic properties of any ability. First of: Is it an active or passive ability? Passives trigger automatically each turn, cost always 0 AP and can only target its user.
Active abilities on the other hand have a set action point (AP) cost and possibly a charge time, cooldown or limited uses per battle. All of these settings increase the ability's overall power, but also restrict its use in some way or the other. The minimum settings are 1 AP, no charge time, a one-turn cooldown and 0 (unlimited) uses per battle. The AP cost is shown in the upper left corner of the ability's card and all non-standard settings for charge, cooldown and uses are shown in the right middle across from the range seal.
Most vanilla abilities cost between 2 and 5 AP, have no charge time, a cooldown of one or two turns and often three or unlimited uses per battle.
Each AP grants 20 base power, charge, cooldown and number of uses give a different amount of base power, as shown below.
|Number||Charge Time||Cooldown||Number of Uses*|
|0 (infinite uses)||0||not possible||0|
*a limited number of use may contribute less power if the ability has been granted temporary to the user
Next up is setting an ability's range, going from 0 (self) up to 10 tiles. Abilities with a wide range of targets are less powerful and scale faster with a high aim statistic than abilities with a shorter range. The only value of importance here is the difference between minimium and maximum range, not the size of the possibly affected area - so an ability with a range of 5-9 has the same power as a 1-5 ranged ability. While it might seem tempting to prefer higher ranges to cover a potentially larger area, a lot of combats are resolved in close- to mid-range.
An ability can additionally ignore line of sight (LoS) which will cost some power, while an ability that can only target in a straight line will gain some. An active ability always displays a non-zero range in the middle left side of its card in red for a LoS obeying ability and in green if ignoring LoS. A straight white line under the range indicates that the ability works in a straight line only.
Area Of Effect
The last part of the main tab shows 25 squares representing the tiles affected by the ability and a little arrow inside a circle representing the origin of the ability. The origin can be dragged and dropped and each of the tiles can be toggled to be targeted or not. When executed, the ability's origin has to be in inside the defined range while the affected tiles do not - which allows to create 0 range abilities which can still affect other entities if additional tiles beside the origin are targeted. Each additional tile will cost some power depending on its distance from the origin and the number of total tiles affected.
The button next to the AoE allows to set if a LoS between origin and affected tile is necessary or not (which will cost additional power unless all tiles affected are guaranteed to be in LoS).
This tab defines the actions executed by an ability and consists at first of only one part: A blank space with a little yellow plus-button, allowing to select up to 4 actions, conditions or reactions for an ability, each with its own set of parameters. Actions and certain reactions consume power, while conditions and most reactions add power to their connected actions by limiting the use of the ability. A reactive condition always apply to the ability as a whole, while conditions can be restricted to single actions. To apply a condition to an action, simply drag and drop it beneath the condition. You can copy any action or condition by holding the Alt-key.
When selecting a single logic, you will see a little menu popping up below, showing a whole range of different parameters to work with.The most important parameters (if available) are:
- Source & Type (all actions) - Defines which power source the ability draws from (except raw power or support). An action based on magical air for example becomes stronger with a high magical power, elemental power and air power stat of the caster.
- Placement (all actions except swap position) - Defines the target of an action. The action can affect the caster (self),only the ability's origin (origin) all entities in an affected tile (target) or might place a trap or tile marker on all affected tiles (tile/trap). Traps can only trigger once but are stronger than tiles and have a lower upkeep (power per round placed) than tile effects.
- Weight (all actions) - Defines how much power from the pool is used for this action in comparison with others.
- Variance (all actions) - Adds a random factor ranging from 1-[variance] to 1+[variance] to the action's power when executed.
- Duration (all actions) - This defines how long a (de-)buff or status is applied to a target and whether a damaging or kill effect is only executed once or spread out over multiple turns (increasing total damage but lowering the damage per turn dealt).
- Delay (all actions) - Sets a delay for an action in turns, increasing the power of the action.
- Inflicted Status (status action, condition & reaction) - Sets the kind of status to inflict, to have or to react to.
- Chance to react (all reactions) - Acts like a built-in chance condition, increasing the ability's power by setting a limited chance to react each time the conditions are met.
- Can trigger on your own turn (all reactions) - Changes a reaction into a command, which can trigger during your own turn and are especially useful if an ability is to be given to enemy via give ability.
- Fixed duration (status actions and give ability) - Instead of calculating the duration of a status or give ability action based on the caster's power and the target's defenses (if hostile), the action is always carried out with a certain chance to inflict a status/give an ability for a fixed duration. This will add power to the action performed as it limits its potential later on.
Reactions and Commands
Reactions set specific triggers which will force the owner to cast them if possible out of his turn. A reaction can be turned into a command, which will also force the ability to activate during the owner's turn (this is always necessary if a reaction includes the [on start/end of your own turn]. Currently, changing a reaction to a command does not cost any power, but might do so in future builds. If a new reaction is added to an ability, it will automatically replace the old one.
The Actual Strength of an Action
The system will always show a preview of the ability in question, using the statistics of the currently selected entity. You can set the entity (hero or enemy), its rank and the rank of the ability at the right bottom of the screen (usually the ability's rank automatically scales with the level of the entity, but you can overwrite this). Take into account, that there is currently no preview taking the defenses of a potential target into account, so your new ability might be more or less effective in combat! This is especially important, when balancing the power of status effects: What seems like a certain action (100% to stun, kill, daze, etc.) will turn into a chance even for the puniest of defense, if the ability is "too optimized". The most important stats to overcome when attacking are defense (which might only act against specific sources or for specific directions) and resistance (which only works against actions using the support stat). If an action's outcome depends on additional (defensive) statistics, this will be noted in the table below. If an action's strength is based on support, the effect might be diminished if applied to the caster by himself (to prevent exponential stacking buffs).
List of Actions, Conditions and Reactions
|Category||Logic||Description||Strength based on|
|Create||Clone||Summons a friendly copy of an NPC on a free tile near the target for a set duration. Additional power increases the rank of the summon.||Power, Support, Resistence (if targeting a living enemy)|
|Copy Ability||Copies the ability used last by the targeted entity. The duration how long the ability is given can be fixed or based on the caster's power.|
|Form Duration||Increases the duration of an active transformation or a summon.|
|Give Ability||Gives either random local ability (which can be filtered by range and role) or one of up to 5 selected abilities. Given abilities have a reduced base power from limited uses.|
|Mimic||Transforms the caster into a copy of the targeted entity (currently only NPCs are valid targets) for a fixed duration.|
|Resurrect||Either resurrects a dead ally or enemy with no limited duration. The strength of the caster influences the health the dead entity comes back with (or the chance to revive if the health would be smaller than 1% otherwise).|
|Summon||Summons either a local entity (which can be filtered by role) or one of up to 5 pre-defined entities. The duration of the summon or its rank can be fixed, the other depends then on the strength of the action. The summoned entity can be set as stationary, which increases the strength of the action.|
|Transform||Transforms an entity into another local entity (which can be filtered by role) or into one of a pre-defined entity selection. Either the rank or duration can be scaled by the action's if the action is set as a buff, otherwise the entity will always be at novice rank. The transformed entity can be set as stationary, which increases the strength of the action.|
|Hurt||Damage||Deals damage to the target, the damage can be spread out over multiple turns for a higher total damage, risking overkill in case the target dies earlier. If the caster has a positive life siphon or the target a negative damage reflect, this action will heal the caster.||Power|
|Damage Percentage||Deals damage to the target based on its maximum health, the damage can be spread out over multiple turns for a higher total damage, risking overkill in case the target dies earlier..||Power|
|Kill||Tries to instantly kill the target, the effect can be spread out over multiple turns with a higher total chance to trigger in most cases.||Power, Support|
|Siphon Health||Damages an enemy and heals the caster, even if he has no life siphon statistic.||Power|
|Transfer Damage||Redirects damage from the caster to the target, this can be more than 100% of the damage taken by the caster. CHECK: If multiple targets have an active transfer debuff, the damage will be split between the targets based on their relative strength.||Power, Support|
|Modify||Action Points||Adds or removes action points from an entity. The AP can be given/taken instantly or little by little over time.||Power, Support, additional defense: stability|
|Imbue Damage||Adds additional damage of a specific source to all damaging actions taken by the target based on its dealt damage (e.g. 40% additional air damage for every attack). The strength of the caster determines the amount of imbued damage.||Power, Support (Caster), Power (Target)|
|Imbue Dispel||This imbues all attacks performed by a target with an dispel debuff based on the caster's strength and the damage dealt by the target later on.|
|Imbue Kill||This imbues all attacks performed by a target with an kill action based on the caster's strength and the damage dealt by the target later on.|
|Imbue Statistic||This imbues all attacks performed by a target with an selected debuff based on the caster's strength and the damage dealt by the target later on.|
|Imbue Status||This imbues all attacks performed by a target with an status debuff based on the caster's strength and the damage dealt by the target later on.|
|Statistic||Changes a statistic of a target in a positive or negative way.||Power, Support|
|Status||Inflicts a selected status on the target (Charm, Confuse, Daze, Detaunt, Disable, Fear, Levitate Stun or Taunt). Charm forces an entity to join the caster's team, confused targets have a 50% chance to act against their own allies, dazed entities cannot act but the daze is broken if they receive any damage. Detaunt forbids the target to act against the caster, disable prevents the use of any abilities, feared targets try to maximize their distance from the caster, while levitated entities ignore traps, tiles and impassible terrain (the only positive status to inflict). At last, stun acts similar to daze but cannot be broken by damage and taunted targets are forced to only use attacks that also affect the caster.||Power, Support|
|Steal Statistic||Lowers a specific statistic of the target and adds it for a fixed duration to the caster's. Can only lower a statistic to 0, which potentially also limits the buffing of the caster (you cannot steal something that doesn't exist).||Power, Support|
|Move||Move Self||Executes either a jump or a teleport to the targeted tile (which doesn't trigger movement reactions), always targets the caster.||Power, Mobility (Jump), Aim (Teleport)|
|Move Target||Moves a target in a direction relative to the caster, but can also affect the casting entity allowing to move forward or backward. The movement can also be executed as a jump, ignoring obstacles.||Power, Support, additional defense: Stability|
|Orient||Orients the target towards or away from the caster or the ability's origin.|
|Swap Position||Swaps the positions of the caster and the target. This can lead to abilities targeting the switched entity instead of the original one if used as a reaction.|
|Protect||Absorb Damage||Creates a shield around the target for a fixed duration absorbing a certain amount of damage based on the strength of the action.||Power, Support|
|Guard||Transfers damage from the target to the caster for a fixed duration. The strength determines how much damage is transferred (up to 100%).||Power, Support|
|Heal||Heals an entity taking the healability of the target into account (which can be negative!).||Power, Support (Caster), Healability (Target)|
|Heal Percentage||Heals an entity based on a relative amount of its maximum health and taking the healability of the target into account (which can be negative!).||Power, Support (Caster), Healability (Target)|
|Remove||Dispel/Purge||Removes buffs or debuffs from a target based on the strengths of the caster and the strength of the buffs/debuffs on the target.||Power, Support, potency of buffs/debuffs|
|Purify Tile||Removes traps and tile effects from the board.||Power, Support, potency of buffs/debuffs|
|Transfer Effects||Either passes the caster's current debuffs to the target or steals the target's buffs and adds them to the caster. If and how many buffs/debuffs can be stolen/transferred depends on the potency of the buffs/debuffs and the action's strength.||Power, Support, potency of buffs/debuffs|
|Comparison||Allegiance||Checks whether the caster and the target are in the same team. Costs power, as this allows to avoid friendly fire.|
|HP Comparison||Only triggers when the HP of the target are higher or lower than the caster's.|
|Statistic Comparison||Only triggers when a certain statistic of the target is higher or lower than the caster's.|
|Cumulative||Cum. Ability Activations||Only triggers when a set amount of AP have been spent by the caster before. The spent AP can be stockpiled and are consumed every time the ability is used (and the condition is fullfilled).|
|Cum. Damage Dealt||Only triggers when a set amount of damage of any source has been dealt by the caster before. The damage dealt can be stockpiled and are consumed every time the ability is used (and the condition is fullfilled).|
|Cum. Damage Received||Only triggers when a set amount of damage of any source has been received by the caster before. The damage received can be stockpiled and are consumed every time the ability is used (and the condition is fullfilled).|
|Cum. Healing||Only triggers when a set amount health was restored by the caster before. The damage received can be stockpiled and are consumed every time the ability is used (and the condition is fullfilled).|
|Cum. Kills||Only triggers when a set amount of entites have been killed by the caster before. The kills can be stockpiled and are consumed every time the ability is used (and the condition is fullfilled).|
|Cum. Movement||Only triggers when the caster has moved a set amount of tiles before. The distance moved can be stockpiled and are consumed every time the ability is used (and the condition is fullfilled).|
|Independent||Damage Over Time||Checks whether the target or the caster is currently affected by a damage over time action of a certain threshold. The damage source can also be specified.|
|Has Status||Checks if the caster or the target has a certain status.|
|Heal Over Time||Checks whether the target or the caster is currently affected by a heal over time action of a certain threshold.|
|Health Threshold||Checks whether the target's or the caster's is currently in a defined, percental range.|
|Is Summoned||Checks if the target is a summoned entity. Can be specified to only work with the caster's summons.|
|Last Move Distance||Is only true if the caster moved a specific amount of tiles this turn.|
|Statistic Threshold||Checks if one of caster's primary or secondary statistics is above or below a certain threshold.|
|Random||Chance||Adds a random chance to trigger.|
|Spatial||Environmental Surroundings||Checks if the caster or the target is next to an object, a corner or a wall.|
|Number of Target||Checks if there are at least 2 or more targets (filtered by allegiance) in the AoE of the ability.|
|Position Relative to Target||Checks whether the caster is at the front, flank or back of the target.|
|Surrounding Entities||Cheks if the caster or the target is surrounded by a given minimum or maximum number of allies, enemies or both.|
|Ability||On Ability Activation||Reacts to activated abilities which can be filtered by the allegiance of the caster and the sort of ability (hostile, damaging, beneficial) casted.|
|On Statistic Change||Reacts to statistic changes by buffs or debuffs a specified entity (including the caster, allowing for allegiance filters).|
|On Status Effect||Reacts to a status effect inflicted on a specified entity (including the caster, allowing for allegiance filters).|
|Encounter||On Turn Reaction||Reacts when the caster or an enemy starts its turn.|
|Health||On Damage||Reacts when a certain percental amount of damage has been dealt to a specific entity.|
|On Death||Reacts when a specified entity just died.|
|On Death's Door||Reacts when a specified entity is about to die. These reacts can potentially save the entity from dying.|
|On Heal||React to a heal action being performed by or on a specified entity.|
|On Health Threshold||React when a specified entity lowers or raises another entity's health below/above a certain percental threshold.|
|Movement||On Movement||Reacts when a specified entity starts moving or moves inside the range of the ability.|
|On Orientation||Reacts to a specified entity having a set orientation relative to the caster (e.g. turning its back on the caster).|
|On Positioning||Reacts when a specified entity moves or begins to move in, within or out of the caster's relative position (the front/flank or back of the caster).|
The Cosmetic Part
At last (or maybe right at the beginning), you will want to choose a nice image for your ability to be displayed on the card (and possibly on all trap or tiles placed by the ability) and select an animation (which is a must, except for passives).
You can select any of the standard images or import your own right away (for fair use of third party media)! If the picture chosen for your ability is too big to fit, you can drag & drop it in this menu to adjust its positioning. You can choose an animation right below the image settings (or go and create a new one) and check right away if it looks good by clicking [Play Ability Media] in the lower right menu.
At last, you can also select the color of the card's trim and border to add a personal touch.
Tips & Tricks
Things to Keep in Mind
- When creating abilities for new enemies, remember to set their power level correctly during preview. You don't have to worry about a novice entity not being able to use your elite-rank ability efficiently, but you also don't want to wonder why your perfectly balanced stun attack suddenly doesn't work anymore if used by an adept. Additionally, enemies can have additional strengths and weaknesses based on their rank which you might want to check.
- Granted abilities may not profit as much from limited uses as normal abilities do, but they are still empowered. If you plan on creating an ability specifically for getting granted, you might want to add limited uses.
- Stolen statistics remain even if the target has already died, this can be useful when targeting dying allies or allied summons as these do not apply their defense/resistance against the action, allowing for an easy net increase in party power. Same goes for transferred debuffs.
- A lot of conditions do not work together with negatives if there positive effects are also part of the ability. This is to prevents creating too strong supporting abilities with easy to avoid drawbacks. If the system prevents you from saving your new ability, check your conditions and try to remove negatives.
- Most self-inflicted negatives for range 0 abilities are very weak and might not fit with your idea (e.g. a self-destruct that will trigger a kill status in 3 turns). It is currently possible to trick the system using reactions: A reaction with range 0-1 and the target setting <self> can inflict much greater negatives than normally possible (tested for PCs and the kill-status).
- If you're not happy with how the AI handles some of your abilities, you can try to turn them into commands and reactions. For example, when using an attack including a <orient away> and another attack which only works on the back on the target, the AI might always go for the back shot right away, wasting AP on movement instead of using the first ability. Turning the backshot into a command <When an enemy turns their back on you> might help.
- Picking a nice animation for charging abilities might be tricky sometimes, because the charge animation is currently based on the first few dozens frames of the animation. This might lead to strange results if using fast moving, jumping casting animations like the smoke bomb (the entity wobbles wildly in midair all the time while charging).
- Debuffing SELF in an ability can be used to reduce AP cost or cooldown etc. While not powering down the ability as much, Debuffing yourself basically strengthens the rest of the ability most of the time to balance it.