Juha-Matti Santala
Community Builder. Dreamer. Adventurer.

Pokemon tools updated for Obisidian Flames

Scarlet & Violet Obsidian Flames

Pokemon TCG’s newest set, Obisidian Flames was published last Friday, August 11th and for me, that means it was time to update my Gym Leader Challenge Decklist Validator and Pokemon TCG Card Viewer Firefox extension so trainers all around the globe are better equipped for the new cards in the format.

Gym Leader Challenge Decklist Validator

Gym Leader Challenge Deck Validator

Gym Leader Challenge is the best way to play Pokemon TCG these days. A format that was born from the community, masterminded by Andrew Mahone, fixes a lot of issues that standard format has and gives an opportunity for new cards to shine.

As the decks are singleton, meaning you can only play one of each card (excluding basic energies), there’s a lot of cards in a deck and mistakes can slip in.

Screenshot of GLC Decklist Validator with a valid fighting deck that passes all checks

Gym Leader Challenge Decklist Validator is a web tool that accepts Pokemon TCG Online or Pokemon TCG Live formatted deck exports and checks for all the rules in deckbuilding for the format:

  • Monotype
  • Singleton
  • No rulebox cards
  • Juniper/Sycamore/Professor’s Research rule
  • Lysandre/Boss’s Orders rule
  • Ban list
  • Set viability
Screenshot of fighting type GLC deck that fails monotype, singleton and rulebox checks

Still building with hacks

Pokemon TCG Online was the official digital client to play Pokemon TCG for years so a lot of tools are built on top of its export format. Pokemon TCG Live came out recently and it has a similar export function but not all the tools have updated to match that yet.

The API I use, pokemontcg.io has PTCGO codes for all cards that were available in that client but it does not (at least yet) have support for Live codes.

else if (setCode === "OBF") {
    cards = await pokemon.card.all({ q: `set.id:sv3` });
    cards = cards.map((card) => ({ ...card, ptcgoCode: "OBF" }));

Right now, my solution has been to add a new else if clause to my code that instead of passing the code as-is to API, searches with the id and then for my local use, I add the ptcgoCode attribute to the object so I can then later match directly from the decklist input to these cards.

This is now the third set in the Scarlet & Violet series (the first series that was no longer available in PTCGO) so I have three of these branches. It’s still manageable but I might need to refactor the code after a while if the API doesn’t add Live set codes to the data.

Pokemon TCG Card Viewer Firefox extension

Pokemon TCG Card Viewer

Similarly, I’ve updated the Pokemon TCG Card Viewer extension for Firefox to map the Live export code OBF to a set with id of sv3.

This extension lives on your browser’s toolbar and when clicked, will search the page for all Pokemon TCG Online/Live export codes (like OBF 125 for the new powerful Charizard ex) and wrap them all with <span>'s that when hovered, will display the image of that card directly next to the mouse.

This saves players multiple trips to sites like Pkmncards.com when they are browsing deck lists on Youtube, blog posts, articles or forums.

I have on my todo list to update this to the new Manifest V3 format and to also make it available for Chromium based browsers so even more players can access the power of the extension but for now, it’s advisable to switch to Firefox anyway if you’re using Chrome or Edge.

Syntax Error

Sign up for Syntax Error, a monthly newsletter that helps developers turn a stressful debugging situation into a joyful exploration.