A quick note:
This is a fork of the project PokemonGo-Bot by PokemonGoF.
The goal of this fork is to progress the bot in an organized manner, and to promote a clean and functional codebase. As a result, OpenPoGoBot will be more reliable and secure than PokemonGo-Bot.
See CONTRIBUTING.md
- Spin Pokestops
- Catch Pokemon
- Release low cp pokemon
- Walk to a location
- Catch nearby pokemon when you have pokeballs available
- Switch between catching pokemon and farming pokestops automatically
- Filter certain pokemon
- Use superior ball types when necessary
- When out of normal pokeballs, use the next type of ball unless there are less than 10 of that type, in which case start automatically farming pokestops
- Bot Navigation via Google Directions API
- Incubate eggs
- Python 2.7.x
- pip
- git
- virtualenv (Optional)
encrypt
shared library (OS Dependent, see below)- protobuf 3 (OS Dependent, see below)
With the changes to the API on 3 August 2016, API map requests are required to have a Signature
field in the request body. This requires that the encrypt
shared library is in the bot directory, as it is needed to encrypt one of the fields.
You will need to either find encrypt.c
or the appropriate shared library for your system. The bot will automatically attempt to load the following filenames; another filename can be specified using config options as described below.
We can not distribute encrypt.c
for legal reasons. Check pgoapi.com.
- OS X:
libencrypt-darwin.so
- Windows:
encrypt.dll
- Linux:
libencrypt.so
To build the shared library for Windows, run lib/build_dll.bat
, rename the resulting binary to encrypt.dll
and move to the bot folder.
To build the shared library for OS X or Linux, in the lib
folder run make
, rename the resulting binary as needed and move to the bot folder.
Note that if you are running a 32-bit version of Python, you must have a 32-bit version of the library, and vice versa for 64-bit. On Windows, failure to do so will result in WindowsError: [Error 193] %1 is not a valid Win32 application
.
- OS X:
brew update && brew install --devel protobuf
- Windows: Download protobuf 3.0: here and unzip
bin/protoc.exe
into a folder in your PATH. - Linux:
apt-get install python-protobuf
git clone --recursive https://www.github.com/OpenPoGo/OpenPoGoBot
cd OpenPoGoBot
virtualenv env
source env/bin/activate
pip install -r requirements.txt
$ python pokecli.py [path to config yml]
What happened to the command line arguments?! The command line arguments have been removed in favour of yml config files.
$ python pokecli.py config/config.yml
To load arguments for the bot from a JSON file, use the --config-json
argument with the name of a file.
Any other command line arguments specified will override the parameters specified in the loaded JSON file.
Example - this will load config.json but use cp=1000 and iv=0.7 even if already defined in config.json:
$ python2 pokecli.py --config-json config.json -cp 1000 -iv 0.7
To edit the pokemon release configuration, copy the file release_config.json.example
and rename it to release_config.json
Edit this file however you want, but keep in mind:
- Pokemon names should always be capitalized and are case-sensitive
- The
any
configuration effects every pokemon
Here's the introduction
You can use -cp 1 to protect your first stage low CP pokemon.
Use either -l "lat, long"
or --location "lat, long"
Try to generate an app password and set is as
-p "<your-app-password>"
This error is mostly occurs for those who using 2 factor authentication but either way for the purpose of security would be nice to have a separate password for the bot app.
The status code "3" corresponds to "Flee" - meaning your Pokemon has ran away. {"responses": { "CATCH_POKEMON": { "status": 3 } }
Finish the tutorial on a smartphone. This will then allow everything to be visible.
Now, instead of using --mode
you need to exclude plugins. If you don't want to catch pokemon, exclude the catch_pokemon
plugin (-ep catch_pokemon
), and if you don't want to farm pokestops just exclude the spin_pokestop
plugin (-ep spin_pokestop
). Alternatively, you can modify your configuration JSON file to do the same thing.
Create the following filter
./data/catch-ignore.yml
Its a yaml file with a list of names so make it look like
ignore:
- Pidgey
- Rattata
- Pidgeotto
- Spearow
- Ekans
- Zubat
The socket plugin exposes a server on port 8000
that allow communication to your browser.
Once launched, just to to http://openpogoui.nicontoso.eu to show progress on a map.
You can then click on settings (lower right) to modify map settings.
Here are the available plugins:
Plugins |
---|
catch_pokemon |
egg_incubator |
recycle_items |
spin_pokestop |
transfer_pokemon |
socket |
Please see the testing documentation on how to run and write the tests.
- tejado for the API
- Mila432 for the login secrets
- elliottcarlson for the Google Auth PR
- AeonLucid for improved protos
- AHAAAAAAA for parts of the s2sphere stuff
- PokemonGoF and all contributors for the original bot this fork is based on
- /r/PokemonGoDev and all reverse engineering contributors for fixes for the new API changes