Modding Move Effects: Difference between revisions
Damages |
effects and crits |
||
Line 19: | Line 19: | ||
[[File:SkillEditor_Priority.png|frameless]] | [[File:SkillEditor_Priority.png|frameless]] | ||
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. | 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 == | == Inflicting Damage == | ||
Line 37: | Line 37: | ||
== Additional Effects == | == Additional Effects == | ||
To apply additional effects that occur after a damaging move hits, add an <code>Effect Chance</code> to Skill States, which contains the chance that the additional effect will trigger. Then, add an <code>Additional Event</code> event to On Hits at priority 0. What effect you apply depends on what Battle Event you add to the <code>Additional Event</code>'s Battle Events variable. | |||
=== Chance of Status === | |||
To inflict a status effect, add a <code>Status Battle Event</code>. | |||
* 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 === | === Chance of Stat Change === | ||
To apply a stat change as an additional effect, add a <code>Status Stack Battle Event</code>. 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 === | === 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 <code>Additional End Event</code> 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 === | |||
<code>Additional Event</code> and <code>Additional End Event</code>, 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 <code>Group Event</code> 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 == | == 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 == | == Hit Critical Hit Moves == | ||
To give the move a custom critical hit rate, add a <code>Boost Critical Event</code> to the On Actions list at priority 0. | |||
== Non-Damaging Status Moves == | == Non-Damaging Status Moves == |
Revision as of 04:46, 19 April 2024
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.
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
Status Conditions
Status Changes
Weather/Terrain
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 specfic, and sometimes you may want to make your own. You can make your own BattleEvents using ScriptedBattleEvent.