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": {}

      }
  }
dontrebootme commented 7 years ago

I received a ban today shortly after 400 Pokestops visited in a single session (402 stops). Prior to the ban the bot was still spinning and incubating. The run time for that session was over five hours.

CykkaTron commented 7 years ago

So all my bots where banned a week after starting(ban wave) around 21+.

So I started playing my main account which did get botted for about a day right before the ban wave(on accident lol). Which leveled it from 19 to 20, the rest where legit levels.

The last week Ive been barely getting on due to work, and boom it got hit yesterday. I didn''t use third party apps on my phone, but I did log into the botted accounts via my phone.

avexus commented 7 years ago

They are checking the game history. Due to the large player base, it takes them a while go through all the accounts. But they have the computing power. Even if you only use it for an hour, they will get to you eventually. So, if you want to keep your account, don't use this bot.

OursDesCavernes commented 7 years ago

Given there are both API and behavior "cheater" detection, we should focus on the API call so that we can mimic the real client. Then we could go into the behavior part more reliably. I don't have a phone with the official client, does anyone have network recordings of the real client ( IOS and/or Android) so I can help on the API part ?

duttonw commented 7 years ago

We may need to also emulate the lockout of calls between certain functions. e.g. when you get a medal you can't do any action for x seconds, when you evolve something you need to wait for the animation to finish etc. A big one i think which was taking out bots was the transfer straight after capture. there is a 2-5 second wait after capture before the button displays and if its a new pokemon at least 15-30 seconds for the pokedex record to show up.

avexus commented 7 years ago

we don't know anything about how they find out about this bot. all is speculation.

avexus commented 7 years ago

Besides bots, does anyone use BlueStacks only got banned? Just curious. I may switch to manually do these tasks.

simonsmh commented 7 years ago

genymotion banned here. But remix OS works well on my tiny tablet. (・∀・)

MartinTerp commented 7 years ago

@avexus A buddy of mine only used Nox android emulator and got banned yestoday

Enviouse commented 7 years ago

Been botting on poke buddy after my main was banned a week ago so far bot is 4 days in lv23-24 no soft bans walk speed 10 n ONLY local code to my location will test in a week if banned looking good atm

Enviouse commented 7 years ago

My main I went everywhere no wonder I got cought but each Pokemon u catch has a location that's a tip how they are banning keep ur gps fakers n bots close to you n only hit so many stops

geosdc19 commented 7 years ago

I'll add my own contribution to this thread, in hopes that we eventually figure everything out.

I've started running two accounts in parallel about 5 days ago (first account Google, second account PTC). Nothing fancy, just basic move-to-fort and follow-path for about 4-5 hours/day. 3 days ago I stopped running the PTC account (which is still not banned as of right now and is sitting at level 13) and started focusing on the Google account. Since then, I have been using the PTC account in PokemonGo-Map and it's still fine.

On the Google account, I kept botting. At first, I kept it to 4-5 hours/day, alternating between move-to-fort and movetomappokemon. 2 days ago I started running it a lot more, around 10 hours/day (still not reaching the hardcoded limits as far as I'm aware). The only "major" red flag would be the fact that 2 days ago it tried to capture pokemon for about an hour while having a full pokemon inventory. A few hours ago the account finally got banned, after having the bot running for almost the whole day (~14 hours). Note that I also ran multiple Lucky Egg mass-evolutions, reaching around level 26.

Note that I was running the bot from various Romanian IPs, while the bot was moving around in Spain for most of the testing; this was the case for both accounts, but since the PTC account is still functional, this may not actually be a flag criteria. Also, neither accounts touched any gyms (haven't even joined a team on either of them).

I'm guessing the bot either gets flagged when:

I'm assuming that my account got flagged for one of the above behaviors and I only got banned today because it was weekend and no-one at Niantic bothered to run "mass ban scripts" (based off the fact that the PTC account is still up and running). If that's the case, maybe we should focus our testing efforts during weekends (makes sense to run a ban wave on a Monday), running different behaviors on different accounts and see what happens to each of them. I'll try to run some tests the following weekend if I have the time and come back with the results.

Below you can find the config.json I was running when the ban occurred:

{
    "auth_service": "google",
    "username": "",
    "password": "",
    "location": "40.423605, -3.716784",
    "gmapkey": "",
    "encrypt_location": "",
    "websocket_server": true,
    "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": false
        }
      },
      {
        "type": "UpdateLiveStats",
        "config": {
          "enabled": true,
          "min_interval": 5,
          "stats": ["username", "uptime", "stardust_earned", "xp_earned", "xp_per_hour", "stops_visited"],
          "terminal_log": true,
          "terminal_title": true
        }
      },
      {
        "type": "EvolvePokemon",
        "config": {
          "evolve_all": "none",
          "first_evolve_by": "cp",
          "evolve_above_cp": 0,
          "evolve_above_iv": 0,
          "logic": "or",
          "evolve_speed": 17,
          "use_lucky_egg": false
        }
      },
      {
        "type": "TransferPokemon",
        "config": {
          "transfer_wait_min": 1,
          "transfer_wait_max": 4
        }
      },
      {
        "type": "NicknamePokemon",
        "config": {
          "enabled": true,
          "nickname_template": "{iv_pct}_{iv_ads}"
        }
      },
      {
        "type": "RecycleItems",
        "config": {
          "min_empty_space": 15,
          "item_filter": {
            "Pokeball":       { "keep" : 140 },
            "Greatball":      { "keep" : 50 },
            "Ultraball":      { "keep" : 50 },
            "Potion":         { "keep" : 0 },
            "Super Potion":   { "keep" : 0 },
            "Hyper Potion":   { "keep" : 0 },
            "Max Potion":     { "keep" : 0 },
            "Revive":         { "keep" : 0 },
            "Razz Berry":     { "keep" : 60 }
          },
          "recycle_wait_min": 1,
          "recycle_wait_max": 4
        }
      },
      {
        "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.5,
            "nice_rate": 0.3,
            "normal_rate": 0.1,
            "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": 1,
          "spin_wait_max": 3
        }
      },
  {
    "type": "MoveToMapPokemon",
    "config": {
      "address": "http://localhost:5000",
      "max_distance": 500,
      "min_time": 60,
      "min_ball": 10,
      "prioritize_vips": true,
      "snipe": true,
      "snipe_high_prio_only": true,
      "snipe_high_prio_threshold": 900,
      "update_map": true,
      "mode": "priority",
      "catch": {
            "==========Legendaries==========": 0,
            "Aerodactyl": 1000,
            "Snorlax": 1000,
            "Articuno": 1000,
            "Zapdos": 1000,
            "Moltres": 1000,
            "Dratini": 1000,
            "Dragonair": 1000,
            "Dragonite": 1000,
            "Mewtwo": 1000,
            "Mew": 1000,

            "==========Region Locked==========": 0,
            "Farfetch'd": 1000,
            "Kangaskhan": 1000,
            "Mr. Mime": 1000,
            "Tauros": 1000,

            "==========Very Rare==========": 0,
            "Lapras": 1000,
            "Electabuzz": 1000,
            "Magmar": 1000,
            "Ditto": 1000,

            "==========Starters==========": 0,
            "Bulbasaur": 1000,
            "Ivysaur": 100,
            "Venusaur": 100,

            "Charmander": 1000,
            "Charmeleon": 100,
            "Charizard": 100,

            "Squirtle": 1000,
            "Wartortle": 100,
            "Blastoise": 100,

            "Pikachu": 850,
            "Raichu": 1000,

            "==========Semi Rare==========": 0,
            "Porygon": 850,
            "Scyther": 400,
            "Jynx": 400,

            "==========Uncommon==========": 0,

            "Omanyte": 500,
            "Omastar": 500,

            "Seel": 500,
            "Dewgong": 500,

            "Grimer": 500,
            "Muk": 500,

            "Shellder": 500,
            "Cloyster": 500,

            "Gastly": 500,
            "Haunter": 800,
            "Gengar": 1000,

            "Onix": 200,

            "Drowzee": 100,

            "Hypno": 500,

            "Vulpix": 800,
            "Ninetales": 850,

            "Paras": 200,
            "Parasect": 500,

            "Growlithe": 600,
            "Arcanine": 700,

            "Tentacool": 400,
            "Tentacruel": 500,

            "Mankey": 200,
            "Primeape": 500,

            "Clefairy": 200,
            "Clefable": 500,

            "Jigglypuff": 200,
            "Wigglytuff": 500,

            "Venonat": 200,
            "Venomoth": 500,

            "Diglett": 200,
            "Dugtrio": 500,

            "Meowth": 250,
            "Persian": 500,

            "Psyduck": 150,
            "Golduck": 500,

            "Geodude": 100,
            "Graveler": 500,
            "Golem": 800,

            "Eevee": 800,
            "Vaporeon": 800,
            "Jolteon": 800,
            "Flareon": 800,

            "Kabuto": 500,
            "Kabutops": 600,

            "Magikarp": 900,
            "Gyarados": 900,

            "Pinsir": 200,

            "Ponyta": 800,
            "Rapidash": 850,

            "Slowpoke": 200,
            "Slowbro": 500,

            "Magnemite": 300,
            "Magneton": 500,

            "Krabby": 200,
            "Kingler": 500,

            "Voltorb": 700,
            "Electrode": 750,

            "Exeggcute": 500,
            "Exeggcutor": 700,

            "Cubone": 700,
            "Marowak": 800,

            "Hitmonlee": 600,

            "Hitmonchan": 600,

            "Lickitung": 500,

            "Koffing": 400,
            "Weezing": 500,

            "Rhyhorn": 400,
            "Rhydon": 500,

            "Chansey": 850,

            "Tangela": 600,

            "Horsea": 400,
            "Seadra": 600,

            "Goldeen": 350,
            "Seaking": 500,

            "Staryu": 200,
            "Starmie": 800,

            "==========T1 Evolvers==========": 0,
            "Caterpie": 10,
            "Metapod": 10,
            "Butterfree": 500,

            "Kakuna": 10,
            "Beedrill": 500,

            "Pidgey": 10,
            "Pidgeotto": 20,
            "Pidgeot": 300,

            "==========T2 Evolvers==========": 0,
            "Nidoran F": 400,
            "Nidorina": 450,
            "Nidoqueen": 500,

            "Nidoran M": 400,
            "Nidorino": 450,
            "Nidoking": 500,

            "Oddish": 500,
            "Gloom": 550,
            "Vileplume": 600,

            "Poliwag": 300,
            "Poliwhirl": 500,
            "Poliwrath": 800,

            "Abra": 700,
            "Kadabra": 800,
            "Alakazam": 1000,

            "Machop": 400,
            "Machoke": 600,
            "Machamp": 800,

            "Bellsprout": 250,
            "Weepinbell": 400,
            "Victreebel": 850
      }
    }
  },
    {
      "type": "MoveToFort"
    }
    ],
    "map_object_cache_time": 5,
    "forts": {
      "avoid_circles": true,
      "max_circle_size": 50,
      "cache_recent_forts": true
    },
    "walk_max": 30,
    "walk_min": 5,
    "debug": false,
    "test": false,
    "health_record": true,
    "location_cache": false,
    "distance_unit": "km",
    "reconnecting_timeout": 5,
    "logging_color": true,
    "catch": {
      "any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"}
    },
    "release": {
      "any": {"release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },

      "// Legendary pokemons (Goes under S-Tier)": {},
      "Lapras": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Moltres": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Zapdos": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Articuno": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },

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

      "// Growlithe evolves to Arcanine": {},
      "Growlithe": { "release_below_cp": 800, "release_below_iv": 0.9, "logic": "and" },
      "// Dragonair evolves to Dragonite": {},
      "Dragonair": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "// Grimer evolves to Muk": {},
      "Grimer": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "// Magikarp evolves to Gyarados": {},
      "Magikarp": { "release_below_cp": 140, "release_below_iv": 0.9, "logic": "and" },
      "// Exeggcute evolves to Exeggutor": {},
      "Exeggcute": { "release_below_cp": 500, "release_below_iv": 0.9, "logic": "and" },
      "// Eevee evolves to many versions, like Vaporeon, Flareon": {},
      "Eevee": { "release_below_cp": 300, "release_below_iv": 0.9, "logic": "and" },

      "// A-Tier pokemons": {},
      "Slowbro": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Victreebel": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Machamp": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Poliwrath": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Clefable": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Nidoking": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Venusaur": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Charizard": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Golduck": { "release_below_cp": 1000, "release_below_iv": 0.9, "logic": "and" },
      "Nidoqueen": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Vileplume": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Blastoise": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Omastar":  { "release_below_cp": 1000, "release_below_iv": 0.9, "logic": "and" },
      "Aerodactyl": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Golem": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Wigglytuff": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Dewgong": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Ninetales": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Magmar": { "release_below_cp": 700, "release_below_iv": 0.9, "logic": "and" },
      "Kabutops": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Electabuzz": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Starmie": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Jolteon": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Rapidash": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Pinsir": { "release_below_cp": 1200, "release_below_iv": 0.9, "logic": "and" },
      "Scyther": { "release_below_cp": 1100, "release_below_iv": 0.9, "logic": "and" },
      "Tentacruel": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Gengar": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Hypno": { "release_below_cp": 870, "release_below_iv": 0.9, "logic": "and" },
      "Pidgeot": { "release_below_cp": 1000, "release_below_iv": 0.9, "logic": "and" },
      "Rhydon": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Seaking": { "release_below_cp": 800, "release_below_iv": 0.9, "logic": "and" },
      "Kangaskhan": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },

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

      "// Below is B-tier and lower pokemons": {},
      "Caterpie": { "release_below_cp": 100, "release_below_iv": 0.9, "logic": "and" },
      "Weedle": { "release_below_cp": 200, "release_below_iv": 0.9, "logic": "and" },
      "Diglett": { "release_below_cp": 200, "release_below_iv": 0.9, "logic": "and" },
      "Metapod": { "release_below_cp": 100, "release_below_iv": 0.9, "logic": "and" },
      "Kakuna": { "release_below_cp": 100, "release_below_iv": 0.9, "logic": "and" },
      "Rattata": { "release_below_cp": 260, "release_below_iv": 0.9, "logic": "and" },
      "Abra": { "release_below_cp": 250, "release_below_iv": 0.9, "logic": "and" },
      "Zubat": { "release_below_cp": 340, "release_below_iv": 0.9, "logic": "and" },
      "Chansey": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Pidgey": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Spearow": { "release_below_cp": 300, "release_below_iv": 0.9, "logic": "and" },
      "Meowth": { "release_below_cp": 400, "release_below_iv": 0.9, "logic": "and" },
      "Krabby": { "release_below_cp": 400, "release_below_iv": 0.9, "logic": "and" },
      "Sandshrew": { "release_below_cp": 440, "release_below_iv": 0.9, "logic": "and" },
      "Poliwag": { "release_below_cp": 350, "release_below_iv": 0.9, "logic": "and" },
      "Horsea": { "release_below_cp": 390, "release_below_iv": 0.9, "logic": "and" },
      "Gastly": { "release_below_cp": 250, "release_below_iv": 0.9, "logic": "and" },
      "Ekans": { "release_below_cp": 420, "release_below_iv": 0.9, "logic": "and" },
      "Shellder": { "release_below_cp": 200, "release_below_iv": 0.9, "logic": "and" },
      "Vulpix": { "release_below_cp": 450, "release_below_iv": 0.9, "logic": "and" },
      "Voltorb": { "release_below_cp": 400, "release_below_iv": 0.9, "logic": "and" },
      "Geodude": { "release_below_cp": 400, "release_below_iv": 0.9, "logic": "and" },
      "Doduo": { "release_below_cp": 430, "release_below_iv": 0.9, "logic": "and" },
      "Onix": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Mankey": { "release_below_cp": 450, "release_below_iv": 0.9, "logic": "and" },
      "Pikachu": { "release_below_cp": 400, "release_below_iv": 0.9, "logic": "and" },
      "Magnemite": { "release_below_cp": 400, "release_below_iv": 0.9, "logic": "and" },
      "Tentacool": { "release_below_cp": 500, "release_below_iv": 0.9, "logic": "and" },
      "Paras": { "release_below_cp": 500, "release_below_iv": 0.9, "logic": "and" },
      "Jigglypuff": { "release_below_cp": 270, "release_below_iv": 0.9, "logic": "and" },
      "Ditto": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Staryu": { "release_below_cp": 500, "release_below_iv": 0.9, "logic": "and" },
      "Charmander": { "release_below_cp": 500, "release_below_iv": 0.9, "logic": "and" },
      "Goldeen": { "release_below_cp": 490, "release_below_iv": 0.9, "logic": "and" },
      "Squirtle": { "release_below_cp": 500, "release_below_iv": 0.9, "logic": "and" },
      "Cubone": { "release_below_cp": 560, "release_below_iv": 0.9, "logic": "and" },
      "Venonat": { "release_below_cp": 450, "release_below_iv": 0.9, "logic": "and" },
      "Bulbasaur": { "release_below_cp": 500, "release_below_iv": 0.9, "logic": "and" },
      "Drowzee": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Machop": { "release_below_cp": 600, "release_below_iv": 0.9, "logic": "and" },
      "Psyduck": { "release_below_cp": 600, "release_below_iv": 0.9, "logic": "and" },
      "Seel": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Kabuto": { "release_below_cp": 500, "release_below_iv": 0.9, "logic": "and" },
      "Bellsprout": { "release_below_cp": 300, "release_below_iv": 0.9, "logic": "and" },
      "Omanyte": { "release_below_cp": 660, "release_below_iv": 0.9, "logic": "and" },
      "Kadabra": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Oddish": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Dugtrio": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Rhyhorn": { "release_below_cp": 670, "release_below_iv": 0.9, "logic": "and" },
      "Clefairy": { "release_below_cp": 500, "release_below_iv": 0.9, "logic": "and" },
      "Slowpoke": { "release_below_cp": 600, "release_below_iv": 0.9, "logic": "and" },
      "Pidgeotto": { "release_below_cp": 650, "release_below_iv": 0.9, "logic": "and" },
      "Farfetch'd": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Poliwhirl": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Nidorino": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Nidoran M": { "release_below_cp": 350, "release_below_iv": 0.9, "logic": "and" },
      "Nidoran F": { "release_below_cp": 100, "release_below_iv": 0.9, "logic": "and" },
      "Haunter": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Nidorina": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Graveler": { "release_below_cp": 600, "release_below_iv": 0.9, "logic": "and" },
      "Beedrill": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Raticate": { "release_below_cp": 772, "release_below_iv": 0.9, "logic": "and" },
      "Butterfree": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Hitmonlee": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Ponyta": { "release_below_cp": 650, "release_below_iv": 0.9, "logic": "and" },
      "Hitmonchan": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Charmeleon": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Wartortle": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Persian": { "release_below_cp": 900, "release_below_iv": 0.9, "logic": "and" },
      "Lickitung": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Ivysaur": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Electrode": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Marowak": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Gloom": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Porygon": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Seadra": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Jynx": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Weepinbell": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Tangela": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Fearow": { "release_below_cp": 900, "release_below_iv": 0.9, "logic": "and" },
      "Parasect": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Machoke": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Arbok": { "release_below_cp": 900, "release_below_iv": 0.9, "logic": "and" },
      "Sandslash": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Alakazam": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Kingler": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Dodrio": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Tauros": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Primeape": { "release_below_cp": 1000, "release_below_iv": 0.9, "logic": "and" },
      "Magneton": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Venomoth": { "release_below_cp": 1000, "release_below_iv": 0.9, "logic": "and" },
      "Golbat": { "release_below_cp": 1000, "release_below_iv": 0.9, "logic": "and" },
      "Raichu": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Cloyster": { "release_below_cp": 0, "release_below_iv": 0.9, "logic": "and" },
      "Mr. Mime": { "release_below_cp": 850, "release_below_iv": 0.9, "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": 1000, "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": {},
        "Arcanine": {},
        "Vaporeon": {},
        "Gyarados": {},
        "Exeggutor": {},
        "Muk": {},
        "Weezing": {},
        "Dratini": {},
        "Dragonair": {},
        "Dragonite": {},
        "Squirtle": {},
        "Charmander": {},
        "Bulbasaur": {},
        "Flareon": {}
    }
}
talobear commented 7 years ago

Just wanted to send an update that my last test resulted in a ban. I was only lvl 11, played maybe about 30 minutes a day. Did not play at all since Thursday, except for about 1 hour today. I did not auto trade in any Pokemon nor rename them. Only played in one location (Boston Common, Boston MA).

Level: 11 (Next Level: 7700 XP) (Total: 57300 XP) Pokemon Captured: 156 | Pokestops Visited: 198 Pokemon Bag: 49/250

THis account was banned this PM. So this tells me that bans may be level based in some way, however, there is some other pattern that they are observing which flags the account, even one that is lvl 11 with low play time.

avexus commented 7 years ago

@MartinTerp, thank you for your input. I should stop that too, i guess.

mondacat commented 7 years ago

Have anyone tried botting before setting username (creating a new ptc acccount then start botting right away without logging into the app first)? A friend of mine did that got to level 30-40 in a week with unrealistic settings then he started playing normally and still haven't been banned.

keenb commented 7 years ago

Level 19, 10 days old, botted only for the first 3 days is now banned.

I'm interested to know how old are people's botted accounts when they get the ban?

My current oldest active bots are 9 days old level 16/15/18. I'll let you know once they receive the ban.

I have a 5 days old level 19 account that's currently holding 15+ gymns, we'll see if it gets banned first...

Rizbe commented 7 years ago

I been running quiet a few bots with very different configs from unrealistic to realistic settings. All the bots got banned sooner or later but I noticed something. Every once in awhile, I will get a softban and later see a notification from Google, on my phone that I need to re-login to that account because a change is required.

The interesting thing is, the closer I got to getting banned, these notifications became more frequent. All my bots were google accounts and for a few, I never even logged into the game on my phone with that account. It's almost like it somehow is sending some kind of keep alive to verify if your running on an actual device.

takenek commented 7 years ago

Hello My all 10 bots get ban when i reach lvl 27 #4576 the most funny my bot "sleep" for 16 hours and walking only for max 8 hours... so i dont lvling too fast... Every time i got "failed to get game data" when i login from normal phone... i dont get any e-mail about ban or something just bot can`t login with info about permban and on phone all the time "failed to get game data".

Best Regards TaKeN

mjmadsen commented 7 years ago

The email seems to come several days later, as if there is some manual review taking place. It could also be another means to disguise how accounts are getting banned.

takenek commented 7 years ago

some ppl report here get e-mail after get a ban.. i got something like 10 bans and 0 e-mails from Nantic - someone know from what e-mail address coming mail when get a ban? Mayby my filters on server delete this for spaming :)

ghost commented 7 years ago

@takenek pokemon-go-support@nianticlabs.com

supergithubo commented 7 years ago

I was banned last week Aug 16 and received permanent ban email on Aug 21. @takenek

takenek commented 7 years ago

i get few bans and never got a e-mail :-) i just check logs and only got from newsletter nothing else...

dwallis2012 commented 7 years ago

just got banned this morning after stopping my bot 1 week ago, have been intermittantly playing since then .... no ban email ... have appealed lets see what happens :)

seehuily commented 7 years ago

They could also use IP detection. e.g. 1). IP address belongs to city XXX, but you actual in another city according to your cord. 2). more then 2 players in the same LAN with same public IP, one is in City A, the other is in City B.

VPN could possibly be used but you could also become a suspect.

I had 3 active accounts, I used them very carefully but still got banned. they all got banned when they reached above level 20.

Also I remember I have another account. I never used bot but a Android simulator called bluestacks on that. Also got perm banned.

ipenpen commented 7 years ago

I wonder that, is there anyone, who use this bot more than 2 weeks and have not banned yet? May be that is good case for us keeping hope xD

ebbrey commented 7 years ago

Week old bot lvl 25 banned a few hours ago. Used move to map pokemon. Visited 3500 stops in one week. Walked 250km. Bottet 10h a day aprox. The km must be a big red flag. Will try and make the bot be limited to a very small area to hold km down. And half the duration per day.

dwallis2012 commented 7 years ago

you need the bot to send the same info to server that the phone app does

geosdc19 commented 7 years ago

@Rizbe You might actually be onto something; the same thing happened to me before having the Google account banned. Kept getting Google notifications on my phone more and more often. Could it be that Google detects your account moving around far away from your phone's location? If that's the case, it would also explain why my PTC account is still functional.

Rizbe commented 7 years ago

@geosdc19 to me it seems like it's trying to verify if your mobile device is being used or where it is vs where you are in the game.

sohje commented 7 years ago

Ok, seems they blocked temp-mail services i used before on registration ;]

DDaroc commented 7 years ago

Dinged 20 yesterday, banned today.

Played very save, only ~3 hours a day and some days not at all. Took me 2.5 weeks to reach 20. Used several config files, different routes. Never warped too far and took travel times into account. Always used my mobile data connection to play making sure I had a different IP each time I started the bot.

What I noticed is that my phone (Android) sends tcp/ip packages to the Niantic servers even while I wasn't playing the game on the phone... with my bot running on my laptop this might be cause for concerns.

Could it be the case that Niantic markes the phone it's serial as "bot" phone, making every other account played on the phone a very likely bot?

I will try once more, now without installing the app on the phone and see how that goes.

DDaroc commented 7 years ago

@Rizbe, true, I had that two days ago, I had to re-login to that account on my phone because a change is required.

I didn't get a softban though, or maybe I should say I'm not aware of getting a softban. I don't recall if I was botting at the moment of the required change on my phone.

scaule commented 7 years ago

Yop , I run a new bot with classic settings and he is lvl 17 and not banned yet (6 hours/day ). @Rizbe, True for me too on my banned accounts (I had to re-login to that account on my phone). Anyone tried to use android phone as vpn server to have same ip as your phone ?

takenek commented 7 years ago

Hello Guys, i just get 5 bans on random lvl accounts.... Another wave of bans coming?

supergithubo commented 7 years ago

I read about the in-game captcha on the next release and the changes on UK6. How can we survive the next update?

ebbrey commented 7 years ago

Feels like it's over. Starting 10 bots with rage configuration. And having a beer.

avexus commented 7 years ago

Not bot related, but i'm wondering if anyone use phone and sniping only (via third party software) get banned? We need to establish what can cause accounts to be banned. Bots and Bluestacks can get us banned. So far as we know.

innrwrld commented 7 years ago

I think I'll jump on Slack to discuss but maybe also add my thoughts into a feature request here for sanity check.

billychstrfld commented 7 years ago

Used my new account for a couple of weeks, 1-2 hours a day almost every day in the same area. Never fought in a gym but I chose the team. No sniping, no teleport. Probably never softbanned. I got to level 19 and I stopped using it for a day. Next day I got banned without even the bot getting started... Also, I used sometimes the "Tap to Walk" cracked app from my phone and played for few minutes... From what I did and what I read, human behavior is not enough to avoid permabans.

EDIT: I also changed the config increasing the timing of everything (making the bot slower), but it didn't seem to help!

ebbrey commented 7 years ago

I have used fakegps on a rooted device with mock mock locations. Legit to 22, Faked to 30. Banned. I have used atleast 10 bots last month always updated to the latest dev. Most i got to is lvl 34. All of them except one account (now lvl 23) are banned (catching pokemons right now). Going to let the last account hit 25 to confirm yet another ban hammer. I used snipe in the beginnning when it came out. I think its safe to say that all old bot accounts had "no chance" so ill skip to the latest. As the bot has become better and better ive used the "safest" settings. No snipe, max 800. Small area. Walk speeds. Random pause. No evolve. etc. Down to the last 3 accounts, only using the bot 8-10 hours aday with random pause. Never on at night. Running ip's from the same country i bot in. Never using more than 1 bot on the same computer. Map worker's on VPN from work computers (lol) so the bot has its own set of 3 workers that are not on the same ip. I feel like the next step here is not to lower the settings of the bots, until it can survive lvl 29 etc. (if we even can continue to use it ) But to start from bottom. Maybe set the bot to walk for 2 hours aday. In a very small area. Just autocatch a few pokemons. Then log off for several hours. Snail it's way to 30. Probobly its a big red flag that i "walked" 320km last week. And still alittle overweight IRL.

Maybe i should carry the computer around with real gps on. Go around. Turn on the bot when i can see PogoMap has found a nice snorlax etc. Catch it with the bot. Put the computer back into the car. Drive to next pokemon. Cache location off. Turn the bot on. Catch the next juicy pokemon.. Repeat. And still get banned. Feels like Niantic really wants me to use their app for this game. But im a pc gamer(!)

ebbrey commented 7 years ago

It's also weird that when i start 2 fresh accounts. And let them rage. They dont get banned at the same time. Even tho they walk to the same pokemon. Getting almost the same xp, (just catch xp that seperates). Totally it's like 1 lvl 24/25. And the 25 gets the hammer. And 24 can sometimes run to 27 before it hits the ban a day or two later. Must be more than a "computer" that reads the ban flags.

avexus commented 7 years ago

@thereyrey, They will not rage. They have a bot to do the ban too. I lost hope when one of the "legit" account at lvl 22 just botted for 2 hours and didn't play it for 10 days got banned.

ntanto commented 7 years ago

i can say bot still far from human behavior most human player will camp out at certain spot till out of pokeball and take a break to manage their pokebag best way to collect pokeball is ride or drive and spin till your bag full, manage it and spin again loop the action till get bored

bot dont have that behavior

maybe we can pull request for camp when run out of ball turn off catch and activate collect pokeball

innrwrld commented 7 years ago

@ntanto Not a bad idea. I think we can remove "move_to_fort" but given that's only going to allow for camping with no further movement, we need to have some logic triggering as you mention. I like the idea of that. Case in point: There's a small trail head ~1 mile from my residence that has 4 Pokestops & often gets a lot of attention from people dropping in, popping a lure & camping for the duration of those lures to burn at least once cycle, if not more. Might be handy to allow for such a thing, where you start there, camp a while, then after some set amount of time, exhaustion of resources or whatever, the bot then may proceed onward to local forts. In this case though, there are already forts present to replenish items, so it might be beneficial to just camp this sort of location. Just still tossing ideas.

ebbrey commented 7 years ago

@avexus yeah.. they really have a flag on botted accounts. Cant really see any account surviving. Right now im creating so many accounts. And set it up so it reaches lvl 20 within a coupple hours lol. And it semes now that every mail alias and gmail+ trick is banned as i cannot recieve any more email confirmations haha

Edit: MoveToMapPokemon just went down here. Slowly on all computers the pokemons stops appearing. Accounts still scanning. Captcha already in action?

Edit2: Removed MoveToMapPokemon, ran normal Move to fort, etc config. All bots loosing sight of pokemons and forts. 1 by 1. :dancer:

ntanto commented 7 years ago

dont know what they did with 0.35 api i lost 5 account only in 3 hours

right now running 2 with last update already run for 12 hours and expecting 20 soon will update here if it can survive

ntanto commented 7 years ago

@innrwrld here some idea camp coordinate min pokeball <<< to trigger walk around and turn off catchwork max pokeball <<< switch back to camp and turn back on catchwork

billychstrfld commented 7 years ago

what if actually the bot doesn't send any clue that is different from the app, but it's the phone app that sends a signal saying that it's a legitimate use?

mjmadsen commented 7 years ago

Just tried to start some accounts before bed and all of mine are banned.