tl;dr: very long search strings that let you quickly find Duskull with good PvP IVs.

Hello everyone, before I explain anything here's a link to a Google Drive folder with the search strings:

https://drive.google.com/drive/folders/1l8FdwfBdmleXF1wPiurObNuW6vAGJBjt?usp=sharing

Now for the explanation. I'll try to keep it simple to read while also giving all the details. Please hold tight.

  • "Why would I want this?"

Simple: you're probably tired of having to appraise hundreds of the featured CD pokémon so you can see which good PvP IVs you caught, even worse since there's a time limit because you want to evolve them and get the exclusive move.

  • "Okay, but what is this?"

With help of some coding in python I generated (very long) search strings which when pasted into the game still don't give you exactly the pokémon with good IVs, but they reduce the amount of pokémon you have to appraise.

  • "How are the search strings constructed?"

Basically they search by number of stars (0*-4*), CP values and HP values. The script computes those values for the good PvP IVs and does what it needs to do to make the search strings (and as far as I know these are the best posible search strings that can be made for this purpose).

  • "How helpful is this?"

My locals and I have been testing this during the last two CDs and overall we are very happy with how efficiant it is. For example, after the first day of Eevee CD I had 1173 Eevee and with this I could transfer 656 of them in a few seconds without looking at them knowing that nothing worth it was in there (but I quickly checked them to make sure this was working properly), and this was a specially hard one since it had so many different evolutions. I don't have the numbers for Oshawott, but it was better.

  • How to choose your preferences and find the strings

After clicking on my link above you will have to follow a path of folders where you choose your preferences. First choose the language (of your game), currently only English or Spanish (for other languages read below in "Suggestions"); next choose what you want "good for PvP" to mean, for example "Top25" means that it considers the best 25 PvP IVs (ranked by stat product), for each of the evolutions and each league (in this case: best 25 for Dusclops for Great League, best 25 Dusknoir for Great League and best 25 Dusknoir for Ultra League); next you choose "BB" if you want to Best Budies (level 50.5 or 51) to be counted and included or "Non-BB" if you want level 50 to be the maximum; finally you're greeted with three .txt files containing the search strings for your choices.

But speaking of the three files...

  • Different types of search strings. "What does each of them do?"

As said, there's three different search strings (for each set of choices), their names try to be self explanatory, but here's a more in depth explanation:

  1. "Transfer.txt" makes sure that nothing worth keeping shows when using it. This means it makes sure to NOT show any 4*, 3*, shiny, shadow, purified, 0% or anything with good PvP IVs. This search string is meant to be used while catching during CD when you don't have enough space to catch more pokémon, or for trading if you have friends and do that after catching.
  2. "Not PvP.txt" is similar to the previous one but only for PvP IVs, that is, it will show things worth keeping but nothing worth checking their IVs for PvP (more on how to use this in the next section).
  3. "Good PvP.txt" wishes to be the opposite of the previous one, that is, it makes sure that it shows everything worth checking for PvP IVs. The reason I mention this one last and the reason I say it "wishes" is because this search string is not really usefull (in my opinion). It does its job and shows everything worth checking, but it shows a lot more and is less efficient than "Not PvP.txt", that is, it shows many things which are also shown in "Not PvP.txt" and hence are not worth checking. (Note for the curious people: the plan was to make this one as efficient as the other one, so that this would be the main search string, the problem the way the game works (not allowing parenthesis in the search strings to change the order in wich the logical operators are applied). "In principle" it should still be posible to work around that, but this would make the string absourdly long (I estimate around 1012 characters) so A LOT of computing time is needed to generate it and I really doubt that a phone would be able to copy and paste that into the game or that the game would be able to read and process it. So for this search string I had to make a weaker version, which works but also shows way to much trash.)

  • How to use the search strings
  1. General: copying and pasting the search string into the game takes (from our experience) up to a few minutes, so doing that every time you need to use one is not a good idea. So if you are going to use a string multiple times I recomend saving them as favourites. (To do that: paste it in the game and let it process, once it is showing you some pokémon (also fine if it didn't find anything) leave the search and start a new one, a few "recomended" searchs show and if you tap on "Show more" on the top right you'll see your recent searches, tap and hold on the one you want to save and it will appear in the "Favourites" section below. Now you can access it through there and you can also change its name or delete it from favourites by tapping and holding on it.) Be aware that having the search strings saved in the game and using them might cause some lag in the game, so I recomend to save them only when you are about to start using them and delete them when you are done (so, before CD starts save the "Transfer.txt" string if you think you will be short on space, after you are done catching delete it).
  2. How to use "Not PvP.txt": make a tag (e.g. "Appraise"), select all the pokémon you caught in CD and tag them with it. Then use the search string, select everything that shows up and remove the tag from them. You're left with the pokémon you need to check the PvP IVs one by one. (Since this is a one-use string you shouldn't even need to save it in favourites, so that's better.)
  3. A tip for trading: if you want to use "Transfer.txt" for trading it's probably not make the game think about the search string for every trade. So before you start trading make a tag for all of those pokémon and then use the tag (instead of the search string) when trading.

  • Suggestions and feedback

I will be happy to read what people think of all of this, if it was helpful and I should continue posting these for future CDs, if you see some issue and if there are suggestions. For example I can easily add more options apart from "Top25", "Top50" and "Top100" or other options in general, just tell me what you would like to see. I can also easily add other languages, just tell me how the game needs the things to be written in said language: shiny, shadow, purified, cp and hp; and if there is any other thing to that language different than English. (I could look this up in Niantic's suport website, but I can't trust that since it says that in order to search "hp150" in Spanish it should be "ps150", but for it to work it has to be "puntos de salud150".)

  • Warnings
  1. For some reason we don't understand some phones don't paste the whole string into the game. They copy it fine, but when pasting in the game they only paste the first 5000 characters (for example). Make sure that the end of the search string matches the end of what you see in the game after pasting it, as mentioned, it might take up to a few minutes to paste and process, if your phone does it instantly it's probably not complete. (This only happened to one of the people testing the strings, but to multiple phones of that person.) If you have multiple phones and it works with some phones but not others you can save the search string in favourites with a phone that works and once it's there you should be able to access the search from any phone.
  2. As said before, these strings are very long and it seems they may cause some lag when using them multiple times and simply by having them in favourites. Restarting the game should fix this, and deleting the search strings from favourites when you won't need them anymore. Also, deleting them sometimes doesn't work the first time, so make sure to come back (maybe after restarting the game) to make sure it is really gone.
  3. These search strings are only meant for "just caught" pokémon, this means that they only consider integer levels from 1 to 35. (This is so that they are shorter and more efficient.) If you have something that you powered up to a half-level or past level 35 make sure to check them separately and that they are safe if you are using the "Transfer.txt" search string. Also they only look for the base pokémon (Duskull in this case), if you have any of the evolved forms also make sure to check them separately.

I think that's everything from me. I people find this useful. Thank you for reading and have a nice CD!