Essentials Docs Wiki
For NPCs who offer to teach moves or make a Pokémon forget moves, see Special NPCs.

This page describes the various ways in which a Pokémon can learn moves, as well as how to make them forget moves.

Levelling up and evolving

Pokémon attempt to learn moves from their moveset when they level up or evolve. They will only learn moves for the appropriate level(s). Level 0 moves are moves that are learned upon evolving.

The moveset for Pokémon with multiple forms can be defined separately for each of those forms in the PBS file "pokemon_forms.txt".


All moves that can be specially taught to a Pokémon (via TM/TR/HM or Move Tutor) are known as Tutor Moves. The TutorMoves property in the PBS file "pokemon.txt" and "pokemon_forms.txt" define which moves can be taught to a Pokémon in these ways. If a Pokémon can learn a Tutor Move from is level-up moveset, that will have no bearing on whether it can learn the same move via a TM/TR/HM or Move Tutor - TutorMoves will need to include that move if it is to be taught in one of those ways.

The setting TAUGHT_MACHINES_KEEP_OLD_PP determines whether a move taught by TM/TR/HM will be given its full amount of PP or whether it will have no more PP than the move it replaced (if another move was forgotten to learn it). The intent behind this is to prevent abusing infinite-use TMs and HMs to replenish PP forever without healing or using Ethers or similar items.

Move Relearner

This allows a Pokémon to relearn any move in its level-up moveset which could be learnt at the Pokémon's current level or below. This includes moves learned upon evolving ("level 0"). This service is usually provided by an NPC.

The setting MOVE_RELEARNER_CAN_TEACH_MORE_MOVES allows Pokémon to also relearn any moves the Pokémon has ever known. This applies to egg moves that were known upon hatching (including Volt Tackle), moves taught to the Pokémon by a TR, and special moves known by gift Pokémon. These additional moves are stored in the array pkmn.first_moves; any move in this array can be taught to the Pokémon by the Move Relearner if this setting is TRUE.

Move Deleter

This allows a Pokémon to forget any move it currently knows (unless it only knows one move). This is typically only useful for forgetting HM moves, which cannot be overwritten by another move. This service is usually provided by an NPC.

Special methods

Main article: Editing a Pokémon

These include methods that silently teach a Pokémon a move, and are usually used to customise a special Pokémon. They can teach any Pokémon any move with no restrictions.