IRC Battle Simulator

Hello and welcome to my (DragonKnight) tutorial on how to use my Battle Simulator script on IRC. This script is a fully functional Generation IV (soon to be V!) simulator and acts exactly as the game would. It stores all inputted teams on my computer in a .ini file and retrieves them during battle. All Pokémon are at level 100, and this cannot be changed. Also, genders have not been implemented into this script, so moves like Attract do not exist. The following is a list of Pokémon moves that are not included in this script:

  • Attract
  • Follow Me
  • Helping Hand
  • Sketch
  • Teleport

Throughout this tutorial, I will be showing an example of how to create an Infernape on a team called "OU" on this script, which will use all of the optional inputs. The Infernape, when finished, will look something like this:

 
Types:
Fire Fighting
Ability:
Blaze
Held item:
  Life Orb
Infernape Lv.100
Close Combat
Fighting Physical
Fire Blast
Fire Special
Grass Knot
Grass Special
Hidden Power
Ice Special

Making your Team

For all team editing with this script, the basic syntax is:

/msg DragonKnight MyTeam Team Name Type of Input Slot Input

Where underlined text is a parameter.

The Type of Input parameter can be one of ten words:

Pokémon Pokemon Item

IVs EVs Nature

Ability Moves View

Delete

Pokémon

Basic syntax:

/msg DragonKnight MyTeam Team Name Pokémon/Pokemon Slot Pokémon Species

This will set the Pokémon species of the specified team to the specidied species. The script connects to Smogon to make sure that what you inputted is a real Pokémon, so do not try to enter anything else. For our Infernape, we will use one of the following commands (It does not matter which):

/msg DragonKnight MyTeam OU Pokémon 1 Infernape

/msg DragonKnight MyTeam OU Pokemon 1 Infernape

After doing so, my script should automatically sent you a notice that will look something like the following:

-DragonKnight- Pokémon of slot 1 of OU set to Infernape.

That is about it. Thing to note:

 1.) Setting a Pokémon removes all abilities, moves, and power points previously stored in that slot.
 2.) Setting a Pokémon also sets its IVs to all 31 and its EVs to all 0.

Item

Basic syntax:

/msg DragonKnight MyTeam Team Name Item Slot Item

This will set the held item for the Pokémon stored on the specified slot. The script connects to Smogon to make sure that what you inputted is a real Pokémon item, so do not try to enter anything else. For our Infernape, we will use the following command:

/msg DragonKnight MyTeam OU Item 1 Life Orb

After doing so, my script should send you back a notice:

-DragonKnight- Item of slot 1 of OU set to Life Orb.

That is about it.

IVs

Basic syntax:

/msg DragonKnight MyTeam Team Name IVs Slot HP IV Atk IV Def IV SpA IV SpD IV Spe IV

This will set the IVs for the Pokémon stored in the specified slot. The script does check to make sure that all inputted values are between 0 and 31. The only time you will really need to use this command is when you make a Pokémon that uses Hidden Power, because the IVs for all Pokémon default to all 31 when created. Since our Infernape does run Hidden Power, we will use this command:

/msg DragonKnight MyTeam OU IVs 1 31 30 30 31 31 31

These IVs will provide our Infernape with Hidden Power Ice, base power 70. The return message should look like this:

-DragonKnight- IVs of slot 1 of OU set to 31 30 30 31 31 31.

Note: If you set this before setting the Pokémon in the specified slot, your input will be overwritten with the default settings upon creation.

EVs

Basic syntax:

/msg DragonKnight MyTeam Team Name EVs Slot HP EV Atk EV Def EV SpA EV SpD EV Spe EV

This will set the EVs for the Pokémon stored in the specified slot. The script does check to make sure that all inputted values are between 0 and 255 and that the sum of all inputted values is less than or equal to 510. For our Infernape, we will use the following command:

/msg DragonKnight MyTeam OU EVs 1 0 64 0 252 0 192

This will set the EVs and trigger the following return message:

-DragonKnight- EVs of slot 1 of OU set to 0 64 0 252 0 192.

Note: If you set this before setting the Pokémon in the specified slot, your input will be overwritten with the default settings upon creation.

Nature

Basic syntax:

/msg DragonKnight MyTeam Team Name Nature Slot Nature

This will set the nature for the Pokémon stored in the specified slot. The script checks to make sure that the inputted string is a legal Pokémon nature and assigns it to the specified slot. For our Infernape, we will type:

/msg DragonKnight MyTeam OU Nature 1 Naive

The script will send you the following message:

-DragonKnight- Nature of slot 1 of OU set to Naive.

That is about it.

Ability

Basic syntax:

/msg DragonKnight MyTeam Team Name Ability Slot Ability

This will set the ability for the Pokémon stored in the specified slot. The script connects to Smogon to make sure that the Pokémon in the specified slot can legally obtain the inputted ability. For our Infernape, we will type:

/msg DragonKnight MyTeam OU Ability 1 Blaze

The script should send you mack a notice saying:

-DragonKnight- Ability of slot 1 of OU set to Blaze.

And that is it. Things to note:

 1.) You cannot set an ability for a slot that does not yet have a Pokémon stored in it.

Moves

Basic syntax:

/msg DragonKnight MyTeam Team Name Moves Slot Move 1, Move 2, Move 3, Move 4

This will set a moveset for the specified slot. The script will connect to Smogon to make sure that the Pokémon stored in the specified slot can learn all four of the inputted moves. For our Infernape, we will use:

/msg DragonKnight MyTeam OU Moves 1 Close Combat, Fire Blast, Grass Knot, Hidden Power

We should get in return:

-DragonKnight- Moveset of slot 1 of OU set to Close Combat, Fire Blast, Grass Knot, Hidden Power.

That is it. Things to note:

 1.) You cannot set a moveset for a slot that does not yet have a Pokémon stored in it.
 2.) You must use a comma immediately after each move followed by a space.

View

Basic syntax:

/msg DragonKnight MyTeam Team Name View Slot

This command will show you the Pokémon and all of its accessories stored in the specified slot. To make sure that you filled in everything correctly, I recommend that you use this to check your work after completing each Pokémon. To view our finished Infernape, we will type:

/msg DragonKnight MyTeam OU View 1

In return, we should recieve the following seven notices:

-DragonKnight- Slot 1: Infernape @ Life Orb

-DragonKnight- Blaze, Naive

-DragonKnight- 31 30 30 31 31 31 / 0 64 0 252 0 192

-DragonKnight- ~ Close Combat

-DragonKnight- ~ Fire Blast

-DragonKnight- ~ Grass Knot

-DragonKnight- ~ Hidden Power

Now you're done with Infernape! To complete your team, repeat this process for all six Pokémon, making sure to change the slot parameter for each one. There is one final command that you can use, also: Delete.

Delete

Basic syntax:

/msg DragonKnight MyTeam Team Name Delete

This command will delete your entire team. It is useful for old teams that you do not use anymore. If we wanted to delete our OU team with our Infernape, we would type:

/msg DragonKnight MyTeam OU Delete

This will erase the entire team, and send you the following notice:

-DragonKnight- Your team OU has been deleted.

Using your Team

After you complete your team, you can use it in a battle! To initiate a battle, type:

!Battle Nickname

This will challenge the specified nickname to a battle, which they can choose to accept or decline. If someone challenges you to a battle, you can accept or decline by typing one of the following:

/msg DragonKnight Accept

/msg DragonKnight Decline

Now, let the battling begin! Things to note:

 1.) The Nickname parameter is case sensitive.

From here, you can follow the built-in instructions to battle with your Pokémon. I hope you can all enjoy this script and tell your friends about it, too!