Modding Move Effects
This page details the ways to achieve move effects, such as modifying damage, status changes, etc. This can be done through the Skill Editor, found in the Data tab of the Dev Mode panel.
It only covers the effect of moves. Other battle factors such as statuses, abilities, and held items can be found in the page for Modding Passive Effects
All of this can be achieved by editing the Data of a move.
Overview
Skill Data has several elements that can be edited. These control the stats of the move, its typing, etc.
To achieve the special effects that Pokemon moves are known for, you will need to insert events into Battle Event lists like Before Hits
, On Hits
, etc.
The BattleData Reference has the full documentation.
Effect Priority
Battle Events added to event lists each have a priority. This determines in what order these effects execute: The lower the number, the earlier it executes. Priority can also be subdivided.
It may seem straightforward in this image that damage will happen first, and additional effect will happen second. However things get more complicated when you factor passive effects from other sources, such as an enemy having the ability Static, or yourself holding a King's Rock. All of these battle events will need to be shuffled together, and priority ensures they all land in the correct order. PMDO has a specific way of numbering events that must be adhered to when modding the game, but if one were to create a new game with completely new moves and abilities, they could choose how to number everything.
Inflicting Damage
To inflict damage, you will need to add a Power
state to Skill States, which will contain the base power of the move. Then, you will need to add a Damage Formula Event
to On Hits at priority -1.
Fixed Damage
To inflict fixed damage, or specially calculated damage you will need to use a Battle Event other than Damage Formula Event
. Some examples include:
LevelDamageEvent
: Does damage based on the user's level.CutHPDamageEvent
: Cuts the target's HP in half.MaxHPDamageEvent
: Does damage based on the target's max HP.
There are several others; consult the BattleEvent Reference for full details.
Additional Effects
To apply additional effects that occur after a damaging move hits, add an Effect Chance
to Skill States, which contains the chance that the additional effect will trigger. Then, add an Additional Event
event to On Hits at priority 0. What effect you apply depends on what Battle Event you add to the Additional Event
's Battle Events variable.
Chance of Status
To inflict a status effect, add a Status Battle Event
.
- Choose the status you want with Status ID.
- Checkmark Affect Target so that it's given to the target (not the user!)
- Checkmark Silent Check so that if the target is immune to the status, it doesn't emit a battle message that says so.
Chance of Stat Change
To apply a stat change as an additional effect, add a Status Stack Battle Event
. This should also be done for other stackable statuses, if you make any.
- Choose the exact number of stat levels you want to raise or drop with the Stack variable.
- Choose the status you want with Status ID.
- Checkmark Affect Target so that it's given to the target (not the user!)
- Checkmark Silent Check so that if the target is immune to the status, it doesn't emit a battle message that says so.
Chance Effect on User
To make additional effects apply on the user, you can change the Affect Target variable as covered in the two above sections. However, this will cause the additional effect to potentially trigger once for every target hit by the move! An example of this is PMD's implementation of Ominous Wind, which could trigger once on every hit.
If you only want it to trigger once after all targets have been hit, create an Additional End Event
in After Actions, and add the desired effect to its Base Events list. An example of this is PMDO's Ominous Wind, which can only trigger once per use.
Multiple Effects at Once vs. Multiple Possible Effects
Additional Event
and Additional End Event
, when they activate, will only pick ONE event in their Battle Event list out of all possible options. An example of this in action is Tri-Attack, which has a 50% chance of activating an additional effect, and that additional effect is picked out of a list of Freeze, Burn, and Paralysis.
If you want to apply multiple effects at once, add a Group Event
and within that event, add all the desired status/stat change events there. An example is Ominous Wind, which raises multiple stats at once if its additional effect is triggered.
Other Move Flags
Use the Skill States list to add flags for if a move makes contact, is sound based, is a healing move, etc.
These will be picked up on by all the abilities that need them, such as contact abilities, Soundproof, etc.
Hit Critical Hit Moves
To give the move a custom Critical Hit rate, add a Boost Critical Event
to the On Actions list at priority 0.
Non-Damaging Status Moves
Unlike damaging moves, Status moves do not need to use Power
or Effect Chance
, and can apply their effects directly.
Status Conditions
To apply a status condition, add a Status Battle Event
to On Hits at priority 0.
- Choose the status you want with Status ID.
- Checkmark Affect Target so that it's given to the target instead of that user. To affect the user, simply make the move itself target the user.
- Silent Check should be left unchecked so that if the target is immune to the status, it doesn't emit a battle message that says so.
Stat Changes
To apply a stat change, add a Status Stack Battle Event
to On Hits at priority 0. This should also be done for other stackable statuses, if you make any.
- Choose the exact number of stat levels you want to raise or drop with the Stack variable.
- Choose the status you want with Status ID.
- Checkmark Affect Target so that it's given to the target instead of that user. To affect the user, simply make the move itself target the user.
- Silent Check should be left unchecked so that if the target is immune to the status, it doesn't emit a battle message that says so.
Weather/Terrain
To change the weather or apply a terrain, add a Give Map Status Event
to On Hits at priority 0. This should ideally be put on a move that targets No One to ensure it cannot be subjected to Snatch or other redirecting moves.
- Choose the map status you want with Status ID.
- Map statuses can include things like Trick Room and Gravity. However, if your map status is classified as a weather you should include an
Extend Weather State
in the States variable to allow it to be affected by Weather Rock and other similar effects.
Hitting Tiles
Destroying Items
Destroying Terrain
Laying Traps
Healing
Displacements
Knockback/Throw/Displacements
Further Reading
The list of effects on this page is not exhaustive and there are many more effects such as increased damage on targets under certain conditions (Brine), variable basepowers (Eruption/Water Spout), etc.
For a full list of BattleEvents you can use, check the BattleEvent Reference.
Effects can get very specific, and sometimes you may want to make your own. You can make your own BattleEvents using ScriptedBattleEvent.