• The moderator of this forum is Austin.
  • Welcome to Smogon! Take a moment to read the Introduction to Smogon for a run-down on everything Smogon, and make sure you take some time to read the global rules.

Bill's PC, a new way to design Pokemon teams [BETA]

Hello everyone, I'm very excited to announce something I've been working on for six months now: "Bill's PC". Check it out here. It's a new teambuilding app with lots of tools to help you design your team. There are three major sections:

1. Planner

Search Pokemon by different criteria. Below, you can search Pokemon by their Abilities, and save them to a "Box" for later. Note that you can filter these Pokemon by base stats, type, and tier as well using the Control Panel at the top. You can also select the Generation as well; there's support for every generation. (For Gen 8, it's split between Sw/Sh and BD/SP. To get an approximation of the National Dex format, you can turn both of those modes off.)

Saving Pokemon to a box

Some of the more interesting criteria include field states (weather, entry hazards, etc.), usage methods (sound-based moves, ball-based moves, etc.), and effects (a kind of miscellaneous category). Clicking on each name will send you to a page for the ability/item/field state/etc. For example, if you go to "Field states" and click on "Rain", it'll bring you to a page listing all the mechanics involving rain, perfect for building weather-based teams:

Page for rain, listing e.g. moves which are enhanced by Rain, such as Thunder and Hurricane.

2. Builder

Once you've saved some Boxes from the Planner section, you can combine them in different ways to get new Boxes in the "Cart" section of the Builder. Let's say I saved Pokemon who have Swift Swim, Pokemon who learn Hydro Pump, and Pokemon who learn Hurricane. By combining these boxes appropriately, I could find all the Pokemon who either:
  • have Swift Swim and learn Hydro Pump, OR
  • learn Hurricane.
View of the Cart, where you can combine boxes in different ways. We're pinning a custom Box for use later.

For any of these Boxes (from Planner, or your own custom Boxes), you can go to the "Team" section to start building your team. You can select from the Boxes you've pinned or from individual Pokemon (use the "Quick Search" section to find and save them), and you can even import them. Then, you have access to all the functionality of the teambuilder from Pokemon Showdown. Note that imported Pokemon will keep their entire sets, so you could import your entire team if you prefer for use in the next section.

View of a fully functional team builder.

3. Analyzer

Finally, once you have your team, you can go to the Analyzer to see strengths and weaknesses of your team at a glance. In the "Coverage" section, you can see different tables listing your teams' capabilities. From the leftmost table clockwise: type matchups, status sources and resistances, field state sources and resistances, and speed control (in this case, two of the Pokemon on the team have Swift Swim). Hovering over any cell in any of these tables will highlight the relevant Pokemon, as well as their moves/items/abilities. For example, if I hover over the "Super effective against Grass" cell, it'll highlight three of my Pokemon, as well as their moves which are super effective against grass types.

View of the Coverage section, hovering over one of the entries in the table.

Finally, we have the "Versus" section. This one will have more screenshots to better show off what it's capable of. First, you'll need to import an enemy team (the "CLEAR" button in the screenshot below was an "IMPORT" button for this purpose before I imported the team). Let's see how our Rain team does against this Sand team. You can see a table in the middle comparing each of your Pokemon against the enemy Pokemon. The alphanumeric codes represent KO ranges, for example in your Politoed vs. the enemy Gliscor, we have U P 1, a red triangle, and E G 3. That means, respectively, that you (User) can Potentially 1-hit KO the Gliscor, that Gliscor outspeeds you, and that it (Enemy) is Guaranteed to 3-hit KO Politoed.

View of Versus section, turning on Rain.

You can also set field states like weather and terrain, as well as side-specific field states (e.g. hazards, Tailwind). Whenever you make a change, the table will update, and it'll highlight the changes for a few seconds.

Highlighting relevant information on hover.

You can hover or individual cells, and the app will highlight information relevant to that cell. If you hover over the codes themselves, it'll give a more detailed description, directly from the official Pokemon Showdown calculator (which is what is being used for all these calculations).

You can switch between viewing either team's Abilities/Items/Moves or Stats, and you're able to change any of these within this section. For example, I can change Kingdra's HP IV from 31 to 0, and it'll highlight the matchups which change once I do so.


Finally, you can export your team again when you're done.


  • The home page of each section gives more information on what's in each section.
  • I don't currently have plans for saving/storing teams in this app, so please use the "Export" feature to keep track of your teams whenever you make big changes to them.
  • I've put in a lot of effort to make sure that you can navigate this site with either a mouse or keyboard and still have most of the functionality. So in the "Versus" section for example, you can navigate the grid with a keyboard and whichever cell that's being focused on will act like it's being hovered-over.
  • There's some National Dex support in that you can turn off both Sw/Sh and BD/SP mode. What this does is that it'll include moves and Pokemon even if they aren't present in either of those games. However, you may not get full access to a Pokemon's moveset in the Builder, as it's difficult to account for the format in my database. To account for this, I turn off move validation when importing Pokemon once you're in this mode, so you can still import Pokemon with your desired moves, even if they might not be available in this app's Teambuilder.

I hope you find this useful whether you already have a team or not. I've poured a lot of time and energy into this project, and I'm quite proud of it. However, I need to move onto other projects now, so I'm not planning on adding significant new features. That being said, feel free to post any suggestions/constructive feedback below. I'd like to add in some sort of tutorial or guidance on the Home page which will make it more accessible to new users. Once people here have had awhile to use it, I'll probably post it in other places as well, but feel free to share it now if you enjoy it.

All of the code is on GitHub, and I'm happy to give guidance to anyone who wants to contribute to the project. Moreover, I'll try to patch any bugs that people find in a timely manner (after I take a break for a couple weeks, unless there's anything major). You can post any minor or major bugs below, or as an Issue on the GitHub repo. I have another thread where I've been posting updates on the progress of this project. All of the game data in this app goes through my custom GraphQL API, PokeGQL, which is built on data that I scraped from Bulbapedia and put into a MySQL database (see the repo for that here). Feel free to contribute to any of these projects.

That's it from me for now. I hope y'all enjoy!

One user helpfully suggested a VGC format filter, which should be live now. Essentially it's just another option in the tier filter, which will let you filter restricted Pokemon and mythical Pokemon, rather than by Smogon tiers. I understand that there are some other Pokemon who have been banned. Mythical/restricted status seems pretty stable across generations so it's not too hard to implement, but the rest of the ban list would be harder for me to maintain (modifying the database itself, following the VGC scene regularly), so I'm leaving it at Mythical/Restricted/Other for now. I hope it's useful to y'all!

It turns out that this feature wasn't too hard to implement; just some small tweaks to the UI and some simple logic (again, since restricted/mythical status is stable across generations, as opposed to a ban list), as I could easily put the list of restricted and mythical Pokemon into the app. I opened a Discussions section on the GitHub repo where you can suggest ideas, and discuss other things about the app.

Like I said above, I'm reluctant to add major new features at this time, but if you have small quality-of-life features to recommend, then you can do so there (you can also suggest major new features there; just know that I probably won't be able to get to them in the near future). Then I can assess how difficult it would be to implement it (e.g. do I need to change the database? the GraphQL API? the app?), and if it's too difficult we could try to come to some compromise that's easier to pull off.

Users Who Are Viewing This Thread (Users: 1, Guests: 0)