After many near-sleepless nights of coding (and tons of caught pokemons ) I feel it is time to release the Pokemon Go bot I have made.
Bot is written in java, meaning you can run it on any system that has the latest version installed:
Many of the existing bots are console based, but decent UI is a must-have in my opinion, so that's the reason for creating it.
Download link (zippyshare) for latest version:
Current functionality:
- You can log in with your PTC or Google account, then it downloads information and shows the main UI. Last successful login username is saved into config file to make next login easier. Has helper links for device password setup for
- In the main UI it is possible to configure the start location of your walking, walking speed and toggle some tasks on/off.
- Inventory Manager allows you to easily evolve/powerup/transfer your pokemons (also allows mass-powerup, mass-evolve, mass-transfer, mass-evolve+transfer), view egg hatching statuses, drop items and view your current Pokedex. Actions are not allowed in Inventory Manager while other tasks are running.
- Auto-Drop configuration with max counters of what amounts of pokeballs greatballs etc you want to keep. Allows minor delay configuration, so razzberry max 15 and delay 2 means that razzberries are dropped after the amount is 15+2 or greater and the amount dropped is selected so that your bag will have 15 razzberries in it afterwards.
- Auto-Ignore/Keep/Evolve/Transfer allows to configure based on each pokemon what do you want to do with it. Ignore means that the selected Pokemon is completely ignored, no catching is attempted. Keep means that after catching, nothing else is allowed: no Evolve, no Transfer. Evolve means that after catching (unless Keep is set) the bot tries to evolve the pokemon if you have enough candy. Transfer means that after catching (unless Keep is set), the bot will automatically transfer it. NB! Setting Evolve+Transfer both will try to Evolve the pokemon and then Transfer the newly evolved pokemon. Also next evolution configuration is checked, so if you set Weedle to Evolve and Kakuna to Transfer, bot will also do Evolve+Transfer process. Check/Uncheck all allow for easy configuration when you want to ignore all pokemons except a few ones.
- Conditional Auto-Transfer in the main UI allows to transfer out any catched pokemon that has CP/IV less than the amount you specified. Also has configuration to keep at least 1, so if you catch a new rare pokemon with low CP/IV, bot will not transfer it.
- Map is a bit experimental (can crash, may not work on older Java, can have visual artifacts), but essentially allows you to use Google Maps to search for a location and start walking there. Displays the current location, walking path and known pokestops returned from server.
Walking path generation: if pokestops are found near the spawn location, it selects a bunch of nearby ones automatically and generates walking path to go to them all, if none are found it generates a random path and starts walking it.
If the Map component is buggy or causes crashes, go to , search for a place nearby you, click on the map and type the coordinates you see into the bot main UI.
Screenshots:
Have go at it and let me know how it works for you
Edit V2: already did an update, added IV, move1 and move2 to the inventory manager.
Edit V3: renamed "Grind" button to "Transfer" in inventory manager, added Pokemon LVL column, Candies column now shows current candy level even for maxed out pokemons, main UI now shows how much XP is needed for the next level
Edit V4: added stardust column to inventory and powerup button, improved display of pokemon and item names.
Edit V5: messed up release of v4 a bit, kept showing "you need to update", correct release now. Also improved Inventory Manager layout a bit so smaller columns don't expand so much.
Edit V6: increased greatball target CP from 300 to 700
Edit V7: fixed an issue with Inventory UI not updating correctly, added anti-softban logic, added auto-transfer logic based on CP, improved walking path generation a lot
Edit V8: Major update, fixed issues with pokestops robbing and pokemon catching. Decent biking speed 6m/s should yield 20 000XP/h
Edit V9: Another Major update: Added IV based Pokemon Transfering and you can combine it with the CP check, Added Auto-Dropping of items: configure the limits, enable, and done, no need to manually clear inventory anymore, Added "Use" button for "Items" view in Inventory Manager so you can now use your Lucky Eggs to double your XP gains, Improved anti-softban to ignore last failed Pokestop for a while, got stuck before, Hopefully improved egg hatching logic (detecting hatching and adding new eggs), Added 0 coordinates check, some people accidentally pushed start with 0 values, After stopping the walking, last location is updated back to textboxes and saved to conf for better resuming, Also works now on Java 7.
Edit V10: Auto-Transfer - smallest CP/IV are done first, also it only applies to newly catched pokemons to keep your inventory untouched, Fixed longitude being filled into latitude field after stopping tasks, Pokemons view in Inventory Manager is now sortable by all columns, Fixed "ALREADY_ENCOUNTERED" messages showing up, Improved anti-softban logic, Hatching should now work correctly, If Inventory Manager is resized bigger, the Pokemons tab allows LVL CP and IV columns to resize too (NB! you currently have to toggle tabs after resizing window)
Edit V11: The bot should now keep working longer than 1 hour without any issues, Will now ignore Lure Pokemons in Pokestops if Pokemon catching is disabled, Lucky Egg using fixed, Fixed an error when cancelling item drop dialog, Egg hatching did not work correctly if at the beginning there were no eggs in incubators, Drop Potions over X also applied to all Incense types accidentally and Drop Incenses over X did nothing, Bit darker background for the logview.
Edit V12: Since the main botting stuff is down, did a minor V12 release to improve Inventory Manager that is currently still usable. NB! Pokestop farming and Pokemon catching is still broken as for all bots! - Tab titles now show count/max, Fixed issue with stardust amount not being updated after Powerup, Pokemons can now be marked/unmarked as favorite, Double-clicking on the name column allows setting and removing of nickname.
Edit V13: Another minor release, V13, related to the Inventory Manager. Inventory Manager now allows Mass-Powerup, Mass-Evolve, Mass-Transfer, Mass-Evolve+Transfer, To use the Mass-* features, just check the boxes in the first column and then press the button in the bottom, All actions are cancelable and progressbar shows visual progress, Also played around with background colors a bit for the IV, CP and LVL fields so you can visually see the best/worst Pokemons you have.
Edit V14-V19: lots of fixes, and finally the MAP!!!
Edit V20: Added altitude support to the main and Map UI. For best effect, choose a location from the Map view, press Start/regenerate and it will fetch real life altitude from google maps.
Edit V21: Made pokemon catching more human, much less chance of perfect throws, uses razz berry if cp over 600 and first catch failed.
Edit V22+V23: Added/fixed manual walking path selection to the Map UI
Edit V24 - Manual path entry in Map can now use google directions to get more humanlike path, can be turned off to enter locations one-by-one. Manual paths can now be saved, loaded, removed. Manual path entry now starts with empty dataset, does not include the last clicked location as first position. Made all Mass actions slower, takes 4-5 sec per action instead of previous 1-2. Disable transfer of Favorite pokemons in inventory manager (manual + mass). Disable Transfer button visually for Favorite pokemons. Disable Evolve button visually for max evolved pokemons. Fixed a bug in walking path altitude not changing correctly in some cases.
Edit V25 - Device info emulation/faking. Also an Easter Egg for all the donators, see if you can find it
Edit V26 - Added Proxy support, configurable in Login view! Walking radius is now configurable, in Main view and in Map view. Improved behavior of Stop/Start in main view, before it could jump around considerably. Fixed max item/pokemons counters, fixed Auto-Ignore/Keep/Evolve/Transfer running even if unchecked. Added Lucky Egg/Incense timers to main view after you have used them from Inventory. Improved random path generator fallback to move around more "gracefully" instead of criss-crossing over map. Added Xperia Z3 and Galaxy S6 to predefined devices, improved Device ID generation for iOS devices.
Edit V27 - New Easter Egg for all the donators, see if you can spot it Device info can now be removed entirely, will act as older versions without it. Altitude field can now be set to 0, which disables all altitude spoofing and will act as older versions. Added Iphone 6/6 Plus device samples. Went over all the action delays, made them more realistic.
Edit V28 - Added Strength, Defense, Stamina to Inventory Manager. Improved display of Badge names and statuses. Pokestop robbing now shows pokestop names. Evolve actions also check for new Pokedex entry (to wait more for "animation"). Improved inner device actions emulation.
Edit V29 - Added Pokedex tab to Inventory Manager!! Inventory Manager can now be opened while tasks are running (actions are disabled still, but everything is viewable, sorting also allowed). Added Captured column to Inventory Manager. Detect new pokedex entries and needed "animation" delays after hatching.
Edit V30 - Critical update, fixed a memory leak/bandwidth hog bug introduced in V28 with device emulation! Update ASAP!
Edit V31 - Added Pokemon catching detailed configuration for pokeballs and razzberries, allows CP and IV based config! Prefilled for rare pokemons! Fixed Pokedex counter, now only counts if captured > 0. Updated evolving delay to be 28s minimum as in real app. Updated sounds (thx to Ranger). Fixed a case when during data sync sometimes UI showed 0 counters. Added some warning messages because it seems some people are "distributing" PokeBot.Ninja as their own and asking money for it...
Edit V32 - Donator-only update to the map - Pokemon encounters are shown, giving an overview what pokemons appear where. IMPORTANT! Preparations for the new API captchas! There is a chance that builtin captcha popup will work automatically when it gets enabled in API by Ninatic. If it doesn't it dumps a bunch of captcha.* files in the bot directory, send them on to me. Added password saving option to login form. Donators can also try out the "Auto-login" feature. Lure pokestops are now shown in green color on the map.
Edit V33 - Fixed Catch configuration, saving and using aved values worked but UI was always showing default conf when opening.
Edit V34 - IMPORTANT HOTFIX: What was thought to be altitude was actually GPS accuracy, updated the bot to remove altitude logic and added realistic GPS accuracy with randomness.
Edit V35 - HUGE rewrite of internal API to make the requests behave better and more like real app. Mass actions did not check for level/badges. Manual actions use same Mass action code to avoid UI freezing (mainly for transfer). Usability improved for pokemon tab: shift-clicking on a checkbox will select/unselect all selection checkboxes. Spece key also checks/unchecks selection. Added "Use Best" checkbox to capture config, will force selection of best available pokeball. Clearing the value of Attempt field will disable razzberry usage. Save all of the remaining fields in main view (Auto-Transfer, catch, auto-incubate, rob).
Edit V36 - Auto-tutorial finishing for Silver level donators! Works for fresh and older accounts! Automatic Team selection if level is 5 or higher! More rewrites to the internal API, should look even more like real app. Fixed incubators issue (hopefully) and badges errors., V37 was PTC login hotfix.
Edit V38 - Unlimited incubators are now fixed, had some leftover debug code to only use limited ones Auto-Tutorials now have UI popups! You can manually choose the starting pokemon, nickname/codename and the team (still for Silver donators only)! Added lvl and pokeball/berry usage counters to pokemon catching info message. Removed the "Or" option from the "Auto-Transfer" since it has caused tons of questions. Some more internal fixes.
Edit V39 - Added "Keep best" suboption to Auto-Transfer config, will also transfer worse pokemons (CP/IV/LVL) from the pokebag. Added 'Save to file' and 'Clear log' to the log context menu (right click on the list). Re-added 'Or' selection to auto-transfer, hidden under context menu (right click on the dropdown). Lucky-Egg and Incense gave errors even after start/stop. Added "Reverse path" and "Clear path" to Map. Added map "teleport" protection, notifies if you would jump 30+ meters from bot current location and asks if you want to set current location as starting point. Volume 0 still played sounds. Added confirmations to Mass-* actions in Inventory Manager. Pokemons list checkbox did double-toggle if the cell was focused and you pressed space key.
Download link (zippyshare) for latest version:
Some credits also:
The internal API is from Grover-c13/PokeGOAPI-Java, some of the tasks logic is similar to NecroBot but not 1:1 because firstly they have no GUI and it's in C#.
Some java-like coding style samples I saw from jabbink/PokemonGoBot but that is not pure java but kotlin.