Pokémon Showdown Randbats Tooltip
Enhanced tooltip functionality for Pokémon Showdown Random Battle formats. This extension relies on data from https://pkmn.github.io/randbats/ which is an automatically updating repository of the latest options for Pokémon Showdown's standard Random Battle formats and is the same source that provides data to Pokémon Showdown's Random Battle Damage Calculator. More precise information about a Pokémon's possible abilities, items, moves, and stats are presented in addition to the standard tooltip information provided by Pokémon Showdown. All formats with 'Random' in their name should be supported (all generations, Singles/Doubles/Free-For-All/Multi, Unrated, Monotype, Let's Go, etc - but not Challenge Cup, Battle Factory, SSB, etc), and the additional tooltip information should be present on any Pokémon which would otherwise only have partial data (ie. any player's Pokémon/revealed team while spectating and your opponent's Pokémon/revealed team while battling).
This extension takes advantage of the fact that in practice a Pokémon's abilities and items are actually limited. The move pool displayed by the extension is guaranteed be a superset of what is returned by Pokémon Showdown's existing /randbats mon, gen command. Stats are slightly fuzzier - Max HP is elided as this stat is adjusted during set generation to hit optimal recovery or chip numbers and is impossible to infer in most scenarios without knowing the full set. Atk can be adjusted to minimize confusion damage and Spe can be adjusted if certain speed-related moves (Gyro Ball, Trick Room, etc) are included in the set and so are italicized in most cases to indicate they are not necessarily always exact (though in the cases where they are known to be fixed they are not italicized). Sets with Hidden Power in earlier gens may also have had their IVs adjusted to account for the move.
Due to Pokémon Showdown's release process, the information in the tooltip can be stale for up to an hour if changes to the Random Battle team generation logic are hotpatched immediately after being committed. This should rarely be consequential in practice, though may explain any discrepancies that may crop up. Before reporting any bugs related to the possible set options, please confirm that you are not simply dealing with this stale data scenario.
Furthermore, due to how the set generation logic used by Pokémon Showdown is based off of battle-only formes, it may not always be possible to disambiguate which forme's set to display in the tooltip (eg. Darmanitan-Galar vs. Darmanitan-Galar-Zen while the Pokémon is in Darmanitan-Galar forme) - in these cases, multiple set options will be displayed.
This extension was written to have no impact on tooltips in non-random formats and to gracefully degrade in scenarios where data is unavailable, however, extensions can be inherently problematic when it comes to reporting bugs. If you notice any UI inconsistencies anywhere within Pokémon Showdown, please do the developers a favor and attempt to reproduce the error after disabling all extensions to rule out the possibility that interaction between extensions is causing issues.
Thank you to nui, Annika, and Aeonic for helping to beta test.
*In the past, the Chrome extension has been forcibly removed by Google due to a DMCA notice from a company acting on behalf of Nintendo. The extension has been republished with all trademarked intellectual property removed, however, if it happens to get taken down again the only way to use this extension on Chrome is by manually downloading chrome.zip from the latest release and unzipping it somewhere on your hard drive, going to chrome://extensions in your browser, checking the box for 'Developer Mode', and then using the 'Load unpacked extension' option to load the unzipped contents of the extension. Alternatively, many other similar extensions have been published based on the same data and code powering the official extension supported by pkmn.cc and may meet your needs, though please do not report issues for these extensions in this thread.