Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Buy OSRS Gold

Sell OSRS Gold
Sign in to follow this  

ABCL question

Recommended Posts

Hello, I've made a couple of scripts in the past few weeks and am looking into implementing ABCL10 to them now.

I've read the guide TRiLeZ made, and its pretty clear.

The only thing im wondering is, does there need to be a delay after you select a magic spell, activate prayer, or interact with an object?

Like there is a delay after interacting with items.




Share this post

Link to post
Share on other sites

Magic Spell would depend on if it is a combat related spell (i.e. casting on an NPC) which would be ABCUtil#waitNewOrSwitchDelay(long last_busy_time, boolean combat), if it is High Alchemy however, you may be better off using a standard deviation sleep to fine tune a randomized delay. See General#randomSD(double min, double max, double mean, double sd). This of course would depend on the implementation of your script whether you already had the spell activated and were waiting to cast it on a new target that you are anticipating to spawn.


Activating prayer would again depend on the event, randomSD may be best.


Interacting with objects would best be solved by ABCUtil#waitNewOrSwitchDelay(long last_busy_time, boolean combat)

Share this post

Link to post
Share on other sites



In my case I will need to use a standard deviation sleep, as I'll be casting a non-combat spell which won't be casted on a newly spawned object.

And for the object interaction, if my scripts climbs a ladder it would look like this?

        if (ladder!=null){            if (ladder.click("Climb-up") {                ABCUtil.waitNewOrSwitchDelay(System.currentTimeMillis(), false);            }        }


Share this post

Link to post
Share on other sites

The sleep should occur before the action, in addition you should store a long last_busy_time as a global variable and set that as the current time after.


ABCUtil.waitNewOrSwitchDelay(last_busy_time, false);

if (ladder.click("Climb-up")

     last_busy_time = System.currentTimeMillis();

  • Like 1

Share this post

Link to post
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.

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.

Sign in to follow this  

  • Similar Content

    • By Red_Spark
      Red_ClayMaster is an open source soft clay making script.It will take empty buckets from Edgeville bank and fill them up with water.After all the buckets have been filled it will withdraw clay from the bank and start making soft clay.It will do this until it runs out of clay .
      Red_ClayMaster V2 is here!!!!!!!!!!
      I have re-written the framework, so I can expand on it easier.It also works a lot smoother now and it has passed my overnight test(Ran for 7h:42m made 8,3k soft clay, the only reason it stopped was because it ran out of clay )
      Starting the script:
      Start the script in Edgeville with and empty inventory.
      Make sure you have the supply in the bank
      Make sure roof are toggle off
      GUI Explained:

      Know Bugs:
      LogIn failing sometimes FIXED(13/01/2016)
      World Hoping
      GUI-Pick what you want to do
      Anti-Ban-Full ABCL10 compliance  (might not work as intended need to test it)
      Fast Dynamic clicking-Accenture and fast clicking
      Dynamic sleep/wait
      Have a suggestion?
      Feel free to post it. You can also pm or even contact me through skype. Just click the red Add My Skype button in my signature to add me to your skype
      Script Repository Link
      Need to implement ABC2 instead of ABC1 Done(will still tweak it a bit)
      If you're interested in the source code please go to this topic:
      2.5 Date 11/04/2019
      Updated IDs
      Updated World Hoping
      2.5 Date 20/01/2016
      Upgraded to ABC2(new Tribot Anit-Ban)
      2.4 Date 21/12/2015
      Added World Hoping
      2.3 Date 19/12/2015
      If the bot ends up outside the bank while making soft clay. It will run back to the bank(even if the bank is off-screen)
      2.2 Date 18/12/2015
      FIXED fail-safes in the script
      More info on this topic:https://tribot.org/forums/topic/58881-betared-claymasterfirst-script/
    • By zdogg
      I was baby sitting my bot for a while. When it tried to hop worlds it logged in and i was suddenly at tutorial island stuck in the customization menu .. It did not let me click accept, just let me choose to change the avatar specialization.
      If anyone else has experienced this, let me know!
      I think it would be suitable to ask scriptwriters to implement this back up code, in case this instance of bot detection? does incur.
      You never know, could 1 of many Jagex bot dectections.. Maybe with specific ID's too.
    • By Andrew Cohen
      i was wondering what everyones script of choice to make alot of money is? i have just been scammed of 87mil and in need of making that back. Also Wondering out of all the skill bots out there, what is the safest one to use that will not get me banned if i were to use it on a main because a premium script from here has gotten me banned in the past. Im now an extended VIP and reading about the benefits so hopefully my luck will be better.
    • By TRiLeZ
      ABC2 is the second version of TRiBot's Anti-Ban Compliance utility, whose aim is to provide scripts with a standardized anti-ban, backed by character profiles. ABC2 has been built upon statistical analysis of human playing data, making our anti-ban the most human-like on the market. Read more about the importance of modeling human playing data here: https://tribot.org/forums/topic/60719-tribot-release-9300-0-abc2/.
      So now you must be wondering how to implement ABC2 in your script. First, I will link the main utility: https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html. Each script should use one instance of ABCUtil, unless the script switches RuneScape accounts during runtime. Since each ABCUtil instance is tied to a single character profile for an account, the script must create a new ABCUtil instance if a new RuneScape account starts to be used throughout the runtime of the script.
      Upon creating a new ABCUtil instance, a thread will be started which is in charge of tracking XP gains, and making the mouse enter/leave the game screen. For this reason, it is important to call ABCUtil#close when you are finished with a specific ABCUtil instance to stop the background thread from executing, and to clean-up.
      Now, there are four types of scenarios which ABCUtil oversees:
      Timed Actions Tab Checking (Pts: 2) ABCUtil#shouldCheckTabs ABCUtil#checkTabs XP Checking (Pts: 4) ABCUtil#shouldCheckXP ABCUtil#checkXP Entity Examining (Pts: 1) ABCUtil#shouldExamineEntity ABCUtil#examineEntity Mouse Exiting (Game Screen) (Pts: 10) ABCUtil#shouldLeaveGame ABCUtil#leaveGame Mouse Movement (Pts: 2) ABCUtil#shouldMoveMouse ABCUtil#moveMouse Mouse Pickup (Pts: 2) ABCUtil#shouldPickupMouse ABCUtil#pickupMouse Mouse Right Click (Pts: 2) ABCUtil#shouldRightClick ABCUtil#rightClick Camera Rotating (Pts: 2) ABCUtil#shouldRotateCamera ABCUtil#rotateCamera Preferences Open Bank Preference (Pts: 2) ABCUtil#generateOpenBankPreference Tab Switch Preference (Pts: 2) ABCUtil#generateTabSwitchPreference Walking Preference (Pts: 2) ABCUtil#generateWalkingPreference Next Target Preference (Pts: 4) ABCUtil#selectNextTarget Action Conditions HP to Eat At (Pts: 4) ABCUtil#generateEatAtHP Energy to Activate Run At (Pts: 4) ABCUtil#generateRunActivation Moving to Anticipated Location (Pts: 3) ABCUtil#shouldMoveToAnticipated Resource Switching Upon High Competition (Pts: 1) ABCUtil#shouldSwitchResources Next Target Hovering (Pts: 8) ABCUtil#shouldHover Next Target Menu Opening (Pts: 6) ABCUtil#shouldOpenMenu Reaction Times Generating Reaction Times (Pts: 20) ABCUtil#generateReactionTime https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateReactionTime-- or https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateReactionTime-long- Generating Supporting Tracker Information (Pts: 10) ABCUtil#generateTrackers https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateTrackers-- or https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateTrackers-long- Sleeping for the Length of the Reaction Time (Pts: 10) ABCUtil#sleep Timed Actions
      These are actions which are performed based on internal timers. For each timed action, simply use the should method to check if you should perform the action. If true, call the other corresponding method to perform the action. These actions should only be performed when the player isn't particularly busy at the time. Ex: If the player is woodcutting, these actions should be checked/performed while chopping down the tree.
      Example on how to use the methods:
      // Here our player is idling, so we can check/perform the timed actions. if (this.abc_util.shouldCheckTabs()) this.abc_util.checkTabs(); if (this.abc_util.shouldCheckXP()) this.abc_util.checkXP(); if (this.abc_util.shouldExamineEntity()) this.abc_util.examineEntity(); if (this.abc_util.shouldMoveMouse()) this.abc_util.moveMouse(); if (this.abc_util.shouldPickupMouse()) this.abc_util.pickupMouse(); if (this.abc_util.shouldRightClick()) this.abc_util.rightClick(); if (this.abc_util.shouldRotateCamera()) this.abc_util.rotateCamera(); if (this.abc_util.shouldLeaveGame()) this.abc_util.leaveGame(); Preferences
      These are preferred ways of doing things as specified by the player's character profile. Note that the preference generated by each method isn't constant, so we should not store the returned value of the generation method. So when an area covered by ABC preferences comes up, we must call the generation method, and act upon the returned value.
      Example: Let's say we want to open the bank using custom methods. We then use ABCUtil#generateOpenBankPreference to generate the preferred way to open the bank.
      final OpenBankPreference pref = this.abc_util.generateOpenBankPreference(); switch (pref) { case BANKER: openBankBanker(); break; case BOOTH: openBankBooth(); break; default: throw new RuntimeException("Unhandled open bank preference."); } Note that Banking#openBank, GameTab#open, and web walking all take ABC preferences into account, so we don't have to worry about handling preferences if we use those methods.
      Next Target Preference
      ABCUtil#selectNextTarget selects the positionable entity from the given list which should be our next target.  We should store this value until we switch targets (i.e. the entity which we are interacting with), because the output of this method isn't constant. I.e. We call this method to determine which entity to interact with next, and store the returned value so we aren't constantly calling this method. We can re-call this method and re-store the returned value when we move on to a different target entity.
      If an entity spawns which is closer than the original closest entity, then we can re-call this method to re-select the next target entity. Otherwise, we should stick with the stored value.
      Note that when we chose an entity which is not the closest, that entity will be within a close distance to the closest, and if the entity implements Clickable07, we will check if it is clickable via Clickable07#isClickable.
      final RSObject[] objects = getPossibleTargets(); if (objects == null || objects.length < 1) return; final RSObject next_target = (RSObject) this.abc_util.selectNextTarget(objects); Action Conditions
      These are actions which depend on a condition generated by ABCUtil. Note that the conditions generated by each method isn't persistent, and we want a certain level of persistence for each type of action. Therefore, we must store the returned value of the methods for a certain period of time, specified below.
      HP to Eat At
      ABCUtil#generateEatAtHP will generate the hitpoints percentage at which we should eat at. We store the generated value and use it until we eat the next food item. At that time, we generate a new value and store it.
      int eat_at = this.abc_util.generateEatAtHP(); // Global variable, persistent... // Inside of a local method if (getHPPercent() <= this.eat_at) { eatFood(); this.eat_at = this.abc_util.generateEatAtHP(); // Generate a new HP percentage to eat at } Energy to Activate Run At
      ABCUtil#generateRunActivation will generate the run energy at which we should activate run at. We store the generated value and use it until we turn run on. At that time, we generate a new value and store it.
      int run_at = this.abc_util.generateRunActivation(); // Global variable, persistent... // Inside of a local method if (!Game.isRunOn() && Game.getRunEnergy() >= this.run_at) { Options.setRunOn(true); this.run_at = this.abc_util.generateRunActivation(); // Generate a new run energy to activate run at } Moving to Anticipated Location
      When we finish interacting with our latest target/resource, there may or may not be a next target/resource available. If there is, then we simply go to that target/resource as usual and ignore this action condition. However, if there is no next target/resource currently available, then we check this action condition.
      We check ABCUtil#shouldMoveToAnticipated immediately after we finish up with our latest target/resource. If the method returns true, we move to the location in which we anticipate our next target/resource will spawn. If it returns false, we do nothing.
      // Here we just finished cutting a yew tree if (!findNextTarget()) { // If we are here, then there does not exist a next target/resource yet if (this.abc_util.shouldMoveToAnticipated()) { // Check if we should move to the anticipated location... performReactionTimeWait(); // Sleep for the generated reaction time moveToAnticipated(); // Move to the anticipated location } // Now we simply wait until a new target/resource spawns // Do not keep checking if we should move to the anticipated location // Only perform this check once after each target/resource becomes unavailable } Resource Switching Upon High Competition
      ABCUtil#shouldSwitchResources will decide if we should switch targets/resources based on the amount of competing players. We should check this condition every 20-30 seconds, but only if we are not winning very many resources from the other competing players. This is vague because it depends on the script and individual preferences.
      // Here we start mining a rock long check_time = Timing.currentTimeMillis() + General.random(20000, 30000); while (isMining()) { if (notWinningManyResources() && Timing.currentTimeMillis() >= check_time) { // Check if we should switch resources if (this.abc_util.shouldSwitchResources(getCompetitionCount()) { switchResources(); //Switch resources return; } check_time = Timing.currentTimeMillis() + General.random(20000, 30000); // Generate a new check time } } Next Target Hovering and Menu Opening
      ABCUtil#shouldHover will decide if we should hover the mouse over our next target. We should use this method to determine if we should hover when we start interacting with each new target entity, and we store the returned value. While interacting with our current target, if the stored value indicates we should hover our next target, then we should do so. Note that we should only employ hovering when the mouse is in the screen boundary.
      ABCUtil#shouldOpenMenu will decide if we should open the menu for our next target. We should use this method to determine if we should hover when we start interacting with each new target entity, and we store the returned value. While interacting with our current target, if the stored value indicated we should open the menu for our next target, AND if we are hovering the mouse over the next target, then we should open the menu. Menu opening should only be performed if we are also hovering the next target. Note that we should only employ menu opening when the mouse is in the screen boundary.
      boolean should_hover = false; // Global variable, persistent boolean open_menu = false; // Global variable, persistent... // Inside of a local method if (the_object.click("Chop down")) { this.should_hover = this.abc_util.shouldHover(); this.open_menu = this.abc_util.shouldOpenMenu(); // Generate other conditions for actions handleChopping(); } // Inside of a different local method, handleChoppingwhile(isChopping) { if (Mouse.isInBounds() && this.is_hovering) { hoverNextTarget(); if (this.open_menu) openMenuForNextTarget(); } // Other code } Reaction Times
      ABC2's reaction time generator relies on about nine different factors, many of which must be specified by the script. There are two different ways to specify these factors: bit flags and properties.
      With bit flags, you call ABCUtil#generateBitFlags with the necessary options, and that method will generate the bit flags. With properties, you call ABCUtil#getProperties and set the necessary properties with the returned instance of ABCProperties.
      Generating Reaction Times
      You must use ABC2 to generate reaction times, instead of using random sleeps. ABC2's reaction time generator was designed to be very generic, allowing it to be used for all things which require a variable response time. However, we are still in need of some human data to allow us to have it totally generic. When generating reaction times for events with a fixed, very low waiting time, the reaction times are often much higher than a human reaction time. Hence, until we collect some more data and adjust our algorithms, ABC2's reaction time generator should be used for the following circumstances:
      Waiting in response to a condition where we had to wait a variable amount of time typically greater than a second. Examples: Reacting to when our character stops fishing. The response time will be used before we move on to the next fishing spot, or before we walk to the bank. Reacting to when our character stops mining. The response time will be used before we move on to the next rock, or before we walk to the bank. Reacting to when our character kills our target NPC. The response time will be used before we attack our next target, or before we walk to the bank. We currently will not use ABC2's reaction time generator for the following circumstances, until more data has been collected and we have adjusted our algorithms:
      Waiting in response to finishing an alchemy spell (the waiting period for casting the spell is fixed, and thus not covered by ABC2 yet) Waiting in response to us finishing our wait for items to be deposited to the bank after clicking the "Deposit All" button (once again, the waiting period is fixed). These are only limited scenarios which we specified. There are obviously more scenarios than this, but I'm hoping you're able to figure it out based on the examples.
      Now, to generate reaction times, you have the chose of two methods:
      https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateReactionTime-- or https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateReactionTime-long- The first method uses properties, and the second uses bit flags, as discussed above.
      For generating reaction times, there are currently four factors which must be specified by scripts:
      Waiting Time: The amount of time we were waiting for in order to perform the action we are wanting to do now. Hovering: If we were hovering over the entity we are about to click immediately prior to calling the method. Menu Open: If we have the menu open for the entity we are about to click immediately prior to calling the method. Under Attack: If we are under attack now, or if we were under attack while waiting. Fixed Waiting: Whether the time at which we were waiting can be fixed to a number of client clock cycles or time (currently not used since we lack data for this, but this is here for the future). This will typically not be set because of the reason explained above. Example using bit flags:
      final int waiting_time = getWaitingTime(); final boolean menu_open = this.abc_util.shouldOpenMenu() && this.abc_util.shouldHover(); final boolean hovering = this.abc_util.shouldHover(); // If the condition is met, we specify the relevant flag, otherwise we set the variable to 0 // When we pass 0 into generateReactionTime as a bit flag option, it will not change anything final long hover_option = hovering ? ABCUtil.OPTION_HOVERING : 0; final long menu_open_option = menu_open ? ABCUtil.OPTION_MENU_OPEN : 0; // Generate the reaction time final int reaction_time = this.abc_util.generateReactionTime(this.abc_util.generateBitFlags(waiting_time, hover_option, menu_open_option)); // Sleep for the reaction time try { this.abc_util.sleep(reaction_time); } catch (final InterruptedException e) { } Example using properties:
      final int waiting_time = getWaitingTime(); final boolean menu_open = this.abc_util.shouldOpenMenu() && this.abc_util.shouldHover(); final boolean hovering = this.abc_util.shouldHover(); final ABCProperties props = this.abc_util.getProperties(); props.setWaitingTime(waiting_time); props.setHovering(hovering); props.setMenuOpen(menu_open); props.setUnderAttack(Combat.isUnderAttack() || wasJustUnderAttack()); props.setWaitingFixed(false); // Generate the reaction time final int reaction_time = this.abc_util.generateReactionTime(); // Sleep for the reaction time try { this.abc_util.sleep(reaction_time); } catch (final InterruptedException e) { } When using properties, remember to explicitly set all applicable options so that you don't use old data from previous uses.
      Generating Supporting Tracker Information
      A core factor in generating reaction times is whether or not the mouse is currently within the game screen boundary, along with other linked factors which I am keeping secret. ABCUtil's background thread will be responsible for manipulating these factors. In order for it to do so, it must know certain information about the activity being performed. We give it this information via ABCUtil#generateTrackers.
      ABCUtil#generateTrackers generates variables for performing anti-ban while waiting for something. Specifically, variables relating to how often and when to make the mouse leave the game area. This method should be called right after clicking something which requires us to wait a variable amount of time, or a time which we have to try and count off; i.e. where we will produce a variable reaction time. This includes, but is not limited to, clicking a tree, clicking an interface which we have to wai, say, approx. 10 seconds for.
      This method requires the script to supply two pieces of information:
      Estimated waiting time: An estimate for the amount of time we will be waiting for, i.e. how long it takes to perform the action at hand. Example: When woodcutting, the estimated waiting time would be an estimate for how long we are going to be chopping the current tree. Typically, using the average waiting time for the specific action is a good estimate. Under Attack: If we think we are going to be under attack for any of the duration of the waiting time. Like generating reaction times, calling this method can either be done using bit flags or properties.
      Example using bit flags:
      if (successfullyClickedTree()) { final int est_waiting; if (this.chopping_count > ) est_waiting = (int)(this.chopping_time / this.chopping_count); else est_waiting = 3000; // An arbitrary value, only used at the very beginning of the script this.abc_util.generateTrackers(this.abc_util.generateBitFlags(est_waiting)); while (isChopping()) { if (this.abc_util.shouldLeaveGame()) this.abc_util.shouldLeaveGame(); // Do other things here, such as hovering and menu opening if the mouse is still in the game screen boundary } } Example using properties:
      if (successfullyClickedTree()) { final int est_waiting; if (this.chopping_count > ) est_waiting = (int)(this.chopping_time / this.chopping_count); else est_waiting = 3000; // An arbitrary value, only used at the very beginning of the script final ABCProperties props = this.abc_util.getProperties(); props.setWaitingTime(est_waiting); props.setUnderAttack(false); props.setWaitingFixed(false); this.abc_util.generateTrackers(); while (isChopping()) { if (this.abc_util.shouldLeaveGame()) this.abc_util.shouldLeaveGame(); // Do other things here, such as hovering and menu opening if the mouse is still in the game screen boundary } } Now you may be wondering where exactly to call this method. Generally, you'd call this after generating a reaction time using ABC2, after we call ABCUtil#sleep for that reaction time, and after we perform the action which we are reacting to.
      It's important to keep in mind that calling ABCUtil#generateTrackers is very important because it sets up variables which greatly affect reaction times. Also note that we should be calling ABCUtil#shouldLeaveGame and ABCUtil#leaveGame in the period after calling ABCUtil#generateTrackers, as the method is to be used in conjunction with ABCUtil#shouldLeaveGame and ABCUtil#leaveGame. If we do not ever call those two methods, or don't call them often enough, calling ABCUtil#generateTrackers would be essentially useless, and our reaction times wouldn't be the most human-like.
      Sleeping for the Length of the Reaction Time
      it is important to use ABCUtil#sleep to perform all of the reaction time sleeps. ABC2's background thread is in charge of making the mouse return to the game screen boundary if the mouse has been outside of the boundary for a certain period of time. Now, the times at which the background thread makes the mouse return has been pre-determined. It's possible that it makes the mouse return while we are sleeping for the duration of the reaction time. If it does this, then why do we have to continue our reaction time sleep if the mouse is moving (i.e. the player is active)? Simply put, when the mouse returns to the game screen, we should stop sleeping the duration of the reaction time because the player is active.
      When the script calls ABCUtil#sleep, it allows the background thread to interrupt the reaction time sleep immediately after the bot makes the mouse return to the game screen. The method also prevents two mouse movements from happening at the same time, since the background thread doesn't pause the script while moving the mouse back to the game screen.
      Calculating Anti-Ban Compliance Levels (ABCL)
      Refer to the first list. Beside each element is an amount of points (Pts). If your script successfully implements the element, then add those points to your score. Scores are out of 100, which determine the ABCL:
      [99, 100] Points: ABCL 10 [90, 99) Points: ABCL 9 [80, 90) Points: ABCL 8 [70, 80) Points: ABCL 7 [60, 70) Points: ABCL 6 [50, 60) Points: ABCL 5 [40, 50) Points: ABCL 4 [30, 40) Points: ABCL 3 [20, 30) Points: ABCL 2 [10, 20) Points: ABCL 1 [0, 10) Points: ABCL 0 Note: "[" is an inclusive boundary, and ")" is an exclusive boundary.
      There you have it, the guide to implementing Anti-Ban Compliance version two. I hope I have made it clear how to implement ABC2. Make sure to read all of the documentation.
      I am including a persistent extension of ABCUtil, which makes this utility more like the first version, and easier to use:
    • By Optimus
      This script thread has been moved to here: 
      Tri Monestary Monk Fighter V2
      The perfect way to train up low level accounts for free, no food is required and it can loot arrows.
        Kills level 5 Monks in the Edgeville Monestary   Earns a lot of xp!   Start the script from anywhere   The script will heal by talking to the monks so no food is required!   Supports all weapons   Customisable mouse speed   Can loot and re-equip ammo Can bury bones   ABC2 antiban with a 10/10 rating   Load & save GUI settings   Xp tracking To activate the script from the repository click the button below:

      Note: I also have a premium script available that can do all of this plus it has the following extra features:
      VIP is not required!
      Complete all in one combat system that can fight every single monster in Runescape.
        Extended banking features
         Telekinetic grab support
        Supports all weapons and special attacks
      Built in AIO magic script that can train magic with every spell available from alchin
        Supports all weapons and special attacksg, curses, to teleports, to lunar spells. It does it all!
      Dwarf multicannon support
      Herb cleaning and dropping
      Full prayer support
      Progressive training including changing attack styles, upgrading gear and switching training spots when you level up!
      Bones to peaches support
      Improved potion features
      Rock crab support
        Safe spotting optional
      Full worldhopping system that can worldhop when many different conditions are met
      And much more!
      If you're interested in this script check out the tribot thread below:

      Thanks for reading.
    • By Starfox
      Hello script developers,
      This is a class I wrote that is designed to help you implement ABC2 into your scripts quickly and efficiently. If you have any questions, please post them on this thread.
      IMPORTANT NOTE: This class contains some code that is from my own API. You will need to replace it with your own code, or code from the TRiBot API.
    • By Optimus
      Welcome To Tri Pest Control Pro

      Tri Pest Control Pro is a flawless script that plays the Pest Control minigame for you! While creating this script, my primary goal was to make a script that will play the game just as good as a human, if not better, while still remaining safe to use. And after rigorous testing from the community and myself, I believe I have succeeded in my goal. 
      I present to you, Tri Pest Control Pro.
      Happy botting, and enjoy your void!

      How to use the script: You can start the script anywhere you line in runescape, the script will use the minigame teleport to get your account to pest control. Then it will go to your selected boat, hop in, and worldhop to the iemz clan chat world.   IMPORTANT If you want to start the script inside of a pest control match, please start it on boat which you arrived in. At the moment you have to, but I will be fixing that soon.
      About the three different playing styles:


      Purchase Information:

      The current price is $10 / month
      That is considerably cheaper than any other void services available!
      This will give you unlimited access to the script for that whole month.
      You can purchase the script through the repository here:
  • Our picks

    • Over the past few months, I’ve been working diligently on a new project - TRiBot X. Everything has been written from the ground up, with all of the best practices of software engineering. Every aspect of TRiBot has been re-imagined to support three main goals: flexibility, useability, and reliability.
        • Like
      • 49 replies
    • Come give us feedback on the next version of TRiBot!
        • Thanks
        • Like
      • 86 replies
    • TRiBot is looking to improve a lot of its customer relationship management, customer on boarding process, customer experience, design elements, community engagement and pretty much everything else you can imagine when it comes to marketing.

      Our goal: To ensure that the marketing done TRULY reflects the experience and does not shine an inaccurate light on what TRiBot is lacking in.

      So I ask, what do you love about TRiBot and what do you hate about TRiBot? What does O S Bot, Rune M8, PowR Bot and Dre amBot do better? (yes I purposely didn't spell it right 😂).


        • Like
      • 25 replies
    • Over the last three weeks, I've been working on upgrading our server infrastructure. It's finally ready and is now live!


      Increased reliability - less server errors

      Increased availability - less downtime

      Increased security - keeping us and you secure

      Increased capacity - ability to serve you better

      Increased speed - less waiting for things to load

      Faster development - server and service updates will come faster

      What are the changes?

      Move from a single AWS EC2 instance to AWS ECS (Elastic Container Service)

      Distributed computing

      Load balancing

      Git management of server files and filesystem

      Redis caching


      AWS ECS (with 10 EC2 instances)

      AWS ElastiCache (Redis)

      AWS Load Balancing

      AWS EFS (Elastic file system)

      Please bare with us as I continue to tune the server for maximum performance. Slow loading speeds may occur temporarily. I thank everyone for their patience.

      Please post on this thread if you experience any issues other than slow loading times.
        • Like
      • 51 replies
    • This release will:

      Fix prayers and world hopper API (Thanks @JoeDezzy1 and @erickho123)

      Improve banking API (Thanks @Encoded)

      Adds methods for returning and using Java Lists, rather than arrays

      Slightly randomizes some hardcoded behaviour

      Removes sleeps from waitConditions; the efficiency saving potential is negligible in these use-cases, therefore cleaner code is preferable

      Other back-end improvements

      Note: If you are using LG, please restart both the RS client and TRiBot.
        • Sad
        • Haha
        • Thanks
        • Like
      • 90 replies
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...