Dynamax: Form Data
Section 7.E.3
Last updated
Section 7.E.3
Last updated
Gigantamax is a unique variant of Dynamax that allows certain species to transform into a Gigantamax form upon Dynamaxing. Any Pokemon with G-Max Factor that has a compatible G-Max form can Gigantamax. Below, I'll explain how Gigantamax forms are set up.
Gigantamax Forms
Gigantamax forms are implemented as ordinary forms, which means they can be set up identically to how any other form would be set up in the pokemon_forms.txt
PBS file. However, his plugin adds its own file called pokemon_forms_gmax.txt
which specifically adds all the Gigantamax forms introduced in Pokemon Sword & Shield, so you may continue adding additional forms to this file if you wish.
Below, I'll go over the basics for adding a Gigantamax form.
If you want to add a G-Max form for the base form of a species, you don't really have to do anything much different than you would for any other form. Here's an example of one:
[RILLABOOM,1]
FormName = Gigantamax
Height = 28.0
Pokedex = Gigantamax energy has caused Rillaboom's stump to grow into a drum set that resembles a forest.
GmaxMove = GMAXDRUMSOLO
This is Rillaboom's G-Max form. A G-Max form only needs a few unique pieces of data that may differ from its base form:
FormName
This can usually just be "Gigantamax", or whatever you want to name the form. For example, Urshifu has two different G-Max forms, so it uses more specific form names for its G-Max forms than the others do.
Height
G-Max forms are kaiju-sized, so keep this in mind when deciding what their height should be. This is purely cosmetic however, since a Pokemon's height is only ever displayed in the Pokedex. The weight for a G-Max form doesn't need to be set, since the weight for all G-Max forms will always just be displayed as "????.?" in the Pokedex, anyway.
Pokedex
A G-Max form should typically have different Pokedex entries than its base form. But this is up to you. All dex entries for G-Max forms added by this plugin have entries from Sword & Shield.
GmaxMove
This is the only line of data that is actually required for each G-Max form. This determines the exclusive G-Max Move this form will have access to when it Gigantamaxes. If you do not give your G-Max form a G-Max Move, it will not be considered a G-Max form and no Pokemon will be able to Gigantamax into this form. Note that each G-Max form can only have a single G-Max move, however, multiple G-Max forms may all share the same G-Max Move.
Sometimes, you may want to give a specific form of a species their own G-Max form. For example, Urshifu has two different G-Max forms. One G-Max form for its Single Strike style, and another G-Max form for its Rapid Strike style, as seen below:
[URSHIFU,2]
FormName = Gigantamax Single Strike Style
Height = 29.0
Pokedex = The energy released by this Pokémon's fists forms shock waves that can blow away Dynamax Pokémon in just one hit.
GmaxMove = GMAXONEBLOW
#-------------------------------
[URSHIFU,3]
FormName = Gigantamax Rapid Strike Style
Types = FIGHTING,WATER
Moves = 0,SURGINGSTRIKES,1,FOCUSENERGY,1,ENDURE,1,ROCKSMASH,1,AQUAJET,1,LEER,12,AERIALACE,16,SCARYFACE,20,HEADBUTT,24,BRICKBREAK,28,DETECT,32,BULKUP,36,IRONHEAD,40,DYNAMICPUNCH,44,COUNTER,48,CLOSECOMBAT,52,FOCUSPUNCH
Height = 26.0
Pokedex = As it waits for the right moment to unleash its Gigantamax power, this Pokémon maintains a perfect one-legged stance. It won't even twitch.
GmaxMove = GMAXRAPIDFLOW
UngmaxForm = 1
If this is the case, you can differentiate your G-Max forms by using the line UngmaxForm
. This will allow you to assign the base form that this G-Max form is linked to. By default, all species with a G-Max form will always assume that the base form linked to a G-Max form is form 0, the base form of the species. However, with UngmaxForm
, you can set this to whatever form you want.
As seen in the above example, Single Strike Urshifu (form 0) will Gigantamax into [URSHIFU,2]
. While Rapid Strike Urshifu (form 1) will Gigantamax into [URSHIFU,3]
. This is because [URSHIFU,3]
sets form 1 as its UngmaxForm
, while [URSHIFU,2]
doesn't set this data at all, so it's assumed that its UngmaxForm
is form 0.
G-Max forms that are meant to be linked to other forms besides the base form need to inherit the same attributes as the form entered as their UngmaxForm
. This is because every new form will always inherit the traits of the base form of the species if none are entered. So that's why [URSHIFU,3]
requires that its types and moves be entered here (which are identical to Rapid Strike Urshifu), while [URSHIFU,2]
doesn't require this, since Single Strike Urshifu is the base form of the species.
Sometimes, you may want a single G-Max form that multiple forms of a single species can all Gigantamax into. There's two ways to go about this, depending on the situation.
Cosmetic-Only Forms (Aka, the Alcremie Method)
If a species has multiple cosmetic forms but you want all of those possible forms to share the same Gigantamax form, you don't have to make a separate G-Max form for each individual form. Instead, you may simply give the base species the AllFormsShareGmax
flag.
For example, Alcremie has over 60 unique cosmetic forms. Normally, if you wanted all of its forms to Gigantamax into its G-Max form, you would have to make a different G-Max form for each form. This would obviously be an extremely tedious task with 60+ forms to make an individual G-Max form for. So to get around this, Alcremie is simply given the AllFormsShareGmax
flag in the PBS data for the base species. This flag makes it so that every form of Alcremie will all Gigantamax into the same form that base Alcremie can Gigantamax into.
This can be very useful and save you a lot of time if you have a species with numerous cosmetic forms.
Forms With Differences (Aka, the Toxtricity Method)
If a species has multiple forms with different characteristics, but you want all of those forms to share the same Gigantamax form, then you'll have to create different G-Max forms for each form. This is similar to the Urshifu example shown earlier in this section.
However, because you want the forms to share the same G-Max form, rather than Urshifu who has different G-Max forms, this is set up slightly differently.
[TOXTRICITY,2]
FormName = Gigantamax
Height = 24.0
Pokedex = Out of control after its own poison penetrated its brain, it tears across the land in a rampage, contaminating the earth with toxic sweat.
GmaxMove = GMAXSTUNSHOCK
#-------------------------------
[TOXTRICITY,3]
PokedexForm = 2
Abilities = PUNKROCK,MINUS
Moves = 0,SPARK,1,LEER,1,GROWL,1,ACID,1,THUNDERSHOCK,1,FLAIL,1,ACIDSPRAY,1,BELCH,1,NOBLEROAR,1,NUZZLE,1,TEARFULLOOK,4,CHARGE,8,SHOCKWAVE,12,SCARYFACE,16,TAUNT,24,SCREECH,28,SWAGGER,32,TOXIC,36,DISCHARGE,40,POISONJAB,44,OVERDRIVE,48,BOOMBURST,52,MAGNETICFLUX
GmaxMove = GMAXSTUNSHOCK
UngmaxForm = 1
Here's an example of how Toxtricity's G-Max forms are set up. Like Urshifu, Toxtricity has two different forms with different characteristics. However, both its Amped Form and Lowkey Form can Gigantamax into the same G-Max form. To accomplish this, we have to create separate G-Max entries for each of Toxtricity's forms, as seen above.
However, since the forms need to appear identical (even though they are technically different forms), we have to implement things in a specific way.
The first G-Max form entry should be set up the same as you would set up any other G-Max form.
All subsequent G-Max form entries for this species should not have FormName
, Height
, Weight
, or Pokedex
data. This is because these lines of data are only relevant to the Pokedex, and this form shouldn't appear in the Pokedex at all to maintain the illusion that it's a single G-Max form.
All subsequent G-Max form entries for this species should all have the PokedexForm
data set to whatever form number the initial G-Max form has. In this example, the initial G-Max form for Toxtricity is form 2, thus this data for all other G-Max entries for this species need to have PokedexForm = 2
. This will allow it so that all of these subsequent forms will be hidden in the Pokedex.
The GmaxMove
property for each G-Max form entry for this species should all be identical. You can technically have different G-Max Moves for each variation if you wish, but in that case it would make more sense to me to just make them separate forms, like Urshifu's G-Max forms.
The UngmaxForm
property for each G-Max form entry for this species should link to the base form that it should revert back into when Gigantamax ends.
All other relevant data for each form should be inherited from the base form. For example, Lowkey Form Toxtricity has different abilities and moves than Amped Form Toxtricity, thus the G-Max form for Lowkey form needs to inherit these unique properties.
Eternamax Forms
Eternamax is another unique variant of Dynamax that only a single species is capable of: Eternatus. In Pokemon Sword & Shield, Eternatus was only capable of entering this form during the final post-game battle in the story. This form is totally inaccessible to the player, and was specifically designed as a boss-only encounter. However, this plugin allows you to use this form if you wish, though it can only be accessed under very specific conditions.
Below, I'll go over how you can access this special Eternamax form, and how you may make your own.
Pokemon who have an Eternamax form cannot Dynamax under normal conditions, even if all the requirements are met. They are more or less considered a non-Dynamaxable species unless they're on a map that is specifically flagged as an EternaSpot
. An Eterna Spot is a similar concept to a Power Spot, except Eterna Spots do not allow for Dynamaxing. Instead, all an Eterna Spot does is allow Pokemon with an Eternamax form to use Dynamax, if all other conditions are met.
If so, when the Pokemon with an Eternamax form uses Dynamax, it will change into its Eternamax form. Unlike Gigantamax, this doesn't require G-Max Factor or any other special kind of trigger. The Pokemon will simply always enter this form when it Dynamaxes, but it will never be able to Dynamax unless it's specifically on a map with the EternaSpot
flag.
To make an Eternamax form, you'll need to set up several things. First, you need to actually create your form. Let's look at how this plugin implements Eternatus's Eternamax form as an example.
[ETERNATUS,1]
FormName = Eternamax
BaseStats = 255,115,250,130,125,250
Height = 100.0
Shape = Serpentine
Pokedex = Infinite amounts of energy pour from this Pokémon's enlarged core, warping the surrounding space-time.
To allow Eternatus to actually enter this form when it uses Dynamax however, we'll need a Multiple Forms handler, as seen below.
MultipleForms.register(:ETERNATUS, {
"getEternamaxForm" => proc { |pkmn|
next 1
},
"getUnmaxForm" => proc { |pkmn|
next 0
}
})
The "getEternamaxForm"
key determines which form Eternatus will transform into when it Dynamaxes. The line next 1
makes it so in this scenario, Eternatus will change into form 1 when it Dynamaxes, which is the same form that entered for its Eternamax form in pokemon_forms.txt
.
The "getUnmaxForm"
key determines which form Eternatus should revert to once its Dynamax ends. The line next 0
makes it so in this scenario, Eternatus will revert to its base form when it leaves the Dynamax state.
The Pokedex Data Page plugin allows for Eternamax forms to have unique displays in the data page of the Pokedex. You don't have to worry about Gigantamax forms, because those forms will be added automatically, so there is nothing extra you need to do for their displays.
Eternamax forms, however, cannot be automatically detected. To allow for this, you can add an additional key to the form handler for that Eternamax form. Here's how this additional key is set in Eternatus's form handler:
MultipleForms.register(:ETERNATUS, {
"getEternamaxForm" => proc { |pkmn|
next 1
},
"getUnmaxForm" => proc { |pkmn|
next 0
},
"getDataPageInfo" => proc { |pkmn|
next [pkmn.form, 0] if pkmn.form == 1
}
})
Here, there's an additional key called "getDataPageInfo"
. This is what is needed for compatibility with the data page. The array in next [pkmn.form, 0]
needs to contain two 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 it leaves Eternamax form. In the example above, this is form 0.
Finally, the if pkmn.form == 1
part of the line makes it so that this information is only returned when Eternatus is in form 1, which is its Eternamax form. This is what prevents this data from displaying when viewing any one of Eternatus's other forms.