For how to define a move, see Defining a move.
For the effects of moves, see Move effects.
For what moves look like when they are used, see Attack animations.
For information about moves which can be used in the overworld, see Using moves outside battle.

This page provides a general overview of how moves work in the game.

Moves known by a Pokémon

Moves known by a Pokémon are stored in the array pkmn.moves. Each move is a "PBMove" object, and this array contains exactly 4 moves.

A move object contains the following information:

  • ID number of the move (the same as the value PBMoves::TACKLE).
  • Current PP amount.
  • The number of PP Ups used on the move (a PP Max is the same as 3 PP Ups). Each one increases the total PP by 20% of the original total PP.

A move ID of 0 means "no move". The first move is pkmn.moves[0], the second is pkmn.moves[1], and so forth. pkmn.numMoves is how many moves the Pokémon knows.

The maximum number of PP Ups that can be used on a move is limited only by the effects of the PP Up and PP Max items themselves. There is no such limit in the move object's code.


  • You could let moves be "upgraded" by some means during the game, such as by increasing their base damage or the probability of their additional effects. The PP Up item is an existing feature which upgrades moves; you can just expand on that concept. Your upgrades don't have to be caused by items, of course.