Pokemon Type System – MV Plugin

      4 Comments on Pokemon Type System – MV Plugin

This is a Plugin that adds the Pokemon Types system into your game.

You can assign certain Elements to your Actors and Enemies, and you can set up a list of Elements that are Super Effective or Not Very Effective per each Element in your game.

Look at the code or download the Plugin:

Here is the Help file:


To start off, let’s address exactly what this Plugin does.

– Set Actors and Enemies to have Elements (types) assigned to them.

– Have Skills/Items be Super Effective or Not Very Effective
based on whether their damage’s Element and the Elements of
the target.

– Add bonus damage to Skills/Items that has a damage Element
as one of the user’s Elements. (also known as STAB)

– Manipulate the Battlelog depending on whether a Skill/Item
was Super Effective, Not Very Effective, etc…

Setting up the Parameters

When setting up the Parameters, you’ll be setting up how the Element
will affect the damage when that specific Element is used as a part
of an offensive Skill/Item.

For example, let’s say we have Element ID 3.

If you set the Parameter “E3 Super Effect” to:

4, 6, 8

then when a Skill/Item has Element 3 set as their damage’s Element, it
will be Super Effective and do double damage if the target has
either 4, 6, or 8 as one of their Elements.

If they have multiple of those as their Elements, then the damage
boost will stack.
(ex: x2, x4, or x8 with 1, 2, or 3 weaknesses respecitively)

The same applies to “E# NotVery Effect”, only it will be
Not Very Effetive and do half damage.
(Once again, this will also stack from 0.5, 0.25, 0.125, etc…)

If a target has two elements, one which a Skill/Item is Super Effective
against, and one which that same Skill/Item is Not Very Effective
against, then the two effects will cancel out and it will do normal

If a Skill/Item’s Element has No Effect on one of the target’s Elements,
then it will always to zero damage.

Battelog Messages

Set up the Battlelog messages in the Parameters.

x4 will apply to x4 and above.
x0.25 will apply from x0.25 to zero.

If you leave the Parameter blank, that specific message will not
be used.


Notetags for Actors, Enemies, and States:

Replace x and y with the element ids you wish for the Actor or Enemy
to have. You can have as many Elements assigned as you wish.
(However, Pokemon games only give Pokemon a maximum of 2 Types).

You may also input the name of the Element as opposed to the Element ID.

Here are some examples:

If you choose to use the element names, be sure to use the exact
capitalization used when inputting them into the Database!

=== States ===
If you use this Notetag in a State, then that State’s Elements will be
added to the afflicted’s Elements.

If State ID 3 had Element ID 4 assigned to it,
then all Actors/Enemies with State ID 3 will have Element ID 4 added to
their list of Elements assuming it is not there already.

Implementing this Plugin’s Default Elements (Types)

If you wish, you can quickly add all of the Elements from this Plugin
into your game by replacing the “elements” array within the
System.json file within the /data folder with this:

[“”, “Normal”, “Grass”, “Water”, “Fire”, “Electric”, “Bug”, “Fighting”, “Flying”, “Ice”, “Rock”, “Ground”, “Steel”, “Poison”, “Psychic”, “Ghost”, “Dark”, “Dragon”, “Fairy”]

Watch my tutorial on this Plugin if you wish to see how it can be done.

Otherwise, you can input them manually from this list:

1 – Normal
2 – Grass
3 – Water
4 – Fire
5 – Electric
6 – Bug
7 – Fighting
8 – Flying
9 – Ice
10 – Rock
11 – Ground
12 – Steel
13 – Poison
14 – Psychic
15 – Ghost
16 – Dark
17 – Dragon
18 – Fairy

This list is also what all of the default Parameter values are based
off of.

4 thoughts on “Pokemon Type System – MV Plugin

  1. Nicholas Fletcher

    I know this is no longer supported, but I just found and fixed a major bug (instant crash upon resolving any elemental attack), so I’m sharing it here for everyone (since there isn’t a good replacement out there yet).

    Lines 480-490 (as downloaded) read as follows:

    for(var i = 0; i < notVeryEffective[atkElement].length; i++) {
    if(defElements.contains(String(notVeryEffective[atkElement][i]))) {
    effectiveness -= 1;

    for(var i = 0; i < noEffect[atkElement].length; i++) {
    if(defElements.contains(String(SRD.PKM.TypeSystem.noEffect[atkElement][i]))) {
    result = 0;

    They need to be:

    for(var i = 0; i < SRD.PKM.TypeSystem.notVeryEffective[atkElement].length; i++) {
    if(defElements.contains(String(SRD.PKM.TypeSystem.notVeryEffective[atkElement][i]))) {
    effectiveness -= 1;

    for(var i = 0; i < SRD.PKM.TypeSystem.noEffect[atkElement].length; i++) {
    if(defElements.contains(String(SRD.PKM.TypeSystem.noEffect[atkElement][i]))) {
    result = 0;

  2. Maker Man

    I would like it if you could give armor the notetags to change an actor’s type(s) (weapons would be cool to, but I only want the notetags to work for the armors).


Leave a Reply

Your email address will not be published. Required fields are marked *