Pokémon Go Bots

This is a broad project I embarked on in March 2017. The basic problem it solves hasn’t changed, but the bots themselves have evolved a lot. This is a summary of the latest on the project, presented in a use-case–oriented way. I also wrote a history chronologically tracking my learning experience.

Current version (which I’ll be discussing): http://github.com/pyorot/abyo.

Main user-facing Discord server: http://discord.gg/AmShbxw.

The basic problem

Pokémon GO allows you to catch Pokémon, which spawn at particular positions in the real world for fixed periods. Each has qualities that affect its desirability – species, CP, IV. They are tracked by a map, LondonPogoMap, which shows the qualities, position and duration of spawns. People watching the map see the spawns and go to catch them in the real world. What we want is to eliminate watching, and replace it with useful push notifications for filtered Pokémon.

Models for solutions

The project has grown around the LondonPogoMap and Discord platforms. The latter is a messaging app that hosts the community surrounding the game, so is a natural host for an alert messaging service. We’ve explored three models so far:

This third option is the essence of my current bot, called Abyo.

Abyo’s design

The key ideas:

Regional Abyo as a service

I ran a free service, per the regional solution model above, whereby clients messaged me with area polygons, channel URLs for their community chat server, and requests for filters. I drew up an Agent file and added it to the live instance of Abyo on a server somebody lent me.

By the end – my data source dried up on Mar 22 2018 – I had 6 clients, and had focused my final work on Abyo around making it scalable far beyond that, with analytics and a primary focus on error handling and logging, learning from the first 2 months of running it live. It ran for a further 1.5 months without a single unhandled error. And received one testimonial!

“Thanks for the Abyo bot its amazing our whole server loves it. They’ve stopped using maps now lol. It’s exactly what we had been looking for, thanks for being patient and all the help with my questions too. Appreciate it!”