@pkmn/sim 0.5.1 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/build/config/formats.js +373 -289
  2. package/build/config/formats.js.map +1 -1
  3. package/build/data/abilities.js +5 -1
  4. package/build/data/abilities.js.map +1 -1
  5. package/build/data/aliases.js +2 -2
  6. package/build/data/aliases.js.map +1 -1
  7. package/build/data/formats-data.js +91 -92
  8. package/build/data/formats-data.js.map +1 -1
  9. package/build/data/items.js +5 -5
  10. package/build/data/items.js.map +1 -1
  11. package/build/data/learnsets.js +1 -1
  12. package/build/data/learnsets.js.map +1 -1
  13. package/build/data/mods/gen1/formats-data.js +190 -190
  14. package/build/data/mods/gen1/formats-data.js.map +1 -1
  15. package/build/data/mods/gen1/moves.js +1 -2
  16. package/build/data/mods/gen1/moves.js.map +1 -1
  17. package/build/data/mods/gen1/scripts.js +12 -0
  18. package/build/data/mods/gen1/scripts.js.map +1 -1
  19. package/build/data/mods/gen2/formats-data.js +2 -2
  20. package/build/data/mods/gen2/formats-data.js.map +1 -1
  21. package/build/data/mods/gen3/formats-data.js +12 -12
  22. package/build/data/mods/gen3/formats-data.js.map +1 -1
  23. package/build/data/mods/gen4/moves.js +22 -0
  24. package/build/data/mods/gen4/moves.js.map +1 -1
  25. package/build/data/mods/gen5/formats-data.js +172 -155
  26. package/build/data/mods/gen5/formats-data.js.map +1 -1
  27. package/build/data/mods/gen6/formats-data.js +1 -1
  28. package/build/data/mods/gen7/formats-data.js +1 -1
  29. package/build/data/mods/gen7/formats-data.js.map +1 -1
  30. package/build/data/mods/gen7/moves.js +154 -0
  31. package/build/data/mods/gen7/moves.js.map +1 -1
  32. package/build/data/moves.js +47 -20
  33. package/build/data/moves.js.map +1 -1
  34. package/build/data/pokedex.js +3 -3
  35. package/build/data/pokedex.js.map +1 -1
  36. package/build/data/rulesets.js +48 -5
  37. package/build/data/rulesets.js.map +1 -1
  38. package/build/data/tags.d.ts +1 -0
  39. package/build/data/tags.js +4 -3
  40. package/build/data/tags.js.map +1 -1
  41. package/build/data/text/abilities.js +4 -4
  42. package/build/data/text/abilities.js.map +1 -1
  43. package/build/data/text/moves.js +19 -19
  44. package/build/data/text/moves.js.map +1 -1
  45. package/build/sim/battle-actions.js +12 -4
  46. package/build/sim/battle-actions.js.map +1 -1
  47. package/build/sim/dex-formats.d.ts +1 -0
  48. package/build/sim/dex-formats.js +3 -2
  49. package/build/sim/dex-formats.js.map +1 -1
  50. package/build/sim/exported-global-types.d.ts +1 -0
  51. package/build/sim/global-types.d.ts +1 -0
  52. package/build/sim/index.d.ts +1 -0
  53. package/build/sim/index.js +3 -1
  54. package/build/sim/index.js.map +1 -1
  55. package/build/sim/pokemon.js +1 -1
  56. package/build/sim/pokemon.js.map +1 -1
  57. package/build/sim/team-validator.js +16 -0
  58. package/build/sim/team-validator.js.map +1 -1
  59. package/config/formats.ts +379 -292
  60. package/data/abilities.ts +3 -1
  61. package/data/aliases.ts +2 -2
  62. package/data/formats-data.ts +91 -92
  63. package/data/items.ts +5 -5
  64. package/data/learnsets.ts +1 -1
  65. package/data/mods/gen1/formats-data.ts +190 -190
  66. package/data/mods/gen1/moves.ts +1 -2
  67. package/data/mods/gen1/scripts.ts +11 -0
  68. package/data/mods/gen2/formats-data.ts +2 -2
  69. package/data/mods/gen3/formats-data.ts +12 -12
  70. package/data/mods/gen4/moves.ts +21 -0
  71. package/data/mods/gen5/formats-data.ts +172 -155
  72. package/data/mods/gen6/formats-data.ts +1 -1
  73. package/data/mods/gen7/formats-data.ts +1 -1
  74. package/data/mods/gen7/moves.ts +150 -0
  75. package/data/moves.ts +46 -20
  76. package/data/pokedex.ts +3 -3
  77. package/data/rulesets.ts +44 -6
  78. package/data/tags.ts +6 -3
  79. package/data/text/abilities.ts +4 -4
  80. package/data/text/moves.ts +19 -19
  81. package/package.json +2 -2
  82. package/sim/battle-actions.ts +12 -4
  83. package/sim/dex-formats.ts +4 -1
  84. package/sim/exported-global-types.ts +1 -0
  85. package/sim/global-types.ts +1 -0
  86. package/sim/index.ts +1 -0
  87. package/sim/pokemon.ts +1 -1
  88. package/sim/team-validator.ts +15 -0
package/config/formats.ts CHANGED
@@ -86,7 +86,10 @@ export const Formats: FormatList = [
86
86
 
87
87
  mod: 'gen8',
88
88
  ruleset: ['Standard', 'Dynamax Clause'],
89
- banlist: ['Uber', 'AG', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'King\'s Rock', 'Baton Pass'],
89
+ banlist: [
90
+ 'Uber', 'AG', 'Arena Trap', 'Moody', 'Power Construct', 'Sand Veil', 'Shadow Tag', 'Snow Cloak',
91
+ 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Baton Pass',
92
+ ],
90
93
  },
91
94
  {
92
95
  name: "[Gen 8] OU (Blitz)",
@@ -140,7 +143,7 @@ export const Formats: FormatList = [
140
143
 
141
144
  mod: 'gen8',
142
145
  ruleset: ['[Gen 8] RU'],
143
- banlist: ['RU', 'NUBL', 'Drizzle', 'Drought'],
146
+ banlist: ['RU', 'NUBL', 'Drizzle', 'Drought', 'Slush Rush'],
144
147
  },
145
148
  {
146
149
  name: "[Gen 8] PU",
@@ -205,7 +208,7 @@ export const Formats: FormatList = [
205
208
  'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Dialga', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Jirachi',
206
209
  'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Melmetal', 'Mew', 'Mewtwo', 'Mimikyu', 'Necrozma-Dawn-Wings',
207
210
  'Necrozma-Dusk-Mane', 'Palkia', 'Rayquaza', 'Reshiram', 'Sableye', 'Snorlax', 'Solgaleo', 'Victini', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
208
- 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Perish Song',
211
+ 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Power Construct', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Perish Song',
209
212
  ],
210
213
  },
211
214
  {
@@ -231,7 +234,7 @@ export const Formats: FormatList = [
231
234
  mod: 'gen8',
232
235
  ruleset: ['[Gen 8] PU'],
233
236
  banlist: [
234
- 'PU', 'Centiskorch', 'Drampa', 'Exeggutor-Alola', 'Gallade', 'Haunter', 'Magmortar', 'Magneton', 'Omastar', 'Rotom-Frost',
237
+ 'PU', 'Aurorus', 'Centiskorch', 'Drampa', 'Exeggutor-Alola', 'Gallade', 'Haunter', 'Magmortar', 'Magneton', 'Omastar', 'Rotom-Frost',
235
238
  'Turtonator', 'Vanilluxe', 'Vikavolt', 'Silvally-Dragon', 'Silvally-Ground', 'Sneasel', 'Damp Rock', 'Grassy Seed',
236
239
  ],
237
240
  },
@@ -246,9 +249,9 @@ export const Formats: FormatList = [
246
249
  ruleset: ['[Gen 8] LC'],
247
250
  banlist: [
248
251
  // LC OU
249
- 'Abra', 'Archen', 'Carvanha', 'Diglett-Base', 'Dwebble', 'Ferroseed', 'Foongus', 'Frillish', 'Grookey', 'Koffing',
250
- 'Larvesta', 'Magnemite', 'Mareanie', 'Mienfoo', 'Mudbray', 'Munchlax', 'Natu', 'Onix', 'Pawniard', 'Ponyta',
251
- 'Ponyta-Galar', 'Porygon', 'Slowpoke-Base', 'Spritzee', 'Staryu', 'Timburr', 'Trapinch', 'Tyrunt', 'Vulpix',
252
+ 'Abra', 'Carvanha', 'Croagunk', 'Diglett-Base', 'Dwebble', 'Ferroseed', 'Foongus', 'Frillish', 'Grookey',
253
+ 'Koffing', 'Larvesta', 'Magnemite', 'Mareanie', 'Mienfoo', 'Mudbray', 'Munchlax', 'Natu', 'Onix', 'Pawniard',
254
+ 'Ponyta', 'Ponyta-Galar', 'Porygon', 'Slowpoke-Base', 'Staryu', 'Timburr', 'Trapinch', 'Tyrunt', 'Vulpix',
252
255
  // LC UUBL
253
256
  'Farfetch\u2019d-Galar', 'Scorbunny', 'Shellder', 'Wingull',
254
257
  ],
@@ -286,15 +289,12 @@ export const Formats: FormatList = [
286
289
  restricted: ['Restricted Legendary'],
287
290
  },
288
291
  {
289
- name: "[Gen 8] Battle Stadium Singles Series 9",
290
- threads: [
291
- `&bullet; <a href="https://www.smogon.com/forums/threads/3679374/">BSS Discussion</a>`,
292
- `&bullet; <a href="https://www.smogon.com/forums/threads/3672698/">BSS Viability Rankings</a>`,
293
- ],
292
+ name: "[Gen 8] Battle Stadium Singles Series 12",
294
293
 
295
294
  mod: 'gen8',
296
295
  searchShow: false,
297
- ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8'],
296
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'Limit Two Restricted'],
297
+ restricted: ['Restricted Legendary'],
298
298
  },
299
299
  {
300
300
  name: "[Gen 8] Custom Game",
@@ -369,32 +369,25 @@ export const Formats: FormatList = [
369
369
  banlist: ['Corsola-Galar', 'Cutiefly', 'Ponyta-Base', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vulpix', 'Vulpix-Alola'],
370
370
  },
371
371
  {
372
- name: "[Gen 8] VGC 2021 Series 11",
373
- threads: [
374
- `&bullet; <a href="https://www.smogon.com/forums/threads/3677186/">VGC 2021 Series 11 Metagame Discussion</a>`,
375
- `&bullet; <a href="https://www.smogon.com/forums/threads/3693427/">VGC 2021 Series 11 Sample Teams</a>`,
376
- `&bullet; <a href="https://www.smogon.com/forums/threads/3693284/">VGC 2021 Series 11 Viability Rankings</a>`,
377
- ],
372
+ name: "[Gen 8] VGC 2022",
378
373
 
379
374
  mod: 'gen8',
380
375
  gameType: 'doubles',
381
- ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit One Restricted'],
376
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit Two Restricted'],
382
377
  restricted: ['Restricted Legendary'],
383
378
  },
384
379
  {
385
- name: "[Gen 8] Tiny Tourney",
380
+ name: "[Gen 8] VGC 2021 Series 11",
386
381
  threads: [
387
- `&bullet; <a href="https://www.smogon.com/forums/threads/3694047/">Tiny Tourney Metagame Discussion</a>`,
382
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3677186/">VGC 2021 Series 11 Metagame Discussion</a>`,
383
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693427/">VGC 2021 Series 11 Sample Teams</a>`,
384
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693284/">VGC 2021 Series 11 Viability Rankings</a>`,
388
385
  ],
389
386
 
390
387
  mod: 'gen8',
391
388
  gameType: 'doubles',
392
- ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8'],
393
- onValidateSet(set) {
394
- const species = this.dex.species.get(set.species);
395
- if (!species.nfe || species.prevo) return [`Non-first-stage Pok\u00e9mon cannot be used in Tiny Tourney.`];
396
- if (species.heightm > 1) return [`${species.name} is too tall to be used in Tiny Tourney.`];
397
- },
389
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit One Restricted'],
390
+ restricted: ['Restricted Legendary'],
398
391
  },
399
392
  {
400
393
  name: "[Gen 8] VGC 2021 Series 9",
@@ -503,13 +496,15 @@ export const Formats: FormatList = [
503
496
  mod: 'gen8',
504
497
  ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
505
498
  banlist: [
506
- 'Alakazam-Mega', 'Arceus', 'Blastoise-Mega', 'Blaziken-Mega', 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darkrai', 'Darmanitan-Galar',
507
- 'Deoxys-Attack', 'Deoxys-Base', 'Deoxys-Speed', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus', 'Genesect', 'Gengar-Mega', 'Giratina',
508
- 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Lucario-Mega',
509
- 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Metagross-Mega', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane',
510
- 'Necrozma-Ultra', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Tornadus-Therian',
511
- 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Zygarde-Complete',
512
- 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Quick Claw', 'Baton Pass',
499
+ 'Alakazam-Mega', 'Arceus', 'Blastoise-Mega', 'Blaziken-Mega', 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darkrai',
500
+ 'Darmanitan-Galar', 'Deoxys-Attack', 'Deoxys-Base', 'Deoxys-Speed', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus',
501
+ 'Genesect', 'Gengar-Mega', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-Black',
502
+ 'Kyurem-White', 'Landorus-Base', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Metagross-Mega', 'Mewtwo',
503
+ 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Necrozma-Ultra', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram',
504
+ 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian',
505
+ 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Zygarde-Complete', 'Arena Trap', 'Moody',
506
+ 'Power Construct', 'Sand Veil', 'Shadow Tag', 'Snow Cloak', 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Razor Fang',
507
+ 'Quick Claw', 'Baton Pass',
513
508
  ],
514
509
  },
515
510
  {
@@ -524,11 +519,10 @@ export const Formats: FormatList = [
524
519
  ruleset: ['[Gen 8] National Dex'],
525
520
  banlist: [
526
521
  // National Dex OU
527
- 'Blaziken', 'Blissey', 'Chansey', 'Charizard-Mega-X', 'Charizard-Mega-Y', 'Clefable', 'Corviknight', 'Diancie-Mega',
528
- 'Excadrill', 'Ferrothorn', 'Garchomp', 'Gliscor', 'Greninja', 'Heatran', 'Kartana', 'Kommo-o', 'Kyurem', 'Landorus-Therian',
529
- 'Lopunny-Mega', 'Magnezone', 'Mawile-Mega', 'Medicham-Mega', 'Pelipper', 'Rillaboom', 'Scizor-Mega', 'Serperior',
530
- 'Slowbro-Base', 'Swampert-Mega', 'Tapu Fini', 'Tapu Koko', 'Tapu Lele', 'Toxapex', 'Tyranitar', 'Victini', 'Volcarona',
531
- 'Weavile', 'Zapdos-Base',
522
+ 'Blissey', 'Chansey', 'Charizard-Mega-X', 'Charizard-Mega-Y', 'Clefable', 'Corviknight', 'Diancie-Mega', 'Excadrill',
523
+ 'Ferrothorn', 'Garchomp', 'Gliscor', 'Greninja', 'Heatran', 'Kartana', 'Kommo-o', 'Kyurem', 'Landorus-Therian', 'Lopunny-Mega',
524
+ 'Magnezone', 'Mawile-Mega', 'Pelipper', 'Rillaboom', 'Scizor-Mega', 'Serperior', 'Slowbro-Base', 'Swampert-Mega', 'Tapu Fini',
525
+ 'Tapu Koko', 'Tapu Lele', 'Toxapex', 'Tyranitar', 'Victini', 'Volcarona', 'Weavile', 'Zapdos-Base',
532
526
  'ND UUBL', // National Dex UUBL
533
527
  'Drizzle', 'Drought',
534
528
  // Slowbronite is banned so it doesn't validate on Galarian Slowbro
@@ -536,10 +530,12 @@ export const Formats: FormatList = [
536
530
  ],
537
531
  // Used to distinguish UU from below UU in the client
538
532
  restricted: [
539
- 'Absol-Mega', 'Aegislash', 'Alomomola', 'Altaria-Mega', 'Amoonguss', 'Beedrill-Mega', 'Bisharp', 'Breloom', 'Celesteela',
540
- 'Donphan', 'Dragonite', 'Hippowdon', 'Infernape', 'Keldeo', 'Krookodile', 'Mandibuzz', 'Manectric-Mega', 'Melmetal', 'Mew',
541
- 'Moltres-Base', 'Porygon2', 'Regieleki', 'Rotom-Heat', 'Rotom-Wash', 'Scizor', 'Skarmory', 'Slowking', 'Slowking-Galar',
542
- 'Swampert-Base', 'Tangrowth', 'Umbreon', 'Urshifu-Rapid-Strike',
533
+ 'Aegislash', 'Alakazam-Base', 'Altaria-Mega', 'Amoonguss', 'Beedrill-Mega', 'Blaziken-Base', 'Breloom', 'Celesteela',
534
+ 'Chandelure', 'Donphan', 'Dracozolt', 'Dragonite', 'Feraligatr', 'Gastrodon', 'Hatterene', 'Hippowdon', 'Infernape',
535
+ 'Keldeo', 'Krookodile', 'Mamoswine', 'Mandibuzz', 'Manectric-Mega', 'Melmetal', 'Mienshao', 'Moltres-Base',
536
+ 'Nidoking', 'Nidoqueen', 'Nihilego', 'Quagsire', 'Regieleki', 'Ribombee', 'Rotom-Heat', 'Rotom-Wash', 'Salamence',
537
+ 'Scizor', 'Skarmory', 'Slowking-Base', 'Swampert-Base', 'Talonflame', 'Tangrowth', 'Tornadus-Base', 'Umbreon',
538
+ 'Urshifu-Rapid-Strike',
543
539
  ],
544
540
  },
545
541
  {
@@ -579,36 +575,62 @@ export const Formats: FormatList = [
579
575
  section: "Pet Mods",
580
576
  },
581
577
  {
582
- name: "[Gen 8] Fusion Evolution UU",
578
+ name: "[Gen 8] Alternatium",
579
+ desc: `A metagame made up of only Pok&eacute;mon with alternate forms, with all of them being separate and unique.`,
583
580
  threads: [
584
- `&bullet; <a href="https://www.smogon.com/forums/threads/3674163/">Fusion Evolution UU</a>`,
581
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3683767/">Alternatium</a>`,
582
+ `&bullet; <a href="https://docs.google.com/spreadsheets/d/1bvvkPg1CrUBJFJJeuwkts8elfJcEcahGOoHm-vGBXOI/edit?usp=sharing">Spreadsheet</a>`,
585
583
  ],
586
584
 
587
- mod: "fusionevolutionuu",
588
- searchShow: false,
589
- ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Dynamax Clause', 'Sleep Clause Mod', 'Z-Move Clause', 'Data Mod', 'Mega Data Mod'],
590
- banlist: [
591
- 'All Pokemon', 'Lopunnite', 'Tapu Lop-Mega', 'Red Orb', 'Grousle-Primal',
592
- ],
585
+ mod: 'alternatium',
586
+ ruleset: ['Standard NatDex', 'Z-Move Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
587
+ banlist: ['All Pokemon', 'Past'],
593
588
  unbanlist: [
594
- 'Volquag', 'Toxalure', 'Kingtsar', 'Tanette', 'Slowton',
595
- 'Flaant', 'Umbat', 'Chomplim', 'Chomplim-Mega', 'Xotalion', 'Miemie', 'Dusking', 'Jelliswine',
596
- 'Pigapult', 'Lycanserker-Dusk', 'Tapu Lop', 'Dragontler', 'Eternabat',
597
- 'Grimmlurk', 'Manicuno-Galar', 'Yacian-Crowned', 'Cryogolem', 'Stoudrago',
598
- 'Grousle', 'Dongoro', 'Slurpum',
599
- 'Corveot', 'Corveot-Mega', 'Igglyzenta-Crowned', 'Arctres-Galar', 'Garborude', 'Noicity', 'Ferros',
600
- 'Landmaldo-Therian', 'Tentoxys-Defense', 'Strikados-Galar', 'Hooporant',
601
-
602
- 'Silvino-Bug', 'Silvino-Dark', 'Silvino-Dragon', 'Silvino-Electric', 'Silvino-Fairy', 'Silvino-Fighting',
603
- 'Silvino-Fire', 'Silvino-Flying', 'Silvino-Ghost', 'Silvino-Grass', 'Silvino-Ground', 'Silvino-Ice',
604
- 'Silvino-Poison', 'Silvino-Psychic', 'Silvino-Rock', 'Silvino-Steel', 'Silvino-Water', 'Silvino',
589
+ 'Silvally', 'Silvally-Bug', 'Silvally-Dark', 'Silvally-Dragon', 'Silvally-Electric', 'Silvally-Fairy', 'Silvally-Fighting', 'Silvally-Fire', 'Silvally-Flying', 'Silvally-Ghost',
590
+ 'Silvally-Grass', 'Silvally-Ground', 'Silvally-Ice', 'Silvally-Poison', 'Silvally-Psychic', 'Silvally-Rock', 'Silvally-Steel', 'Silvally-Water', 'Pikachu', 'Pikachu-Rock-Star',
591
+ 'Pikachu-Belle', 'Pikachu-Idol', 'Pikachu-PhD', 'Pikachu-Libre', 'Pikachu-Partner', 'Pikachu-Starter', 'Darmanitan', 'Darmanitan-Zen', 'Darmanitan-Galar', 'Darmanitan-Galar-Zen',
592
+ 'Aegishield', 'Aegislash', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Rotom', 'Rotom-Heat', 'Rotom-Wash', 'Rotom-Frost', 'Rotom-Fan', 'Rotom-Mow', 'Dugtrio',
593
+ 'Dugtrio-Alola', 'Muk', 'Muk-Oilslick', 'Slowbro', 'Slowbro-Galar', 'Slowking', 'Slowking-Galar', 'Tornadus', 'Cummulus', 'Thundurus', 'Thundurus-Therian', 'Landorus', 'Landorus-Bengal',
594
+ 'Vivillon-Fancy', 'Vivillon', 'Vivillon-Pokeball', 'Genesect', 'Genesect-Password', 'Genesect-Molten', 'Genesect-Freezer', 'Genesect-Type-Delta', 'Groudon', 'Groudon-Primal', 'Kyogre',
595
+ 'Kyogre-Primal', 'Deoxys-Wood', 'Deoxys-Gem', 'Deoxys-Tank', 'Deoxys-Speed', 'Sandslash-Lustrous', 'Sandslash-Alola', 'Ninetales-Steamwork', 'Ninetales-Alola', 'Giratina', 'Giratina-Shadow',
596
+ 'Eternatus', 'Manustorm', 'Exeggutor', 'Exeggutor-Lighthouse', 'Weezing', 'Weezing-King', 'Raticate', 'Raticate-Alola', 'Linoone', 'Linoone-Punk', 'Catastroform', 'Castform-Firestorm',
597
+ 'Castform-Thunderstorm', 'Castform-Snowy', 'Wormadam', 'Wormadam-Sandy', 'Fibormadam', 'Farfetch\u2019d', 'Farfetch\u2019d-Galar', 'Corsola', 'Corsoul', 'Shaymin', 'Shaymin-Sky', 'Keldeo',
598
+ 'Swordeo', 'Meloetta', 'Meloetta-Fighter', 'Lycanday', 'Lycanroc-Spectre', 'Lycanroc-Dusk', 'Gourgeist', 'Gourgeist-Fae', 'Gourgeist-Pulpy', 'Supergeist', 'Cramorant', 'Cramorant-Swimmer',
599
+ 'Cramorant-Gorging', 'Eiscue', 'Eiscue-Noice', 'Mimikyu', 'Mimikyu-Sparkstone', 'Morpeko-Marsh', 'Morvilant', 'Zygarde-Wyrm', 'Zygarde-Canid', 'Zygarde-Goliath',
600
+ ],
601
+ onValidateTeam(team, format) {
602
+ const speciesTable = new Set<string>();
603
+ for (const set of team) {
604
+ const species = this.dex.species.get(set.species);
605
+ if (speciesTable.has(species.id)) {
606
+ return [
607
+ `You are limited to one of each Pokémon by Species Clause (except for different formes).`,
608
+ `(You have more than one ${species.id}.)`,
609
+ ];
610
+ }
611
+ speciesTable.add(species.id);
612
+ }
613
+ },
614
+ },
615
+ {
616
+ name: "[Gen 8] Random Dex",
617
+ desc: `A micrometagame project consisting of 80 randomly selected fully-evolved Pok&eacute;mon.`,
618
+ threads: [
619
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3690182/">Random Dex</a>`,
620
+ ],
605
621
 
606
- 'Silvino-Bug-Mega', 'Silvino-Dark-Mega', 'Silvino-Dragon-Mega',
607
- 'Silvino-Electric-Mega', 'Silvino-Fairy-Mega', 'Silvino-Fighting-Mega',
608
- 'Silvino-Fire-Mega', 'Silvino-Flying-Mega', 'Silvino-Ghost-Mega',
609
- 'Silvino-Grass-Mega', 'Silvino-Ground-Mega', 'Silvino-Ice-Mega',
610
- 'Silvino-Poison-Mega', 'Silvino-Psychic-Mega', 'Silvino-Rock-Mega',
611
- 'Silvino-Steel-Mega', 'Silvino-Water-Mega', 'Silvino-Mega',
622
+ mod: 'randomdex',
623
+ ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
624
+ banlist: ['All Pokemon', 'Past', 'Arena Trap', 'Moody', 'Shadow Tag', 'Baton Pass', 'Bright Powder', 'Lax Incense', 'King\'s Rock', 'Razor Fang', 'Kangaskhanite', 'Medichamite', 'Kommonium Z'],
625
+ unbanlist: [
626
+ 'Absol', 'Absol-Mega', 'Appletun', 'Articuno', 'Aurorus', 'Basculin', 'Beartic', 'Bisharp', 'Calyrex', 'Camerupt', 'Camerupt-Mega',
627
+ 'Celesteela', 'Cloyster', 'Crawdaunt', 'Cursola', 'Dedenne', 'Delibird', 'Eelektross', 'Espeon', 'Flapple', 'Flareon', 'Flygon',
628
+ 'Galvantula', 'Girafarig', 'Glaceon', 'Goodra', 'Gourgeist', 'Grimmsnarl', 'Guzzlord', 'Heliolisk', 'Hitmonchan', 'Hitmonlee',
629
+ 'Hitmontop', 'Incineroar', 'Indeedee', 'Jolteon', 'Kangaskhan', 'Kommo-o', 'Lanturn', 'Leafeon', 'Leavanny', 'Ludicolo', 'Lunatone',
630
+ 'Luvdisc', 'Machamp', 'Mandibuzz', 'Medicham', 'Nihilego', 'Palossand', 'Pidgeot', 'Pidgeot-Mega', 'Probopass', 'Pyroar', 'Sawk',
631
+ 'Sceptile', 'Sceptile-Mega', 'Scolipede', 'Shiftry', 'Simisage', 'Slowbro', 'Slowbro-Mega', 'Slowking', 'Swoobat', 'Sylveon',
632
+ 'Tapu Bulu', 'Tapu Fini', 'Tauros', 'Typhlosion', 'Umbreon', 'Ursaring', 'Vaporeon', 'Whiscash', 'Wishiwashi', 'Zebstrika', 'Absolite',
633
+ 'Pidgeotite', 'Sceptilite', 'Cameruptite', 'Slowbronite',
612
634
  ],
613
635
  },
614
636
  {
@@ -632,38 +654,81 @@ export const Formats: FormatList = [
632
654
  column: 2,
633
655
  },
634
656
  {
635
- name: "[Gen 8] Revelationmons",
636
- desc: `The moves in the first slot(s) of a Pok&eacute;mon's set have their types changed to match the Pok&eacute;mon's type(s).`,
657
+ name: "[Gen 8] Pokebilities",
658
+ desc: `Pok&eacute;mon have all of their released abilities simultaneously.`,
637
659
  threads: [
638
- `&bullet; <a href="https://www.smogon.com/forums/threads/3692297/">Revelationmons</a>`,
660
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3679692/">Pok&eacute;bilities</a>`,
639
661
  ],
640
-
641
- mod: 'gen8',
642
- ruleset: ['Standard', 'Dynamax Clause', 'Revelationmons Mod', 'Sleep Moves Clause'],
662
+ mod: 'pokebilities',
663
+ ruleset: ['Standard', 'Dynamax Clause'],
643
664
  banlist: [
644
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Dragapult', 'Eternatus', 'Genesect',
645
- 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kommo-o', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Lugia',
646
- 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Palkia',
647
- 'Pheromosa', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
648
- 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Power Construct', 'Shadow Tag',
649
- 'King\'s Rock', 'Baton Pass',
665
+ 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Conkeldurr', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dracozolt',
666
+ 'Eternatus', 'Excadrill', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-Black',
667
+ 'Kyurem-White', 'Landorus-Base', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings',
668
+ 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Porygon-Z', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base',
669
+ 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom', 'Zygarde-Base', 'Power Construct',
670
+ 'Baton Pass', 'King\'s Rock',
671
+ // Moody users
672
+ 'Glalie', 'Octillery', 'Remoraid', 'Snorunt',
673
+ // Shadow Tag/Arena Trap
674
+ 'Diglett-Base', 'Dugtrio-Base', 'Gothita', 'Gothitelle', 'Gothorita', 'Trapinch', 'Wobbuffet', 'Wynaut',
650
675
  ],
651
- restricted: ['Bolt Beak', 'U-turn', 'Volt Switch'],
676
+ onBegin() {
677
+ for (const pokemon of this.getAllPokemon()) {
678
+ if (pokemon.ability === this.toID(pokemon.species.abilities['S'])) {
679
+ continue;
680
+ }
681
+ pokemon.m.innates = Object.keys(pokemon.species.abilities)
682
+ .filter(key => key !== 'S' && (key !== 'H' || !pokemon.species.unreleasedHidden))
683
+ .map(key => this.toID(pokemon.species.abilities[key as "0" | "1" | "H" | "S"]))
684
+ .filter(ability => ability !== pokemon.ability);
685
+ }
686
+ },
687
+ onSwitchInPriority: 2,
688
+ onSwitchIn(pokemon) {
689
+ if (pokemon.m.innates) {
690
+ for (const innate of pokemon.m.innates) {
691
+ pokemon.addVolatile("ability:" + innate, pokemon);
692
+ }
693
+ }
694
+ },
695
+ onAfterMega(pokemon) {
696
+ for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
697
+ pokemon.removeVolatile(innate);
698
+ }
699
+ pokemon.m.innates = undefined;
700
+ },
652
701
  },
653
702
  {
654
- name: "[Gen 8 BDSP] Balanced Hackmons",
655
- desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`,
703
+ name: "[Gen 8] Camomons",
704
+ desc: `Pok&eacute;mon change type to match their first two moves.`,
656
705
  threads: [
657
- `&bullet; <a href="https://www.smogon.com/forums/posts/9043074">BDSP Balanced Hackmons</a>`,
706
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3656413/">Camomons</a>`,
658
707
  ],
659
708
 
660
- mod: 'gen8bdsp',
661
- ruleset: ['-Nonexistent', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Moves Clause', 'Endless Battle Clause'],
709
+ mod: 'gen8',
710
+ // searchShow: false,
711
+ ruleset: ['Obtainable', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Dynamax Clause', 'Sleep Clause Mod', 'Endless Battle Clause'],
662
712
  banlist: [
663
- 'Shedinja', 'Arena Trap', 'Contrary', 'Gorilla Tactics', 'Huge Power', 'Illusion', 'Innards Out', 'Intrepid Sword',
664
- 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble',
665
- 'Wonder Guard', 'Comatose + Sleep Talk', 'Shell Smash',
713
+ 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin',
714
+ 'Groudon', 'Ho-Oh', 'Hydreigon', 'Kartana', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Latias', 'Latios', 'Lugia',
715
+ 'Lunala', 'Marshadow', 'Mew', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram',
716
+ 'Reuniclus', 'Shedinja', 'Slowking-Galar', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', 'Volcarona', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
717
+ 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
666
718
  ],
719
+ onModifySpeciesPriority: 2,
720
+ onModifySpecies(species, target, source, effect) {
721
+ if (!target) return; // Chat command
722
+ if (effect && ['imposter', 'transform'].includes(effect.id)) return;
723
+ const types = [...new Set(target.baseMoveSlots.slice(0, 2).map(move => this.dex.moves.get(move.id).type))];
724
+ return {...species, types: types};
725
+ },
726
+ onSwitchIn(pokemon) {
727
+ this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
728
+ },
729
+ onAfterMega(pokemon) {
730
+ this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
731
+ },
667
732
  },
668
733
 
669
734
  // Other Metagames
@@ -710,6 +775,35 @@ export const Formats: FormatList = [
710
775
  }
711
776
  },
712
777
  },
778
+ {
779
+ name: "[Gen 8] Almost Any Ability",
780
+ desc: `Pok&eacute;mon have access to almost any ability.`,
781
+ threads: [
782
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3656414/">Almost Any Ability</a>`,
783
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3682690/">AAA Resources</a>`,
784
+ ],
785
+
786
+ mod: 'gen8',
787
+ ruleset: ['Obtainable', '!Obtainable Abilities', 'Species Clause', 'Nickname Clause', '2 Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Dynamax Clause', 'Sleep Moves Clause', 'Endless Battle Clause'],
788
+ banlist: [
789
+ 'Archeops', 'Blacephalon', 'Buzzwole', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Gengar', 'Giratina',
790
+ 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Keldeo', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow',
791
+ 'Melmetal', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Shedinja',
792
+ 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Urshifu-Rapid-Strike', 'Victini', 'Weavile', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom',
793
+ 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Comatose', 'Contrary', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter',
794
+ 'Innards Out', 'Intrepid Sword', 'Libero', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Power Construct', 'Protean', 'Pure Power',
795
+ 'Shadow Tag', 'Simple', 'Stakeout', 'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
796
+ ],
797
+ onValidateSet(set) {
798
+ // Temporary fix until battle-only is implemented properly
799
+ if (this.toID(set.species) === 'zamazentacrowned' && this.toID(set.ability) !== 'dauntlessshield') {
800
+ return [`Zamazenta-Crowned can only use Dauntless Shield because it is a battle-only forme.`];
801
+ }
802
+ if (this.toID(set.species) === 'zaciancrowned' && this.toID(set.ability) !== 'intrepidsword') {
803
+ return [`Zacian-Crowned can only use Intrepid Sword because it is a battle-only forme.`];
804
+ }
805
+ },
806
+ },
713
807
  {
714
808
  name: "[Gen 8] Mix and Mega",
715
809
  desc: `Mega evolve any Pok&eacute;mon with any mega stone and no limit. Boosts based on mega evolution from gen 7.`,
@@ -728,7 +822,8 @@ export const Formats: FormatList = [
728
822
  restricted: [
729
823
  'Calyrex-Ice', 'Dialga', 'Eternatus', 'Gengar', 'Giratina', 'Groudon', 'Ho-Oh', 'Kyurem-Black', 'Kyurem-White',
730
824
  'Lugia', 'Lunala', 'Marshadow', 'Melmetal', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane',
731
- 'Palkia', 'Rayquaza', 'Regigigas', 'Reshiram', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zekrom', 'Zygarde-Complete',
825
+ 'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Urshifu', 'Urshifu-Rapid-Strike', 'Xerneas',
826
+ 'Yveltal', 'Zekrom', 'Zygarde-Complete',
732
827
  ],
733
828
  onValidateTeam(team) {
734
829
  const itemTable = new Set<ID>();
@@ -771,51 +866,24 @@ export const Formats: FormatList = [
771
866
  }
772
867
  },
773
868
  },
774
- {
775
- name: "[Gen 8] Almost Any Ability",
776
- desc: `Pok&eacute;mon have access to almost any ability.`,
777
- threads: [
778
- `&bullet; <a href="https://www.smogon.com/forums/threads/3656414/">Almost Any Ability</a>`,
779
- `&bullet; <a href="https://www.smogon.com/forums/threads/3682690/">AAA Resources</a>`,
780
- ],
781
-
782
- mod: 'gen8',
783
- ruleset: ['Obtainable', '!Obtainable Abilities', 'Species Clause', 'Nickname Clause', '2 Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Dynamax Clause', 'Sleep Moves Clause', 'Endless Battle Clause'],
784
- banlist: [
785
- 'Archeops', 'Buzzwole', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Gengar', 'Giratina', 'Giratina-Origin',
786
- 'Groudon', 'Ho-Oh', 'Kartana', 'Keldeo', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Melmetal', 'Mewtwo',
787
- 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Shedinja', 'Solgaleo', 'Spectrier',
788
- 'Urshifu-Base', 'Urshifu-Rapid-Strike', 'Victini', 'Weavile', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom', 'Zeraora', 'Zygarde-Base',
789
- 'Arena Trap', 'Comatose', 'Contrary', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out', 'Intrepid Sword',
790
- 'Libero', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Power Construct', 'Protean', 'Pure Power', 'Shadow Tag', 'Simple', 'Stakeout',
791
- 'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
792
- ],
793
- onValidateSet(set) {
794
- // Temporary fix until battle-only is implemented properly
795
- if (this.toID(set.species) === 'zamazentacrowned' && this.toID(set.ability) !== 'dauntlessshield') {
796
- return [`Zamazenta-Crowned can only use Dauntless Shield because it is a battle-only forme.`];
797
- }
798
- if (this.toID(set.species) === 'zaciancrowned' && this.toID(set.ability) !== 'intrepidsword') {
799
- return [`Zacian-Crowned can only use Intrepid Sword because it is a battle-only forme.`];
800
- }
801
- },
802
- },
803
869
  {
804
870
  name: "[Gen 8] STABmons",
805
871
  desc: `Pok&eacute;mon can use any move of their typing, in addition to the moves they can normally learn.`,
806
872
  threads: [
807
873
  `&bullet; <a href="https://www.smogon.com/forums/threads/3656429/">STABmons</a>`,
874
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3695169/">STABmons Resources</a>`,
808
875
  ],
809
876
 
810
877
  mod: 'gen8',
811
- ruleset: ['Standard', 'STABmons Move Legality', 'Dynamax Clause', 'Sleep Moves Clause'],
878
+ ruleset: ['Standard', 'STABmons Move Legality', 'Dynamax Clause', 'Sleep Moves Clause', '!Sleep Clause Mod'],
812
879
  banlist: [
813
- 'Aegislash', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Genesect',
814
- 'Garchomp', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus', 'Landorus-Therian',
815
- 'Lugia', 'Lunala', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Porygon-Z',
816
- 'Rayquaza', 'Reshiram', 'Silvally', 'Solgaleo', 'Spectrier', 'Tapu Bulu', 'Tapu Koko', 'Thundurus-Base', 'Urshifu-Base', 'Xerneas', 'Yveltal',
817
- 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zapdos-Galar', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody',
818
- 'Power Construct', 'Shadow Tag', 'King\'s Rock', 'Baton Pass',
880
+ 'Aegislash', 'Blacephalon', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite',
881
+ 'Eternatus', 'Genesect', 'Garchomp', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black',
882
+ 'Kyurem-White', 'Landorus', 'Landorus-Therian', 'Lugia', 'Lunala', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings',
883
+ 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Porygon-Z', 'Rayquaza', 'Reshiram', 'Silvally', 'Solgaleo', 'Spectrier', 'Tapu Bulu',
884
+ 'Tapu Koko', 'Thundurus-Base', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned',
885
+ 'Zapdos-Galar', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Power Construct', 'Shadow Tag', 'King\'s Rock',
886
+ 'Baton Pass',
819
887
  ],
820
888
  restricted: [
821
889
  'Acupressure', 'Astral Barrage', 'Belly Drum', 'Bolt Beak', 'Clangorous Soul', 'Double Iron Bash', 'Electrify', 'Extreme Speed', 'Fishious Rend',
@@ -837,6 +905,61 @@ export const Formats: FormatList = [
837
905
  'Rhydon', 'Scyther', 'Sneasel', 'Type: Null', 'Vulpix-Base', 'Arena Trap', 'Shadow Tag', 'Baton Pass',
838
906
  ],
839
907
  },
908
+ {
909
+ name: "[Gen 8] Godly Gift",
910
+ desc: `Each Pok&eacute;mon receives one base stat from a God (AG/Uber Pok&eacute;mon) depending on its position in the team. If there is no Uber Pok&eacute;mon, it uses the Pok&eacute;mon in the first slot.`,
911
+ threads: [
912
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
913
+ ],
914
+
915
+ mod: 'gen8',
916
+ ruleset: ['Standard', 'Dynamax Clause', 'Sleep Moves Clause'],
917
+ banlist: [
918
+ 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Dragapult', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex',
919
+ 'Xerneas', 'Zacian', 'Zacian-Crowned', 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power',
920
+ 'Shadow Tag', 'Baton Pass',
921
+ ],
922
+ onValidateTeam(team) {
923
+ const gods = new Set<string>();
924
+ for (const set of team) {
925
+ let species = this.dex.species.get(set.species);
926
+ if (typeof species.battleOnly === 'string') species = this.dex.species.get(species.battleOnly);
927
+ if (['ag', 'uber'].includes(this.toID(species.tier)) || this.toID(set.ability) === 'powerconstruct') {
928
+ gods.add(species.name);
929
+ }
930
+ }
931
+ if (gods.size > 1) {
932
+ return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`];
933
+ }
934
+ },
935
+ onModifySpeciesPriority: 3,
936
+ onModifySpecies(species, target, source) {
937
+ if (source || !target?.side) return;
938
+ const god = target.side.team.find(set => {
939
+ let godSpecies = this.dex.species.get(set.species);
940
+ const validator = this.dex.formats.getRuleTable(this.dex.formats.get(`gen${this.gen}ou`));
941
+ if (this.toID(set.ability) === 'powerconstruct') {
942
+ return true;
943
+ }
944
+ if (set.item) {
945
+ const item = this.dex.items.get(set.item);
946
+ if (item.megaEvolves === set.species) godSpecies = this.dex.species.get(item.megaStone);
947
+ }
948
+ const isBanned = validator.isBannedSpecies(godSpecies);
949
+ return isBanned;
950
+ }) || target.side.team[0];
951
+ const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
952
+ const newSpecies = this.dex.deepClone(species);
953
+ let godSpecies = this.dex.species.get(god.species);
954
+ if (godSpecies.forme === 'Crowned') {
955
+ godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
956
+ }
957
+ newSpecies.bst -= newSpecies.baseStats[stat];
958
+ newSpecies.baseStats[stat] = godSpecies.baseStats[stat];
959
+ newSpecies.bst += newSpecies.baseStats[stat];
960
+ return newSpecies;
961
+ },
962
+ },
840
963
  {
841
964
  name: "[Gen 8] Free-For-All",
842
965
  threads: [
@@ -875,12 +998,16 @@ export const Formats: FormatList = [
875
998
  name: "[Gen 8 BDSP] OU",
876
999
  threads: [
877
1000
  `&bullet; <a href="https://www.smogon.com/forums/threads/3693629/">BDSP OU Metagame Discussion</a>`,
878
- `&bullet; <a href="https://www.smogon.com/forums/threads/3693620/">BDSP OU Viability List</a>`,
1001
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693721/">BDSP OU Sample Teams</a>`,
1002
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3696088/">BDSP OU Viability Rankings</a>`,
879
1003
  ],
880
1004
 
881
1005
  mod: 'gen8bdsp',
882
1006
  ruleset: ['Standard'],
883
- banlist: ['Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass'],
1007
+ banlist: [
1008
+ 'Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Sand Veil', 'Shadow Tag', 'Snow Cloak',
1009
+ 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Razor Fang', 'Baton Pass',
1010
+ ],
884
1011
  },
885
1012
  {
886
1013
  name: "[Gen 8 BDSP] Ubers",
@@ -902,6 +1029,26 @@ export const Formats: FormatList = [
902
1029
  ruleset: ['[Gen 8 BDSP] OU'],
903
1030
  banlist: ['OU', 'UUBL'],
904
1031
  },
1032
+ {
1033
+ name: "[Gen 8 BDSP] RU",
1034
+ threads: [
1035
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3695563/">BDSP RU</a>`,
1036
+ ],
1037
+
1038
+ mod: 'gen8bdsp',
1039
+ ruleset: ['[Gen 8 BDSP] UU'],
1040
+ banlist: ['UU', 'RUBL'],
1041
+ },
1042
+ {
1043
+ name: "[Gen 8 BDSP] LC",
1044
+ threads: [
1045
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3696004/">BDSP LC</a>`,
1046
+ ],
1047
+
1048
+ mod: 'gen8bdsp',
1049
+ ruleset: ['Little Cup', 'Standard'],
1050
+ banlist: ['Gligar', 'Meditite', 'Misdreavus', 'Murkrow', 'Scyther', 'Sneasel', 'Tangela', 'Vulpix', 'Yanma', 'Baton Pass'],
1051
+ },
905
1052
  {
906
1053
  name: "[Gen 8 BDSP] Monotype",
907
1054
  threads: [
@@ -925,6 +1072,15 @@ export const Formats: FormatList = [
925
1072
  searchShow: false,
926
1073
  ruleset: ['[Gen 8 BDSP] OU', '+CAP'],
927
1074
  },
1075
+ {
1076
+ name: "[Gen 8 BDSP] 3v3 Singles",
1077
+ threads: [
1078
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3695092/">BDSP 3v3 Singles</a>`,
1079
+ ],
1080
+
1081
+ mod: 'gen8bdsp',
1082
+ ruleset: ['Flat Rules', 'Min Source Gen = 8'],
1083
+ },
928
1084
  {
929
1085
  name: "[Gen 8 BDSP] Doubles OU",
930
1086
  threads: [
@@ -961,93 +1117,6 @@ export const Formats: FormatList = [
961
1117
  section: "Challengeable OMs",
962
1118
  column: 2,
963
1119
  },
964
- {
965
- name: "[Gen 8] Camomons",
966
- desc: `Pok&eacute;mon change type to match their first two moves.`,
967
- threads: [
968
- `&bullet; <a href="https://www.smogon.com/forums/threads/3656413/">Camomons</a>`,
969
- ],
970
-
971
- mod: 'gen8',
972
- searchShow: false,
973
- ruleset: ['Obtainable', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Dynamax Clause', 'Sleep Clause Mod', 'Endless Battle Clause'],
974
- banlist: [
975
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon',
976
- 'Ho-Oh', 'Hydreigon', 'Kartana', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Latias', 'Latios', 'Lugia', 'Lunala', 'Marshadow',
977
- 'Mew', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Reuniclus', 'Shedinja',
978
- 'Slowking-Galar', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom',
979
- 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
980
- ],
981
- onModifySpeciesPriority: 2,
982
- onModifySpecies(species, target, source, effect) {
983
- if (!target) return; // Chat command
984
- if (effect && ['imposter', 'transform'].includes(effect.id)) return;
985
- const types = [...new Set(target.baseMoveSlots.slice(0, 2).map(move => this.dex.moves.get(move.id).type))];
986
- return {...species, types: types};
987
- },
988
- onSwitchIn(pokemon) {
989
- this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
990
- },
991
- onAfterMega(pokemon) {
992
- this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
993
- },
994
- },
995
- {
996
- name: "[Gen 8] Godly Gift",
997
- desc: `Each Pok&eacute;mon receives one base stat from a God (AG/Uber Pok&eacute;mon) depending on its position in the team. If there is no Uber Pok&eacute;mon, it uses the Pok&eacute;mon in the first slot.`,
998
- threads: [
999
- `&bullet; <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
1000
- ],
1001
-
1002
- mod: 'gen8',
1003
- searchShow: false,
1004
- ruleset: ['Standard', 'Dynamax Clause'],
1005
- banlist: [
1006
- 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Dragapult', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex',
1007
- 'Xerneas', 'Zacian', 'Zacian-Crowned', 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power',
1008
- 'Shadow Tag', 'Baton Pass',
1009
- ],
1010
- onValidateTeam(team) {
1011
- const gods = new Set<string>();
1012
- for (const set of team) {
1013
- let species = this.dex.species.get(set.species);
1014
- if (typeof species.battleOnly === 'string') species = this.dex.species.get(species.battleOnly);
1015
- if (['ag', 'uber'].includes(this.toID(species.tier)) || this.toID(set.ability) === 'powerconstruct') {
1016
- gods.add(species.name);
1017
- }
1018
- }
1019
- if (gods.size > 1) {
1020
- return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`];
1021
- }
1022
- },
1023
- onModifySpeciesPriority: 3,
1024
- onModifySpecies(species, target, source) {
1025
- if (source || !target?.side) return;
1026
- const god = target.side.team.find(set => {
1027
- let godSpecies = this.dex.species.get(set.species);
1028
- const validator = this.dex.formats.getRuleTable(this.dex.formats.get(`gen${this.gen}ou`));
1029
- if (this.toID(set.ability) === 'powerconstruct') {
1030
- return true;
1031
- }
1032
- if (set.item) {
1033
- const item = this.dex.items.get(set.item);
1034
- if (item.megaEvolves === set.species) godSpecies = this.dex.species.get(item.megaStone);
1035
- }
1036
- const isBanned = validator.isBannedSpecies(godSpecies);
1037
- return isBanned;
1038
- }) || target.side.team[0];
1039
- const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
1040
- const newSpecies = this.dex.deepClone(species);
1041
- let godSpecies = this.dex.species.get(god.species);
1042
- if (godSpecies.forme === 'Crowned') {
1043
- godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
1044
- }
1045
- newSpecies.bst -= newSpecies.baseStats[stat];
1046
- newSpecies.baseStats[stat] = godSpecies.baseStats[stat];
1047
- newSpecies.bst += newSpecies.baseStats[stat];
1048
- return newSpecies;
1049
- },
1050
- },
1051
1120
  {
1052
1121
  name: "[Gen 8] Inheritance",
1053
1122
  desc: `Pok&eacute;mon may use the ability and moves of another, as long as they forfeit their own learnset.`,
@@ -1885,7 +1954,8 @@ export const Formats: FormatList = [
1885
1954
 
1886
1955
  mod: 'gen8',
1887
1956
  team: 'randomHC',
1888
- ruleset: ['Obtainable Formes', 'HP Percentage Mod', 'Cancel Mod'],
1957
+ ruleset: ['HP Percentage Mod', 'Cancel Mod'],
1958
+ banlist: ['Nonexistent'],
1889
1959
  },
1890
1960
  {
1891
1961
  name: "[Gen 8] Doubles Hackmons Cup",
@@ -1894,7 +1964,8 @@ export const Formats: FormatList = [
1894
1964
  gameType: 'doubles',
1895
1965
  team: 'randomHC',
1896
1966
  searchShow: false,
1897
- ruleset: ['Obtainable', 'HP Percentage Mod', 'Cancel Mod'],
1967
+ ruleset: ['HP Percentage Mod', 'Cancel Mod'],
1968
+ banlist: ['Nonexistent'],
1898
1969
  },
1899
1970
  {
1900
1971
  name: "[Gen 8] CAP 1v1",
@@ -1970,6 +2041,7 @@ export const Formats: FormatList = [
1970
2041
  team: 'randomHC',
1971
2042
  searchShow: false,
1972
2043
  ruleset: ['HP Percentage Mod', 'Cancel Mod'],
2044
+ banlist: ['Nonexistent'],
1973
2045
  },
1974
2046
  {
1975
2047
  name: "[Gen 7 Let's Go] Random Battle",
@@ -2046,6 +2118,7 @@ export const Formats: FormatList = [
2046
2118
  team: 'randomHC',
2047
2119
  searchShow: false,
2048
2120
  ruleset: ['HP Percentage Mod', 'Cancel Mod', 'Desync Clause Mod', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Team Type Preview'],
2121
+ banlist: ['Nonexistent'],
2049
2122
  onModifySpecies(species, target, source, effect) {
2050
2123
  if (!target) return;
2051
2124
  return {...species, ...(target.set as any).hc};
@@ -2067,50 +2140,40 @@ export const Formats: FormatList = [
2067
2140
  column: 3,
2068
2141
  },
2069
2142
  {
2070
- name: "[Gen 1] UU",
2071
- threads: [
2072
- `&bullet; <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
2073
- `&bullet; <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
2074
- ],
2143
+ name: "[Gen 2] UU",
2144
+ threads: [`&bullet; <a href="https://www.smogon.com/forums/threads/3576710/">GSC UU</a>`],
2075
2145
 
2076
- mod: 'gen1',
2146
+ mod: 'gen2',
2077
2147
  // searchShow: false,
2078
- ruleset: ['[Gen 1] OU'],
2148
+ ruleset: ['[Gen 2] OU'],
2079
2149
  banlist: ['OU', 'UUBL'],
2080
2150
  },
2081
2151
  {
2082
- name: "[Gen 6] 1v1",
2083
- desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
2152
+ name: "[Gen 5] NU",
2084
2153
  threads: [
2085
- `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
2154
+ `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2155
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3484121/">BW2 NU Viability Rankings</a>`,
2086
2156
  ],
2087
2157
 
2088
- mod: 'gen6',
2158
+ mod: 'gen5',
2089
2159
  // searchShow: false,
2090
- ruleset: [
2091
- 'Max Team Size = 3', 'Picked Team Size = 1',
2092
- 'Obtainable', 'Nickname Clause', 'Moody Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Accuracy Moves Clause', 'Swagger Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview',
2093
- ],
2094
- banlist: [
2095
- 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
2096
- 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
2097
- 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
2098
- 'Focus Sash', 'Soul Dew', 'Perish Song',
2099
- ],
2160
+ ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod'],
2161
+ banlist: ['RU', 'NUBL', 'Assist', 'Copycat'],
2100
2162
  },
2101
2163
  {
2102
- name: "[Gen 5] Doubles OU",
2164
+ name: "[Gen 5] LC",
2103
2165
  threads: [
2104
- `&bullet; <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
2105
- `&bullet; <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
2106
- `&bullet; <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
2166
+ `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2167
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3485860/">BW2 LC Viability Rankings</a>`,
2107
2168
  ],
2108
2169
 
2109
2170
  mod: 'gen5',
2110
- gameType: 'doubles',
2111
2171
  // searchShow: false,
2112
- ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
2113
- banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
2172
+ ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause'],
2173
+ banlist: [
2174
+ 'Gligar', 'Meditite', 'Misdreavus', 'Murkrow', 'Scraggy', 'Scyther', 'Sneasel', 'Tangela', 'Vulpix', 'Yanma',
2175
+ 'Sand Rush', 'Sand Veil', 'Berry Juice', 'Soul Dew', 'Baton Pass', 'Dragon Rage', 'Sonic Boom', 'Swagger',
2176
+ ],
2114
2177
  },
2115
2178
 
2116
2179
  // Past Gens OU
@@ -2152,8 +2215,8 @@ export const Formats: FormatList = [
2152
2215
  ],
2153
2216
 
2154
2217
  mod: 'gen5',
2155
- ruleset: ['Standard', 'Evasion Abilities Clause', 'Baton Pass Clause', 'Sleep Moves Clause', 'Swagger Clause'],
2156
- banlist: ['Uber', 'Arena Trap', 'Drizzle ++ Swift Swim', 'Drought ++ Chlorophyll', 'Sand Rush', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Soul Dew', 'Assist'],
2218
+ ruleset: ['Standard', 'Evasion Abilities Clause', 'Sleep Moves Clause', 'Swagger Clause'],
2219
+ banlist: ['Uber', 'Arena Trap', 'Drizzle ++ Swift Swim', 'Drought ++ Chlorophyll', 'Sand Rush', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Soul Dew', 'Assist', 'Baton Pass'],
2157
2220
  },
2158
2221
  {
2159
2222
  name: "[Gen 4] OU",
@@ -2175,8 +2238,8 @@ export const Formats: FormatList = [
2175
2238
  ],
2176
2239
 
2177
2240
  mod: 'gen3',
2178
- ruleset: ['Standard', '3 Baton Pass Clause'],
2179
- banlist: ['Uber', 'Mr. Mime', 'Smeargle + Baton Pass', 'Sand Veil'],
2241
+ ruleset: ['Standard', 'One Boost Passer Clause'],
2242
+ banlist: ['Uber', 'Sand Veil', 'Assist', 'Baton Pass + Mean Look', 'Baton Pass + Spider Web', 'Smeargle + Ingrain'],
2180
2243
  },
2181
2244
  {
2182
2245
  name: "[Gen 2] OU",
@@ -2326,6 +2389,16 @@ export const Formats: FormatList = [
2326
2389
  mod: 'gen6',
2327
2390
  ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause', 'EV limit = 510'],
2328
2391
  },
2392
+ {
2393
+ name: "[Gen 5] ZU",
2394
+ threads: [
2395
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8034680/">BW2 ZU</a>`,
2396
+ ],
2397
+
2398
+ mod: 'gen5',
2399
+ ruleset: ['[Gen 5] PU'],
2400
+ banlist: ['PU', 'Dragonair', 'Glalie', 'Machoke', 'Marowak', 'Omanyte', 'Regigigas', 'Trubbish', 'Whirlipede', 'Baton Pass'],
2401
+ },
2329
2402
 
2330
2403
  // US/UM Singles
2331
2404
  ///////////////////////////////////////////////////////////////////
@@ -2743,6 +2816,26 @@ export const Formats: FormatList = [
2743
2816
  'Soul Dew', 'Baton Pass',
2744
2817
  ],
2745
2818
  },
2819
+ {
2820
+ name: "[Gen 6] 1v1",
2821
+ desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
2822
+ threads: [
2823
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
2824
+ ],
2825
+
2826
+ mod: 'gen6',
2827
+ searchShow: false,
2828
+ ruleset: [
2829
+ 'Max Team Size = 3', 'Picked Team Size = 1',
2830
+ 'Obtainable', 'Nickname Clause', 'Moody Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Accuracy Moves Clause', 'Swagger Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview',
2831
+ ],
2832
+ banlist: [
2833
+ 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
2834
+ 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
2835
+ 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
2836
+ 'Focus Sash', 'Soul Dew', 'Perish Song',
2837
+ ],
2838
+ },
2746
2839
  {
2747
2840
  name: "[Gen 6] Anything Goes",
2748
2841
  threads: [
@@ -2765,7 +2858,7 @@ export const Formats: FormatList = [
2765
2858
  mod: 'gen6',
2766
2859
  searchShow: false,
2767
2860
  ruleset: ['[Gen 6] OU', '+CAP'],
2768
- banlist: ['Aurumoth', 'Cawmodore'],
2861
+ banlist: ['Aurumoth', 'Cawmodore', 'Crucibelle-Mega'],
2769
2862
  },
2770
2863
  {
2771
2864
  name: "[Gen 6] Battle Spot Singles",
@@ -2941,18 +3034,6 @@ export const Formats: FormatList = [
2941
3034
  banlist: ['UU', 'RUBL', 'Shadow Tag', 'Shell Smash + Baton Pass'],
2942
3035
  unbanlist: ['Prankster + Assist', 'Prankster + Copycat', 'Baton Pass'],
2943
3036
  },
2944
- {
2945
- name: "[Gen 5] NU",
2946
- threads: [
2947
- `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2948
- `&bullet; <a href="https://www.smogon.com/forums/threads/3484121/">BW2 NU Viability Rankings</a>`,
2949
- ],
2950
-
2951
- mod: 'gen5',
2952
- searchShow: false,
2953
- ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod'],
2954
- banlist: ['RU', 'NUBL', 'Assist', 'Copycat'],
2955
- },
2956
3037
  {
2957
3038
  name: "[Gen 5] PU",
2958
3039
  threads: [
@@ -2962,22 +3043,7 @@ export const Formats: FormatList = [
2962
3043
  mod: 'gen5',
2963
3044
  searchShow: false,
2964
3045
  ruleset: ['[Gen 5] NU', 'Sleep Moves Clause'],
2965
- banlist: ['NU', 'Combusken', 'Gothorita', 'Linoone', 'Riolu', 'Rotom-Frost', 'Simipour', 'Throh', 'Vigoroth'],
2966
- },
2967
- {
2968
- name: "[Gen 5] LC",
2969
- threads: [
2970
- `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2971
- `&bullet; <a href="https://www.smogon.com/forums/threads/3485860/">BW2 LC Viability Rankings</a>`,
2972
- ],
2973
-
2974
- mod: 'gen5',
2975
- searchShow: false,
2976
- ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause'],
2977
- banlist: [
2978
- 'Gligar', 'Meditite', 'Misdreavus', 'Murkrow', 'Scraggy', 'Scyther', 'Sneasel', 'Tangela', 'Vulpix', 'Yanma',
2979
- 'Sand Rush', 'Sand Veil', 'Berry Juice', 'Soul Dew', 'Baton Pass', 'Dragon Rage', 'Sonic Boom', 'Swagger',
2980
- ],
3046
+ banlist: ['NU', 'PUBL'],
2981
3047
  },
2982
3048
  {
2983
3049
  name: "[Gen 5] Monotype",
@@ -3001,7 +3067,7 @@ export const Formats: FormatList = [
3001
3067
  searchShow: false,
3002
3068
  ruleset: [
3003
3069
  'Picked Team Size = 1', 'Max Team Size = 3',
3004
- 'Standard', 'Baton Pass Clause', 'Swagger Clause',
3070
+ 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Accuracy Moves Clause',
3005
3071
  ],
3006
3072
  banlist: ['Uber', 'Cottonee', 'Dragonite', 'Kyurem-Black', 'Mew', 'Togekiss', 'Whimsicott', 'Victini', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Soul Dew', 'Perish Song'],
3007
3073
  unbanlist: ['Genesect', 'Landorus', 'Manaphy', 'Thundurus', 'Tornadus-Therian'],
@@ -3032,6 +3098,20 @@ export const Formats: FormatList = [
3032
3098
  section: 'B2/W2 Doubles',
3033
3099
  column: 4,
3034
3100
  },
3101
+ {
3102
+ name: "[Gen 5] Doubles OU",
3103
+ threads: [
3104
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
3105
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
3106
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
3107
+ ],
3108
+
3109
+ mod: 'gen5',
3110
+ gameType: 'doubles',
3111
+ searchShow: false,
3112
+ ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
3113
+ banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
3114
+ },
3035
3115
  {
3036
3116
  name: "[Gen 5] VGC 2013",
3037
3117
 
@@ -3171,7 +3251,7 @@ export const Formats: FormatList = [
3171
3251
  'Picked Team Size = 1', 'Max Team Size = 3',
3172
3252
  '[Gen 4] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
3173
3253
  ],
3174
- banlist: ['Latias', 'Machamp', 'Porygon-Z', 'Snorlax', 'Togekiss', 'Focus Sash', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct'],
3254
+ banlist: ['Latias', 'Machamp', 'Porygon-Z', 'Shaymin', 'Snorlax', 'Togekiss', 'Focus Sash', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct'],
3175
3255
  unbanlist: ['Wobbuffet', 'Wynaut', 'Sand Veil'],
3176
3256
  },
3177
3257
  {
@@ -3256,7 +3336,7 @@ export const Formats: FormatList = [
3256
3336
 
3257
3337
  mod: 'gen3',
3258
3338
  searchShow: false,
3259
- ruleset: ['Standard', 'Deoxys Camouflage Clause'],
3339
+ ruleset: ['Standard', 'Deoxys Camouflage Clause', 'One Baton Pass Clause'],
3260
3340
  banlist: ['Wobbuffet + Leftovers'],
3261
3341
  },
3262
3342
  {
@@ -3311,6 +3391,7 @@ export const Formats: FormatList = [
3311
3391
  '[Gen 3] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
3312
3392
  ],
3313
3393
  banlist: ['Clefable', 'Slaking', 'Snorlax', 'Suicune', 'Destiny Bond', 'Explosion', 'Ingrain', 'Perish Song', 'Self-Destruct', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw'],
3394
+ unbanlist: ['Mr. Mime', 'Wobbuffet', 'Wynaut', 'Sand Veil'],
3314
3395
  },
3315
3396
  {
3316
3397
  name: "[Gen 3] Custom Game",
@@ -3340,15 +3421,6 @@ export const Formats: FormatList = [
3340
3421
  searchShow: false,
3341
3422
  ruleset: ['Standard'],
3342
3423
  },
3343
- {
3344
- name: "[Gen 2] UU",
3345
- threads: [`&bullet; <a href="https://www.smogon.com/forums/threads/3576710/">GSC UU</a>`],
3346
-
3347
- mod: 'gen2',
3348
- searchShow: false,
3349
- ruleset: ['[Gen 2] OU'],
3350
- banlist: ['OU', 'UUBL'],
3351
- },
3352
3424
  {
3353
3425
  name: "[Gen 2] NU",
3354
3426
  threads: [`&bullet; <a href="https://www.smogon.com/forums/threads/3642565/">GSC NU</a>`],
@@ -3368,7 +3440,10 @@ export const Formats: FormatList = [
3368
3440
  'Picked Team Size = 1', 'Max Team Size = 3',
3369
3441
  '[Gen 2] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
3370
3442
  ],
3371
- banlist: ['Clefable', 'Snorlax', 'Zapdos', 'Berserk Gene', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Destiny Bond', 'Explosion', 'Perish Song', 'Present', 'Self-Destruct'],
3443
+ banlist: [
3444
+ 'Clefable', 'Snorlax', 'Zapdos', 'Berserk Gene', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Quick Claw',
3445
+ 'Attract', 'Destiny Bond', 'Explosion', 'Perish Song', 'Present', 'Self-Destruct', 'Swagger',
3446
+ ],
3372
3447
  },
3373
3448
  {
3374
3449
  name: "[Gen 2] Nintendo Cup 2000",
@@ -3415,6 +3490,18 @@ export const Formats: FormatList = [
3415
3490
  searchShow: false,
3416
3491
  ruleset: ['Standard'],
3417
3492
  },
3493
+ {
3494
+ name: "[Gen 1] UU",
3495
+ threads: [
3496
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
3497
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
3498
+ ],
3499
+
3500
+ mod: 'gen1',
3501
+ searchShow: false,
3502
+ ruleset: ['[Gen 1] OU'],
3503
+ banlist: ['OU', 'UUBL'],
3504
+ },
3418
3505
  {
3419
3506
  name: "[Gen 1] NU",
3420
3507
  threads: [