Go back to the main page

Pokémon Forms Are Complicated

Introduction

For a few years I've been working on a branch of the Universal Pokémon Randomizer ZX. One of the first features I implemented was random palettes for Pokémon Sprites, a port from Artemis251's Emerald Randomiser. Initially the port was just for Generation III games (with different implementations for Gens I and II), but with the system in place there was seemingly nothing stopping its expansion to Gens IV and V. And yet it has been laid off, still not completed many years later. How come? Well to begin with was the sheer amount of manual labor associated with setting for every Pokémon Sprite. But by now 95% of that has been done for Gen IV (or more precisely, Diamond/Pearl), and yet I am putting it off again. Why? For just 5%? Well, the remaining 5% are alternate forms, and Pokémon forms are complicated.

Pokémon forms are complicated because of twofold reasons. One is that they are conceptually all over the place, there is no standard way for a form to function. This is a positive for anyone playing the games, more variance largely means more fun to be had, more game design spaces explored. The lack of a base case make them harder to work with though. I later draw a comparison to evolutions, and list some of the many ways forms can function. The second reason is that they are not treated the same internally.

The internal issues, Cosmetic and Interchangeable forms

Since some forms are entirely cosmetic (e.g. those of Unown, Burmy, Gastrodon) it would seem bizarre to grant them entire stat blocks, and as such a distinction is drawn between forms that need their own stat blocks (e.g. Deoxys, Rotom, Giratina) and those that don't.

But then complications arise. As early as BW2, we see Keldeo-Resolute among the forms with stat blocks. The only problem is: Resolute is nothing but a cosmetic change in practice, all its stats are identical! And with coming Generations we see more of that. The different flower colors of Floette (but not of Flabébé or Florges)? Furfrou's different trims? Minior's different colors? They have stat blocks!

Cosmetic forms are interesting from the Randomizer's viewpoint, they represent extra design space. If Flabébés forms are interchangable, then why not choose randomly between them when generating starters, wild encounters, or static (gift) Pokémon. But which cosmetic forms are interchangable?

Assuming all forms without stat blocks are would seem a safe assumption, but it is not. Arceus' forms are all without stat blocks, since its type-shifting is controlled by its Ability. The same goes for Castform and Cherrim in earlier Gens. That said, these forms are technically interchangeable - they have no mechanical differences. But a player knows to be confused when they encounter an Arceus-SplashPlate holding no item and it is a Normal type. Thus we cannot use them this way.

As for the forms that have stat blocks but are cosmetic, which of these are interchangeable? If Flabébés forms are, then surely all of Floettes are too, safe from Floette-Eternal. Minior's colors might also be this way, but what about Keldeo-Resolute? Or Furfrou's trims? Sure, going by stats these are just like their base form, but there is some difference when Keldeo-R is bound to revert unless it knows Secret Sword, and Furfrou's trims as soon as you box them. What about Pikachu-Cosplay? Or the Totem-sized forms, Mimikyu-Busted? Pumpkaboo's and Gourgeist's different sizes are on the opposite end of the spectrum. Their stats clearly vary, but we do not mind if one form is exchanged for the others when generating starters, trainers, and in-game trades. In fact it is encouraged, otherwise we might end up seeing only their Small size!
Pumpkaboo's and Gourgeist's forms are interchangeable, without being cosmetic.

The problem with drawing the line between cosmetic and not cosmetic forms, interchangable or not interchangable forms, is that GameFreak gives us no hints as for how to do this. Indeed there is no 100% correct division to figure out, it is a matter of subjectivity. One player might be okay with Pikachu-InACap being more prevalent than its naked counterpart. Another player might loathe it, but have no issues with Magearna-OriginalColors, or Rockruff-OwnTempo. A third player might be fine with wild Normal-typed Arceus-SplashPlate.

And although cosmetic and interchangeable forms are just one issue to clash with programming the Randomizer, all others are complicated by a similar fuzziness and subjectivity. Which forms should carry the stats of the base form? How do we work out Types when these are randomized? Should some forms get to keep their abilities even when randomized; in case, which?
Most forms are really their own thing, as I go into more detail about below. It might end up a bit of a rant though, so don't feel too pressed reading it.

A comparison with Evolutions, something with a base case

Evolutions are a similar notion to forms. Members of an evolution "family" are of course similar to each other in some ways, but differ in others. Pokémon evolve into another similarly to how some forms can turn into other forms. So how do evolutions work?

Well, Pokémon that evolve tend to see a stat increase. Within a family relative stat distribution and abilities tend to be similar. So do types, though upon evolution it is not uncommon to gain an extra type. Swapping out types is rarer, and losing types is almost unheard of. Evolved Pokémon tend to have similar movesets to their unevolved counterparts, but learn the same moves at later levels. An exception to this is Pokémon that evolve via evolution items such as stones, which often have very barren movesets. Some Pokémon have split evolutions, which usually have a similar base stat total, and somewhat similar movesets, but distributed in different ways.

There are even more exceptions, of course, but if you don't want to bother dealing with them you can always fall back on the base case: an evolved Pokémon is like its prevo but with uniformly higher stats.

The forms start coming and they don't stop coming

Forms don't have a base case.

Some forms are heavily tied to abilities, such as Darmanitan, Mimikyu, and Cherrim requiring their special abilities to change forms. Though the latter is not true in Gen IV, in which Flower Gift increases stats in harsh sunlight for any Pokémon. Cherrim's form change is hardcoded separately.

Some forms are permanent and chosen upon evolution depending on factor, such as Wormadam's, Meowstic's, and Lycanroc. In this way they are similar to split evos. Though this only goes for Lycanroc-Midday and -Midnight though, since Lycanroc-Dusk does not evolve from a normal Rockruff during dusk. Nor does it (contrary to what Bulbapedia tells you) evolve from a normal Rockruff "if its Ability is Own Tempo". No, it evolves from "Own Tempo Rockruff", a form of Rockruff whose only difference from normal Rockruff just so happens to be its ability.

Battle Bond Greninja is also a different form that only differs through its ability (and inability to breed). Though unlike Rockruff-OT, whose ability really is incidental, it is Battle Bond which allows Greninja-BB to change into Greninja-Ash, an alt form that can only be accessed through another alt form. The Battle Bond ability is also programmed to only work on Greninja-BB, tightening the bond between ability and form.

Rotom learns a new move upon changing forms, or forgets them if it changes back to its base form.

Arceus, Genesect, and Silvally have forms depending on held items in combination with their ability. These forms change the types of their signature moves. However, to my knowledge, that's all they do. The type changes of Arceus and Silvally are tied directly to their abilities, so if you were to force an encounter with the very watery looking blue Arceus (through hacking) it would still be a Normal Type. (I am not 100% certain of this though, take it with a grain of salt)

Meowstic (and presumably Indeedee, Basculegion, and Oinkologne do too, but the UPR doesn't support their games) has a form for what would normally be a gender difference.

There are also regional forms. Regional forms are in some sense redesigns of the Pokémon, with differences in stats, typing, abilities and movesets. But they are still tied somehow to the original Pokémon. And they evolve. When the attributes of normal Grimer are randomized, Grimer-Alolan needs to follow that somehow, and Muk-Alolan has to keep in mind both its base form, and its prevolution.

Then there are forms with forms. Or rather, forms that are conceptually based on another (non-base) form in a similar way that. Mimikyu-Busted, as well as Raichu-Alolan and Marowak-Alolan all get Totem-sized forms. These are fully cosmetic, with the caveat that they are fully cosmetic relative to another alternate form, not the base form. Compare Raichu-A-TotemSized with base Raichu and there will be a stark difference - since Raichu-A-TotemSized has Raichu-A's characteristics. Internally (in gen VII) Minior also has a bunch of Meteor forms depending on what color is inside. Like Regional forms and their evolutions, when we make changes to one form we also want them to carry to the others, despite this adding another layer of complexity to the implementation.

Floette-Eternal could very well be argued a legendary Pokémon, having high stats and plot significance.

Some forms are meant to be temporary, and in-battle only. E.g. Megas, Primal forms and Darmanitan-Zen. In most cases the UPR is still able to set these for use in trainer battles etc., and even prevent their automatic reversal when battle ends, but their casual inclusion might still be off-putting to the player.

Kyurem and Necrozma (and Calyrex) have forms that are conceptually fusions between the base form and some other, unrelated Pokémon.

All in all, the problem with forms is not that they have many exceptions. It is that they have none. Each alt form differs from its base form in an almost unique way, and many forms have hard-coded mechanics on top of that.

Forms, the UPR, and you

So why again were forms a stopgap for Gen IV palette randomization being finished?

Being an open-source project ostensibly built by amateurs (I really am not much better), the Universal Pokémon Randomizer (ZX) has as many issues as it is a marvel of programming. Its faulty system for handling formes is, however, not one to blame it for. My plan is to rewrite this system into something more functional, as building randomization of the alt forms' palettes on top of the existing one would be a mess. A big one. Or maybe it would be fine, but perfect is the enemy of good. You look at the code and decide.

This will take a while, as there is a fair amount of design to figure out, on top of technical solutions. Some progress was made during the writing of this article. Which makes it more worthwhile than just the rant it was intended as, haha. Other projects may also come in the way of this rewrite, both related to the UPR, and entirely unrelated stuff which may or may not find its way to this website. Though that being said, I much doubt I won't make my way back to it sooner or later. It's simply too enticing of a problem to suss out, and too frustrating to leave another feature unsolved for its sake.
You will be able to randomize Rotom-Wash's palette some day, and hopefully get some other form goodies too by means of the process.

Written by Voliol , HE.