This is a repost to conform with TheSilphRoad 's policies. Some additional content gleaned from comments on original post included. submitted by
So today I reached a rather unique milestone: 50 Best Buddies! Halfway to the gold medal! But I’m not writing this post just to brag; I also want to share my strategy for my obsessive daily 21-Pokemon rotation in order to help out those of you crazy enough to attempt the same! And of course, if there ARE such people out there, I’d love to hear your tips and tricks as well. I'm always trying to optimize my process. An overview
By doing the rotation as I describe here, you will be able to earn a minimum 4 hearts per day per buddy for 21 buddies: Play, Snapshot, Treats, and Battle. Just in case this isn’t already obvious, the reason it’s possible to do a 21-Pokemon rotation when we only have 20 Buddy swaps per day, is that you don’t necessarily have to end each day’s rotation on the same Buddy.
By following this regimen every day, you’ll be able to earn a minimum of 84 hearts across 21 Buddies per day, which will mean (assuming you start all 21 on the same day), you’ll have 21 Best Buddies in no more than 75 days. And, if you do the rotation early enough in the day, you’ll of course be able to earn additional hearts with the last Buddy in the rotation per day.
For this guide, I chose to compromise between finishing the rotation as quickly as possible and reducing the amount of user error (both errors in Buddy swapping and regular time-wasting errors). Make a search string
First and foremost, you’ll want to make a search string that will allow you to quickly find your 21 Best Buddies to-be. During the process of interacting with each buddy, you’ll end up having to search for it twice (once to swap it in and once for Battle). A search string that quickly displays all 21, and only those 21, will speed up these searches and reduce the chance that you’ll make mistakes when selecting Buddies. In addition, when you do make mistakes, using a search string will increase the odds that the mistake is at least partially recovered (since worst-case you’d still be interacting with a Buddy to-be for a second time).
There’s a couple ways to generate such a search string, but I recommend using the search string “buddy2, buddy3, buddy4” if possible. This will find only Buddy Pokemon who have earned at least the Good Buddy heart (1 interaction), but have not yet become Best Buddies. Since, personally, I don’t interact with any Pokemon I don’t eventually intend to become Best Buddies with, this string works best for me. On my phone, I have the input “bd” mapped to the above string, which reduces each of my searches to just 3 keystrokes on iOS. Determine your rotation order
In order to reduce mistakes, it’s best to choose a fixed order that you’ll switch through your Buddies in. I find that Pokedex order is generally the easiest. You’ll also want to plan out your start and end points in the rotation in advance as well. Doing the same order each day as much as possible will further reduce mistakes. The exact order you choose is ultimately personal preference, but I’ve found the following two both work well for me.
Circular shift: Start with Buddy#1 and end with Buddy#21 on the first day (going in numerical order). Start with #21 and end on #20 the second day. Start #20 and end #19 the third day. And so on. The advantage of this order is that you never have to skip Buddies and return to them later, but if starting in a different position on your list each day is too off-putting, I’d recommend the next one.
Alternating firsts: Start with Buddy #1, skip #2, do #3-21, and then end on #2 for the first day. Do #2-#21, and end on #1 for the second. Alternate between these two patterns. From original comments: Another decent order, is alternating between #1-#21 and #21-#1, if having to reverse your swap order every day doesn't bother you. I think it would make me personally more prone to error though. During AR mode
After selecting a Buddy, always do the AR mode interactions first (if you haven’t already, turn off AR+ in Settings). In AR mode, always do Play-Snapshot-Treats or Treats-Snapshot-Play. It’s a minor detail, but the Snapshot basically doesn’t take up any time, so it reduces the overall process’ duration. Annoyingly, Play incurs a momentary pause afterwards during which you can’t open the Berry carousel, and similarly Treats incurs a similar pause. The only thing you can do during those pauses is Snapshot (you can’t even exit AR mode immediately).
If you’re able to, I’d also recommend feeding Golden Razz Berries (or Silver Pinaps, but those are generally more rare for me). Unlike normal Berries, you only need to feed 2 of those each time – that can end up saving a significant amount of time across 21 Buddies. From original comments: On iOS, you can save yourself the trouble of eventually having to clear your Photos of all the Snapshots you've taken by revoking PoGo's permissions to add new photos. I've confirmed that this works on my iPhone without any issues, but some Android users have said that it caused slowdown for them when they did the equivalent on their phones. The Battle heart
Ok, this is the slowest part. There’s a couple of options available to you.
Option 1: Beat Candela.
My level 40 Rampardos with 15 Atk IVs usually takes 70 seconds to beat Candela’s ML team, without using any Charge Moves (with the Buddy Pokemon in the back). It's possible to do this faster, but you basically have to get lucky -- I get 56 seconds when Candela's Entei has the exact moveset Fire Fang/Fire Blast and her Salamence has Fire Fang as well (the speedup comes from not having to sit through a Charge move or watch Rampardos faint and switching out).
I chose ML specifically under the assumption that not all of your Buddies are going to meet the CP thresholds for GL or UL, but if they do, I’d hazard a guess that Candela is still the easiest opponent if you have a Waterfall user. Spark and Blanche’s ML teams are siginificantly more annoying and will take a lot more time (seriously, I’ve timed myself with multiple teams).
And before anyone asks, surrendering immediately does not count (anymore). This is the preferred method if you haven’t gotten your Training medal yet and want to. From original comments: In GL, it seems Shadow Sharpedo with Waterfall is a solid option to do what Rampardos does in ML. In addition, one time-saving trick you can use is to have two Rampardos (or Sharpedo in GL) and switch before Candela gets to use her Charge move as that will stall the AI for a few moves.
Option 2: Beat your friend
If you feel like involving a friend in your tedious daily rotation, you can have your friend set up a team with level 1 Pokemon (them surrendering still doesn't count, sadly). That way, this battle takes upwards of 30 seconds (may vary, depending on the strength of your connection). This is the fastest option available, but also requires roping a friend into your insanity, so I can't really recommend it.
Option 3: Lose to a team leader.
Although it’s not as fast as Option 2, this is my preferred method. Basically, you lead with two level 1 Pokemon, and anchor with your Buddy (yes, that order does matter). Then, you choose the team leader who best counters your Buddy and let them beat you. Below are the rules of thumb for how to choose the appropriate leader. If you follow these rules, Option 3 is generally faster and requires a minimal amount of attention paid to the battle itself.
- Never choose Blanche unless your Buddy is a Ground-type who also resists Fire (Swampert, Garchomp, and Flygon come to mind for me)
- Choose either Candela or Spark based on their primary type advantage (Fire or Electric), if one exists
- Choose Candela if Fire and Electric are equally effective (or equally ineffective, but you’ve ruled out Blanche)
- For non-flying Dragons, choose Candela unless your Buddy is also weak to Ghost but not weak to Steel (think Latios/Latias).
Option 4: Gym Battles.
Don’t. It’s incredibly inconsistent in timing, and you have to guess on the spot whether it’s faster to win or lose. Either way, this method is generally quite slow. From original comments: I'm told that surrendering to Rocket Grunts counts for the Battle heart. I haven't personally tried this yet, but if true this would be the fastest method assuming you can find a Rocket stop or a Rocket balloon. Some final remarks
Here are some minor tweaks to worth mentioning.
Poffins are, of course, going to make the 75-day process faster if you can afford them. If you’re going to use Poffins, make sure you end each day’s rotation on the Pokemon who get them. That way, you get the most extra hearts for your buck – it’s obviously not worth it to Poffin up a Buddy in the middle of your rotation if you’re just going to immediately switch it out without walking or visiting a new stop.
If you can stay up past midnight, you can get one or two additional free hearts per day. For instance, right after midnight, do your interactions with the first Buddy in your rotation for the day. When you wake up in the morning, the Berries will have worn off, and you can earn a second Treats heart for that day. Technically, you can continue to earn spare hearts in a similar fashion, as long as you finish your rotation before 9:00 pm (three hours hence before your last Buddy’s Berries wear off, and you can restart right at midnight again). From original comments: It should be possible to gain another Treats heart after just 1 hour. It doesn't seem to work for me, for whatever reason, but I have heard friends say this should normally work.
For the record, when I use Golden Razzes and tank leader battles, the whole process takes me a total of about 40 minutes (with some variation depending on the exact Buddies and some luck with the leaders’ movesets). 50 minutes, roughly, when I use regular Berries. My best buddies!
I'm proud of these guys so I can't not at least share a picture of them all! https://preview.redd.it/3usoeg6asu951.png?width=5228&format=png&auto=webp&s=87226e59932a633071b73ad1eafba71b44d9f3e9