@pkmn/sim 0.4.24 → 0.5.2

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 (61) hide show
  1. package/build/config/formats.js +238 -170
  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/conditions.js +1 -0
  8. package/build/data/conditions.js.map +1 -1
  9. package/build/data/formats-data.js +16 -8
  10. package/build/data/formats-data.js.map +1 -1
  11. package/build/data/items.js +26 -2
  12. package/build/data/items.js.map +1 -1
  13. package/build/data/learnsets.js +34 -0
  14. package/build/data/learnsets.js.map +1 -1
  15. package/build/data/mods/gen2/formats-data.js +2 -2
  16. package/build/data/mods/gen2/formats-data.js.map +1 -1
  17. package/build/data/mods/gen3/formats-data.js +1 -1
  18. package/build/data/mods/gen3/formats-data.js.map +1 -1
  19. package/build/data/mods/gen6/pokedex.js +17 -17
  20. package/build/data/mods/gen6/pokedex.js.map +1 -1
  21. package/build/data/moves.js +4 -1
  22. package/build/data/moves.js.map +1 -1
  23. package/build/data/pokedex.js +33 -0
  24. package/build/data/pokedex.js.map +1 -1
  25. package/build/data/rulesets.js +39 -5
  26. package/build/data/rulesets.js.map +1 -1
  27. package/build/data/text/items.js +4 -0
  28. package/build/data/text/items.js.map +1 -1
  29. package/build/data/text/moves.js +1 -1
  30. package/build/data/text/moves.js.map +1 -1
  31. package/build/sim/battle-actions.js +1 -1
  32. package/build/sim/battle-actions.js.map +1 -1
  33. package/build/sim/dex-formats.js +1 -1
  34. package/build/sim/dex-formats.js.map +1 -1
  35. package/build/sim/dex-species.js +4 -3
  36. package/build/sim/dex-species.js.map +1 -1
  37. package/build/sim/pokemon.js +1 -1
  38. package/build/sim/pokemon.js.map +1 -1
  39. package/build/sim/team-validator.js +3 -0
  40. package/build/sim/team-validator.js.map +1 -1
  41. package/config/formats.ts +242 -171
  42. package/data/abilities.ts +3 -1
  43. package/data/aliases.ts +2 -2
  44. package/data/conditions.ts +1 -0
  45. package/data/formats-data.ts +16 -8
  46. package/data/items.ts +26 -2
  47. package/data/learnsets.ts +34 -0
  48. package/data/mods/gen2/formats-data.ts +2 -2
  49. package/data/mods/gen3/formats-data.ts +1 -1
  50. package/data/mods/gen6/pokedex.ts +17 -17
  51. package/data/moves.ts +4 -1
  52. package/data/pokedex.ts +33 -0
  53. package/data/rulesets.ts +35 -6
  54. package/data/text/items.ts +4 -0
  55. package/data/text/moves.ts +1 -1
  56. package/package.json +1 -1
  57. package/sim/battle-actions.ts +1 -1
  58. package/sim/dex-formats.ts +1 -1
  59. package/sim/dex-species.ts +4 -3
  60. package/sim/pokemon.ts +1 -1
  61. 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)",
@@ -141,7 +144,6 @@ export const Formats: FormatList = [
141
144
  mod: 'gen8',
142
145
  ruleset: ['[Gen 8] RU'],
143
146
  banlist: ['RU', 'NUBL', 'Drizzle', 'Drought'],
144
- unbanlist: ['Indeedee'],
145
147
  },
146
148
  {
147
149
  name: "[Gen 8] PU",
@@ -152,7 +154,7 @@ export const Formats: FormatList = [
152
154
 
153
155
  mod: 'gen8',
154
156
  ruleset: ['[Gen 8] NU'],
155
- banlist: ['NU', 'PUBL', 'Indeedee'],
157
+ banlist: ['NU', 'PUBL'],
156
158
  },
157
159
  {
158
160
  name: "[Gen 8] LC",
@@ -165,7 +167,7 @@ export const Formats: FormatList = [
165
167
  mod: 'gen8',
166
168
  ruleset: ['Little Cup', 'Standard', 'Dynamax Clause'],
167
169
  banlist: [
168
- 'Corsola-Galar', 'Cutiefly', 'Drifloon', 'Gastly', 'Gothita', 'Rufflet', 'Scraggy', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vullaby', 'Vulpix-Alola', 'Woobat',
170
+ 'Corsola-Galar', 'Cutiefly', 'Drifloon', 'Gastly', 'Gothita', 'Rufflet', 'Scraggy', 'Scyther', 'Sneasel', 'Swirlix', 'Tangela', 'Vullaby', 'Vulpix-Alola', 'Woobat', 'Zigzagoon-Base',
169
171
  'Chlorophyll', 'Moody', 'Baton Pass', 'Sticky Web',
170
172
  ],
171
173
  },
@@ -231,7 +233,10 @@ export const Formats: FormatList = [
231
233
 
232
234
  mod: 'gen8',
233
235
  ruleset: ['[Gen 8] PU'],
234
- banlist: ['PU', 'Centiskorch', 'Drampa', 'Exeggutor-Alola', 'Gallade', 'Haunter', 'Magmortar', 'Magneton', 'Omastar', 'Rotom-Frost', 'Turtonator', 'Vikavolt', 'Silvally-Dragon', 'Silvally-Ground', 'Sneasel', 'Damp Rock', 'Grassy Seed'],
236
+ banlist: [
237
+ 'PU', 'Centiskorch', 'Drampa', 'Exeggutor-Alola', 'Gallade', 'Haunter', 'Magmortar', 'Magneton', 'Omastar', 'Rotom-Frost',
238
+ 'Turtonator', 'Vanilluxe', 'Vikavolt', 'Silvally-Dragon', 'Silvally-Ground', 'Sneasel', 'Damp Rock', 'Grassy Seed',
239
+ ],
235
240
  },
236
241
  {
237
242
  name: "[Gen 8] LC UU",
@@ -274,6 +279,7 @@ export const Formats: FormatList = [
274
279
  mod: 'gen8',
275
280
  searchShow: false,
276
281
  ruleset: ['[Gen 8] LC', '+CAP'],
282
+ banlist: ['Cawdet'],
277
283
  },
278
284
  {
279
285
  name: "[Gen 8] Battle Stadium Singles",
@@ -367,12 +373,32 @@ export const Formats: FormatList = [
367
373
  },
368
374
  {
369
375
  name: "[Gen 8] VGC 2021 Series 11",
376
+ threads: [
377
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3677186/">VGC 2021 Series 11 Metagame Discussion</a>`,
378
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693427/">VGC 2021 Series 11 Sample Teams</a>`,
379
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693284/">VGC 2021 Series 11 Viability Rankings</a>`,
380
+ ],
370
381
 
371
382
  mod: 'gen8',
372
383
  gameType: 'doubles',
373
384
  ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit One Restricted'],
374
385
  restricted: ['Restricted Legendary'],
375
386
  },
387
+ {
388
+ name: "[Gen 8] Tiny Tourney",
389
+ threads: [
390
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694047/">Tiny Tourney Metagame Discussion</a>`,
391
+ ],
392
+
393
+ mod: 'gen8',
394
+ gameType: 'doubles',
395
+ ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8'],
396
+ onValidateSet(set) {
397
+ const species = this.dex.species.get(set.species);
398
+ if (!species.nfe || species.prevo) return [`Non-first-stage Pok\u00e9mon cannot be used in Tiny Tourney.`];
399
+ if (species.heightm > 1) return [`${species.name} is too tall to be used in Tiny Tourney.`];
400
+ },
401
+ },
376
402
  {
377
403
  name: "[Gen 8] VGC 2021 Series 9",
378
404
 
@@ -609,44 +635,37 @@ export const Formats: FormatList = [
609
635
  column: 2,
610
636
  },
611
637
  {
612
- name: "[Gen 8] Sketchmons",
613
- desc: `Pok&eacute;mon can learn one of any move they don't normally learn, barring the few that are banned.`,
638
+ name: "[Gen 8] Revelationmons",
639
+ 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).`,
614
640
  threads: [
615
- `&bullet; <a href="https://www.smogon.com/forums/threads/3680298/">Sketchmons</a>`,
641
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3692297/">Revelationmons</a>`,
616
642
  ],
617
643
 
618
644
  mod: 'gen8',
619
- ruleset: ['Standard', 'Dynamax Clause', 'Sketchmons Move Legality'],
645
+ ruleset: ['Standard', 'Dynamax Clause', 'Revelationmons Mod', 'Sleep Moves Clause'],
620
646
  banlist: [
621
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Cinderace', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus', 'Genesect',
622
- 'Giratina', 'Giratina-Origin', 'Groudon', 'Hawlucha', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base',
623
- 'Lugia', 'Lunala', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa',
624
- 'Porygon-Z', 'Rayquaza', 'Regieleki', 'Reshiram', 'Rillaboom', 'Shedinja', 'Solgaleo', 'Spectrier', 'Swoobat', 'Tapu Bulu',
625
- 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base',
626
- 'Arena Trap', 'Moody', 'Power Construct', 'Sand Rush', 'Shadow Tag', 'King\'s Rock', 'Baton Pass',
627
- ],
628
- restricted: [
629
- 'Acupressure', 'Astral Barrage', 'Belly Drum', 'Bolt Beak', 'Clangorous Soul', 'Double Iron Bash', 'Electrify', 'Extreme Speed',
630
- 'Fishious Rend', 'Geomancy', 'Glacial Lance', 'Lovely Kiss', 'No Retreat', 'Oblivion Wing', 'Octolock', 'Quiver Dance', 'Secret Sword',
631
- 'Shell Smash', 'Shift Gear', 'Sleep Powder', 'Spore', 'Thousand Arrows', 'Transform', 'V-create', 'Wicked Blow',
647
+ 'Barraskewda', 'Blacephalon', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Dragapult',
648
+ 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kommo-o', 'Kyogre', 'Kyurem-Black', 'Kyurem-White',
649
+ 'Landorus-Base', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane',
650
+ 'Noivern', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Spectrier', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian',
651
+ 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Power Construct',
652
+ 'Shadow Tag', 'King\'s Rock', 'Baton Pass',
632
653
  ],
654
+ restricted: ['Bolt Beak', 'U-turn', 'Volt Switch'],
633
655
  },
634
656
  {
635
- name: "[Gen 8] AAA Doubles",
636
- desc: `Pok&eacute;mon have access to almost any ability, in a doubles setting.`,
657
+ name: "[Gen 8 BDSP] Balanced Hackmons",
658
+ desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`,
637
659
  threads: [
638
- `&bullet; <a href="https://www.smogon.com/forums/posts/8299984">AAA Doubles</a>`,
660
+ `&bullet; <a href="https://www.smogon.com/forums/posts/9043074">BDSP Balanced Hackmons</a>`,
639
661
  ],
640
662
 
641
- mod: 'gen8',
642
- gameType: 'doubles',
643
- ruleset: ['[Gen 8] Doubles OU', 'Sleep Clause Mod', '2 Ability Clause', '!Obtainable Abilities'],
663
+ mod: 'gen8bdsp',
664
+ ruleset: ['-Nonexistent', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Moves Clause', 'Endless Battle Clause'],
644
665
  banlist: [
645
- 'Kyurem-Black', 'Regigigas', 'Shedinja', 'Urshifu-Rapid-Strike', 'Zygarde-Base', 'Anger Point', 'Arena Trap', 'Comatose', 'Contrary',
646
- 'Dancer', 'Desolate Land', 'Fluffy', 'Fur Coat', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out',
647
- 'Intrepid Sword', 'Libero', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Prankster', 'Primordial Sea', 'Protean', 'Pure Power',
648
- 'Rattled', 'Serene Grace', 'Simple', 'Soul-Heart', 'Stakeout', 'Steam Engine', 'Speed Boost', 'Water Bubble', 'Water Compaction',
649
- 'Wonder Guard', 'King\'s Rock', 'Weakness Policy', 'Beat Up', 'Stored Power',
666
+ 'Shedinja', 'Arena Trap', 'Contrary', 'Gorilla Tactics', 'Huge Power', 'Illusion', 'Innards Out', 'Intrepid Sword',
667
+ 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble',
668
+ 'Wonder Guard', 'Comatose + Sleep Talk', 'Shell Smash',
650
669
  ],
651
670
  },
652
671
 
@@ -794,12 +813,12 @@ export const Formats: FormatList = [
794
813
  mod: 'gen8',
795
814
  ruleset: ['Standard', 'STABmons Move Legality', 'Dynamax Clause', 'Sleep Moves Clause'],
796
815
  banlist: [
797
- 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus', 'Genesect', 'Garchomp', 'Giratina',
798
- 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus', 'Landorus-Therian', 'Lugia', 'Lunala',
799
- 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Porygon-Z', 'Rayquaza', 'Reshiram',
800
- 'Silvally', 'Solgaleo', 'Spectrier', 'Tapu Bulu', 'Tapu Koko', 'Thundurus-Base', 'Urshifu-Base', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned',
801
- 'Zamazenta', 'Zamazenta-Crowned', 'Zapdos-Galar', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody', 'Power Construct', 'Shadow Tag',
802
- 'King\'s Rock', 'Baton Pass',
816
+ 'Aegislash', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragapult', 'Dragonite', 'Eternatus', 'Genesect',
817
+ 'Garchomp', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus', 'Landorus-Therian',
818
+ 'Lugia', 'Lunala', 'Marshadow', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Porygon-Z',
819
+ 'Rayquaza', 'Reshiram', 'Silvally', 'Solgaleo', 'Spectrier', 'Tapu Bulu', 'Tapu Koko', 'Thundurus-Base', 'Urshifu-Base', 'Xerneas', 'Yveltal',
820
+ 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zapdos-Galar', 'Zekrom', 'Zygarde-Base', 'Arena Trap', 'Magnet Pull', 'Moody',
821
+ 'Power Construct', 'Shadow Tag', 'King\'s Rock', 'Baton Pass',
803
822
  ],
804
823
  restricted: [
805
824
  'Acupressure', 'Astral Barrage', 'Belly Drum', 'Bolt Beak', 'Clangorous Soul', 'Double Iron Bash', 'Electrify', 'Extreme Speed', 'Fishious Rend',
@@ -821,6 +840,61 @@ export const Formats: FormatList = [
821
840
  'Rhydon', 'Scyther', 'Sneasel', 'Type: Null', 'Vulpix-Base', 'Arena Trap', 'Shadow Tag', 'Baton Pass',
822
841
  ],
823
842
  },
843
+ {
844
+ name: "[Gen 8] Godly Gift",
845
+ 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.`,
846
+ threads: [
847
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
848
+ ],
849
+
850
+ mod: 'gen8',
851
+ ruleset: ['Standard', 'Dynamax Clause'],
852
+ banlist: [
853
+ 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Dragapult', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex',
854
+ 'Xerneas', 'Zacian', 'Zacian-Crowned', 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power',
855
+ 'Shadow Tag', 'Baton Pass',
856
+ ],
857
+ onValidateTeam(team) {
858
+ const gods = new Set<string>();
859
+ for (const set of team) {
860
+ let species = this.dex.species.get(set.species);
861
+ if (typeof species.battleOnly === 'string') species = this.dex.species.get(species.battleOnly);
862
+ if (['ag', 'uber'].includes(this.toID(species.tier)) || this.toID(set.ability) === 'powerconstruct') {
863
+ gods.add(species.name);
864
+ }
865
+ }
866
+ if (gods.size > 1) {
867
+ return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`];
868
+ }
869
+ },
870
+ onModifySpeciesPriority: 3,
871
+ onModifySpecies(species, target, source) {
872
+ if (source || !target?.side) return;
873
+ const god = target.side.team.find(set => {
874
+ let godSpecies = this.dex.species.get(set.species);
875
+ const validator = this.dex.formats.getRuleTable(this.dex.formats.get(`gen${this.gen}ou`));
876
+ if (this.toID(set.ability) === 'powerconstruct') {
877
+ return true;
878
+ }
879
+ if (set.item) {
880
+ const item = this.dex.items.get(set.item);
881
+ if (item.megaEvolves === set.species) godSpecies = this.dex.species.get(item.megaStone);
882
+ }
883
+ const isBanned = validator.isBannedSpecies(godSpecies);
884
+ return isBanned;
885
+ }) || target.side.team[0];
886
+ const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
887
+ const newSpecies = this.dex.deepClone(species);
888
+ let godSpecies = this.dex.species.get(god.species);
889
+ if (godSpecies.forme === 'Crowned') {
890
+ godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
891
+ }
892
+ newSpecies.bst -= newSpecies.baseStats[stat];
893
+ newSpecies.baseStats[stat] = godSpecies.baseStats[stat];
894
+ newSpecies.bst += newSpecies.baseStats[stat];
895
+ return newSpecies;
896
+ },
897
+ },
824
898
  {
825
899
  name: "[Gen 8] Free-For-All",
826
900
  threads: [
@@ -847,6 +921,9 @@ export const Formats: FormatList = [
847
921
  {
848
922
  name: "[Gen 8 BDSP] Random Battle",
849
923
  desc: `Randomized teams of level-balanced Pok&eacute;mon with sets that are generated to be competitively viable.`,
924
+ threads: [
925
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3693955/">BDSP Random Battle Set Discussion</a>`,
926
+ ],
850
927
 
851
928
  mod: 'gen8bdsp',
852
929
  team: 'random',
@@ -861,7 +938,53 @@ export const Formats: FormatList = [
861
938
 
862
939
  mod: 'gen8bdsp',
863
940
  ruleset: ['Standard'],
864
- banlist: ['Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass'],
941
+ banlist: [
942
+ 'Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Sand Veil', 'Shadow Tag', 'Snow Cloak',
943
+ 'Bright Powder', 'King\'s Rock', 'Lax Incense', 'Razor Fang', 'Baton Pass',
944
+ ],
945
+ },
946
+ {
947
+ name: "[Gen 8 BDSP] Ubers",
948
+ threads: [
949
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694036/">BDSP Ubers Discussion &amp; Resources</a>`,
950
+ ],
951
+
952
+ mod: 'gen8bdsp',
953
+ ruleset: ['Standard'],
954
+ banlist: ['AG', 'Baton Pass'],
955
+ },
956
+ {
957
+ name: "[Gen 8 BDSP] UU",
958
+ threads: [
959
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694307/">BDSP UU</a>`,
960
+ ],
961
+
962
+ mod: 'gen8bdsp',
963
+ ruleset: ['[Gen 8 BDSP] OU'],
964
+ banlist: ['OU', 'UUBL'],
965
+ },
966
+ {
967
+ name: "[Gen 8 BDSP] Monotype",
968
+ threads: [
969
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694267/">BDSP Monotype</a>`,
970
+ ],
971
+
972
+ mod: 'gen8bdsp',
973
+ ruleset: ['Standard', 'Same Type Clause'],
974
+ banlist: [
975
+ 'Dialga', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre', 'Lugia', 'Mewtwo', 'Palkia', 'Rayquaza',
976
+ 'Arena Trap', 'Moody', 'Shadow Tag', 'Damp Rock', 'King\'s Rock', 'Razor Fang', 'Baton Pass',
977
+ ],
978
+ },
979
+ {
980
+ name: "[Gen 8 BDSP] CAP",
981
+ threads: [
982
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694238/">BDSP CAP</a>`,
983
+ ],
984
+
985
+ mod: 'gen8bdsp',
986
+ searchShow: false,
987
+ ruleset: ['[Gen 8 BDSP] OU', '+CAP'],
865
988
  },
866
989
  {
867
990
  name: "[Gen 8 BDSP] Doubles OU",
@@ -871,17 +994,18 @@ export const Formats: FormatList = [
871
994
 
872
995
  mod: 'gen8bdsp',
873
996
  gameType: 'doubles',
874
- searchShow: false,
875
997
  ruleset: ['Standard Doubles'],
876
- banlist: ['DUber', 'Swagger'],
998
+ banlist: ['DUber'],
877
999
  },
878
1000
  {
879
1001
  name: "[Gen 8 BDSP] Battle Festival Doubles",
1002
+ threads: [
1003
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3694269/">Battle Festival Doubles</a>`,
1004
+ ],
880
1005
 
881
1006
  mod: 'gen8bdsp',
882
1007
  gameType: 'doubles',
883
- // VGC Timer is temporary
884
- ruleset: ['Flat Rules', 'Min Source Gen = 8', 'VGC Timer'],
1008
+ ruleset: ['Flat Rules', 'Min Source Gen = 8'],
885
1009
  },
886
1010
  {
887
1011
  name: "[Gen 8 BDSP] Pure Hackmons",
@@ -911,9 +1035,9 @@ export const Formats: FormatList = [
911
1035
  banlist: [
912
1036
  'Calyrex-Ice', 'Calyrex-Shadow', 'Darmanitan-Galar', 'Dialga', 'Dracovish', 'Dragonite', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon',
913
1037
  'Ho-Oh', 'Hydreigon', 'Kartana', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Latias', 'Latios', 'Lugia', 'Lunala', 'Marshadow',
914
- 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Shedinja', 'Slowking-Galar', 'Solgaleo',
915
- 'Tornadus-Therian', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zeraora', 'Zygarde-Base',
916
- 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
1038
+ 'Mew', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Reuniclus', 'Shedinja',
1039
+ 'Slowking-Galar', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom',
1040
+ 'Zeraora', 'Zygarde-Base', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'Baton Pass',
917
1041
  ],
918
1042
  onModifySpeciesPriority: 2,
919
1043
  onModifySpecies(species, target, source, effect) {
@@ -929,61 +1053,6 @@ export const Formats: FormatList = [
929
1053
  this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
930
1054
  },
931
1055
  },
932
- {
933
- name: "[Gen 8] Godly Gift",
934
- 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.`,
935
- threads: [
936
- `&bullet; <a href="https://www.smogon.com/forums/threads/3660461/">Godly Gift</a>`,
937
- ],
938
-
939
- mod: 'gen8',
940
- searchShow: false,
941
- ruleset: ['Standard', 'Dynamax Clause'],
942
- banlist: [
943
- 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Hawlucha', 'Marowak-Alola', 'Melmetal', 'Pikachu', 'Toxapex', 'Zacian', 'Zacian-Crowned',
944
- 'Uber > 1', 'AG ++ Uber > 1', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power', 'Shadow Tag', 'Baton Pass',
945
- ],
946
- onValidateTeam(team) {
947
- const gods = new Set<string>();
948
- for (const set of team) {
949
- let species = this.dex.species.get(set.species);
950
- if (typeof species.battleOnly === 'string') species = this.dex.species.get(species.battleOnly);
951
- if (['ag', 'uber'].includes(this.toID(species.tier)) || this.toID(set.ability) === 'powerconstruct') {
952
- gods.add(species.name);
953
- }
954
- }
955
- if (gods.size > 1) {
956
- return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`];
957
- }
958
- },
959
- onModifySpeciesPriority: 3,
960
- onModifySpecies(species, target, source) {
961
- if (source || !target?.side) return;
962
- const god = target.side.team.find(set => {
963
- let godSpecies = this.dex.species.get(set.species);
964
- const validator = this.dex.formats.getRuleTable(this.dex.formats.get(`gen${this.gen}ou`));
965
- if (this.toID(set.ability) === 'powerconstruct') {
966
- return true;
967
- }
968
- if (set.item) {
969
- const item = this.dex.items.get(set.item);
970
- if (item.megaEvolves === set.species) godSpecies = this.dex.species.get(item.megaStone);
971
- }
972
- const isBanned = validator.isBannedSpecies(godSpecies);
973
- return isBanned;
974
- }) || target.side.team[0];
975
- const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)];
976
- const newSpecies = this.dex.deepClone(species);
977
- let godSpecies = this.dex.species.get(god.species);
978
- if (godSpecies.forme === 'Crowned') {
979
- godSpecies = this.dex.species.get(godSpecies.changesFrom || godSpecies.baseSpecies);
980
- }
981
- newSpecies.bst -= newSpecies.baseStats[stat];
982
- newSpecies.baseStats[stat] = godSpecies.baseStats[stat];
983
- newSpecies.bst += newSpecies.baseStats[stat];
984
- return newSpecies;
985
- },
986
- },
987
1056
  {
988
1057
  name: "[Gen 8] Inheritance",
989
1058
  desc: `Pok&eacute;mon may use the ability and moves of another, as long as they forfeit their own learnset.`,
@@ -2003,40 +2072,50 @@ export const Formats: FormatList = [
2003
2072
  column: 3,
2004
2073
  },
2005
2074
  {
2006
- name: "[Gen 6] Ubers",
2075
+ name: "[Gen 1] UU",
2007
2076
  threads: [
2008
- `&bullet; <a href="https://www.smogon.com/forums/posts/8286277/">ORAS Ubers</a>`,
2077
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
2078
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
2009
2079
  ],
2010
2080
 
2011
- mod: 'gen6',
2081
+ mod: 'gen1',
2012
2082
  // searchShow: false,
2013
- ruleset: ['Standard', 'Swagger Clause', 'Mega Rayquaza Clause'],
2083
+ ruleset: ['[Gen 1] OU'],
2084
+ banlist: ['OU', 'UUBL'],
2014
2085
  },
2015
2086
  {
2016
- name: "[Gen 4] UU",
2087
+ name: "[Gen 6] 1v1",
2088
+ desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
2017
2089
  threads: [
2018
- `&bullet; <a href="https://www.smogon.com/forums/threads/3532624/">DPP UU Metagame Discussion</a>`,
2019
- `&bullet; <a href="https://www.smogon.com/forums/threads/3503638/">DPP UU Viability Rankings</a>`,
2090
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
2020
2091
  ],
2021
2092
 
2022
- mod: 'gen4',
2093
+ mod: 'gen6',
2023
2094
  // searchShow: false,
2024
- ruleset: ['[Gen 4] OU'],
2025
- banlist: ['OU', 'UUBL'],
2026
- unbanlist: ['Arena Trap'],
2095
+ ruleset: [
2096
+ 'Max Team Size = 3', 'Picked Team Size = 1',
2097
+ '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',
2098
+ ],
2099
+ banlist: [
2100
+ 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
2101
+ 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
2102
+ 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
2103
+ 'Focus Sash', 'Soul Dew', 'Perish Song',
2104
+ ],
2027
2105
  },
2028
2106
  {
2029
- name: "[Gen 3] Doubles OU",
2107
+ name: "[Gen 5] Doubles OU",
2030
2108
  threads: [
2031
- `&bullet; <a href="https://www.smogon.com/forums/threads/3666831/">ADV Doubles OU</a>`,
2109
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
2110
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
2111
+ `&bullet; <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
2032
2112
  ],
2033
2113
 
2034
- mod: 'gen3',
2035
- // searchShow: false,
2114
+ mod: 'gen5',
2036
2115
  gameType: 'doubles',
2037
- ruleset: ['Standard', '!Sleep Clause Mod', '!Switch Priority Clause Mod'],
2038
- banlist: ['Uber'],
2039
- unbanlist: ['Deoxys-Speed', 'Wobbuffet', 'Wynaut'],
2116
+ // searchShow: false,
2117
+ ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
2118
+ banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
2040
2119
  },
2041
2120
 
2042
2121
  // Past Gens OU
@@ -2101,8 +2180,8 @@ export const Formats: FormatList = [
2101
2180
  ],
2102
2181
 
2103
2182
  mod: 'gen3',
2104
- ruleset: ['Standard', '3 Baton Pass Clause'],
2105
- banlist: ['Uber', 'Mr. Mime', 'Smeargle + Baton Pass', 'Sand Veil'],
2183
+ ruleset: ['Standard', 'One Boost Passer Clause'],
2184
+ banlist: ['Uber', 'Sand Veil', 'Smeargle + Ingrain'],
2106
2185
  },
2107
2186
  {
2108
2187
  name: "[Gen 2] OU",
@@ -2141,7 +2220,7 @@ export const Formats: FormatList = [
2141
2220
  ],
2142
2221
 
2143
2222
  mod: 'gen7',
2144
- ruleset: ['-Nonexistent', '2 Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'CFZ Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Endless Battle Clause'],
2223
+ ruleset: ['-Nonexistent', '2 Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Forme Clause', 'CFZ Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Endless Battle Clause'],
2145
2224
  banlist: [
2146
2225
  'Groudon-Primal', 'Rayquaza-Mega', 'Gengarite', 'Comatose + Sleep Talk', 'Chatter',
2147
2226
  'Arena Trap', 'Contrary', 'Huge Power', 'Illusion', 'Innards Out', 'Magnet Pull', 'Moody', 'Parental Bond', 'Protean', 'Psychic Surge', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble', 'Wonder Guard',
@@ -2351,7 +2430,8 @@ export const Formats: FormatList = [
2351
2430
  'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Kangaskhan-Mega', 'Kartana', 'Kyogre', 'Kyurem-White', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna',
2352
2431
  'Marshadow', 'Mawile-Mega', 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia',
2353
2432
  'Pheromosa', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Tapu Lele', 'Xerneas', 'Yveltal', 'Zekrom', 'Zygarde',
2354
- 'Battle Bond', 'Shadow Tag', 'Damp Rock', 'Smooth Rock', 'Terrain Extender', 'Baton Pass',
2433
+ 'Battle Bond', 'Shadow Tag', 'Bright Powder', 'Damp Rock', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw', 'Razor Fang',
2434
+ 'Smooth Rock', 'Terrain Extender', 'Baton Pass',
2355
2435
  ],
2356
2436
  },
2357
2437
  {
@@ -2576,6 +2656,16 @@ export const Formats: FormatList = [
2576
2656
  section: "OR/AS Singles",
2577
2657
  column: 4,
2578
2658
  },
2659
+ {
2660
+ name: "[Gen 6] Ubers",
2661
+ threads: [
2662
+ `&bullet; <a href="https://www.smogon.com/forums/posts/8286277/">ORAS Ubers</a>`,
2663
+ ],
2664
+
2665
+ mod: 'gen6',
2666
+ searchShow: false,
2667
+ ruleset: ['Standard', 'Swagger Clause', 'Mega Rayquaza Clause'],
2668
+ },
2579
2669
  {
2580
2670
  name: "[Gen 6] UU",
2581
2671
  threads: [
@@ -2658,26 +2748,6 @@ export const Formats: FormatList = [
2658
2748
  'Soul Dew', 'Baton Pass',
2659
2749
  ],
2660
2750
  },
2661
- {
2662
- name: "[Gen 6] 1v1",
2663
- desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
2664
- threads: [
2665
- `&bullet; <a href="https://www.smogon.com/forums/posts/8031459/">ORAS 1v1</a>`,
2666
- ],
2667
-
2668
- mod: 'gen6',
2669
- searchShow: false,
2670
- ruleset: [
2671
- 'Max Team Size = 3', 'Picked Team Size = 1',
2672
- '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',
2673
- ],
2674
- banlist: [
2675
- 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina',
2676
- 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
2677
- 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Xerneas', 'Yveltal', 'Zekrom',
2678
- 'Focus Sash', 'Soul Dew', 'Perish Song',
2679
- ],
2680
- },
2681
2751
  {
2682
2752
  name: "[Gen 6] Anything Goes",
2683
2753
  threads: [
@@ -2700,7 +2770,7 @@ export const Formats: FormatList = [
2700
2770
  mod: 'gen6',
2701
2771
  searchShow: false,
2702
2772
  ruleset: ['[Gen 6] OU', '+CAP'],
2703
- banlist: ['Aurumoth', 'Cawmodore'],
2773
+ banlist: ['Aurumoth', 'Cawmodore', 'Crucibelle-Mega'],
2704
2774
  },
2705
2775
  {
2706
2776
  name: "[Gen 6] Battle Spot Singles",
@@ -2936,9 +3006,9 @@ export const Formats: FormatList = [
2936
3006
  searchShow: false,
2937
3007
  ruleset: [
2938
3008
  'Picked Team Size = 1', 'Max Team Size = 3',
2939
- 'Standard', 'Baton Pass Clause', 'Swagger Clause',
3009
+ 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Accuracy Moves Clause',
2940
3010
  ],
2941
- banlist: ['Uber', 'Cottonee', 'Dragonite', 'Kyurem-Black', 'Togekiss', 'Whimsicott', 'Victini', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Soul Dew', 'Perish Song'],
3011
+ banlist: ['Uber', 'Cottonee', 'Dragonite', 'Kyurem-Black', 'Mew', 'Togekiss', 'Whimsicott', 'Victini', 'Bright Powder', 'Focus Band', 'Focus Sash', 'Lax Incense', 'Quick Claw', 'Soul Dew', 'Perish Song'],
2942
3012
  unbanlist: ['Genesect', 'Landorus', 'Manaphy', 'Thundurus', 'Tornadus-Therian'],
2943
3013
  },
2944
3014
  {
@@ -2967,20 +3037,6 @@ export const Formats: FormatList = [
2967
3037
  section: 'B2/W2 Doubles',
2968
3038
  column: 4,
2969
3039
  },
2970
- {
2971
- name: "[Gen 5] Doubles OU",
2972
- threads: [
2973
- `&bullet; <a href="https://www.smogon.com/forums/threads/3606719/">BW2 Doubles Metagame Discussion</a>`,
2974
- `&bullet; <a href="https://www.smogon.com/forums/posts/7393048/">BW2 Doubles Viability Rankings</a>`,
2975
- `&bullet; <a href="https://www.smogon.com/forums/posts/7393081/">BW2 Doubles Sample Teams</a>`,
2976
- ],
2977
-
2978
- mod: 'gen5',
2979
- gameType: 'doubles',
2980
- searchShow: false,
2981
- ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'],
2982
- banlist: ['DUber', 'Soul Dew', 'Dark Void', 'Gravity'],
2983
- },
2984
3040
  {
2985
3041
  name: "[Gen 5] VGC 2013",
2986
3042
 
@@ -3049,6 +3105,19 @@ export const Formats: FormatList = [
3049
3105
  ruleset: ['Standard'],
3050
3106
  banlist: ['AG'],
3051
3107
  },
3108
+ {
3109
+ name: "[Gen 4] UU",
3110
+ threads: [
3111
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3532624/">DPP UU Metagame Discussion</a>`,
3112
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3503638/">DPP UU Viability Rankings</a>`,
3113
+ ],
3114
+
3115
+ mod: 'gen4',
3116
+ searchShow: false,
3117
+ ruleset: ['[Gen 4] OU'],
3118
+ banlist: ['OU', 'UUBL'],
3119
+ unbanlist: ['Arena Trap'],
3120
+ },
3052
3121
  {
3053
3122
  name: "[Gen 4] NU",
3054
3123
  threads: [
@@ -3220,6 +3289,19 @@ export const Formats: FormatList = [
3220
3289
  banlist: ['UU'],
3221
3290
  unbanlist: ['Baton Pass'],
3222
3291
  },
3292
+ {
3293
+ name: "[Gen 3] Doubles OU",
3294
+ threads: [
3295
+ `&bullet; <a href="https://www.smogon.com/forums/threads/3666831/">ADV Doubles OU</a>`,
3296
+ ],
3297
+
3298
+ mod: 'gen3',
3299
+ searchShow: false,
3300
+ gameType: 'doubles',
3301
+ ruleset: ['Standard', '!Sleep Clause Mod', '!Switch Priority Clause Mod'],
3302
+ banlist: ['Uber'],
3303
+ unbanlist: ['Deoxys-Speed', 'Wobbuffet', 'Wynaut'],
3304
+ },
3223
3305
  {
3224
3306
  name: "[Gen 3] 1v1",
3225
3307
  desc: `Bring three Pok&eacute;mon to Team Preview and choose one to battle.`,
@@ -3234,6 +3316,7 @@ export const Formats: FormatList = [
3234
3316
  '[Gen 3] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview',
3235
3317
  ],
3236
3318
  banlist: ['Clefable', 'Slaking', 'Snorlax', 'Suicune', 'Destiny Bond', 'Explosion', 'Ingrain', 'Perish Song', 'Self-Destruct', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Lax Incense', 'Quick Claw'],
3319
+ unbanlist: ['Mr. Mime', 'Wobbuffet', 'Wynaut', 'Sand Veil'],
3237
3320
  },
3238
3321
  {
3239
3322
  name: "[Gen 3] Custom Game",
@@ -3338,18 +3421,6 @@ export const Formats: FormatList = [
3338
3421
  searchShow: false,
3339
3422
  ruleset: ['Standard'],
3340
3423
  },
3341
- {
3342
- name: "[Gen 1] UU",
3343
- threads: [
3344
- `&bullet; <a href="https://www.smogon.com/forums/threads/3573896/">RBY UU Metagame Discussion</a>`,
3345
- `&bullet; <a href="https://www.smogon.com/forums/threads/3647713/">RBY UU Viability Rankings</a>`,
3346
- ],
3347
-
3348
- mod: 'gen1',
3349
- searchShow: false,
3350
- ruleset: ['[Gen 1] OU'],
3351
- banlist: ['OU', 'UUBL'],
3352
- },
3353
3424
  {
3354
3425
  name: "[Gen 1] NU",
3355
3426
  threads: [