From c0ca6cbd905da0c12f5f782c853a6b337d788ee5 Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Sun, 1 Mar 2026 03:50:32 -0700 Subject: [PATCH] Update OM teambuilder support list --- build-tools/build-indexes | 7 ++++--- play.pokemonshowdown.com/src/battle-dex-search.ts | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/build-tools/build-indexes b/build-tools/build-indexes index 7cbcd27d7..fc6fce96b 100755 --- a/build-tools/build-indexes +++ b/build-tools/build-indexes @@ -431,7 +431,7 @@ process.stdout.write("Building `data/teambuilder-tables.js`... "); tierTable[speciesTier].push(id); if (genNum >= 5) { - for (const meta of [ + for (const meta of (isVGC && genNum === 9 ? ['4v4doublesuu'] : [ '1v1', '2v2doubles', 'lcuu', 'freeforall', 'ubersuu', 'almostanyability', 'balancedhackmons', 'godlygift', 'mixandmega', 'sharedpower', 'stabmons', '12switch', '350cup', 'alphabetcup', 'badnboosted', 'battlefields', 'biomechmons', 'camomons', 'categoryswap', 'categoryswap', 'convergence', 'crossevolution', 'categoryswap', 'ferventimpersonation', 'foresighters', 'formemons', 'fortemons', 'franticfusions', @@ -439,8 +439,8 @@ process.stdout.write("Building `data/teambuilder-tables.js`... "); 'pokemoves', 'relayrace', 'revelationmons', 'sharingiscaring', 'teradonation', 'teraoverride', 'thecardgame', 'thelosersgame', 'trademarked', 'triples', 'typesplit', 'voltturnmayhem', 'flipped', 'monotype', 'aaa', 'bh', 'doubles', // natdex abbreviations - 'tiershift', - ]) { + 'tiershift', 'linked' + ])) { const format = Dex.formats.get(`${gen}${isNatDex ? 'nationaldex' : ''}${meta}`); if (!format.exists) continue; const ruleTable = Dex.formats.getRuleTable(format); @@ -546,6 +546,7 @@ process.stdout.write("Building `data/teambuilder-tables.js`... "); BattleTeambuilderTable[gen + 'vgc'] = {}; BattleTeambuilderTable[gen + 'vgc'].tiers = tiers; BattleTeambuilderTable[gen + 'vgc'].formatSlices = formatSlices; + if (genNum === 9) BattleTeambuilderTable[gen + 'vgc'].metagameBans = metagameBans; } else if (isDoubles) { BattleTeambuilderTable[gen + 'doubles'] = {}; BattleTeambuilderTable[gen + 'doubles'].tiers = tiers; diff --git a/play.pokemonshowdown.com/src/battle-dex-search.ts b/play.pokemonshowdown.com/src/battle-dex-search.ts index 3e07d848c..b617efe60 100644 --- a/play.pokemonshowdown.com/src/battle-dex-search.ts +++ b/play.pokemonshowdown.com/src/battle-dex-search.ts @@ -1003,7 +1003,7 @@ class BattlePokemonSearch extends BattleTypedSearch<'pokemon'> { const format = this.format; if (!format) return this.getDefaultResults(); const isVGCOrBS = format.startsWith('battlespot') || format.startsWith('bss') || - format.startsWith('battlestadium') || format.startsWith('vgc'); + format.startsWith('battlestadium') || format.startsWith('vgc') || format === '4v4doublesuu'; const isHackmons = format.includes('hackmons') || format.endsWith('bh'); let isDoublesOrBS = isVGCOrBS || this.formatType?.includes('doubles'); const dex = this.dex; @@ -1162,7 +1162,7 @@ class BattlePokemonSearch extends BattleTypedSearch<'pokemon'> { 'pokemoves', 'relayrace', 'revelationmons', 'sharingiscaring', 'teradonation', 'teraoverride', 'thecardgame', 'thelosersgame', 'trademarked', 'triples', 'typesplit', 'voltturnmayhem', 'flipped', 'monotype', 'stabmonsmixandmega', 'aaa', 'bh', 'doubles', // natdex abbreviations - 'tiershift', + 'tiershift', 'linked', '4v4doublesuu', ]; if (dex.gen >= 6) { if (customBanlists.includes(format) && table.metagameBans?.[format]) {