Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Human Behavior - Reducing bot detection #3808

Closed
BreezeRo opened this issue Aug 13, 2016 · 41 comments
Closed

Human Behavior - Reducing bot detection #3808

BreezeRo opened this issue Aug 13, 2016 · 41 comments

Comments

@BreezeRo
Copy link
Contributor

BreezeRo commented Aug 13, 2016

These are a few ideas I was sitting on today that may help

  • A fake "Home"? Perhaps the bot should have a "home" set in an area so that it goes to this location from time to time, especially before executing the sleep task (may appear more human, could even go as far as making sure the location is on a residential address (google api) )
    -- perhaps the periodic stops could be at locals (restaurants ie.) in the area near the player (using google api)

Also one small issue is that if the bot crashes there is a possibility it will not cache the proper last known location which results in possibly being detected as a teleport when the user relogs (since the cached coordinates do not match the server's)

@Arderos
Copy link

Arderos commented Aug 13, 2016

Another great idea is that bot should not walk through buildings. There is a bot called Hackemon that can do it, btw.

@BreezeRo
Copy link
Contributor Author

that shouldn't be too hard using the map api still (for road directions for example)

@supercourgette
Copy link
Contributor

Sorry it is already implemented, but here is a few more:

  • For all kind of task (such as nicknaming, disregard items, ...) propose an random interval before the task is actually done / started.
  • Do not always catch very common pokemons
  • I don't know if rotation data are saved, but maybe sending realistic rotation data when walking / catching pokemons
  • If it's already implemented, maybe propose a new config file with a realistic human behavior.

@ponytails
Copy link

what is this function for?

https://snag.gy/nwEkHs.jpg

please see the red circled... and kindly explain how does it help our bots

@gunarto90
Copy link

@ponytails I see that before they implemented this function, the bot always throws the pokeballs very accurately (maximum exp gained) which is kind of impossible for human to do. That snippets of code allow the user to set the probability of pokeball throw, either it is normal or nice or great or excellent.

Hope this helps answering your question.

@ponytails
Copy link

@gunarto90

thanks for that quick answer... but it seems i still get 210 exp each time i caught pokemon ?

@gunarto90
Copy link

@ponytails maybe you need to restart the bot to make the config file works

@ponytails
Copy link

i did... no error.. but still i get 210 exp.. not random exp

@gunarto90
Copy link

@ponytails hmm, I am not sure then. because yesterday, I am able to see the bot can get varying exp. but I can't try it today. My bot suddenly closed and cannot log in. so I might not be able to crosscheck with you.

@ponytails
Copy link

@gunarto90

oh.. alright.. i think because of massive banning from niantic..

@VictorChen
Copy link
Contributor

I doubt they'll ban you because you never go "home". It's totally possible for a legit person to only play when they are outside. They're not gonna risk banning legit players unless they're 100% certain?

@andirapandi
Copy link

Walking and action randomization would be great and should be easy to do too.
Like give a range for the speed, do occasional breaks.
Same with actions: random waiting time before performaing actions.

@rahmanash777
Copy link

When niantic changed their response (unknown 6 issue) and developers tried to crack it, i read that they know (at least in theory) how niantic can detect bots etc and warned. So if some one can know the full details of that, we can develop a roundabout way and possibly bypass the ban.

@iruy
Copy link

iruy commented Aug 13, 2016

@Arderos when I proposed to let the bot follow streets instead of going throug buildings I just got downvoted and people told me that I can manage that with Paths... Now that Niantic started the ban wave, this seems a good idea.....ahah Coherence :D

@Blackatap
Copy link

Please add % of nice/great/perfect throw & curved balls.. no human is going to score 210exp each catch!

@BreezeRo
Copy link
Contributor Author

that's already in the dev branch @Blackatap a32f24e

@ponytails
Copy link

@VINCENTko

i still get 210 exp each catched

@BreezeRo
Copy link
Contributor Author

BreezeRo commented Aug 13, 2016

I can't reproduce @ponytails, it works fine for me - did you lower the thresholds from default? Please join the slack chat for #help, let's keep this issue here ontopic

@titogarrido
Copy link

@VINCENTko Mine is also always set to 210XP...

"catch_randomize_reticle_factor": 1.0,
"catch_randomize_spin_factor": 1.0,
"min_ultraball_to_keep": 10,
"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.6
},

What should I change here?

@ponytails
Copy link

@VINCENTko

can i see your config ? without ur private parts

@Y4kuzi
Copy link

Y4kuzi commented Aug 13, 2016

Same for me, even after removing

"catch_randomize_reticle_factor": 1.0,
"catch_randomize_spin_factor": 1.0,

It still always gives 210xp.

@BreezeRo
Copy link
Contributor Author

@Y4kuzi if you remove these lines (as in, undefine them in the config), they will revert to the "hardcoded" values, you need to reduce them, 1.0 being 100%

@Y4kuzi
Copy link

Y4kuzi commented Aug 13, 2016

I know, but I was talking about the new method, it doesn't work for me so I guess I'll just use the old method until it gets fixed.

@maxprzemo
Copy link

@Y4kuzi
set
"catch_randomize_reticle_factor": 0.0, "catch_randomize_spin_factor": 0.0,
and
"catch_throw_parameters": { "excellent_rate": 0.1, "great_rate": 0.1, "nice_rate": 0.2, "normal_rate": 0.6, "spin_success_rate" : 0.0 },
and test

@Y4kuzi
Copy link

Y4kuzi commented Aug 13, 2016

Seems to work now. Does that mean the sum of the parameters should always be 10?

@accident12123
Copy link

I didn't notice this earlier but I added in 2 requests that I think is missing to get more human:

They are not rushing after priority pokemon and trying to stay more in a small defined area before heading futher away. The other is variable walk speeds and a list of when I think I would drag my ass, want to stop and let pokemon come to me, and when it's time to get some pep in your step.

@ghost
Copy link

ghost commented Aug 14, 2016

i dont understand why ppls get a softban there, i dont get any bans and use mostly the standard config (just added to evolve everything, just keep the best 3 pokemon and kick away some items). i just get the messsage that im soft banned after i close the bot and instant (within a minute) restart it, but it fix it very fast.

could it also epens in what cuntry u live? like usa get more attention than germany?

@DiegoRBaquero
Copy link

To randomize walk speed by +/- 50% you can do this:

in step_walker.py add from random import random as second line. And replace self.speed = speed with self.speed = speed + speed * 0.5 * ((random()*2) - 1) 😄

You can change the 0.5 to the % you want to randomize by.

@DiegoRBaquero
Copy link

DiegoRBaquero commented Aug 14, 2016

Has anyone thought about the altitude in the location? I think we should be able to configure a min-max you can set for your own city.

@g2384
Copy link

g2384 commented Aug 14, 2016

Have you check that if you just stand at a stop, never move, only catch nearby pokemon, for 24h? Low exp but safe?

@maxprzemo
Copy link

@DiegoRBaquero
PokemonGo-Bot/pokemongo_bot/step_walker.py", line 22, in __init__ self.speed = speed + speed * 0.5 * ((random()*2) - 1) NameError: global name 'random' is not defined
did not work

@DiegoRBaquero
Copy link

@maxprzemo read my comment again, you missed something.

@maxprzemo
Copy link

@DiegoRBaquero
My mistake :)
from random import random

@maxprzemo
Copy link

@DiegoRBaquero
0.5
is 50%
1.0
is 100% ?

@DiegoRBaquero
Copy link

@maxprzemo yup.

@maxprzemo
Copy link

@DiegoRBaquero
Thank you :)
Python is not my favorite programming language.

@DiegoRBaquero
Copy link

@maxprzemo I've actually never done anything in Python besides these small edits on this bot 😆 😋

@k4n30
Copy link
Contributor

k4n30 commented Aug 17, 2016

@breezelo Can you please review #3872 & #3943 and update this feature request accordingly based on what has been added. We only need to track what is still left to be done

Let me know if you have any issues :)

@BreezeRo
Copy link
Contributor Author

Updated @k4n30, had notifications off sorry about that

@k4n30
Copy link
Contributor

k4n30 commented Aug 18, 2016

@breezelo Your last feature request is already covered in #3773 so rather than have duplicates (to be fair it was created before this one), are you happy to close this?

@BreezeRo
Copy link
Contributor Author

satisfied & closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests