📒
Deluxe Battle Kit Tutorial
  • Deluxe Battle Kit for v21.1
    • Deluxe Animations
      • Animation: Databoxes
      • Animation: Item Usage
      • Animation: Fleeing Pokemon
      • Animation: Mega Evolution
      • Animation: Primal Reversion
      • Animation: Shadow Pokemon
    • Deluxe Battle Rules
      • Rules: Battle Modes
      • Rules: Battle Visuals
      • Rules: Battle Audio
      • Rules: Editing the Player
      • Rules: Mega Evolution
      • Rules: Capturing Pokemon
      • Rules: Editing Wild Pokemon
    • Wild Boss Attributes
      • Attribute: Boosted HP
      • Attribute: Immunities
    • Mid-Battle Scripting
      • Trigger Keys
        • Triggers: Round Phases
        • Triggers: Battler Turns
        • Triggers: Item Usage
        • Triggers: Wild Capture
        • Triggers: Switching
        • Triggers: Megas & Primals
        • Triggers: Move Usage
        • Triggers: Damage Results
        • Triggers: Battler Condition
        • Triggers: End of Effects
        • Triggers: End of Battle
        • Triggers: Variable
        • Triggers: Choices
        • Triggers: Extensions
          • Extensions: User
          • Extensions: Frequency
      • Command Keys
        • Commands: Text & Speech
        • Commands: Audio & Animation
        • Commands: Utilities
        • Commands: Battle Mechanics
        • Commands: Battler Attributes
        • Commands: Battlefield Conditions
        • Commands: Extensions
      • Advanced Scripting
        • Advanced: Speech Utilities
          • Speech: General
          • Speech: Choices
          • Speech: Speakers
        • Advanced: Variable Utilities
        • Advanced: Storing Scripts
        • Advanced: Hardcoding
        • Advanced: Global Scripts
    • Example Battles
      • Examples: Wild Battles
      • Examples: Trainer Battles
    • Miscellaneous Utilities
    • Add-On Tutorials
      • Enhanced Battle UI
        • UI: Battler Info
        • UI: Poke Ball Shortcut
        • UI: Move Info
      • SOS Battles
        • SOS: Plugin Overview
        • SOS: PBS Data
        • SOS: Battle Rules
        • SOS: Mid-Battle Scripting
      • Raid Battles
      • Z-Power
        • Z-Power: Z-Moves
        • Z-Power: Ultra Burst
        • Z-Power: Animations
        • Z-Power: Battle Rules
        • Z-Power: Mid-Battle Scripting
      • Dynamax
        • Dynamax: Properties
        • Dynamax: Move Data
        • Dynamax: Form Data
        • Dynamax: Animations
        • Dynamax: Battle Rules
        • Dynamax: Mid-Battle Scripting
      • Terastallization
        • Terastal: Tera Types
        • Terastal: Tera Forms
        • Terastal: Animations
        • Terastal: Battle Rules
        • Terastal: Mid-Battle Scripting
      • Improved Item AI
        • Item AI: Handlers
      • Wonder Launcher
        • Launcher: Plugin Overview
        • Launcher: PBS Data
        • Launcher: Battle Rules
        • Launcher: Mid-Battle Scripting
      • Animated Pokemon System
        • Animated: Pokemon Sprites
        • Animated: Dynamic Sprite Effects
        • Animated: UI Sprites
        • Animated: Sprite Editor
        • Animated: Mid-Battle Scripting
      • Animated Trainer Intros
        • Intros: Trainer Sprites
        • Intros: Sprite Editor
        • Intros: UI Sprites
        • Intros: Battle Transitions
        • Intos: Mid-Battle Scripting
Powered by GitBook
On this page

Was this helpful?

  1. Deluxe Battle Kit for v21.1
  2. Add-On Tutorials
  3. Terastallization

Terastal: Tera Forms

Section 7.F.2

PreviousTerastal: Tera TypesNextTerastal: Animations

Last updated 9 months ago

Was this helpful?

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

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.

The 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.

Pokedex Data Page
Ogerpon and Terapagos Tera forms.
The Data page for one of Ogerpon's Terastal forms.