@pkmn/sim 0.5.0 → 0.5.4

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 (75) hide show
  1. package/build/config/formats.js +356 -266
  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 +15 -15
  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 +2 -2
  35. package/build/data/rulesets.js +48 -5
  36. package/build/data/rulesets.js.map +1 -1
  37. package/build/data/tags.js +3 -2
  38. package/build/data/tags.js.map +1 -1
  39. package/build/data/text/moves.js +1 -1
  40. package/build/data/text/moves.js.map +1 -1
  41. package/build/sim/battle-actions.js +8 -3
  42. package/build/sim/battle-actions.js.map +1 -1
  43. package/build/sim/exported-global-types.d.ts +1 -0
  44. package/build/sim/global-types.d.ts +1 -0
  45. package/build/sim/pokemon.js +1 -1
  46. package/build/sim/pokemon.js.map +1 -1
  47. package/build/sim/team-validator.js +3 -0
  48. package/build/sim/team-validator.js.map +1 -1
  49. package/config/formats.ts +363 -269
  50. package/data/abilities.ts +3 -1
  51. package/data/aliases.ts +2 -2
  52. package/data/formats-data.ts +91 -92
  53. package/data/items.ts +5 -5
  54. package/data/learnsets.ts +1 -1
  55. package/data/mods/gen1/formats-data.ts +190 -190
  56. package/data/mods/gen1/moves.ts +1 -2
  57. package/data/mods/gen1/scripts.ts +11 -0
  58. package/data/mods/gen2/formats-data.ts +2 -2
  59. package/data/mods/gen3/formats-data.ts +12 -12
  60. package/data/mods/gen4/moves.ts +21 -0
  61. package/data/mods/gen5/formats-data.ts +15 -15
  62. package/data/mods/gen6/formats-data.ts +1 -1
  63. package/data/mods/gen7/formats-data.ts +1 -1
  64. package/data/mods/gen7/moves.ts +150 -0
  65. package/data/moves.ts +46 -20
  66. package/data/pokedex.ts +2 -2
  67. package/data/rulesets.ts +44 -6
  68. package/data/tags.ts +3 -2
  69. package/data/text/moves.ts +1 -1
  70. package/package.json +1 -1
  71. package/sim/battle-actions.ts +8 -3
  72. package/sim/exported-global-types.ts +1 -0
  73. package/sim/global-types.ts +1 -0
  74. package/sim/pokemon.ts +1 -1
  75. package/sim/team-validator.ts +3 -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)",
@@ -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
  {
@@ -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,27 @@ export const Formats: FormatList = [
286
289
  restricted: ['Restricted Legendary'],
287
290
  },
288
291
  {
289
- name: "[Gen 8] Battle Stadium Singles Series 9",
292
+ name: "[Gen 8] Battle Stadium Singles Series 12",
293
+
294
+ mod: 'gen8',
295
+ searchShow: false,
296
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'Limit Two Restricted'],
297
+ restricted: ['Restricted Legendary'],
298
+ },
299
+ {
300
+ name: "[Gen 8] Test Your Luck!",
290
301
  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>`,
302
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3695144/">Test Your Luck! Discussion</a>`,
293
303
  ],
294
304
 
295
305
  mod: 'gen8',
296
- searchShow: false,
297
- ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8'],
306
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'VGC Timer', 'Min Source Gen = 8'],
307
+ banlist: ['Azelf', 'Mesprit', 'Uxie'],
308
+ onValidateSet(set, format) {
309
+ if (set.moves.length !== 1 || this.dex.moves.get(set.moves[0]).id !== 'metronome') {
310
+ return [`${set.name || set.species} has illegal moves.`, `(${format.name} only allows the move Metronome)`];
311
+ }
312
+ },
298
313
  },
299
314
  {
300
315
  name: "[Gen 8] Custom Game",
@@ -369,32 +384,25 @@ export const Formats: FormatList = [
369
384
  banlist: ['Corsola-Galar', 'Cutiefly', 'Ponyta-Base', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vulpix', 'Vulpix-Alola'],
370
385
  },
371
386
  {
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
- ],
387
+ name: "[Gen 8] VGC 2022",
378
388
 
379
389
  mod: 'gen8',
380
390
  gameType: 'doubles',
381
- ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit One Restricted'],
391
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit Two Restricted'],
382
392
  restricted: ['Restricted Legendary'],
383
393
  },
384
394
  {
385
- name: "[Gen 8] Tiny Tourney",
395
+ name: "[Gen 8] VGC 2021 Series 11",
386
396
  threads: [
387
- `&bullet; <a href="https://www.smogon.com/forums/threads/3694047/">Tiny Tourney Metagame Discussion</a>`,
397
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3677186/">VGC 2021 Series 11 Metagame Discussion</a>`,
398
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693427/">VGC 2021 Series 11 Sample Teams</a>`,
399
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693284/">VGC 2021 Series 11 Viability Rankings</a>`,
388
400
  ],
389
401
 
390
402
  mod: 'gen8',
391
403
  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
- },
404
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit One Restricted'],
405
+ restricted: ['Restricted Legendary'],
398
406
  },
399
407
  {
400
408
  name: "[Gen 8] VGC 2021 Series 9",
@@ -509,7 +517,8 @@ export const Formats: FormatList = [
509
517
  'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Metagross-Mega', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane',
510
518
  'Necrozma-Ultra', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Tornadus-Therian',
511
519
  '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',
520
+ 'Arena Trap', 'Moody', 'Power Construct', 'Sand Veil', 'Shadow Tag', 'Snow Cloak', 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Leppa Berry',
521
+ 'Razor Fang', 'Quick Claw', 'Baton Pass',
513
522
  ],
514
523
  },
515
524
  {
@@ -524,11 +533,10 @@ export const Formats: FormatList = [
524
533
  ruleset: ['[Gen 8] National Dex'],
525
534
  banlist: [
526
535
  // 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',
536
+ 'Blissey', 'Chansey', 'Charizard-Mega-X', 'Charizard-Mega-Y', 'Clefable', 'Corviknight', 'Diancie-Mega', 'Excadrill',
537
+ 'Ferrothorn', 'Garchomp', 'Gliscor', 'Greninja', 'Heatran', 'Kartana', 'Kommo-o', 'Kyurem', 'Landorus-Therian', 'Lopunny-Mega',
538
+ 'Magnezone', 'Mawile-Mega', 'Pelipper', 'Rillaboom', 'Scizor-Mega', 'Serperior', 'Slowbro-Base', 'Swampert-Mega', 'Tapu Fini',
539
+ 'Tapu Koko', 'Tapu Lele', 'Toxapex', 'Tyranitar', 'Victini', 'Volcarona', 'Weavile', 'Zapdos-Base',
532
540
  'ND UUBL', // National Dex UUBL
533
541
  'Drizzle', 'Drought',
534
542
  // Slowbronite is banned so it doesn't validate on Galarian Slowbro
@@ -536,10 +544,12 @@ export const Formats: FormatList = [
536
544
  ],
537
545
  // Used to distinguish UU from below UU in the client
538
546
  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',
547
+ 'Aegislash', 'Alakazam-Base', 'Altaria-Mega', 'Amoonguss', 'Beedrill-Mega', 'Blaziken-Base', 'Breloom', 'Celesteela',
548
+ 'Chandelure', 'Donphan', 'Dracozolt', 'Dragonite', 'Feraligatr', 'Gastrodon', 'Hatterene', 'Hippowdon', 'Infernape',
549
+ 'Keldeo', 'Krookodile', 'Mamoswine', 'Mandibuzz', 'Manectric-Mega', 'Melmetal', 'Mienshao', 'Moltres-Base',
550
+ 'Nidoking', 'Nidoqueen', 'Nihilego', 'Quagsire', 'Regieleki', 'Ribombee', 'Rotom-Heat', 'Rotom-Wash', 'Salamence',
551
+ 'Scizor', 'Skarmory', 'Slowking-Base', 'Swampert-Base', 'Talonflame', 'Tangrowth', 'Tornadus-Base', 'Umbreon',
552
+ 'Urshifu-Rapid-Strike',
543
553
  ],
544
554
  },
545
555
  {
@@ -579,37 +589,64 @@ export const Formats: FormatList = [
579
589
  section: "Pet Mods",
580
590
  },
581
591
  {
582
- name: "[Gen 8] Fusion Evolution UU",
592
+ name: "[Gen 8] Alternatium",
593
+ desc: `A metagame made up of only Pok&eacute;mon with alternate forms, with all of them being separate and unique.`,
583
594
  threads: [
584
- `&bullet; <a href="https://www.smogon.com/forums/threads/3674163/">Fusion Evolution UU</a>`,
595
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3683767/">Alternatium</a>`,
596
+ `&bullet; <a href="https://docs.google.com/spreadsheets/d/1bvvkPg1CrUBJFJJeuwkts8elfJcEcahGOoHm-vGBXOI/edit?usp=sharing">Spreadsheet</a>`,
585
597
  ],
586
598
 
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
- ],
599
+ mod: 'alternatium',
600
+ ruleset: ['Standard NatDex', 'Z-Move Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
601
+ banlist: ['All Pokemon', 'Past'],
593
602
  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',
605
-
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',
603
+ 'Silvally', 'Silvally-Bug', 'Silvally-Dark', 'Silvally-Dragon', 'Silvally-Electric', 'Silvally-Fairy', 'Silvally-Fighting', 'Silvally-Fire', 'Silvally-Flying', 'Silvally-Ghost',
604
+ 'Silvally-Grass', 'Silvally-Ground', 'Silvally-Ice', 'Silvally-Poison', 'Silvally-Psychic', 'Silvally-Rock', 'Silvally-Steel', 'Silvally-Water', 'Pikachu', 'Pikachu-Rock-Star',
605
+ 'Pikachu-Belle', 'Pikachu-Idol', 'Pikachu-PhD', 'Pikachu-Libre', 'Pikachu-Partner', 'Pikachu-Starter', 'Darmanitan', 'Darmanitan-Zen', 'Darmanitan-Galar', 'Darmanitan-Galar-Zen',
606
+ 'Aegishield', 'Aegislash', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Rotom', 'Rotom-Heat', 'Rotom-Wash', 'Rotom-Frost', 'Rotom-Fan', 'Rotom-Mow', 'Dugtrio',
607
+ 'Dugtrio-Alola', 'Muk', 'Muk-Oilslick', 'Slowbro', 'Slowbro-Galar', 'Slowking', 'Slowking-Galar', 'Tornadus', 'Cummulus', 'Thundurus', 'Thundurus-Therian', 'Landorus', 'Landorus-Bengal',
608
+ 'Vivillon-Fancy', 'Vivillon-Spirit', 'Vivillon-Combat', 'Genesect', 'Genesect-Password', 'Genesect-Molten', 'Genesect-Freezer', 'Genesect-Type-Delta', 'Groudon', 'Groudon-Primal', 'Kyogre',
609
+ 'Kyogre-Primal', 'Deoxys-Wood', 'Deoxys-Gem', 'Deoxys-Tank', 'Deoxys-Speed', 'Sandslash-Lustrous', 'Sandslash-Alola', 'Ninetales-Steamwork', 'Ninetales-Alola', 'Giratina', 'Giratina-Shadow',
610
+ 'Eternatus', 'Manustorm', 'Exeggutor', 'Exeggutor-Lighthouse', 'Weezing', 'Weezing-King', 'Raticate', 'Raticate-Alola', 'Linoone', 'Linoone-Punk', 'Catastroform', 'Castform-Firestorm',
611
+ 'Castform-Thunderstorm', 'Castform-Snowy', 'Wormadam', 'Wormadam-Sandy', 'Fibormadam', 'Farfetch\u2019d', 'Farfetch\u2019d-Galar', 'Corsola', 'Corsoul', 'Shaymin', 'Shaymin-Sky', 'Keldeo',
612
+ 'Swordeo', 'Meloetta', 'Meloetta-Fighter', 'Lycanday', 'Lycanroc-Spectre', 'Lycanroc-Dusk', 'Gourgeist', 'Gourgeist-Fae', 'Gourgeist-Pulpy', 'Supergeist', 'Cramorant', 'Cramorant-Swimmer',
613
+ 'Cramorant-Gorging', 'Eiscue', 'Eiscue-Noice', 'Mimikyu', 'Mimikyu-Sparkstone', 'Morpeko-Marsh', 'Morvilant', 'Zygarde-Wyrm', 'Zygarde-Canid', 'Zygarde-Goliath',
614
+ ],
615
+ onValidateTeam(team, format) {
616
+ const speciesTable = new Set<string>();
617
+ for (const set of team) {
618
+ const species = this.dex.species.get(set.species);
619
+ if (speciesTable.has(species.id)) {
620
+ return [
621
+ `You are limited to one of each Pokémon by Species Clause (except for different formes).`,
622
+ `(You have more than one ${species.id}.)`,
623
+ ];
624
+ }
625
+ speciesTable.add(species.id);
626
+ }
627
+ },
628
+ },
629
+ {
630
+ name: "[Gen 8] Random Dex",
631
+ desc: `A micrometagame project consisting of 80 randomly selected fully-evolved Pok&eacute;mon.`,
632
+ threads: [
633
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3690182/">Random Dex</a>`,
612
634
  ],
635
+
636
+ mod: 'randomdex',
637
+ ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Dynamax Clause', 'Sleep Clause Mod'],
638
+ banlist: ['All Pokemon', 'Past', 'Arena Trap', 'Moody', 'Shadow Tag', 'Baton Pass', 'Bright Powder', 'Lax Incense', 'King\'s Rock',
639
+ 'Razor Fang', 'Kangaskhanite', 'Medichamite'],
640
+ unbanlist: ["Aerodactyl", "Arbok", "Arcanine", "Archeops", "Articuno-Galar", "Banette", "Bellossom", "Bibarel", "Boltund",
641
+ "Charizard", "Chimecho", "Clawitzer", "Coalossal", "Copperajah", "Cradily", "Cursola", "Dedenne", "Dragalge", "Drampa",
642
+ "Drednaw", "Druddigon", "Dugtrio", "Espeon", "Excadrill", "Feraligatr", "Flareon", "Florges", "Froslass", "Frosmoth",
643
+ "Girafarig", "Glaceon", "Glalie", "Golurk", "Grimmsnarl", "Hippowdon", "Hitmonchan", "Hitmonlee", "Hitmontop", "Houndoom",
644
+ "Indeedee", "Infernape", "Inteleon", "Jolteon", "Kangaskhan", "Klefki", "Komala", "Kyurem", "Landorus", "Landorus-Therian",
645
+ "Latias", "Leafeon", "Linoone", "Luvdisc", "Malamar", "Manectric", "Moltres", "Moltres-Galar", "Mr. Mime", "Obstagoon",
646
+ "Octillery", "Omastar", "Palossand", "Probopass", "Pyukumuku", "Regice", "Relicanth", "Runerigus", "Salazzle",
647
+ "Sandslash-Alola", "Sawk", "Sirfetch'd", "Spectrier", "Spinda", "Stakataka", "Stoutland", "Stunfisk-Galar", "Swellow",
648
+ "Sylveon", "Tapu Bulu", "Tapu Fini", "Tauros", "Togedemaru", "Tyrantrum", "Umbreon", "Vaporeon", "Venusaur", "Vileplume",
649
+ "Volbeat", "Whimsicott", "Zarude"],
613
650
  },
614
651
  {
615
652
  name: "[Gen 6] NEXT OU",
@@ -632,38 +669,80 @@ export const Formats: FormatList = [
632
669
  column: 2,
633
670
  },
634
671
  {
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).`,
672
+ name: "[Gen 8] Pokebilities",
673
+ desc: `Pok&eacute;mon have all of their released abilities simultaneously.`,
637
674
  threads: [
638
- `&bullet; <a href="https://www.smogon.com/forums/threads/3692297/">Revelationmons</a>`,
675
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3679692/">Pok&eacute;bilities</a>`,
639
676
  ],
640
-
641
- mod: 'gen8',
642
- ruleset: ['Standard', 'Dynamax Clause', 'Revelationmons Mod', 'Sleep Moves Clause'],
677
+ mod: 'pokebilities',
678
+ ruleset: ['Standard', 'Dynamax Clause'],
643
679
  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',
680
+ 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Eternatus', 'Excadrill',
681
+ 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base',
682
+ 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia',
683
+ 'Pheromosa', 'Porygon-Z', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian',
684
+ 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom', 'Zygarde-Base', 'Power Construct', 'Baton Pass',
685
+ // Moody users
686
+ 'Glalie', 'Octillery', 'Remoraid', 'Snorunt',
687
+ // Shadow Tag/Arena Trap
688
+ 'Diglett-Base', 'Dugtrio-Base', 'Gothita', 'Gothitelle', 'Gothorita', 'Trapinch', 'Wobbuffet', 'Wynaut',
650
689
  ],
651
- restricted: ['Bolt Beak', 'U-turn', 'Volt Switch'],
690
+ onBegin() {
691
+ for (const pokemon of this.getAllPokemon()) {
692
+ if (pokemon.ability === this.toID(pokemon.species.abilities['S'])) {
693
+ continue;
694
+ }
695
+ pokemon.m.innates = Object.keys(pokemon.species.abilities)
696
+ .filter(key => key !== 'S' && (key !== 'H' || !pokemon.species.unreleasedHidden))
697
+ .map(key => this.toID(pokemon.species.abilities[key as "0" | "1" | "H" | "S"]))
698
+ .filter(ability => ability !== pokemon.ability);
699
+ }
700
+ },
701
+ onSwitchInPriority: 2,
702
+ onSwitchIn(pokemon) {
703
+ if (pokemon.m.innates) {
704
+ for (const innate of pokemon.m.innates) {
705
+ pokemon.addVolatile("ability:" + innate, pokemon);
706
+ }
707
+ }
708
+ },
709
+ onAfterMega(pokemon) {
710
+ for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
711
+ pokemon.removeVolatile(innate);
712
+ }
713
+ pokemon.m.innates = undefined;
714
+ },
652
715
  },
653
716
  {
654
- name: "[Gen 8 BDSP] Balanced Hackmons",
655
- desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`,
717
+ name: "[Gen 8] Camomons",
718
+ desc: `Pok&eacute;mon change type to match their first two moves.`,
656
719
  threads: [
657
- `&bullet; <a href="https://www.smogon.com/forums/posts/9043074">BDSP Balanced Hackmons</a>`,
720
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3656413/">Camomons</a>`,
658
721
  ],
659
722
 
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'],
723
+ mod: 'gen8',
724
+ // searchShow: false,
725
+ 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
726
  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',
727
+ 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin',
728
+ 'Groudon', 'Ho-Oh', 'Hydreigon', 'Kartana', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Latias', 'Latios', 'Lugia',
729
+ 'Lunala', 'Marshadow', 'Mew', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram',
730
+ 'Reuniclus', 'Shedinja', 'Slowking-Galar', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', 'Volcarona', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
731
+ 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
666
732
  ],
733
+ onModifySpeciesPriority: 2,
734
+ onModifySpecies(species, target, source, effect) {
735
+ if (!target) return; // Chat command
736
+ if (effect && ['imposter', 'transform'].includes(effect.id)) return;
737
+ const types = [...new Set(target.baseMoveSlots.slice(0, 2).map(move => this.dex.moves.get(move.id).type))];
738
+ return {...species, types: types};
739
+ },
740
+ onSwitchIn(pokemon) {
741
+ this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
742
+ },
743
+ onAfterMega(pokemon) {
744
+ this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
745
+ },
667
746
  },
668
747
 
669
748
  // Other Metagames
@@ -710,6 +789,35 @@ export const Formats: FormatList = [
710
789
  }
711
790
  },
712
791
  },
792
+ {
793
+ name: "[Gen 8] Almost Any Ability",
794
+ desc: `Pok&eacute;mon have access to almost any ability.`,
795
+ threads: [
796
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3656414/">Almost Any Ability</a>`,
797
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3682690/">AAA Resources</a>`,
798
+ ],
799
+
800
+ mod: 'gen8',
801
+ 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'],
802
+ banlist: [
803
+ 'Archeops', 'Blacephalon', 'Buzzwole', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Gengar', 'Giratina',
804
+ 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Keldeo', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Marshadow',
805
+ 'Melmetal', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Palkia', 'Pheromosa', 'Rayquaza', 'Regigigas', 'Reshiram', 'Shedinja',
806
+ 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Urshifu-Rapid-Strike', 'Victini', 'Weavile', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Base', 'Zekrom',
807
+ 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Comatose', 'Contrary', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter',
808
+ 'Innards Out', 'Intrepid Sword', 'Libero', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Power Construct', 'Protean', 'Pure Power',
809
+ 'Shadow Tag', 'Simple', 'Stakeout', 'Speed Boost', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass',
810
+ ],
811
+ onValidateSet(set) {
812
+ // Temporary fix until battle-only is implemented properly
813
+ if (this.toID(set.species) === 'zamazentacrowned' && this.toID(set.ability) !== 'dauntlessshield') {
814
+ return [`Zamazenta-Crowned can only use Dauntless Shield because it is a battle-only forme.`];
815
+ }
816
+ if (this.toID(set.species) === 'zaciancrowned' && this.toID(set.ability) !== 'intrepidsword') {
817
+ return [`Zacian-Crowned can only use Intrepid Sword because it is a battle-only forme.`];
818
+ }
819
+ },
820
+ },
713
821
  {
714
822
  name: "[Gen 8] Mix and Mega",
715
823
  desc: `Mega evolve any Pok&eacute;mon with any mega stone and no limit. Boosts based on mega evolution from gen 7.`,
@@ -771,35 +879,6 @@ export const Formats: FormatList = [
771
879
  }
772
880
  },
773
881
  },
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
882
  {
804
883
  name: "[Gen 8] STABmons",
805
884
  desc: `Pok&eacute;mon can use any move of their typing, in addition to the moves they can normally learn.`,
@@ -837,6 +916,61 @@ export const Formats: FormatList = [
837
916
  'Rhydon', 'Scyther', 'Sneasel', 'Type: Null', 'Vulpix-Base', 'Arena Trap', 'Shadow Tag', 'Baton Pass',
838
917
  ],
839
918
  },
919
+ {
920
+ name: "[Gen 8] Godly Gift",
921
+ 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.`,
922
+ threads: [
923
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
924
+ ],
925
+
926
+ mod: 'gen8',
927
+ ruleset: ['Standard', 'Dynamax Clause', 'Sleep Moves Clause'],
928
+ banlist: [
929
+ 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Dragapult', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex',
930
+ 'Xerneas', 'Zacian', 'Zacian-Crowned', 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power',
931
+ 'Shadow Tag', 'Baton Pass',
932
+ ],
933
+ onValidateTeam(team) {
934
+ const gods = new Set<string>();
935
+ for (const set of team) {
936
+ let species = this.dex.species.get(set.species);
937
+ if (typeof species.battleOnly === 'string') species = this.dex.species.get(species.battleOnly);
938
+ if (['ag', 'uber'].includes(this.toID(species.tier)) || this.toID(set.ability) === 'powerconstruct') {
939
+ gods.add(species.name);
940
+ }
941
+ }
942
+ if (gods.size > 1) {
943
+ return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`];
944
+ }
945
+ },
946
+ onModifySpeciesPriority: 3,
947
+ onModifySpecies(species, target, source) {
948
+ if (source || !target?.side) return;
949
+ const god = target.side.team.find(set => {
950
+ let godSpecies = this.dex.species.get(set.species);
951
+ const validator = this.dex.formats.getRuleTable(this.dex.formats.get(`gen${this.gen}ou`));
952
+ if (this.toID(set.ability) === 'powerconstruct') {
953
+ return true;
954
+ }
955
+ if (set.item) {
956
+ const item = this.dex.items.get(set.item);
957
+ if (item.megaEvolves === set.species) godSpecies = this.dex.species.get(item.megaStone);
958
+ }
959
+ const isBanned = validator.isBannedSpecies(godSpecies);
960
+ return isBanned;
961
+ }) || target.side.team[0];
962
+ const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
963
+ const newSpecies = this.dex.deepClone(species);
964
+ let godSpecies = this.dex.species.get(god.species);
965
+ if (godSpecies.forme === 'Crowned') {
966
+ godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
967
+ }
968
+ newSpecies.bst -= newSpecies.baseStats[stat];
969
+ newSpecies.baseStats[stat] = godSpecies.baseStats[stat];
970
+ newSpecies.bst += newSpecies.baseStats[stat];
971
+ return newSpecies;
972
+ },
973
+ },
840
974
  {
841
975
  name: "[Gen 8] Free-For-All",
842
976
  threads: [
@@ -880,7 +1014,10 @@ export const Formats: FormatList = [
880
1014
 
881
1015
  mod: 'gen8bdsp',
882
1016
  ruleset: ['Standard'],
883
- banlist: ['Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass'],
1017
+ banlist: [
1018
+ 'Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Sand Veil', 'Shadow Tag', 'Snow Cloak',
1019
+ 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Razor Fang', 'Baton Pass',
1020
+ ],
884
1021
  },
885
1022
  {
886
1023
  name: "[Gen 8 BDSP] Ubers",
@@ -902,6 +1039,24 @@ export const Formats: FormatList = [
902
1039
  ruleset: ['[Gen 8 BDSP] OU'],
903
1040
  banlist: ['OU', 'UUBL'],
904
1041
  },
1042
+ {
1043
+ name: "[Gen 8 BDSP] RU",
1044
+ threads: [
1045
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3695563/">BDSP RU</a>`,
1046
+ ],
1047
+
1048
+ mod: 'gen8bdsp',
1049
+ ruleset: ['[Gen 8 BDSP] UU'],
1050
+ banlist: ['UU', 'RUBL'],
1051
+ },
1052
+ {
1053
+ name: "[Gen 8 BDSP] LC",
1054
+
1055
+ mod: 'gen8bdsp',
1056
+ searchShow: false,
1057
+ ruleset: ['Little Cup', 'Standard'],
1058
+ banlist: ['Gligar', 'Meditite', 'Misdreavus', 'Murkrow', 'Scyther', 'Sneasel', 'Tangela', 'Yanma', 'Baton Pass'],
1059
+ },
905
1060
  {
906
1061
  name: "[Gen 8 BDSP] Monotype",
907
1062
  threads: [
@@ -925,6 +1080,15 @@ export const Formats: FormatList = [
925
1080
  searchShow: false,
926
1081
  ruleset: ['[Gen 8 BDSP] OU', '+CAP'],
927
1082
  },
1083
+ {
1084
+ name: "[Gen 8 BDSP] 3v3 Singles",
1085
+ threads: [
1086
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3695092/">BDSP 3v3 Singles</a>`,
1087
+ ],
1088
+
1089
+ mod: 'gen8bdsp',
1090
+ ruleset: ['Flat Rules', 'Min Source Gen = 8'],
1091
+ },
928
1092
  {
929
1093
  name: "[Gen 8 BDSP] Doubles OU",
930
1094
  threads: [
@@ -961,93 +1125,6 @@ export const Formats: FormatList = [
961
1125
  section: "Challengeable OMs",
962
1126
  column: 2,
963
1127
  },
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
1128
  {
1052
1129
  name: "[Gen 8] Inheritance",
1053
1130
  desc: `Pok&eacute;mon may use the ability and moves of another, as long as they forfeit their own learnset.`,
@@ -2067,50 +2144,40 @@ export const Formats: FormatList = [
2067
2144
  column: 3,
2068
2145
  },
2069
2146
  {
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
- ],
2147
+ name: "[Gen 2] UU",
2148
+ threads: [`&bullet; <a href="https://www.smogon.com/forums/threads/3576710/">GSC UU</a>`],
2075
2149
 
2076
- mod: 'gen1',
2150
+ mod: 'gen2',
2077
2151
  // searchShow: false,
2078
- ruleset: ['[Gen 1] OU'],
2152
+ ruleset: ['[Gen 2] OU'],
2079
2153
  banlist: ['OU', 'UUBL'],
2080
2154
  },
2081
2155
  {
2082
- name: "[Gen 6] 1v1",
2083
- desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
2156
+ name: "[Gen 5] NU",
2084
2157
  threads: [
2085
- `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
2158
+ `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2159
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3484121/">BW2 NU Viability Rankings</a>`,
2086
2160
  ],
2087
2161
 
2088
- mod: 'gen6',
2162
+ mod: 'gen5',
2089
2163
  // 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
- ],
2164
+ ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod'],
2165
+ banlist: ['RU', 'NUBL', 'Assist', 'Copycat'],
2100
2166
  },
2101
2167
  {
2102
- name: "[Gen 5] Doubles OU",
2168
+ name: "[Gen 5] LC",
2103
2169
  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>`,
2170
+ `&bullet; <a href="https://www.smogon.com/forums/posts/6431094/">BW2 Sample Teams</a>`,
2171
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3485860/">BW2 LC Viability Rankings</a>`,
2107
2172
  ],
2108
2173
 
2109
2174
  mod: 'gen5',
2110
- gameType: 'doubles',
2111
2175
  // searchShow: false,
2112
- ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
2113
- banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
2176
+ ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause'],
2177
+ banlist: [
2178
+ 'Gligar', 'Meditite', 'Misdreavus', 'Murkrow', 'Scraggy', 'Scyther', 'Sneasel', 'Tangela', 'Vulpix', 'Yanma',
2179
+ 'Sand Rush', 'Sand Veil', 'Berry Juice', 'Soul Dew', 'Baton Pass', 'Dragon Rage', 'Sonic Boom', 'Swagger',
2180
+ ],
2114
2181
  },
2115
2182
 
2116
2183
  // Past Gens OU
@@ -2175,8 +2242,8 @@ export const Formats: FormatList = [
2175
2242
  ],
2176
2243
 
2177
2244
  mod: 'gen3',
2178
- ruleset: ['Standard', '3 Baton Pass Clause'],
2179
- banlist: ['Uber', 'Mr. Mime', 'Smeargle + Baton Pass', 'Sand Veil'],
2245
+ ruleset: ['Standard', 'One Boost Passer Clause'],
2246
+ banlist: ['Uber', 'Sand Veil', 'Assist', 'Baton Pass + Mean Look', 'Baton Pass + Spider Web', 'Smeargle + Ingrain'],
2180
2247
  },
2181
2248
  {
2182
2249
  name: "[Gen 2] OU",
@@ -2326,6 +2393,22 @@ export const Formats: FormatList = [
2326
2393
  mod: 'gen6',
2327
2394
  ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause', 'EV limit = 510'],
2328
2395
  },
2396
+ {
2397
+ name: "[Gen 5] ZU",
2398
+ threads: [
2399
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8034680/">BW2 ZU</a>`,
2400
+ ],
2401
+
2402
+ mod: 'gen5',
2403
+ ruleset: ['[Gen 5] PU'],
2404
+ banlist: [
2405
+ 'Audino', 'Banette', 'Beheeyem', 'Bronzor', 'Dodrio', 'Duosion', 'Dwebble', 'Ferroseed', 'Fraxure', 'Gabite', 'Golduck', 'Glalie',
2406
+ 'Huntail', 'Jumpluff', 'Klang', 'Krokorok', 'Machoke', 'Mantine', 'Maractus', 'Marowak', 'Mawile', 'Monferno', 'Murkrow', 'Natu',
2407
+ 'Omanyte', 'Purugly', 'Rampardos', 'Rapidash', 'Regigigas', 'Relicanth', 'Scraggy', 'Shiftry', 'Sneasel', 'Simisage', 'Stoutland',
2408
+ 'Stunfisk', 'Swanna', 'Swoobat', 'Tentacool', 'Torterra', 'Trubbish', 'Ursaring', 'Victreebel', 'Vileplume', 'Volbeat', 'Whirlipede',
2409
+ 'Wynaut', 'Zebstrika', 'Zweilous', 'Baton Pass',
2410
+ ],
2411
+ },
2329
2412
 
2330
2413
  // US/UM Singles
2331
2414
  ///////////////////////////////////////////////////////////////////
@@ -2743,6 +2826,26 @@ export const Formats: FormatList = [
2743
2826
  'Soul Dew', 'Baton Pass',
2744
2827
  ],
2745
2828
  },
2829
+ {
2830
+ name: "[Gen 6] 1v1",
2831
+ desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
2832
+ threads: [
2833
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
2834
+ ],
2835
+
2836
+ mod: 'gen6',
2837
+ searchShow: false,
2838
+ ruleset: [
2839
+ 'Max Team Size = 3', 'Picked Team Size = 1',
2840
+ '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',
2841
+ ],
2842
+ banlist: [
2843
+ 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
2844
+ 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
2845
+ 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
2846
+ 'Focus Sash', 'Soul Dew', 'Perish Song',
2847
+ ],
2848
+ },
2746
2849
  {
2747
2850
  name: "[Gen 6] Anything Goes",
2748
2851
  threads: [
@@ -2765,7 +2868,7 @@ export const Formats: FormatList = [
2765
2868
  mod: 'gen6',
2766
2869
  searchShow: false,
2767
2870
  ruleset: ['[Gen 6] OU', '+CAP'],
2768
- banlist: ['Aurumoth', 'Cawmodore'],
2871
+ banlist: ['Aurumoth', 'Cawmodore', 'Crucibelle-Mega'],
2769
2872
  },
2770
2873
  {
2771
2874
  name: "[Gen 6] Battle Spot Singles",
@@ -2941,18 +3044,6 @@ export const Formats: FormatList = [
2941
3044
  banlist: ['UU', 'RUBL', 'Shadow Tag', 'Shell Smash + Baton Pass'],
2942
3045
  unbanlist: ['Prankster + Assist', 'Prankster + Copycat', 'Baton Pass'],
2943
3046
  },
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
3047
  {
2957
3048
  name: "[Gen 5] PU",
2958
3049
  threads: [
@@ -2964,21 +3055,6 @@ export const Formats: FormatList = [
2964
3055
  ruleset: ['[Gen 5] NU', 'Sleep Moves Clause'],
2965
3056
  banlist: ['NU', 'Combusken', 'Gothorita', 'Linoone', 'Riolu', 'Rotom-Frost', 'Simipour', 'Throh', 'Vigoroth'],
2966
3057
  },
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
- ],
2981
- },
2982
3058
  {
2983
3059
  name: "[Gen 5] Monotype",
2984
3060
  desc: `All the Pok&eacute;mon on a team must share a type.`,
@@ -3001,7 +3077,7 @@ export const Formats: FormatList = [
3001
3077
  searchShow: false,
3002
3078
  ruleset: [
3003
3079
  'Picked Team Size = 1', 'Max Team Size = 3',
3004
- 'Standard', 'Baton Pass Clause', 'Swagger Clause',
3080
+ 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Accuracy Moves Clause',
3005
3081
  ],
3006
3082
  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
3083
  unbanlist: ['Genesect', 'Landorus', 'Manaphy', 'Thundurus', 'Tornadus-Therian'],
@@ -3032,6 +3108,20 @@ export const Formats: FormatList = [
3032
3108
  section: 'B2/W2 Doubles',
3033
3109
  column: 4,
3034
3110
  },
3111
+ {
3112
+ name: "[Gen 5] Doubles OU",
3113
+ threads: [
3114
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
3115
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
3116
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
3117
+ ],
3118
+
3119
+ mod: 'gen5',
3120
+ gameType: 'doubles',
3121
+ searchShow: false,
3122
+ ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
3123
+ banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
3124
+ },
3035
3125
  {
3036
3126
  name: "[Gen 5] VGC 2013",
3037
3127
 
@@ -3171,7 +3261,7 @@ export const Formats: FormatList = [
3171
3261
  'Picked Team Size = 1', 'Max Team Size = 3',
3172
3262
  '[Gen 4] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
3173
3263
  ],
3174
- banlist: ['Latias', 'Machamp', 'Porygon-Z', 'Snorlax', 'Togekiss', 'Focus Sash', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct'],
3264
+ banlist: ['Latias', 'Machamp', 'Porygon-Z', 'Shaymin', 'Snorlax', 'Togekiss', 'Focus Sash', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct'],
3175
3265
  unbanlist: ['Wobbuffet', 'Wynaut', 'Sand Veil'],
3176
3266
  },
3177
3267
  {
@@ -3256,7 +3346,7 @@ export const Formats: FormatList = [
3256
3346
 
3257
3347
  mod: 'gen3',
3258
3348
  searchShow: false,
3259
- ruleset: ['Standard', 'Deoxys Camouflage Clause'],
3349
+ ruleset: ['Standard', 'Deoxys Camouflage Clause', 'One Baton Pass Clause'],
3260
3350
  banlist: ['Wobbuffet + Leftovers'],
3261
3351
  },
3262
3352
  {
@@ -3311,6 +3401,7 @@ export const Formats: FormatList = [
3311
3401
  '[Gen 3] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
3312
3402
  ],
3313
3403
  banlist: ['Clefable', 'Slaking', 'Snorlax', 'Suicune', 'Destiny Bond', 'Explosion', 'Ingrain', 'Perish Song', 'Self-Destruct', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw'],
3404
+ unbanlist: ['Mr. Mime', 'Wobbuffet', 'Wynaut', 'Sand Veil'],
3314
3405
  },
3315
3406
  {
3316
3407
  name: "[Gen 3] Custom Game",
@@ -3340,15 +3431,6 @@ export const Formats: FormatList = [
3340
3431
  searchShow: false,
3341
3432
  ruleset: ['Standard'],
3342
3433
  },
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
3434
  {
3353
3435
  name: "[Gen 2] NU",
3354
3436
  threads: [`&bullet; <a href="https://www.smogon.com/forums/threads/3642565/">GSC NU</a>`],
@@ -3415,6 +3497,18 @@ export const Formats: FormatList = [
3415
3497
  searchShow: false,
3416
3498
  ruleset: ['Standard'],
3417
3499
  },
3500
+ {
3501
+ name: "[Gen 1] UU",
3502
+ threads: [
3503
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
3504
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
3505
+ ],
3506
+
3507
+ mod: 'gen1',
3508
+ searchShow: false,
3509
+ ruleset: ['[Gen 1] OU'],
3510
+ banlist: ['OU', 'UUBL'],
3511
+ },
3418
3512
  {
3419
3513
  name: "[Gen 1] NU",
3420
3514
  threads: [