mariokiller64 Posted November 20, 2019 Share Posted November 20, 2019 So as I'm trying to implement as many human like functions as possible, I have to know, mostly from the more developed scripters, do you bot 24/7 without bans? Quote Link to comment Share on other sites More sharing options...
IDontEB Posted November 20, 2019 Share Posted November 20, 2019 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. Quote Link to comment Share on other sites More sharing options...
mariokiller64 Posted November 20, 2019 Author Share Posted November 20, 2019 (edited) 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 November 20, 2019 by mariokiller64 Quote Link to comment Share on other sites More sharing options...
IDontEB Posted November 20, 2019 Share Posted November 20, 2019 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. Quote Link to comment Share on other sites More sharing options...
mariokiller64 Posted November 20, 2019 Author Share Posted November 20, 2019 (edited) 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 December 7, 2019 by mariokiller64 Quote Link to comment Share on other sites More sharing options...
tarxan Posted November 20, 2019 Share Posted November 20, 2019 botting f2p 24/7 is very lucrative but i need a pscript and a good amount of fresh accounts to play with Quote Link to comment Share on other sites More sharing options...
Probability Posted November 21, 2019 Share Posted November 21, 2019 (edited) 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 November 21, 2019 by Probability Quote Link to comment Share on other sites More sharing options...
BuyingHardcores Posted November 21, 2019 Share Posted November 21, 2019 na never Quote Link to comment Share on other sites More sharing options...
Hernandez2000 Posted November 25, 2019 Share Posted November 25, 2019 My case is a bit different but when I would mouse record nmz/alch I would 8-12h a day. Same 1h recording over and over till 99. Quote Link to comment Share on other sites More sharing options...