Jump to content

Do you bot 24/7?


mariokiller64

Do you bot 24/7?  

56 members have voted

  1. 1. Do you bot 24/7?

    • Yes, with my private script, no bans
      11
    • Yes, with my purchased script, no bans
      8
    • Yes, with my public script, no bans
      5
    • Yes, but it gets me banned
      10
    • no
      22


Recommended Posts

59 minutes ago, IDontEB said:

If by human like functions you mean misclicking shit and hovering over skills, it's completely useless. If by human like functions you mean having your script train other skills instead of doing only 1 thing for 24hs then it'll work.

I've added a lot of those things and it seemed to be successful for woodcutting so far, 24/7 woodcutting to 72, albeit a bit slow at 25K EXP/h on yews, but I still haven't been banned.

The reason it's so slow is because he performs a random function at every action and there are a lot of random sleep timers

webwalk, random action, random pops up, random action, dismiss random|
cut cut cut random action cut cut cut random action
walks to bank, random action, opens bank, random action, deposits item, random action.

 

But it allows me to use it 24/7 on one skill without worrying where they'll go.
I'm trying to wonder what an optimal way of antiban would be without having to sacrifice a ton of EXP/H.

It's really hard to say that no one knows what causes bans and bot detection after so many years of OS botting. I'd imagine very experienced botters would have a full on guide on how to design their script so it doesn't succumb to bans using constant trial and error (Like I did sacrificing 10+ accounts to woodcutting) But I'm noticing it's quite the opposite, with people practically saying "yeah it's impossible." but it's not impossible. You should be able to implement anything in the script that deters a detection, and it should be relatively easy.

Anti-cheating detection methods are bread and butter of game companies and it's surprising to me that no one knows how they do it just by constant trial and error. Throwing things in the script one after another until a successful non-ban happens, and then in reverse, removing one thing after another until a ban happens so to optimize exp/hr.

Edited by mariokiller64
Link to comment
Share on other sites

1 hour ago, mariokiller64 said:

I've added a lot of those things and it seemed to be successful for woodcutting so far, 24/7 woodcutting to 72, albeit a bit slow at 25K EXP/h on yews, but I still haven't been banned.

The reason it's so slow is because he performs a random function at every action and there are a lot of random sleep timers

webwalk, random action, random pops up, random action, dismiss random|
cut cut cut random action cut cut cut random action
walks to bank, random action, opens bank, random action, deposits item, random action.

 

But it allows me to use it 24/7 on one skill without worrying where they'll go.
I'm trying to wonder what an optimal way of antiban would be without having to sacrifice a ton of EXP/H.

It's really hard to say that no one knows what causes bans and bot detection after so many years of OS botting. I'd imagine very experienced botters would have a full on guide on how to design their script so it doesn't succumb to bans using constant trial and error (Like I did sacrificing 10+ accounts to woodcutting) But I'm noticing it's quite the opposite, with people practically saying "yeah it's impossible." but it's not impossible. You should be able to implement anything in the script that deters a detection, and it should be relatively easy.

Anti-cheating detection methods are bread and butter of game companies and it's surprising to me that no one knows how they do it just by constant trial and error. Throwing things in the script one after another until a successful non-ban happens, and then in reverse, removing one thing after another until a ban happens so to optimize exp/hr.

By "random action" do you mean an action that actually requires a click? Also figuring out how the ban detection works is simply black box testing until you figure out how it works. Sprinkle in a little common sense about what's feasible for them to compute on a large scale, then you end up figuring out.

Link to comment
Share on other sites

EDIT: Not helping bans after trying to go hard on multiple skills, now sure how it helped get me to woodcutting to 75 on the same AIO script though.

I implemented all of this, which I copied most of from another poster around here and added some things to it.
Don't laugh at how messy it is, I'm very new to this 😁

Also thanks to @FuryShark for spoon feeding me some code.

	/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package util;
	import java.awt.Point;
import static java.rmi.server.LogStream.log;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import org.osbot.rs07.api.model.RS2Object;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.api.ui.Tab;
import org.osbot.rs07.script.MethodProvider;
import static org.osbot.rs07.script.MethodProvider.random;
import static org.osbot.rs07.script.MethodProvider.sleep;
	/**
 *
 * @author copycat
 */
public class Antiban {
	    private final MethodProvider mp;
    private final Random random;
	    public Antiban(MethodProvider mp) {
        this.mp = mp;
        this.random = new Random();
    }
	    public void TosleepOrNa() {
        try {
            int rN = this.random.nextInt(7);
            switch (rN) {
                case 0:
                    sleep(random(100, 250));
                    break;
                case 1:
                    sleep(random(250, 500));
                    break;
                case 2:
                    sleep(random(500, 1000));
                    break;
                case 3:
                    sleep(random(1000, 1250));
                    break;
                case 4:
                    sleep(random(1250, 1500));
                    break;
                case 5:
                    break;
                case 6:
                    break;
                case 7:
                    break;
            }
        } catch (Exception e) {
        }
    }
	    public void randomInputEvent() {
        try {
            int rN = this.random.nextInt(5);
            switch (rN) {
                case 0:
                    LiketoMoveitMoveit();
                case 1:
                    LiketoMoveitMoveit();
                case 2:
                    LiketoMoveitMoveit();
                case 3:
                    moveMouseRandomly(1 + this.random.nextInt(random(4, 6)));
                    TosleepOrNa();
                    break;
                case 4:
                    TomoveOrNotToMove();
                    sleep(random(2000, 6000));
                    break;
                case 5:
                    TosleepOrNa();
                    this.mp.getMouse().move(this.mp.myPlayer().getX() + random(0, 10), this.mp.myPlayer().getY() + random(0, 10));
                    TosleepOrNa();
                    this.mp.getMouse().click(false);
                    TosleepOrNa();
                    break;
            }
        } catch (InterruptedException e) {
        }
    }
	    public void LiketoMoveitMoveit() {
        int rN = this.random.nextInt(2);
        switch (rN) {
            case 0:
                this.mp.getCamera().movePitch(this.random.nextInt(random(330, 360)));
                this.mp.getCamera().moveYaw(random(18, 22) + this.random.nextInt(random(18, 22) + this.random.nextInt(random(40, 45))));
                TosleepOrNa();
                TomoveOrNotToMove();
                break;
            case 1:
                this.mp.getCamera().movePitch(this.random.nextInt(random(330, 360)));
                TosleepOrNa();
                TomoveOrNotToMove();
                break;
            case 2:
                this.mp.getMouse().move(this.random.nextInt(random(750, 760)), this.random.nextInt(random(490, 500)));
                TosleepOrNa();
                TomoveOrNotToMove();
                break;
        }
    }
	    public void rightClickRandomObject() throws InterruptedException {
        List<RS2Object> visibleObjs = this.mp.getObjects().getAll().stream().filter(o -> o.isVisible()).collect(Collectors.toList());
        // select a random object
        int index = random(0, visibleObjs.size() - 1);
        RS2Object obj = visibleObjs.get(index);
	        if (obj != null) {
            // hover the object and right click
            TosleepOrNa();
            obj.hover();
            TosleepOrNa();
            this.mp.getMouse().click(true);
            TosleepOrNa();
            // while the menu is still open, move the mouse to a new location
            while (this.mp.getMenuAPI().isOpen()) {
                TosleepOrNa();
                moveMouseRandomly(random(0, 2));
                TosleepOrNa();
                TomoveOrNotToMove();
            }
        }
    }
	    public void randomInterfaceEvent() {
        try {
            int rN = this.random.nextInt(15);
            switch (rN) {
                case 0:
                    rightClickRandomObject();
                    TosleepOrNa();
                    break;
                case 1:
                    this.mp.getTabs().open(Tab.ACCOUNT_MANAGEMENT, true);
                    TosleepOrNa();
                    break;
                case 2:
                    this.mp.getTabs().open(Tab.ATTACK, true);
                    TosleepOrNa();
                    break;
                case 3:
                    this.mp.getTabs().open(Tab.CLANCHAT, true);
                    TosleepOrNa();
                    break;
                case 4:
                    this.mp.getTabs().open(Tab.EMOTES, true);
                    TosleepOrNa();
                    break;
                case 5:
                    this.mp.getTabs().open(Tab.EQUIPMENT, true);
                    TosleepOrNa();
                    break;
                case 6:
                    this.mp.getTabs().open(Tab.FRIENDS, true);
                    TosleepOrNa();
                    break;
                case 7:
                    this.mp.getTabs().open(Tab.INVENTORY, true);
                    TosleepOrNa();
                    break;
                case 8:
                    this.mp.getTabs().open(Tab.LOGOUT, true);
                    TosleepOrNa();
                    break;
                case 9:
                    this.mp.getTabs().open(Tab.PRAYER, true);
                    TosleepOrNa();
                    break;
                case 10:
                    this.mp.getTabs().open(Tab.MAGIC, true);
                    TosleepOrNa();
                    break;
                case 11:
                    this.mp.getTabs().open(Tab.MUSIC, true);
                    TosleepOrNa();
                    break;
                case 12:
                    this.mp.getTabs().open(Tab.QUEST, true);
                    TosleepOrNa();
                    break;
                case 13:
                    this.mp.getTabs().open(Tab.SETTINGS, true);
                    TosleepOrNa();
                    break;
                case 14:
                    this.mp.getTabs().open(Tab.SKILLS, true);
                    TosleepOrNa();
                    break;
                case 15:
                    TosleepOrNa();
                    break;
            }
        } catch (InterruptedException e) {
        }
    }
	    public void moveMouseRandomly(int numberOfPositions) {
        Point[] pointArray = new Point[numberOfPositions];
        for (int i = 0; i < pointArray.length; i++) {
            pointArray = new Point(-10 + this.random.nextInt(850), -10 + this.random.nextInt(550));
        }
        for (int i = 0; i < pointArray.length; i++) {
            this.mp.getMouse().move(pointArray.x, pointArray.y);
            try {
                sleep(random(100, 300));
            } catch (InterruptedException e) { 
	            }
        }
    } 
	    private long lastInteractionTime = System.currentTimeMillis();
    private int timer = 5000;
    private int timerBank = 1000; 
	    private boolean shouldReset() {
        return (System.currentTimeMillis() - lastInteractionTime) > timer;
    } 
	    private boolean shouldResetBank() {
        return (System.currentTimeMillis() - lastInteractionTime) > timerBank;
    } 
	    private void AntiBankBanTimer() {
        lastInteractionTime = System.currentTimeMillis();
        timer = random(100, 10000);
    } 
	    private void Antibantimer() {
        lastInteractionTime = System.currentTimeMillis();
        timer = random(5000, 30000);
    } 
	    public void SumFun() {
        if (shouldReset()) {
            // perform anti ban
            Antibantimer();
            try {
                int rN = new Random().nextInt(8);
                switch (rN) {
                    case 0:
                        randomInputEvent();
                        TosleepOrNa();
                        break;
                    case 1:
                        randomInputEvent();
                        TosleepOrNa();
                        break;
                    case 2:
                        randomInterfaceEvent();
                        TosleepOrNa();
                        break;
                    case 3:
                        randomInterfaceEvent();
                        TosleepOrNa();
                        break;
                    case 4:
                        moveMouseRandomly(random(1, 5));
                        TosleepOrNa();
                        break;
                    case 5:
                        moveMouseRandomly(random(1, 5));
                        TosleepOrNa();
                        sleep(random(2000, 10000));
                        break;
                    case 6:
                        rightClickRandomObject();
                        TosleepOrNa();
                        break;
                    case 7:
                        rightClickRandomObject();
                        TosleepOrNa();
                        break;
                    case 8:
                        rightClickRandomObject();
                        TosleepOrNa();
                        break;
                }
            } catch (InterruptedException e) {
            }
        }
    } 
	    public void BankAntiban() {
        if (shouldResetBank()) {
            // perform anti ban
            AntiBankBanTimer();
            try {
                int rN = new Random().nextInt(8);
                switch (rN) {
                    case 0:
                        randomInputEvent();
                        TosleepOrNa();
                        break;
                    case 1:
                        randomInputEvent();
                        TosleepOrNa();
                        break;
                    case 2:
                        rightClickRandomObject();
                        TosleepOrNa();
                        break;
                    case 3:
                        moveMouseRandomly(random(1, 5));
                        TosleepOrNa();
                        break;
                    case 4:
                        moveMouseRandomly(random(1, 5));
                        TosleepOrNa();
                        TomoveOrNotToMove();
                        break;
                    case 5:
                        moveMouseRandomly(random(1, 5));
                        TomoveOrNotToMove();
                        sleep(random(2000, 10000));
                        break;
                    case 6:
                        rightClickRandomObject();
                        TosleepOrNa();
                        break;
                    case 7:
                        randomInputEvent();
                        TosleepOrNa();
                        break;
                    case 8:
                        rightClickRandomObject();
                        TosleepOrNa();
                        break;
                }
            } catch (InterruptedException e) {
            }
        }
    } 
	    public void TomoveOrNotToMove() {
        int rN = this.random.nextInt(1);
        switch (rN) {
            case 0:
                this.mp.getMouse().moveOutsideScreen();
                TosleepOrNa();
                break;
            case 1:
                break;
        }
    }
} 
	
Edited by mariokiller64
Link to comment
Share on other sites

I bot for 8-12 hours a day and have put in enough practices so as to handle bans *touch wood. I write my own private scripts.

I found that botting during Jagex work hours leads to very quick bans, so for some reason I can't crack that magic 24 hour mark. Not complaining though :)

Edited by Probability
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...