PokemonGoF / PokemonGo-Bot

The Pokemon Go Bot, baking with community.
MIT License
3.85k stars 1.54k forks source link

Perm Ban Test Results #4114

Closed talobear closed 7 years ago

talobear commented 7 years ago

Greetings,

Was a casualty of the first wave of perma-bans. Most of the bot activity was limited to activity in and around the neighborhood where I live and work.

After the ban I created a test account via PTC. I wanted to understand what would trigger a ban. I decided that until I reached level 20 I would keep no Pokemon nor visit a Gym. I would basically walk, spin and transfer whatever I encountered. The longest session would be no more than 1 hour long. I would keep the activity to two locations; home and work. No teleports, just the two locations I happened to be physically. The goal was to keep a low profile and emulate player behaviors.

The new account was setup on 8/12. Over the next four days the bot would run in roughly hour long blocks, 2-4 times a day. Typically in the AM, then lunch, then dinner. Two of the days I did a late night session around midnight. Never encountered any bans with this approach. The last session I ran was during lunch today. I was level 17 at this point. However, this session I forgot to kill it after an hours. It ended up running for about 2 hours. Since Im in a city with dense pokestops and pokemon a ton were encountered.

I went to run the next test. Launched it again and got the "failed to get game data" message. The bot reported "Probably permabanned, Game Over ! Play again at https://club.pokemon.com/us/pokemon-trainer-club/sign-up/"

Used a non-test account and was able to login without issue. This told me it was not a server issue.

There was clearly something that triggered this ban.

Can it be that I reached level 17 too quickly? Could be that the frequency of play was too often? 4-5 hours a day? I was not teleporting and had no inventory of high level pokemon. Could it be the rate at which they were turned in for candy?

Including my config for reference. Going to try another test account and adjust the rate of play. Any other suggestions I'm happy to test out.

{
    "auth_service": "",
    "username": "",
    "password": "",
    "location": "",
    "gmapkey": "",
      "tasks": [
        {
          "type": "HandleSoftBan"
        },
        {
          "type": "SleepSchedule",
          "config": {
            "enabled": true,
            "time": "22:54",
            "duration":"7:46",
            "time_random_offset": "00:24",
            "duration_random_offset": "00:43"
          }
        },
        {
          "type": "CollectLevelUpReward"
        },
        {
          "type": "IncubateEggs",
          "config": {
            "longer_eggs_first": true
          }
        },
        {
          "type": "UpdateLiveStats",
          "config": {
            "enabled": true,
            "min_interval": 10,
            "stats": ["uptime", "stardust_earned", "xp_earned", "xp_per_hour", "stops_visited"],
            "terminal_log": true,
            "terminal_title": true
          }
        },
        {
          "type": "TransferPokemon"
        },
        {
          "type": "NicknamePokemon",
          "config": {
            "enabled": true,
            "nickname_template": "{iv_pct}_{iv_ads}"
          }
        },
        {
          "type": "EvolvePokemon",
          "config": {
              "evolve_all": "none",
              "first_evolve_by": "cp",
              "evolve_above_cp": 500,
              "evolve_above_iv": 0.8,
              "logic": "or",
              "evolve_speed": 20,
              "use_lucky_egg": false
          }
        },
        {
          "type": "RecycleItems",
          "config": {
            "min_empty_space": 15,
            "item_filter": {
              "Pokeball":       { "keep" : 25 },
          "Greatball":      { "keep" : 125 },
              "Potion":         { "keep" : 10 },
              "Super Potion":   { "keep" : 20 },
              "Hyper Potion":   { "keep" : 30 },
              "Revive":         { "keep" : 15 },
              "Razz Berry":     { "keep" : 45 }
            }
          }
        },
        {
          "type": "CatchVisiblePokemon"
        },
        {
          "type": "CatchLuredPokemon"
        },
        {
          "type": "SpinFort"
        },
        {
          "type": "MoveToFort",
          "config": {
              "lure_attraction": true,
              "lure_max_distance": 2000
          }
        },
        {
          "type": "FollowSpiral",
          "config": {
            "diameter": 4,
            "step_size": 70
          }
        }
      ],
      "map_object_cache_time": 5,
      "forts": {
        "avoid_circles": true,
        "max_circle_size": 50,
        "cache_recent_forts": true
      },
      "websocket_server": false,
      "walk": 4.16,
      "action_wait_min": 1,
      "action_wait_max": 4,
      "debug": false,
      "test": false,
      "health_record": true,
      "location_cache": false,
      "distance_unit": "km",
      "reconnecting_timeout": 15,
      "catch_randomize_reticle_factor": 0.5,
      "catch_randomize_spin_factor": 0.5,
      "min_ultraball_to_keep": 10,
      "logging_color": true,
      "catch": {
        "any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"},
        "// Example of always catching Rattata:": {},
        "// Rattata": { "always_catch" : true }
      },
      "catch_throw_parameters": {
        "excellent_rate": 0.1,
        "great_rate": 0.5,
        "nice_rate": 0.3,
        "normal_rate": 0.1,
        "spin_success_rate" : 0.5
      },
      "release": {
        "any": {"release_below_cp": 1000, "release_below_iv": 0.9, "logic": "and"},
        "// Example of always releasing Rattata:": {},
        "// any": {"always_release": true},
        "// Example of keeping 3 stronger (based on CP) Pidgey:": {},
        "// Pidgey": {"keep_best_cp": 3},
        "// Example of keeping 2 stronger (based on IV) Zubat:": {},
        "// Zubat": {"keep_best_iv": 2},
        "// Also, it is working with any": {},
        "// any": {"keep_best_iv": 3},
        "// Example of keeping the 2 strongest (based on CP) and 3 best (based on IV) Zubat:": {},
        "// Zubat": {"keep_best_cp": 2, "keep_best_iv": 3}
      },
      "vips" : {
           "Any pokemon put here directly force to use Berry & Best Ball to capture, to secure the capture rate!": {},
          "any": {"catch_above_cp": 1200, "catch_above_iv": 0.9, "logic": "or" },
          "Lapras": {},
          "Moltres": {},
          "Zapdos": {},
          "Articuno": {},

          "// S-Tier pokemons (if pokemon can be evolved into tier, list the representative)": {},
          "Mewtwo": {},
          "Dragonite": {},
          "Snorlax": {},
          "// Mew evolves to Mewtwo": {},
          "Mew": {},
          "Arcanine": {},
          "Vaporeon": {},
          "Gyarados": {},
          "Exeggutor": {},
          "Muk": {},
          "Weezing": {},
          "Flareon": {}

      }
  }
smfbrooks commented 7 years ago

Crossed over 1k pokemon, still doing just fine. image

antistes commented 7 years ago

Just my 2 cents: 4 bots running (never at the same time and two different IP locations) - 2 got banned so far: first and second wave (both in the mid 20). Second ban was after I logged on this account on a real phone and did the tutorial with lvl 25. Next time the bot logged in and spun a fort I got: "spin fort and couldnt understand response" -> perma ban.

supergithubo commented 7 years ago

@keugnu I think it's 1k pokemon per day. The stats you have given is the overall captured.

supergithubo commented 7 years ago

@antistes doing the tutorial at level 25 is really suspicious. Lol

antistes commented 7 years ago

@supergithubo I dont think the tutorial was triggering it. Logged in 2x times after it on the phone without a problem. I even caught a pokemon. And starting the bot again was next morning. But I will see ... the other 2 bots dont have the tutorial either so far and are also lvl 20+. :-D

smfbrooks commented 7 years ago

@supergithubo we don't know if it's 24 hr play time, yet.

celinereine commented 7 years ago

@GrosCep I made a new account with the same name as a banned account and it got banned within a day even though it was only a level 2 account. But I suspect it's due to someone reporting the account name. Also, I found that all my botting accounts were banned except the first account I made that only did light botting. My roommate shares the same IP address as me who hasn't been banned as they're 100% legit so I don't think it's solely an IP flag.

jesussson commented 7 years ago

https://www.change.org/p/niantic-pokemon-go-unban-players Sign and share

talobear commented 7 years ago

Im testing a new account, but this time I'm tethering my laptop to my iphone. I want to leverage the connection through my phone vs my ISP. Not sure it makes a difference, but trying anything at the moment.

jesussson commented 7 years ago

Have a look at the upsight.xml

talobear commented 7 years ago

@jesussson what is that and where is it?

jstaubr commented 7 years ago

My account is now level 24 and I never even got a soft ban. I bot with default config around my work and around home about 3-4 hours a day. Only thing I might did different is that I spent like 20e in the shop for items before. It might not make a difference, but who knows:)

Ah well, scratch that... [api_error] Probably permabanned, Game Over ! Play again at https://club.pokemon.com/us/pokemon-trainer-club/sign-up 👎

iruy commented 7 years ago

@GrosCep I I never used nicknaming. I think its much better to check Web Page data

iruy commented 7 years ago

UPDATE - Found my account perma-banned right now. I always let it run in the same location (NY, while I'm in Italy), but this wasn't enough... Probably XP gain speed or some IP check are used

jboffel commented 7 years ago

@iruy

Well whatever your effort, it is known already that the API call from third client like pgoapi are far from perfect. No mater your effort to look human, if your client does not look like realistic and your network looks strange (static IP from different country for example), obviously it's shouting to them you are a bot.

They don't need to block the bot quickly, they need to gather a good amount of data and the query they run probably take quite a bit of time to report the probable bot accounts. But once they have the list it's just a matter of time before their batch will close all of them.

Until both human factor and client factor are good enough, the bot has no chance.

keenb commented 7 years ago

I can confirm my level 20+ accounts are now banned. My level 19 and lower accounts are still alive which is made at the same time as the others.

EDIT: one early level 21 is still active. EDIT 2: as of this morning level 21 is now also banned. Level 19 is still going which I will stop botting on. I started 4 new bots to reach level 20 quick to see if level 19 stays alive longer than the others.

GrosCep commented 7 years ago

Indeed, I think they only look at level 20+ accounts. And it's not immediately effective, I guess they do some banning update every ...? based on something... I created an account 36 hours ago, did long distance teleporting at each level until level 19, a lot of old softbans fixed by the bot, no new softban (bearly 500 pokemons overall). Since 10 hours it's at level 20, still working, I'm wondering when it is ban.

GrosCep commented 7 years ago

And to give my point of view, I am not into hacking, botting nor developing, and I was not into pokemons 2 weeks ago, just found randomly this bot and found it funny, but they seem to be quite overwhelmed by the hacking community they have to face. It took quite a long time before encrypting data, and I think they have been under pressure to start banning accounts. So, my bet is that they only look at some accounts, probably level 20+, because they probably don't have enough time and space to look for every account, and they look for something really obvious to detect cheating accounts and ban them. But, as I said, I don't know much about developing, so I can't really help to find what it is....

z4ppy commented 7 years ago

last bot level 14 banned too. (3 days life). No rush but banned, i mean about 2 possibility :

fosspill commented 7 years ago

Interestingly enough, my newest bot is now lvl 23 and is still yet to be banned (running as human like as I possibly can with what we have..)

tchit commented 7 years ago

FYI, I reached lvl 22 "manually", then two weeks ago - just before the API change - I tried the bot for 2 days, like 2-3hrs/day, never teleported. Config was as human as possible and I leveled up to 23.

Haven't played the game in 10 days now (holidays abroad). Got permabanned today... So I doubt anyone will survive ;)

r1s7o commented 7 years ago

Last night my level 23 main account got banned while playing on my phone i haven't used the bot for 5-6 days since they started the ban wave.

ebbrey commented 7 years ago

Started 2 bots 2 days ago fresh. Let one snipe other not.. The snipe bot got banned already today before lvl 20. The other is hitting 23.

I run the bots on different ip's from same country as they roam in. I use sleep schedule and now also random pause for 10 to 15 mins. Sleep all night.

I also use 3 workers for map. I keep loosing / getting one worker banned every 24H.

Niuuuuu commented 7 years ago

From my experience, if your account get hard banned before (the one that needs 8hr+ to get unbanned), that means your account has been flagged, and it will be parma banned after a few days later. And also reaching over 2000 spins / 1000 captured pokemons in 24 hours will get your account hard ban. So just try to not get your account hard banned and you should be good. I am using default config with 20~30 walking speed, botting around 10 hours will get me close to 2k spins/ 1k pokemons, and I will just stop there and continue my bot the next day.

tchit commented 7 years ago

Wow. On my side, I never ever did so many spins/capture (not even close), nor did I use my bot more than 2-3 hours. I never was hard banned and not even soft banned. So I doubt your solution is enough to prevent being permabanned for sure...

GregoireDe commented 7 years ago

IP ban at lvl 26 I was using default conf for 1week when i changed the waiting values today (to increase Xp faster)

Niuuuuu commented 7 years ago

@tchit well just saying this is one of the ways to prevent perma ban, not saying this is the only solution. Of course there are a lots of other factors that are causing perma ban, maybe your IP is on there watch list or something. I have a friend , when he bots at home he always get perma ban, but when he bots at work his account is doing fine, with the same config setting.

david-griffith commented 7 years ago

@vosk @leftie1 @avexus you don't need to query the altitude at every position change. You could query it once every few hundred steps and then use a smoothing algorithm like:

my_current_height = (k * my_current_height_last_step) + ((1 - k) * last_height_from_google)

Set k to be 0.95 or so. It will gradually pull your current height to your new google height over a bunch of steps. Add a small random jitter to that value and you'll be good to go, height-wise.

eg going from 100 feet to 200 feet with that 0.95 rate takes about 100 steps to get to 198 feet - you'll never get to 200 feet exactly as the increments get smaller the closer you are to your target.

duttonw commented 7 years ago

last account got banned. started another and played for 3-4 days, only a couple of hours a day, got to level 18 and then got banned mid walk.

They are getting quicker at banning. could be that my ip is on their watch list. will see if i can get it changed and try again.

Maybe if i was using latest trunk that now has better time delays it may work better. will try again and see.

EDIT: stats on start of last session, also username exist but the nickname is now free so pokemongo deleted but not ptc deleted as it was a child account. also on another note, they have finally added recaptcha to their child creation page.

2016-08-19 14:08:22,171 [PokemonGoBot] [INFO] --- **** --- 2016-08-19 14:08:22,171 [PokemonGoBot] [INFO] Level: 18 (Next Level: 8125 XP) (Total: 176875 XP) 2016-08-19 14:08:22,171 [PokemonGoBot] [INFO] Pokemon Captured: 603 | Pokestops Visited: 1065 2016-08-19 14:08:22,171 [PokemonGoBot] [INFO] Pokemon Bag: 84/250 2016-08-19 14:08:22,172 [PokemonGoBot] [INFO] Items: 323/350 2016-08-19 14:08:22,172 [PokemonGoBot] [INFO] Stardust: 85177 | Pokecoins: 0 2016-08-19 14:08:22,172 [PokemonGoBot] [INFO] PokeBalls: 91 | GreatBalls: 71 | UltraBalls: 0 | MasterBalls: 0 2016-08-19 14:08:22,172 [PokemonGoBot] [INFO] RazzBerries: 44 | BlukBerries: 0 | NanabBerries: 0 2016-08-19 14:08:22,172 [PokemonGoBot] [INFO] LuckyEgg: 3 | Incubator: 0 | TroyDisk: 3 2016-08-19 14:08:22,172 [PokemonGoBot] [INFO] Potion: 12 | SuperPotion: 5 | HyperPotion: 41 | MaxPotion: 0 2016-08-19 14:08:22,172 [PokemonGoBot] [INFO] Incense: 6 | IncenseSpicy: 0 | IncenseCool: 0 2016-08-19 14:08:22,172 [PokemonGoBot] [INFO] Revive: 45 | MaxRevive: 0

`{ "authservice": "ptc", "username": "***", "password": "**_", "//location": "-27.5808927,153.091648", "gmapkey": "***", "encrypt_location": "", "websocket_server": false, "heartbeat_threshold": 10, "tasks": [ { "type": "HandleSoftBan" }, { "type": "SleepSchedule", "config": { "enabled": false, "time": "22:54", "duration":"7:46", "time_random_offset": "00:24", "duration_random_offset": "00:43" } }, { "type": "CollectLevelUpReward" }, { "type": "IncubateEggs", "config": { "longer_eggs_first": true } }, { "type": "UpdateLiveStats", "config": { "enabled": false, "min_interval": 10, "stats": ["username", "uptime", "stardust_earned", "xp_earned", "xp_per_hour", "stops_visited"], "terminal_log": true, "terminal_title": true } }, { "type": "TransferPokemon", "config": { "transfer_wait_min": 2, "transfer_wait_max": 10 } }, { "type": "NicknamePokemon", "config": { "enabled": false, "nickname_template": "{ivpct}{iv_ads}" } }, { "type": "EvolvePokemon", "config": { "evolve_all": "none", "first_evolve_by": "cp", "evolve_above_cp": 500, "evolve_above_iv": 0.8, "logic": "or", "evolve_speed": 20, "use_lucky_egg": false } }, { "type": "RecycleItems", "config": { "min_empty_space": 15, "max_balls_keep": 150, "max_potions_keep": 50, "max_berries_keep": 70, "max_revives_keep": 70, "item_filter": { "Pokeball": { "keep" : 60 }, "Greatball": { "keep" : 60 }, "Ultraball": { "keep" : 50 }, "Potion": { "keep" : 0 }, "Super Potion": { "keep" : 0 }, "Hyper Potion": { "keep" : 40 }, "Max Potion": { "keep" : 40 }, "Revive": { "keep" : 30 }, "Max Revive": { "keep" : 40 }, "Razz Berry": { "keep" : 40 } }, "recycle_wait_min": 2, "recycle_wait_max": 8 } }, { "type": "CatchPokemon", "config": { "catch_visible_pokemon": true, "catch_lured_pokemon": true, "min_ultraball_to_keep": 5, "catch_throw_parameters": { "excellent_rate": 0.1, "great_rate": 0.1, "nice_rate": 0.3, "normal_rate": 0.5, "spin_success_rate" : 0.6 }, "catch_simulation": { "flee_count": 3, "flee_duration": 2, "catch_wait_min": 2, "catch_wait_max": 6, "berry_wait_min": 2, "berry_wait_max": 3, "changeball_wait_min": 2, "changeball_wait_max": 3 } } }, { "type": "SpinFort", "config": { "spin_wait_min": 2, "spin_wait_max": 3 } }, { "type": "MoveToFort", "config": { "lure_attraction": true, "lure_max_distance": 2000 } }, { "type": "FollowSpiral", "config": { "diameter": 4, "step_size": 70 } } ], "map_object_cache_time": 5, "forts": { "avoid_circles": true, "max_circle_size": 50, "cache_recent_forts": true }, "walk_max": 4.18, "walk_min": 2.12, "debug": false, "test": false, "health_record": true, "location_cache": true, "distance_unit": "km", "reconnecting_timeout": 15, "logging_color": true, "catch": { "any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"}, "// Example of always catching Rattata:": {}, "// Rattata": { "always_catch" : true } }, "release": { "any": {"release_below_cp": 0, "release_below_iv": 0.85, "logic": "or" },

  "// Legendary pokemons (Goes under S-Tier)": {},
  "Lapras": { "release_below_cp": 1041, "release_below_iv": 0.85, "logic": "and" },
  "Moltres": { "release_below_cp": 1132, "release_below_iv": 0.85, "logic": "and" },
  "Zapdos": { "release_below_cp": 1087, "release_below_iv": 0.85, "logic": "and" },
  "Articuno": { "release_below_cp": 1039, "release_below_iv": 0.85, "logic": "and" },

  "// S-Tier pokemons (if pokemon can be evolved into tier, list the representative)": {},
  "Mewtwo": { "release_below_cp": 1447, "release_below_iv": 0.85, "logic": "and"},
  "Dragonite": { "release_below_cp": 1221, "release_below_iv": 0.85, "logic": "and" },
  "Snorlax": { "release_below_cp": 1087, "release_below_iv": 0.85, "logic": "and" },
  "// Mew evolves to Mewtwo": {},
  "Mew": { "release_below_cp": 1152, "release_below_iv": 0.85, "logic": "and" },
  "Arcanine": { "release_below_cp": 1041, "release_below_iv": 0.85, "logic": "and" },
  "Vaporeon": { "release_below_cp": 984, "release_below_iv": 0.85, "logic": "and" },
  "Gyarados": { "release_below_cp": 938, "release_below_iv": 0.85, "logic": "and" },
  "Exeggutor": { "release_below_cp": 1032, "release_below_iv": 0.85, "logic": "and" },
  "Muk": { "release_below_cp": 909, "release_below_iv": 0.85, "logic": "and" },
  "Weezing": { "release_below_cp": 784, "release_below_iv": 0.85, "logic": "and" },
  "Flareon": { "release_below_cp": 924, "release_below_iv": 0.85, "logic": "and" },

  "// Growlithe evolves to Arcanine": {},
  "Growlithe": { "release_below_cp": 465, "release_below_iv": 0.85, "logic": "and" },
  "// Dragonair evolves to Dragonite": {},
  "Dragonair": { "release_below_cp": 609, "release_below_iv": 0.85, "logic": "and" },
  "// Grimer evolves to Muk": {},
  "Grimer": { "release_below_cp": 448, "release_below_iv": 0.85, "logic": "and" },
  "// Magikarp evolves to Gyarados": {},
  "Magikarp": { "release_below_cp": 91, "release_below_iv": 0.85, "logic": "and" },
  "// Exeggcute evolves to Exeggutor": {},
  "Exeggcute": { "release_below_cp": 384, "release_below_iv": 0.85, "logic": "and" },
  "// Eevee evolves to many versions, like Vaporeon, Flareon": {},
  "Eevee": { "release_below_cp": 376, "release_below_iv": 0.85, "logic": "and" },

  "// A-Tier pokemons": {},
  "Slowbro": { "release_below_cp": 907, "release_below_iv": 0.85, "logic": "and" },
  "Victreebel": { "release_below_cp": 883, "release_below_iv": 0.85, "logic": "and" },
  "Machamp": { "release_below_cp": 907, "release_below_iv": 0.85, "logic": "and" },
  "Poliwrath": { "release_below_cp": 876, "release_below_iv": 0.85, "logic": "and" },
  "Clefable": { "release_below_cp": 837, "release_below_iv": 0.85, "logic": "and" },
  "Nidoking": { "release_below_cp": 864, "release_below_iv": 0.85, "logic": "and" },
  "Venusaur": { "release_below_cp": 902, "release_below_iv": 0.85, "logic": "and" },
  "Charizard": { "release_below_cp": 909, "release_below_iv": 0.85, "logic": "and" },
  "Golduck": { "release_below_cp": 832, "release_below_iv": 0.85, "logic": "and" },
  "Nidoqueen": { "release_below_cp": 868, "release_below_iv": 0.85, "logic": "and" },
  "Vileplume": { "release_below_cp": 871, "release_below_iv": 0.85, "logic": "and" },
  "Blastoise": { "release_below_cp": 888, "release_below_iv": 0.85, "logic": "and" },
  "Omastar":  { "release_below_cp": 780, "release_below_iv": 0.85, "logic": "and" },
  "Aerodactyl": { "release_below_cp": 756, "release_below_iv": 0.85, "logic": "and" },
  "Golem": { "release_below_cp": 804, "release_below_iv": 0.85, "logic": "and" },
  "Wigglytuff": { "release_below_cp": 760, "release_below_iv": 0.85, "logic": "and" },
  "Dewgong": { "release_below_cp": 748, "release_below_iv": 0.85, "logic": "and" },
  "Ninetales": { "release_below_cp": 763, "release_below_iv": 0.85, "logic": "and" },
  "Magmar": { "release_below_cp": 792, "release_below_iv": 0.85, "logic": "and" },
  "Kabutops": { "release_below_cp": 744, "release_below_iv": 0.85, "logic": "and" },
  "Electabuzz": { "release_below_cp": 739, "release_below_iv": 0.85, "logic": "and" },
  "Starmie": { "release_below_cp": 763, "release_below_iv": 0.85, "logic": "and" },
  "Jolteon": { "release_below_cp": 746, "release_below_iv": 0.85, "logic": "and" },
  "Rapidash": { "release_below_cp": 768, "release_below_iv": 0.85, "logic": "and" },
  "Pinsir": { "release_below_cp": 741, "release_below_iv": 0.85, "logic": "and" },
  "Scyther": { "release_below_cp": 724, "release_below_iv": 0.85, "logic": "and" },
  "Tentacruel": { "release_below_cp": 775, "release_below_iv": 0.85, "logic": "and" },
  "Gengar": { "release_below_cp": 724, "release_below_iv": 0.85, "logic": "and" },
  "Hypno": { "release_below_cp": 763, "release_below_iv": 0.85, "logic": "and" },
  "Pidgeot": { "release_below_cp": 729, "release_below_iv": 0.85, "logic": "and" },
  "Rhydon": { "release_below_cp": 782, "release_below_iv": 0.85, "logic": "and" },
  "Seaking": { "release_below_cp": 712, "release_below_iv": 0.85, "logic": "and" },
  "Kangaskhan": { "release_below_cp": 712, "release_below_iv": 0.85, "logic": "and" },

  "// Koffing evolves to Weezing (A-Tier)": {},
  "Koffing": { "release_below_cp": 403, "release_below_iv": 0.85, "logic": "and" },

  "// Below is B-tier and lower pokemons": {},
  "Caterpie": { "release_below_cp": 156, "release_below_iv": 0.85, "logic": "and" },
  "Weedle": { "release_below_cp": 156, "release_below_iv": 0.85, "logic": "and" },
  "Diglett": { "release_below_cp": 158, "release_below_iv": 0.85, "logic": "and" },
  "Metapod": { "release_below_cp": 168, "release_below_iv": 0.85, "logic": "and" },
  "Kakuna": { "release_below_cp": 170, "release_below_iv": 0.85, "logic": "and" },
  "Rattata": { "release_below_cp": 204, "release_below_iv": 0.85, "logic": "and" },
  "Abra": { "release_below_cp": 208, "release_below_iv": 0.85, "logic": "and" },
  "Zubat": { "release_below_cp": 225, "release_below_iv": 0.85, "logic": "and" },
  "Chansey": { "release_below_cp": 235, "release_below_iv": 0.85, "logic": "and" },
  "Pidgey": { "release_below_cp": 237, "release_below_iv": 0.85, "logic": "and" },
  "Spearow": { "release_below_cp": 240, "release_below_iv": 0.85, "logic": "and" },
  "Meowth": { "release_below_cp": 264, "release_below_iv": 0.85, "logic": "and" },
  "Krabby": { "release_below_cp": 276, "release_below_iv": 0.85, "logic": "and" },
  "Sandshrew": { "release_below_cp": 278, "release_below_iv": 0.85, "logic": "and" },
  "Poliwag": { "release_below_cp": 278, "release_below_iv": 0.85, "logic": "and" },
  "Horsea": { "release_below_cp": 278, "release_below_iv": 0.85, "logic": "and" },
  "Gastly": { "release_below_cp": 280, "release_below_iv": 0.85, "logic": "and" },
  "Ekans": { "release_below_cp": 288, "release_below_iv": 0.85, "logic": "and" },
  "Shellder": { "release_below_cp": 288, "release_below_iv": 0.85, "logic": "and" },
  "Vulpix": { "release_below_cp": 290, "release_below_iv": 0.85, "logic": "and" },
  "Voltorb": { "release_below_cp": 292, "release_below_iv": 0.85, "logic": "and" },
  "Geodude": { "release_below_cp": 297, "release_below_iv": 0.85, "logic": "and" },
  "Doduo": { "release_below_cp": 297, "release_below_iv": 0.85, "logic": "and" },
  "Onix": { "release_below_cp": 300, "release_below_iv": 0.85, "logic": "and" },
  "Mankey": { "release_below_cp": 307, "release_below_iv": 0.85, "logic": "and" },
  "Pikachu": { "release_below_cp": 309, "release_below_iv": 0.85, "logic": "and" },
  "Magnemite": { "release_below_cp": 312, "release_below_iv": 0.85, "logic": "and" },
  "Tentacool": { "release_below_cp": 316, "release_below_iv": 0.85, "logic": "and" },
  "Paras": { "release_below_cp": 319, "release_below_iv": 0.85, "logic": "and" },
  "Jigglypuff": { "release_below_cp": 321, "release_below_iv": 0.85, "logic": "and" },
  "Ditto": { "release_below_cp": 321, "release_below_iv": 0.85, "logic": "and" },
  "Staryu": { "release_below_cp": 326, "release_below_iv": 0.85, "logic": "and" },
  "Charmander": { "release_below_cp": 333, "release_below_iv": 0.85, "logic": "and" },
  "Goldeen": { "release_below_cp": 336, "release_below_iv": 0.85, "logic": "and" },
  "Squirtle": { "release_below_cp": 352, "release_below_iv": 0.85, "logic": "and" },
  "Cubone": { "release_below_cp": 352, "release_below_iv": 0.85, "logic": "and" },
  "Venonat": { "release_below_cp": 360, "release_below_iv": 0.85, "logic": "and" },
  "Bulbasaur": { "release_below_cp": 374, "release_below_iv": 0.85, "logic": "and" },
  "Drowzee": { "release_below_cp": 374, "release_below_iv": 0.85, "logic": "and" },
  "Machop": { "release_below_cp": 381, "release_below_iv": 0.85, "logic": "and" },
  "Psyduck": { "release_below_cp": 386, "release_below_iv": 0.85, "logic": "and" },
  "Seel": { "release_below_cp": 386, "release_below_iv": 0.85, "logic": "and" },
  "Kabuto": { "release_below_cp": 386, "release_below_iv": 0.85, "logic": "and" },
  "Bellsprout": { "release_below_cp": 391, "release_below_iv": 0.85, "logic": "and" },
  "Omanyte": { "release_below_cp": 391, "release_below_iv": 0.85, "logic": "and" },
  "Kadabra": { "release_below_cp": 396, "release_below_iv": 0.85, "logic": "and" },
  "Oddish": { "release_below_cp": 400, "release_below_iv": 0.85, "logic": "and" },
  "Dugtrio": { "release_below_cp": 408, "release_below_iv": 0.85, "logic": "and" },
  "Rhyhorn": { "release_below_cp": 412, "release_below_iv": 0.85, "logic": "and" },
  "Clefairy": { "release_below_cp": 420, "release_below_iv": 0.85, "logic": "and" },
  "Slowpoke": { "release_below_cp": 424, "release_below_iv": 0.85, "logic": "and" },
  "Pidgeotto": { "release_below_cp": 427, "release_below_iv": 0.85, "logic": "and" },
  "Farfetch'd": { "release_below_cp": 441, "release_below_iv": 0.85, "logic": "and" },
  "Poliwhirl": { "release_below_cp": 468, "release_below_iv": 0.85, "logic": "and" },
  "Nidorino": { "release_below_cp": 480, "release_below_iv": 0.85, "logic": "and" },
  "Haunter": { "release_below_cp": 482, "release_below_iv": 0.85, "logic": "and" },
  "Nidorina": { "release_below_cp": 489, "release_below_iv": 0.85, "logic": "and" },
  "Graveler": { "release_below_cp": 501, "release_below_iv": 0.85, "logic": "and" },
  "Beedrill": { "release_below_cp": 504, "release_below_iv": 0.85, "logic": "and" },
  "Raticate": { "release_below_cp": 504, "release_below_iv": 0.85, "logic": "and" },
  "Butterfree": { "release_below_cp": 508, "release_below_iv": 0.85, "logic": "and" },
  "Hitmonlee": { "release_below_cp": 520, "release_below_iv": 0.85, "logic": "and" },
  "Ponyta": { "release_below_cp": 530, "release_below_iv": 0.85, "logic": "and" },
  "Hitmonchan": { "release_below_cp": 530, "release_below_iv": 0.85, "logic": "and" },
  "Charmeleon": { "release_below_cp": 544, "release_below_iv": 0.85, "logic": "and" },
  "Wartortle": { "release_below_cp": 552, "release_below_iv": 0.85, "logic": "and" },
  "Persian": { "release_below_cp": 568, "release_below_iv": 0.85, "logic": "and" },
  "Lickitung": { "release_below_cp": 568, "release_below_iv": 0.85, "logic": "and" },
  "Ivysaur": { "release_below_cp": 571, "release_below_iv": 0.85, "logic": "and" },
  "Electrode": { "release_below_cp": 576, "release_below_iv": 0.85, "logic": "and" },
  "Marowak": { "release_below_cp": 578, "release_below_iv": 0.85, "logic": "and" },
  "Gloom": { "release_below_cp": 590, "release_below_iv": 0.85, "logic": "and" },
  "Porygon": { "release_below_cp": 590, "release_below_iv": 0.85, "logic": "and" },
  "Seadra": { "release_below_cp": 597, "release_below_iv": 0.85, "logic": "and" },
  "Jynx": { "release_below_cp": 600, "release_below_iv": 0.85, "logic": "and" },
  "Weepinbell": { "release_below_cp": 602, "release_below_iv": 0.85, "logic": "and" },
  "Tangela": { "release_below_cp": 607, "release_below_iv": 0.85, "logic": "and" },
  "Fearow": { "release_below_cp": 609, "release_below_iv": 0.85, "logic": "and" },
  "Parasect": { "release_below_cp": 609, "release_below_iv": 0.85, "logic": "and" },
  "Machoke": { "release_below_cp": 614, "release_below_iv": 0.85, "logic": "and" },
  "Arbok": { "release_below_cp": 616, "release_below_iv": 0.85, "logic": "and" },
  "Sandslash": { "release_below_cp": 631, "release_below_iv": 0.85, "logic": "and" },
  "Alakazam": { "release_below_cp": 633, "release_below_iv": 0.85, "logic": "and" },
  "Kingler": { "release_below_cp": 636, "release_below_iv": 0.85, "logic": "and" },
  "Dodrio": { "release_below_cp": 640, "release_below_iv": 0.85, "logic": "and" },
  "Tauros": { "release_below_cp": 643, "release_below_iv": 0.85, "logic": "and" },
  "Primeape": { "release_below_cp": 650, "release_below_iv": 0.85, "logic": "and" },
  "Magneton": { "release_below_cp": 657, "release_below_iv": 0.85, "logic": "and" },
  "Venomoth": { "release_below_cp": 660, "release_below_iv": 0.85, "logic": "and" },
  "Golbat": { "release_below_cp": 672, "release_below_iv": 0.85, "logic": "and" },
  "Raichu": { "release_below_cp": 708, "release_below_iv": 0.85, "logic": "and" },
  "Cloyster": { "release_below_cp": 717, "release_below_iv": 0.85, "logic": "and"},
  "Mr. Mime": { "release_below_cp": 650, "release_below_iv": 0.85, "logic": "and" }
},
"vips" : {
     "Any pokemon put here directly force to use Berry & Best Ball to capture, to secure the capture rate!": {},
    "any": {"catch_above_cp": 1200, "catch_above_iv": 0.95, "logic": "or" },
    "Lapras": {},
    "Moltres": {},
    "Zapdos": {},
    "Articuno": {},

    "// S-Tier pokemons (if pokemon can be evolved into tier, list the representative)": {},
    "Mewtwo": {},
    "Dragonite": {},
    "Snorlax": {},
    "// Mew evolves to Mewtwo": {},
    "Mew": {},
    "Arcanine": {},
    "Vaporeon": {},
    "Gyarados": {},
    "Exeggutor": {},
    "Muk": {},
    "Weezing": {},
    "Flareon": {}
}

} `

avexus commented 7 years ago

Maybe it is the api that got us banned.

duttonw commented 7 years ago

Have started again with slower more delayed config. With a fresh iphone app login to do the tos check and then let it walk around my local neighbourhood. sadly still same ip as aus providers don't allow that to change that often. will let this thread know how it goes.

iruy commented 7 years ago

Guys, easy question: how many of you did the setup on the banned account? I mean, that tutorial at the very beginning of the game, where you chose your first pokemon (between Bulbasaur, Charmender and Squirtle) and your Nickname.

duttonw commented 7 years ago

@iruy Always did the tutorial and nickname setup. I only ran one bot only.

rtseng commented 7 years ago

Is the bot using road data on walks? It's also easy to tell bots from humans if bot is walking shortest path (direct path) Although I doubt they have that much processing power to run through each players history

duttonw commented 7 years ago

@rtseng As per the config above, using the master branch, i watch it using the maps web server and it does not follow roads but also does not do straight lines, it wiggles around lots. It would be cool if we could use the google maps api key to request google pedestrain paths/car paths/bus paths and follow that with the gps wiggle. I may try the pathing config when my next bot dies.

fosspill commented 7 years ago

@duttonw I've been using the pathing for a while now and it seems to help a bit but my accounts keep getting banned. It still wiggles around a bit too much instead of following roads even if you have a straight line defined for it to follow.

duttonw commented 7 years ago

@oleerik was this for an account made in the last 2 days, after they introduced the 10 second delay and the variable walking speeds etc?

fosspill commented 7 years ago

Correct @duttonw

duttonw commented 7 years ago

I wonder if the newly added delays in the workers/tasks is now messing up the heartbeat check. Sadly I have not looked at the real output of the game but i would guess that the heartbeat would be in its own thread and not delay on the actions of the player (throw pokeball, toss inventory, etc). Maybe we have inadvertently made the bot easier to detect as the heartbeat is not exactly 10 seconds or whatever the server tells the game or the game currently has hardcoded. In pokemongobot folder init.py def tick(self):

supergithubo commented 7 years ago

What about the map scanner requesting with the same IP while using the bot? Do they also detect it as multiple account on a single IP? I noticed my account doing just map scan is still alive while all my bots are dead.

GrosCep commented 7 years ago

I'm trying my best to get permabanned asap with an account created a few days ago, but it's still working, despite the fact that I have been on the five continents in less than one day, I have 10+ snorlax, dragonites etc... Currently at level 20, with a 12 to 14 kmh walking speed. But I have a very low internet connection, which makes everything very slow, including bot's response to Niantic server. Would it be this factor that flag our bots ?

See how long it takes to do 10m at 12-14 kmh : capture d ecran 2016-08-19 a 15 45 51

jesussson commented 7 years ago

So it can be the api itself Trainer,

Your account has been terminated. Use of any other third-party software or app, including but not limited to scripts/apps, applications used to falsify your location, emulators, modified or unofficial software, and/or accessing Pokémon GO clients or backends in an unauthorized manner is considered cheating.

If you believe your account has been terminated in error, you may fill out this form. Please consider your account permanently terminated unless we reply back to your appeal.

dontrebootme commented 7 years ago

Some thoughts: are the ones getting banned using the same IP for multiple locations in the game? Do you hop from CA to NY but keep the same IP address? What about returning to the EXACT same starting location multiple times? People who used the IV calculator were getting banned too, might not even be the bot actions themselves, but more of the API requests?

mjmadsen commented 7 years ago

I've been running two accounts at a time, running each group about 6-8 hours a day since Tuesday. No bans so far, but I'm not going to hold my breath.

A few mods I made were increasing all wait times (to better mimic real app times), reducing ignored forts to have the bot stay in smaller areas, increase random sleep lengths and reduce time between sleeping. I also manually completed the tutorials on my phone before botting - then starting the bot in my local city.

But as I said, I'm not going to hold my breath. I expect they'll get banned - but I think our recent additions are great. Props to the devs.

keenb commented 7 years ago

This thread is really helpful. Basically, it looks like there are x limits for things (IP limit, poke stop limit, catch limit, km limit etc) which causes your account to be flagged. We can essentially do everything we can to stay away from the radar but it seems that once your account is flagged they know which flagged accounts need to be banned... (I'm guessing they have figured out patterns for fake client API calls)

The question is how far does their logs go? I know they log your Pokemon inventory so they can track down snipers forever but I wonder how many X hours of activity they log...

To test I will use my botted level 19 (7 days old, have botted on the first 3 days) legitly from now on and place pokemons in gymns to see if it gets banned

wintermute0001 commented 7 years ago

Is there any code that's handling the medal data (collected X pokemon; walked Y far; etc)? If not, it could be another obvious flag.

behelit commented 7 years ago

I might be wrong but I'm pretty sure ALL bots are unable to truly emulate the pokemon go apk login authentication process / info so it will always be easily detected by Niantic and banned eventually

keenb commented 7 years ago

@wintermute0001 I don't see how this would cause a flag. The server gives the client data to display and the client displays it, it does not need to give any data to the server back.

@behelit Even if this is true, I don't think Niantic is simplistic enough to ban people on that basis. They are smart enough to know that many super users are using IV calculators etc. It seems that what they are doing is banning people whom they think are abusing the game and causing a bad multiplayer experience, hence why they only ban a user once a user is flagged.

wintermute0001 commented 7 years ago

@keenb ah, k. I haven't peeked at a mitm so I wasn't sure. I had just noticed that when I logged with my phone, I had to wait for a ton of medals to trigger. I don't know if medal achievements are locally computed or synced. aka, if I legally reach an achievement on a device, then switch devices, I don't know if the second device will trigger the medal. if it doesn't then it wouldn't be a local flag, I think.

duttonw commented 7 years ago

@wintermute0001 yep, you may be onto something, there is badge information in the protobuf calls. https://github.com/tejado/pgoapi/search?utf8=%E2%9C%93&q=Badge and i bet they may be checking if accounts actually call this api and if not being placed onto the waiting to be banned list. maybe.