Light mode Dark mode

Pokémon Crystal Factory

This is a ROM hack that creates the Battle Factory in Pokémon Crystal, by rewriting the vanilla Battle Tower code. This ROM hack only includes the Factory, so the player has access to the Factory immediately after leaving their house, but cannot access the rest of the game. The Factory mechanics are most similar to Pokémon Emerald's Battle Factory, but with some differences due to Gen 2 mechanics as well as different Pokémon sets to ensure a large enough pool of Pokémon. Check the "details" tab if you want a full list of features.

The download link is below, the file is just a regular .gbc file so you can play it the same way you would play vanilla Pokémon Crystal.

Last Update: 01/04/2026

Known Bugs:

  • N/A, all known bugs have been fixed.

Pokémon Sets & Round Progression

  • General: All Pokémon have four different sets.
  • Rounds 1-4: By default, Pokémon only use the corresponding set (Round 1 is only Set 1 Pokémon, Round 2 is only Set 2, etc.).
  • Round 5+: All sets are possible for both you and your opponents, and legendaries + Dragonite also become available.
  • Sets Unlocked Option: The "Set" option in the settings menu can be set to "Unlocked", which will immediately make all sets possible for both you and your opponents. The "Scaling" setting is the default and works as described above.
  • No Boss: Unlike Gen 3/4, there is no boss (yet), so every round past Round 5 is basically the same.

DVs

  • Settings: There are three settings for DVs, which can be applied independently to either our Pokémon or the opponent's. Min sets all DVs to 3, Max sets all DVs to 15, Scaling starts at all 3 on Round 1 and increases by 3 per round until maxing out at 15 on Round 5.
  • Swaps: Unlike Gen 3/4, there are no elevations based on swap count.
  • HP DV: In Gen 2, the HP DV is based on the other DVs, so it actually alternates between 0 and 15. If all other DVs are odd, HP is 15. If all other DVs are even (as in Rounds 2 and 4 with the Scaling setting) the HP DV is 0.
  • Gender Mechanics: Gender is determined by the species gender ratio combined with the Attack DV, meaning that Pokémon are more likely to be male with higher DVs.

Enemy AI

Enemy AI is set up in a similar way to Emerald, although Crystal has a few more types of AI.

  • Rounds 1 and 2: Enemy uses wild Pokémon AI, which is random moves (unless the move is disabled/0 PP).
  • Rounds 3 and 4: Enemy uses the "Youngster" trainer class AI, which is random except that it will not use moves that do nothing (like Ground moves against Flying types).
  • Round 5+: Enemy uses Gym Leader AI, which is what the vanilla Battle Tower trainers use (specifically Falkner's AI, not that it matters). This is Gen 2's "Smart AI".
  • Settings: The above text describes the default "Scaling" setting for Enemy AI, but it can also be set to "Smart" which will result in every round having Gym Leader AI.

Stat Exp

Gen 2 uses something called "Stat Exp", which is different than EVs in a couple ways.

  • Max Stats: It's possible to max out the Stat Exp for every stat, resulting in Pokémon being much bulkier compared to Gen 3+.
  • Shared Special Stats: Second, for compatibility with Gen 1, the Stat Exp for Special Attack and Special Defense is shared.
  • Settings: There are two options for Stat Exp: Max or None. None is self explanatory, Max results in +63 to all stats at Level 100.

Future Plans

I plan on releasing more information and tools later, such as the spreadsheet for all of the sets, a damage calc with the stats pre-loaded, and a Battle Factory Buddy tool, similar to the existing Battle Factory tools. For now I'm just trying to see if people like the Gen 2 Factory, if there are any bugs, if there are changes I should make, and so on.

Crystal Factory Tools

Damage Calculator: Calculate damage ranges and KO probabilities for all Crystal Factory sets.
Open Damage Calculator

Pokemon Sets: Download a CSV file containing all Pokemon sets used in Crystal Factory.

12/06/2025: Version 1.0 release

1/4/2026: Version 1.1 release: Added settings for Enemy AI, Stat Exp, Level, DVs, and Sets.

Download Previous Versions:

To see other projects I've made, check out https://njkmath.github.io/projects/