Skip to main content

Move System

MCE includes 668+ moves out of the box, covering Physical, Special, and Status categories. This guide explains how moves work, how to browse and assign them, and how to create new ones.

Move Categories

Every move belongs to one of three categories:

CategoryDescriptionUses Stat
PhysicalMakes physical contact with the targetAttack vs Defense
SpecialRanged or elemental attackSp. Attack vs Sp. Defense
StatusDoes not deal direct damage; applies effectsN/A

The category determines which stats are used in the damage formula. Physical moves use the attacker's Attack against the defender's Defense; Special moves use Special Attack against Special Defense.

Move Properties

Each Move ScriptableObject has the following fields:

FieldDescription
NameDisplay name (e.g., "Thunderbolt")
TypeThe move's type (Electric, Fire, etc.)
CategoryPhysical, Special, or Status
PowerBase damage power (0 for Status moves)
AccuracyHit chance as a percentage (0-100, or -1 for "always hits")
PPPower Points -- how many times the move can be used before resting
PriorityTurn order priority (-7 to +5). Higher priority moves go first regardless of Speed
TargetWho the move hits: single opponent, all opponents, self, ally, all, etc.
ContactWhether the move makes physical contact (relevant for abilities like Static)
EffectSecondary effect (stat change, status condition, flinch, etc.)
Effect ChanceProbability of the secondary effect occurring (0-100%)

Damage Formula

MCE uses the Gen V+ damage formula:

Damage = ((2 * Level / 5 + 2) * Power * A / D) / 50 + 2

Where:

  • Level = attacker's level
  • Power = move's base power
  • A = attacker's effective Attack or Sp. Attack (including stat stages)
  • D = defender's effective Defense or Sp. Defense (including stat stages)

This base damage is then multiplied by a chain of modifiers:

Final = Base * Random * STAB * TypeEffectiveness * Critical * OtherModifiers
ModifierValue
Random0.85 - 1.00 (random factor)
STAB1.5x if move type matches attacker type
Type Effectiveness0x, 0.25x, 0.5x, 1x, 2x, or 4x
Critical Hit1.5x (ignores negative Attack stages and positive Defense stages)
Weather1.5x or 0.5x for certain type/weather combinations
AbilitiesVariable (e.g., Adaptability changes STAB to 2x)
ItemsVariable (e.g., Life Orb = 1.3x)

Browsing Moves

Use the Database Browser to explore all available moves:

MCE > Tools > Database Browser

The browser lets you:

  • Search moves by name.
  • Filter by type, category, or power range.
  • View all properties of a selected move.
  • Jump to the move's ScriptableObject for editing.

Assigning Moves to Monsters

Moves are assigned to monsters through the MonsterEntry ScriptableObject:

Level-Up Moves

Each entry in the level-up moveset pairs a level with a move:

Level 1:  Tackle
Level 1: Growl
Level 7: Ember
Level 10: Smokescreen
Level 16: Fire Fang
Level 22: Flame Burst
Level 30: Flamethrower

A monster learns these moves automatically when reaching the specified level. If a monster is caught or generated at a level higher than some of its level-up moves, it will know the most recent 4 moves from its level-up list.

TM/HM Compatibility

A list of Move references indicating which TM and HM moves the species can learn. The player uses TM/HM items from the bag to teach these moves.

Egg Moves

Moves that can only be obtained through breeding. The offspring inherits egg moves from its parents if the parents know those moves.

Tutor Moves

Moves taught by NPCs in-game (typically for a cost or after meeting a condition).

Creating a New Move

  1. Right-click in your Project window: Create > OpenMon > Move.
  2. Name the asset (e.g., ThunderClaw).
  3. Configure all fields in the Inspector:
Name: Thunder Claw
Type: Electric
Category: Physical
Power: 75
Accuracy: 95
PP: 15
Priority: 0
Contact: true
Effect: May paralyze target
Effect Chance: 30
  1. Assign it to monsters' level-up, TM, egg, or tutor movelists.
Move Naming

Follow a consistent naming convention. The included moves use natural English names. Keep custom move names concise (1-3 words) and evocative of their type and effect.

Move Effects

Many moves have secondary effects beyond dealing damage:

Stat Changes

Move: Swords Dance
Category: Status
Effect: Raises user's Attack by 2 stages

Status Conditions

Move: Thunder Wave
Category: Status
Effect: Paralyzes the target
Accuracy: 90

Multi-Hit Moves

Some moves hit 2-5 times per turn (e.g., Fury Attack). The number of hits is rolled randomly with weighted distribution.

Recoil Moves

The attacker takes a percentage of the damage dealt as recoil (e.g., Double-Edge deals 33% recoil).

Priority Moves

Moves with positive priority always go first in a turn:

PriorityExamples
+5Helping Hand
+3Fake Out
+2Extreme Speed
+1Quick Attack, Aqua Jet, Mach Punch
0Most moves
-1Vital Throw
-3Focus Punch
-5Counter, Mirror Coat
-6Whirlwind, Roar
-7Trick Room

Weather Moves

Some moves change the battlefield weather (Rain Dance, Sunny Day, Sandstorm, Hail), which affects damage multipliers and enables certain abilities.

Move Slots

Each monster can know up to 4 moves at a time. When learning a 5th move, the player must choose which existing move to replace. This is handled automatically by the UI -- the move learning screen appears and lets the player pick.

The MoveSlot class tracks:

  • The Move reference.
  • Current PP remaining.
  • PP Ups applied (increases max PP by 20% each, up to 3).

PP Management

  • Each move has a base PP value.
  • PP decreases by 1 each time the move is used.
  • When PP reaches 0, the move cannot be used until restored.
  • PP is restored by resting at a healing location, using PP-restoring items (Ether, Elixir), or specific abilities.
  • If all moves reach 0 PP, the monster uses "Struggle" (typeless, deals recoil).

Move Animations

Each move can have an associated animation that plays during battle:

  • Pre-animation: Effect on the user (charging, glowing).
  • Attack animation: The projectile or impact effect.
  • Hit animation: Effect on the target (flash, shake).

Animations are configured per-move and can be customized by adding animation prefabs to the move's ScriptableObject.

Best Practices

  1. Balance power vs accuracy vs PP. High-power moves should have lower accuracy or PP to create meaningful choices.
  2. Give every type a range of moves. Each type should have Physical, Special, and Status options.
  3. Consider move distribution across species. Not every monster should learn the best moves.
  4. Test effect chances. A 100% flinch move with high speed would be extremely overpowered.
  5. Use the Database Browser to check for gaps in your move coverage before release.