Question Best way to implement antiban and breakhandlers?

Discussion in 'Developer Support' started by Serene, May 21, 2016.

  1. I've seen a lot of posts on how to solve randoms, but not any on how to implement breaks or antiban. Are there any good antiban techniques that I can do besides the occasional pitch/yaw camera change? And how would I go about writing that in a small task-based bot?

    Also what about breaks? Like if I ask the user for a break range, any tutorials/suggestions on where or how to put that in my code?

    Thanks
     
    #1 Serene, May 21, 2016
    Last edited: May 21, 2016
  2. if(stopWatch.getRuntime(TimeUnit.MINUTES)%60 == 0){
    dontRunForHour = false;
    }
    boolean randInt = Random.nextBoolean();
    if (stopWatch.getRuntime() != 0) {
    if(breakTime != 0 && countTime == 0){
    randInteger = Random.nextInt(0, 60);
    actualBreakTime = breakTime + Random.nextInt(-2, 2);
    countTime++;
    }
    if(randInteger != 0 && randInteger == stopWatch.getRuntime(TimeUnit.MINUTES) && !dontRunForHour){
    currentTaskString = "Break";
    OSRSTab.STATS.open();
    (Interfaces.getAt(320,10)).hover();
    Execution.delay(5000);
    Execution.delay(actualBreakTime*1000*60);
    countTime--;
    dontRunForHour = true;
    }
    --- Double Post Merged, May 21, 2016, Original Post Date: May 21, 2016 ---
    This is how i do breaks each hour. the int actualBreakTime is from the user input, and then + or - 1 from that. I am not sure if this works as i wanted, but i have seen it take a break towards the end of the first hour it was run, so i know it at least works once. Sorry if it kinda confusing, it has other antiban in it as well
     
  3. Honestly, things like camera pitch/yaw changes, openining inventory, looking at skills, examining players etc. In the end it will become as much of a pattern as there would've been if there hadn't been any.
    So would precise scheduleed breaks for set amounts of time.

    Let's say that a user "plays" for 4 hours.
    In those 4 hours there is a scheduled break every hour and every 5-10 minutes a random anti pattern action is taken.
    For that first day It's all swell, it looked like the user was actually doing stuff.
    Now let's say that user "plays" 4 hours everyday.
    Same breaks, same anti pattern, every day for 4 hours for a week. Now that's a pattern right there.

    The best anti pattern a user can get is not using the same bot for the same thing for longer periods of time.

    But then ofc, you should try to make the things your bot does, look as human as possible :)
     
    Derk likes this.
  4. I am not using any antiban whatsoever since the creation of my bots. Clouse does a great job of being randomized so I don't have to worry so much about antiban. Like you said, antipatterns over a long period of time will become patterns themselves.
     
  5. So the occasional camera yaw/pitch change won't really do much. I wouldn't really need to implement it then for something like a bot focusing on a bank skill like magic?
     
  6. Well ask yourself this. How would you train the skill manually?
     
  7. I almost never check my stats, especially if I'm using OSBuddy. Things like moving your mouse "off the screen" can help I guess though, same with the occasional AFK, task dependent.

    Other than that, as the others have said, antiban becomes just as profilable (if not more so) than no-antiban.
     
  8. Well implemented, smart anti-pattern would help, but usually this relies on the anti-pattern knowing when it should logically occur, not just having it occur at random intervals. Poorly implemented anti-ban can negatively effect experience rates, and as people have mentioned, create patterns :p
     
  9. Well here's a way of doing one, instead of doing anti-patterns why not try something different.

    For example lets take woodcutting in for this. When you woodcut you don't want the bot to be click on the same tree on the same spot with the same camera angle view. So make it randomize everything, so now it's not clicking on the same spot of the tree, the camera is at a random angle view each time. Okay you solved that problem, now you got 3 other problems to complete.

    Let's say the user wanted to bank the yews they are cutting next to the Grand Exchange, you've officially solved the anti-pattern with random patterns of cutting the tree. Your next goal is to solve the walking pattern. Bots usually get detected by using the same walking pattern to the bank and back or cutting the trees. You would have to use a random path pattern so each step the player is going to the selected path to the tree or bank, but not the same path it used before. Even the slightest tile change can make a huge difference so now you are going to the selected path except at a different tile range (x y coords). So now the walking pattern, the camera pattern, and the clicking pattern is all random and never the same (once in a while it can be the same but never repetitive to make a pattern).

    Okay now lets say the player is banking, and you want to deposit all the items in the inventory to the bank. Well first your gonna have to use the same random pattern like you would clicking on a tree except this time clicking the npc. So now random camera angle view and random clicking location on npc (remember never the same you don't want it to be noticeable and you want it to be very human like). Now when you open the bank and deposit the logs you want to use the all inventory items to bank icon. You want to randomize the clicking locations on that icon cause obviously not every player from the game is going to click on the exact same location of the icon.

    Now your just down to making a break option. Randomize the break option for random times. You do not want to make a repetitive break option where its one hour off and one hour one it's too much of pattern to catch on. So for example two hours of botting and one hour of break. Then the next time 30 minutes of botting and 5 minutes and 37 seconds of break. Make it human like.

    And obviously for the people using the bot don't want the bot running 24/7 so it's up to the user then when enough is enough and go find something else to do or completely stop using the bot for a while. And too be even more human like recommend players to keep an eye on their bot because when people start talking and you don't talk back while doing something it's going to raise a red flag to other people and they will start reporting you.

    I hope you all get the general idea that there's nothing impossible about this. It all involves and deals with math that is not complicated. I will be making a bot soon and that's what ts going to have in it so Jagex cannot possibly think it's a bot and no way in hell could they know because the pattern is not repetitive like other bots have it will be completely random patterns.
     
  10. Clouse (which is already in place) handles 80% of that already.
     
  11. 80% whats the other 20% it doesn't cover I'm curious to find out what it covers and what it doesn't cover.
     
  12. Other 20:

    5% coder. You can make changes here and there to increase randomness, but at the end of the day too much randomness is just as profilable as not enough.
    15% user. If the user isn't botting the way they'd normally play their account (going 15 hours WCing at a time), not amount of "anti-ban" is going to save you.
     
  13. I'm pretty sure the main goal is to at least fit in with the crowd enough to avoid detection, aka avoiding setting off too many flags. In that case, you need to not be an outlier.

    How do you become an outlier?

    - Clicking the same thing over and over again without result. For example, trying to deposit an unbankable item 3000x times in a row, clicking an object you can't reach over and over again, etc.
    - Botting inhuman hours.
    - Account sharing or using anything other than a local connection (being a connection that seems realistic, you probably wouldn't jump from Germany to the US if you were doing legitimate activities)

    Effective strategies:

    - Counters for possible repeatable problems as well as prevention. By preparing for as many problems as possible you can, you reduce the chances that the bot user will become an outlier. If you logged the amount of times that the person received the message "You can't reach that.", you could technically stop the bot and prevent the user from doing it 3000x times and becoming an outlier. For prevention you need to think what would logically break your bot, and prevent it.
    - Encouraging bot use that will result in realistic play time, adding break options, etc.

    - I'll add more when I think of more.
     
    #13 Furor, May 24, 2016
    Last edited: May 24, 2016
    Serene likes this.
  14. The problem with random actions is that people don't play like that. I hardly ever move my camera unless I can't reach what I'm trying to reach, and I always click towards a certain location when I walk because it feels faster to me.
    Having a bot that uses a random camera angle and random shortdistance walking on every action is as big a pattern as one hardly randomized at all. And making it "random" when it's gonna change its pattern is also gonna look like a pattern.

    Ofc you wouldn't move the mouse in a complete straightline or click the exact same pixel everytime, but Clouse handles those things :)

    As Slash said, you need AI if you wanna help your user, and that isn't always as easy as it might sound ^^
     

Share This Page

Loading...