Simply put, Silph Scope uses the visisble stats from a Pokemon in Pokemon Scarlet/Violet and calculates their hidden EV values. A rough estimate of these values is available by viewing the "Judge" feature in game, but that doesn't give you the exact values.

I made Silph Scope as a tool for helping me manage the hundreds of competitive Pokemon I've made over the years. As someone who tries new teams all the time, I found myself wanting to know what the EVs were on any of my dozens of Incineroars, but inputting their stats manually into Showdown was too tedious. Knowing the exact EVs will let you decide if you want to use a specific Pokemon, or how many stat-reducing berries you need to use.

In short, EVs are values that determine how strong your Pokemon are. These exact values are hidden in game, but are critical to know for competitive trainers. You can find a thorough explanation on Serebii.

Silph scope aims to be as flexible as possible, and will try to work with whatever you give it. You can scan based on any of the following:
  • Manually typed in stats. Select the Pokemon, level, 6 stat values, and nature and click Scan.
  • A screenshot from your Nintendo Switch console. Open your Pokemon's stats screen (the one that displays the hexagon) and use the "Post" or "Send to Smartphone" options from the Album to transfer the screenshot to your device. Then upload the photo and click Scan.
  • A photo of your Nintendo Switch console. Open your Pokemon's stats screen (the one that displays the hexagon), and take a photo of your Switch. Then upload that photo, and click Scan. You'll have best results if your photo is a landscape photo, taken more or less straight on.

NOTE: Sometimes, the scanner might have trouble picking some things up. You can combine a picture and some manually typed stats if you're having trouble.

Sample Images that work:

There are a few things that make Silph Scope's job easier.
  • If uploading a photo, try and access the stats screen from the Boxes screen. If you use the party in the overworld, the background may cause issues with the scan.
  • Silph Scope requires your game to be in English. Other languages are not supported. If you use a picture or screenshot of a non-English Pokemon, you will need to specify the Pokemon species using the dropdown.
  • Similarly, if your Pokemon has a nickname, you will need to specify the Pokemon species using the dropdown.

Silph Scope is a simple Python 3 Flask App. I used the following to make it work.
  • Python 3.12 (main application language)
  • PokeAPI and the PokeBase wrapper for getting all the Pokemon data.
  • OCR.Space for analyzing the contents of the uploaded photos.
  • OpenCV for other image manipulation and analysis.
  • Apache2 and mod_wsgi for serving the application.

Silph Scope is still a work in progress. Feel free to create an issue in the GitHub Repo, message me on BlueSky, or message me on Discord (username zturchan). I can't guaruntee I'll get to your issue right away, but I appreciate any and all feedback.

Silph Scope may store the images you upload temporarily. In the event of a successful scan, all images that you upload will be deleted after your results are returned to you.
If your images result in an error, they may be preserved for a longer period of time to help with debugging.
The text representation of the results you generate may be preserved for logging.

Silph Scope uses the OCRSpace API for image processing. You can find a copy of their privacy policy here.

Assuming that I'm able to, I plan to continue adding support for whatever game the current VGC circuit uses.