a Poké Ball Universal Pokémon Randomizer FVX a Poké Ball

About the Universal Pokémon Randomizer

The Universal Pokémon Randomizer (UPR) is a randomizer for Pokémon games, originally released by Dabomstew in 2012. Like other randomizers, it can shuffle around and change the data of the target game to your liking. The Randomizer also contains various quality-of-life features, like turning off trade evolutions or choosing exactly which Pokémon to have as your starter. All randomizations are optional, so you can change the game as little or as much as you like.

What games can the UPR randomize?

All versions of the UPR can randomize core series games from Generation 1-5, from Red/Green to Black 2/White 2. All versions based on UPR ZX, including the FVX branch linked to by this site, also support randomizing Generation 6 and Generation 7 games.

The UPR does not support ROM hacks, but it does support all official localizations of the games it supports (except Korean Gold/Silver). ROM hacks may still work with the UPR in practise, especially if they are old or only make minor changes to the game. However, this is done at own risk.

What can the UPR randomize in the game?

Seeds and logs

Each time the Randomizer is used, it outputs not only the randomized ROM, but also the random “seed” that was used and a string representing the settings. By inputting this same seed and settings, users can ensure the same randomization results every time, enabling consistent experiences and sharing Randomizer results with others. This feature is particularly useful for races and other community playthroughs, where uniformity is key.

The UPR can also log its randomization, so users can look up details on the randomized game. For races, this feature may be turned off to avoid spoilers.

About the FVX branch

The Universal Pokémon Randomizer FVX (Fox + Voliol + zX) is a continuation of the Universal Pokémon Randomizer. It was born of a merge of branches by foxoftheasterisk and voliol, both based on Ajarmar’s UPR ZX.

Compared to ZX, FVX adds a number of features; from upgrades to Trainer and wild Pokémon randomization, to Pokémon Palette randomization and Custom Player Graphics. For a full list of new features, see this wiki page.

True to its ancestry in ZX, it supports all vanilla core series Pokémon games from Generation 1-7 except Let’s Go, Pikachu!/Eevee!; in other words, it supports all core series games for the GameBoy, GameBoy Color, GameBoy Advance, Nintendo DS, and Nintendo 3DS.

For developers, FVX also has a considerable amount of refactoring and new features, including separate Randomizer classes for each category of randomization, a SpeciesSet class with many helper functions, and automated tests for most features.

History of the Randomizer

December 12, 2012, Dabomstew released the first version of the Universal Pokemon Randomizer. It was not the first randomizer of its kind, Artemis251’s Emerald randomizer among others (see Acknowledgements) had already broken the ground of randomizing Pokémon games. What made the UPR stand out was its goal of being able to randomize all then-released Pokémon games, from Gen 1 to Gen 5. Thus, the Universal Pokémon Randomizer.

May 15, 2014, in conjunction with the release of UPR 1.6.1, the Randomizer became open source, hosted on GitHub.

October 21, 2016, Dabomstew stopped working on the project, passing the torch to the community to continue its development and maintenance. This lead to the birth of a multitute of Randomizer branches. Since this website is primarily for the FVX branch, the below history will focus on its lineage. However, this lineage is not the only one. Some notable other branches are mentioned in the section below.

May 8, 2019, the first version of the Universal Pokémon Randomizer ZX was released. The UPR ZX is a significant branch that emerged from the original UPR, developed by Ajarmar with significant contributions from darkeye and cleartonic. It added a slew of new features and rebalancing, with the most notable perhaps being support for the 3DS games (Gen 6 & 7). Despite its popularity, the development of the ZX branch eventually ceased. The last update was released February 12, 2023, marking the end of an era.

August 6, 2022, voliol released the first version of a nameless branch, later “UPR ZX V branch”. This branch had some focus on graphical features, and also contained considerable refactoring. Initially, the branch was based off brentspector’s branch, but later “moved” to ZX.

Dec 1, 2023, foxoftheasterisk began work on a branch focused on adding features to control the randomization, called “Closer To Vanilla”. Although it was originally intended to implement features to be added to the ZX branch rather than have its own releases, she eventually released a single version on May 17, 2024.

July 11, 2024, collaboration between foxoftheasterisk and voliol led to a release of their branches merged (and then some): the Universal Pokémon Randomizer FVX.

Other Pokémon randomizers and UPR branches

As mentioned above, the UPR is not the only tool for randomizing Pokémon games, and the FVX branch is not its only branch.

Below, a small selection of other randomizers and branches are listed. They have been chosen for being notable and filling niches that the UPR or the FVX branch don’t. However, there are more! See The BIG List of Video Game Randomizers for more non-UPR randomizers, and browse through forks on GitHub to find unmentioned branches.

Randomizers

Branches