Adding in a new type
This tutorial was written by LaDestitute. Please give credit.

This tutorial is related to the following pages:

Click here for more tutorials!


This is a tutorial on how to add a new type. I will use the new Fairy type from the Generation VI games (Pokemon X and Y) as an example. You can also use this tutorial to add completely original fakemon types (such as the Data or Sound types), as long as the general instructions are followed.

This tutorial also assumes we will not be adding the Shadow type (from the Pokemon Colosseum games), so if do add the Shadow type before Fairy instead, have the Shadow type come before Fairy (as type number 18, so Fairy's type number will be 19), and have the Shadow type's graphics come before the Fairy type's graphics.

In this tutorial, the reader will be shown how to:

  • Add the Fairy type
  • Change the types of some existing Pokemon
  • Change the type of some existing moves to Fairy
  • Have the type show up in the Pokedex, be searchable, etc
  • Add a new Fairy type move (from Gen VI)
  • Add a new Fairy type Pokemon (from Gen VI)

Adding the type in types.txt

Open up where your project is stored. Open up the sub-folder named PBS and open the text file named types.txt. This is where we will define the type, as well as update the type system to Gen VI.

This is the Fairy type, which should then look like:


A note or two, the IsSpecialType parameter isn't really necessary for games being made post Gen IV style, but we should include it for sake of completion/just in case, as most Fairy types from the official games have high special attack and special defense as their best non-HP base stats.

Also, as noted earlier, these are types we need to update to Gen VI's type system. You will need to go into each type, and update each of their individual weaknesses, resistances, and immunities. I will only go over the ones not mentioned in Fairy's definition (use that as a guide to update the rest of the types), so: The Fire type is resistant to the Fairy type, and Steel now has normal resistance to the Ghost and Dark types, Just for clarification, compared to Gen V where the Steel type had resistance to the Ghost and Dark types, or x0.5.

Modifying the graphics

Next, we need to modify three graphics in order to have the type's icon show up correctly in-game, which are the battleFightButtons.png, pokedexTypes.png, and types.png. Since we are not using the Shadow type here, the Fairy type's graphics will replace the Shadow type's graphics (so, have it be the last type graphic in each image instead of the Shadow type). Example graphics you can use for adding the Fairy type's icons will be provided, and make sure to copy one of the existing types in all of the three type images, so you can get the correct sizing for it. An image of the completed types.png file will be shown, so you can get an idea if you did it right.


The example type icons


The example types.png file, when completed

Changing existing Pokemon and moves

Changing the type of existing Pokemon

Next, we will change the type of some existing Pokemon. Open up the pokemon.txt file in the PBS folder, and use the search function (in Notepad or whatever you use to edit the pbs txt files) to find the Pokemon we will change the types for.

22 Pokemon that are pure Fairy type or partial Fairy type, as of Gen VI (only Gen V Pokemon, as that's as far as the vanilla pokemon.txt file goes without editing):

  • Clefairy (pure Fairy type)
  • Clefable (pure Fairy type)
  • Cleffa (pure Fairy type)
  • Togepi (pure Fairy type)
  • Snubbull (pure Fairy type)
  • Granbull (pure Fairy type)
  • Togetic (Fairy/Flying)
  • Togekiss (Fairy/Flying)
  • Jigglypuff (Normal/Fairy)
  • Wigglytuff (Normal/Fairy)
  • Mr. Mime (Psychic/Fairy)
  • Igglybuff (Normal/Fairy)
  • Marill (Water/Fairy)
  • Azumarill (Water/Fairy)
  • Ralts (Psychic/Fairy)
  • Kirlia (Psychic/Fairy)
  • Gardevoir (Psychic/Fairy)
  • Azurill (Normal/Fairy)
  • Mawile (Steel/Fairy)
  • Mime Jr. (Psychic/Fairy)
  • Cottonee (Grass/Fairy)
  • Whimsicott (Grass/Fairy)

This is what part of a Pokemon's stats in the pokemon.txt should look like, once you change it:


Or, if it's a dual type like Marill:


Changing the type of existing moves

Next, open up the moves.txt in the PBS subfolder. Three moves that exist as of Gen V are now Fairy type in Gen VI, which are Charm, Moonlight, and Sweet Kiss. Prior to Gen VI, all three moves were Normal type. I'll use Charm as an example of how to edit it:

353,CHARM,Charm,04B,0,NORMAL,Status,100,20,0,00, 0,bce,"The user charmingly gazes at the foe, making it  less wary. The target's Attack is harshly lowered."

Where it says NORMAL (line value number six), change that to FAIRY. Done! Don't forget to do that for the rest of the two moves.

Editing the Pokedex for Fairy types

This part mostly is so that the Fairy type will be able to be searched for correctly when chosen as type 1 or type 2 in the Pokedex's search function. Open up RPG Maker XP's Script Editor for your project, go to the script named PScreen_Pokedex and then line 892, which should look like:


Change it to:


With that changed, the Fairy type should be now searchable in the Pokedex.

Adding new moves and Pokemon that are Fairy type

Adding a new Fairy type move

Next, we will add a new Fairy move, which is Fairy Wind, introduced in Gen VI. Fairy Wind has no addition effects, is a special type move, has an initial max PP of 30, has a base power of 40, and an accuracy of 100. Add a new line below the last move in the moves.txt file, and it should look like this:

560,FAIRYWIND,Fairy Wind,000,40,FAIRY,Special,100,30,0,00,0,bf,"The user stirs up a fairy wind and strikes the target with it."

An image is provided to show which part of the data represents what, such as base power or extra parameters, like does it make contact or not. You can check out the Defining a move page for more info.


A move's data

You will next need to edit the movesets of some Pokemon, so this can appear legitimately in game. A list of Pokemon up to Gen V that naturally learn Fairy Wind by level up:

  • Togetic (Level 14)
  • Hoppip (Level 10)
  • Skiploom (Level 10)
  • Jumpluff (Level 10)
  • Mawile (Level 1)
  • Cottonee (Level 1)

I'll use Mawile's level up moveset from the default pokemon.txt as an example:


Then it should look like:


Adding a new Fairy type Pokemon

Next, we will add a new Fairy type Pokemon to pokemon.txt and add it's associated image and audio files. We will use Carbink from Gen VI as an example, which is a Rock/Fairy type Pokemon. A Pokemon's defined values share a couple of common values with move data, so an image to the right will explain the exclusive values to Pokemon definition data.


A Pokemon's data in pokemon.txt

Add this on a new line after Genesect's last line (which should be the evolutions parameter line):

Pokedex=Born from temperatures and pressures deep underground, it fires beams from the stone in its head.

An image is provided as a walkthrough of what each parameter means, and you can check out the Defining a species page for more info. We will next need to add it's associated graphics and audio files, which are it's four battler graphic files (front and back, normal and shiny variants, four total, and each graphic can be any size), a party/PC box graphic (two 64x64 frames, so one file that is in a 128x64 size), a footprint graphic (32x32), and a soundbite file for it's cry (any file size, mp3 or wav), for seven total files for each Pokemon. You can click here for Carbink's cry soundbite from Pokemon X and Y.


Carbink's graphics

The files are named in the format of:

  • iconXXX.png (the 128x64 two-frame icon)
  • XXX.png (normal front)
  • XXXb.png (normal rear)
  • XXXs.png (shiny front)
  • XXXsb.png (shiny rear)
  • footprintXXX.png (footprint)
  • cryXXX (cry sound, can be wav or mp3)

The 128x64 two-frame icon goes in Graphics/Icons, battler graphics go in Graphics/Battlers, the footprint graphic goes in Graphics/Icons/Footprints, and the cry soundfile goes in Audio/SE. You should probably just make Carbink's footprint graphic completely empty (all transparent), as it's a floating Pokemon, and if you add any Pokemon after Carbink, and if they're from Pokemon X and Y, be sure to resize their party icons by 150% or so, as I've noticed that X and Y's party icons are apparently much smaller than the usual size for Pokemon party icons in Pokemon Essentials.

Now that we have all the files in, we need to setup a way to encounter the Pokemon, there are two primary methods, with provided examples: You can have it given to the player via an event, a wild encounter (defined in encounters.txt) or using the debug menu to give it. You should use the former two options for actual gameplay, and the latter for testing if you just want to see it quickly.


An example of a Pokeball event



There, you've been shown how to add a new type, change existing data (Pokemon and moves), as well as add new moves and Pokemon that are that type!


A wild Carbink appeared!


For easier reference you can download the patch here.