As you probably know, I've been working on improving the movesets of Gen 1 Random Battles not very long ago, and the changes finally went through last week. Now it's time to move on to Gen 2, which is in an even worse state! Even though this tier is not in the ladder, tournaments are played in the RoA room relatively often. And it's really fun! The ultimate goal would be to make Gen 2 randbats good enough to make it to the ladder.
However, Gen 2 requires more work than Gen 1 given that movepools are wider and that there are more strategies. Simply throwing a bunch of viable moves into the fix and picking four an random doesn't work, and you'd have to go crazy if you want to cover everything with Pokemon-independent move restrictions. Instead, my approach is to cover everything within the Pokemon and its movesets.
Here's an example of my proposed structure:
Or displayed in a format that you're probably more familiar with:
The set is picked at random, according to its chance out of 16 (a maximum of 4 sets are supported). This is great to provide good variety and unpredictability on Pokemon that can successfully utilize different kind of sets, weighing each set according to its overall utility.
Each set is made of 1 item, 0 to 4 base moves (up to baseMove4), and 0 to 4 lists of filler moves (up to fillerMoves4), always making a total of 4 moves. Base moves always make the set while one move of each filler move list is picked at random. The odds of each filler move or item can be adjusted by adding it more than once to the list. The engine takes care of making sure that no move is repeated and that no more than one hidden power is picked.
Obviously, this is a lot of work and I'm not willing to do it all by myself. That's why I'm bringing it up in the community. If you are familiar with GSC and want to contribute, you can fork and send pull requests to my forked Pokemon Showdown repository. This is file that you'd be modifying. All Pokemon (except Zapdos) have been given default data for now, that is there only to be replaced. Right now, Gen 2 Random Battles only includes fully evolved Pokemon, so we can focus on those first.
If you'd like to contribute but are not comfortable working on Github, feel free to suggest another way of contributing (e.g. Pastebin). I'd appreciate if you could submit the sets in the definitive format, or at least in the usual "export team" format shown below, so that all the sets are in the same format and can be converted all at once. In any case, don't worry too much about typos since I can take care of them eventually.
If you want to work on some specific Pokemon, make sure to reserve them in this thread so that someone else doesn't do the same work.
Keep in mind that this is not your typical OU metagame. Here, all Pokemon have similar chances to show up, and their levels are adjusted to tier they belong to or to their strength. For example, moves like Roar or Rapid Spin are not as useful or necessary, well-rounded defensive cores won't be a thing, Rest may not be as reliable, and coverage options that are usually considered inferior may be more useful here.
However, Gen 2 requires more work than Gen 1 given that movepools are wider and that there are more strategies. Simply throwing a bunch of viable moves into the fix and picking four an random doesn't work, and you'd have to go crazy if you want to cover everything with Pokemon-independent move restrictions. Instead, my approach is to cover everything within the Pokemon and its movesets.
Here's an example of my proposed structure:
Code:
zapdos: {
randomSet1: {
chance: 8,
item: ["leftovers"],
baseMove1: "rest", baseMove2: "sleeptalk",
fillerMoves1: ["thunderbolt", "thunderbolt", "thunder"],
fillerMoves2: ["hiddenpowerice", "hiddenpowerice", "hiddenpowerice", "drillpeck", "drillpeck", "hiddenpowergrass", "hiddenpowerwater"],
},
randomSet2: {
chance: 13,
item: ["leftovers", "leftovers", "mintberry"],
baseMove1: "thunderbolt", baseMove2: "rest",
fillerMoves1: ["thunderwave", "thunderwave", "toxic", "drillpeck", "hiddenpowerice", "hiddenpowerice"],
fillerMoves2: ["lightscreen", "reflect", "reflect", "whirlwind", "drillpeck", "hiddenpowerice", "hiddenpowerice"],
},
randomSet3: {
chance: 16,
item: ["leftovers", "leftovers", "miracleberry"],
baseMove1: "thunderbolt", baseMove2: "drillpeck",
fillerMoves1: ["hiddenpowerice", "hiddenpowerice", "hiddenpowerwater", "hiddenpowerwater", "hiddenpowergrass"],
fillerMoves2: ["thunderwave", "thunderwave", "thunderwave", "toxic", "lightscreen", "reflect", "thunder", "rest"],
},
eventPokemon: [
{"generation": 2, "level": 50, "shiny": true, "moves":["thunderwave", "agility", "detect", "drillpeck"]},
],
tier: "OU",
},
Or displayed in a format that you're probably more familiar with:
Code:
Zapdos @ Leftovers | 8/16 chance
- Rest
- Sleep Talk
- Thunderbolt / Thunderbolt / Thunder
- Hidden Power Ice / Hidden Power Ice / Hidden Power Ice / Drill Peck / Drill Peck / Hidden Power Grass / Hidden Power Water
Zapdos @ Leftovers / Leftovers / Mint Berry | 5/16 chance
- Thunderbolt
- Rest
- Thunder Wave / Thunder Wave / Toxic / Drill Peck / Hidden Power Ice / Hidden Power Ice
- Light Screen / Reflect / Reflect / Whirlwind / Drill Peck / Hidden Power Ice / Hidden Power Ice
Zapdos @ Leftovers / Leftovers / Miracle Berry | 3/16 chance
- Thunderbolt
- Drill Peck
- Hidden Power Ice / Hidden Power Ice / Hidden Power Water / Hidden Power Water / Hidden Power Grass
- Thunder Wave / Thunder Wave / Thunder Wave / Toxic / Light Screen / Reflect / Thunder / Rest
The set is picked at random, according to its chance out of 16 (a maximum of 4 sets are supported). This is great to provide good variety and unpredictability on Pokemon that can successfully utilize different kind of sets, weighing each set according to its overall utility.
Each set is made of 1 item, 0 to 4 base moves (up to baseMove4), and 0 to 4 lists of filler moves (up to fillerMoves4), always making a total of 4 moves. Base moves always make the set while one move of each filler move list is picked at random. The odds of each filler move or item can be adjusted by adding it more than once to the list. The engine takes care of making sure that no move is repeated and that no more than one hidden power is picked.
Obviously, this is a lot of work and I'm not willing to do it all by myself. That's why I'm bringing it up in the community. If you are familiar with GSC and want to contribute, you can fork and send pull requests to my forked Pokemon Showdown repository. This is file that you'd be modifying. All Pokemon (except Zapdos) have been given default data for now, that is there only to be replaced. Right now, Gen 2 Random Battles only includes fully evolved Pokemon, so we can focus on those first.
If you'd like to contribute but are not comfortable working on Github, feel free to suggest another way of contributing (e.g. Pastebin). I'd appreciate if you could submit the sets in the definitive format, or at least in the usual "export team" format shown below, so that all the sets are in the same format and can be converted all at once. In any case, don't worry too much about typos since I can take care of them eventually.
If you want to work on some specific Pokemon, make sure to reserve them in this thread so that someone else doesn't do the same work.
Keep in mind that this is not your typical OU metagame. Here, all Pokemon have similar chances to show up, and their levels are adjusted to tier they belong to or to their strength. For example, moves like Roar or Rapid Spin are not as useful or necessary, well-rounded defensive cores won't be a thing, Rest may not be as reliable, and coverage options that are usually considered inferior may be more useful here.
Last edited: