Terastal: Tera Forms

Section 7.F.2

With the introduction of the Teal Mask and Indigo Disk DLC for Pokemon Scarlet & Violet, new Terastal forms were introduced for Ogerpon and Terapagos, respectively. These unique forms are only accessible when these species Terastallize.

These are the only two Pokemon who have these Terastal Forms, however it's possible to make your own forms if you'd like.

In this subsection, I'll briefly walk through an example of creating a Pokemon with a custom Terastal form.


Creating a Terastal Form

To make a Terastal form, you'll need to set up several things. First, you need to actually create your form. Let's make a Terastal form for Charizard, since it's kinda shocking that Game Freak hasn't already made one for it. For the sake of example, let's make this Terastal form use form 4.

So in pokemon_forms.txt, we would enter our new Terastal form for Charizard. This form can have whatever properties you want, like any other form would. Different stats, different typing, etc. To allow Charizard to actually enter this form when Terastallizing however, we'll need to code our own Multiple Forms handler.

To do so, you can open your Essentials script and place this at the bottom of the FormHandlers section.

MultipleForms.register(:CHARIZARD, {
  "getTerastalForm" => proc { |pkmn|
    next 4
  },
  "getUnTerastalForm" => proc { |pkmn|
    next 0
  }
})
  • The "getTerastalForm" key determines which form Charizard will transform into when it Terastallizes. The line next 4 makes it so in this scenario, Charizard will change into form 4 when it Terastallizes, which is the form that we entered in pokemon_forms.txt.

  • The "getUnTerastalForm" key determines which form Charizard should revert to once Terastallization ends. The line next 0 makes it so in this scenario, Charizard will revert to its base form when it leaves the Terastal state.

Now, whenever Charizard Terastallizes, it'll transform into its Terastal form. This is a very simplistic example, but it gets the idea across. You can expand upon this from here and make something far more complex with multiple different Terastal forms if you wish, like how Ogerpon works.

Important! If the species you want to make a Terastal form for already has an existing multiple forms handler elsewhere, the two handlers may overwrite one another. You can't have more than one handler for a single species at a time. Use CTRL + F to search the FormHandlers script for the species you want to make a form for first, to make sure an existing handler isn't already present.

If a handler does already exist, you'll have to add your Terastal form keys to the existing handler, instead of making a new one.


Pokedex Data Page Compatibility

The Pokedex Data Page plugin allows for Terastal Forms to have unique displays in the data page of the Pokedex. If you'd like your custom Terastal Form to be displayed in this way too, you can add an additional key to the form handler. Let's build off of the example above to demonstrate this.

MultipleForms.register(:CHARIZARD, {
  "getTerastalForm" => proc { |pkmn|
    next 4
  },
  "getUnTerastalForm" => proc { |pkmn|
    next 0
  },
  "getDataPageInfo" => proc { |pkmn|
    next [pkmn.form, 0] if pkmn.form == 4
  }
})

Here, we've added a third key called "getDataPageInfo". This is what is needed for compatibility with the data page. The array in next [pkmn.form, 0] needs to contain up to three elements:

  • The Pokemon's current form. This can always just be set as pkmn.form to accomplish this.

  • The form that the Pokemon reverts to once Terastallization ends. In our example, this is form 0.

  • [Optional] The ID of any unique item the Pokemon should be holding for this form, if any. Terastallization doesn't require a held item, so this isn't really necessary. But your custom Terastal form may require one, so you may enter one if it does.

Finally, the if pkmn.form == 4 part of the line makes it so that this information is only returned when Charizard is in form 4, which is its Terastal form. This is what prevents this data from displaying when viewing any one of Charizard's other forms. This might be far more complex depending on the specific form handler you set up, but this is a general example of how this may be done.

Last updated