Jump to content


Popular Content

Showing content with the highest reputation since 10/16/2017 in all areas

  1. 16 points
    Try our development release by checking "Development Release" on the TRiBot Loader. Note that these new features are currently in beta. This release features: Re-sizable mode support for both LG and the regular client Slightly improved login bot Removed final access modifiers from API classes Added RSServer hook wrapper to get the client's cached list of server/world info [NEW] Bug fix for intelligent banking [NEW] Improvement to the stability of LG over time [NEW] Vastly improved the reliability and speed of Screen#getColorAt on both LG and the regular client [NEW] Fix LG login problems [NEW] Fixed re-sizable mode container bug [NEW] Fixed re-sizable mode mouse bug [NEW] Use of public constants in the Banking API [NEW] Use of other various constants such as Projection#NULL_PT and Screen#EMPTY_COLOR More features to come very soon! Please test it and let us know here if there are any new bugs introduced in this release.
  2. 15 points
    Einstein's Scripting Tutorial Part 1 - The Basics This tutorial was written specifically for the users that are interested in learning how to code their own scripts, but lack any kind of technical knowledge. After reading this tutorial, you will understand the basics and have a good starting point in this journey. There are plenty of concepts that you will need to learn and understand, but you shouldn't get discouraged by the complexity, as everything will get easier with time, if you put in enough effort. Let's get started! What exactly is a script? According to Wikipedia, scripts are: "programs written for a special run-time environment that automate the execution of tasks that could alternatively be executed one-by-one by a human operator". Sounds familiar? In our case, the special run-time environment is the TRiBot client. Scripts written for TRiBot will only work within it. You cannot run a script by double clicking the files on your desktop. You need to start a TRiBot instance, offer it a script, and then the client will execute it line by line. A script is basically just a set of instructions: go to the bank kill a goblin move the camera chop down a tree You can add rules and conditions to determine if and when to execute the instructions: if the inventory is full: go to the bank if my player is not in combat: click the next goblin while the player is busy cutting the tree: idle - do nothing if the player reached level 40 fishing, switch from trout/salmon to lobsters The Beginner Pitfall So far so good, everything is clear: just some basic instructions for your bots. The problem is that TRiBot won't be able to execute anything written in plain English. We write scripts in a programming language called Java. After writing the Java source code, we use a program called a "compiler" to convert the source code into executable "bytecode", and we end up with a working script that can be executed by the client. If you don't have any programming experience, a lot of things (probably everything) will seem utterly incomprehensible at first. Don't get discouraged or frustrated if you don't understand it from the first attempt. Everyone without exception, even the most brilliant of programmers, have started at the same point in which you are today: absolute beginner. By deliberate practice, you will gradually become better at it. Real Life Script Here is a real-life script that you probably ran today, without even realizing it: The comments (green) are not executed, they just explain the code, I included them just to make matters more clear. ("!" - means "NOT" ) TRiBot Script Setting up a new script: 1. Download any Java IDE if you haven't already. An IDE is a code editor that will make scripting easier. You can find a free IDE by searching online. In this tutorial, we will be using Eclipse. 2. Create new project, this will be your script. You can name it as you wish. 3. Go to Java Built Path (depends on IDE) > add external JAR > navigate to .tribot\dependancies > add "TRiBot.jar" 4. Create a new package called scripts (lowercase 's'). It's very important to name the package as such. 5. Create a new class, this can also be named as you wish (by convention it starts with uppercase). If your setup looks like this, then you are ready to move on. The actual coding: The first step is to extend the class 'Script': This will generate two different errors. 1. You need to import the abstract class Script. Just use the IDE's auto import shortcut (Eclipse: Ctrl + Shift + O). 2. You need to implement the method run from the Script class. Either click the error warning and select "Add unimplemented methods", or write the code yourself as it's shown below (run method): The run method will be called automatically when you press in the TRiBot client. The instructions contained within the run() method will be executed in sequence, from top to bottom (Blue Arrow). If all the instructions are executed, the script will stop. In order to prevent this from happening, we will write all the instructions inside an infinite loop: When control flow reaches the end of the loop, instead of exiting the method, it will return back to the top, executing the instructions again (Red Arrow). Running the script Your IDE will automatically compile the .java files into .class files. Navigate to your workspace (the location of your project) and copy the .class files. Paste them in C:\Users\UserName\AppData\Roaming\.tribot\bin\scripts. If you packaged the script correctly, it will appear in the script list when you press . VIP is required to run local scripts. Code example Here is a very simple script that first checks whether or not the inventory is full, and decides what to do next based on this information. If the inventory is full, the script will walk to the nearest bank and deposit everything. Otherwise if the inventory is not full, the script will walk to the potato field and will pick potatoes continuously until the inventory will be full: Null Pointer Exception / Array Index Out of Bounds Exception Two of the most common bugs that new scripters encounter are the Null Pointer Exception and the Array Index Out of Bounds Exception. It's very easy to avoid them if you understand them correctly. They both refer to the same idea: You cannot perform actions upon something that doesn't exist. Null Pointer Exception Consider the following table. Let's try to eat the apple that's on the table and see what happens. // Declare a variable of type Apple, named 'apple'. Apple apple; // Search the table for the nearest apple: // Assign the variable 'apple' with the value returned by the method 'getNearestApple()' apple = table.getNearestApple(); // Attempt to eat the apple stored in the 'apple' variable apple.eat(); Line 2: Since there is no apple on the table, the method getNearestApple(), will assign the value null (nothing) to the 'apple' variable. Line 3: Since the variable apple points to nothing, attempting to perform an action upon it (eat the apple) will throw a Null Pointer Exception. How to prevent a null pointer exception on line 3: if (apple == null) print("The apple variable is null, let's leave it alone."); else apple.eat(); Array Index Out of Bounds Exception We have an array of 4 apples. Let's try to eat the 5th apple and see what happens. apples[4].eat(); Since the array only contains 4 elements (indexes 0 to 3), attempting to perform an action on the 5th element (index 4) will throw an Array Out of Bounds Exception. How to prevent this from happening: if (apples.length < 5) print("The array's length is less than 5. We are unable to access the 5th element. (index 4)"); else apples[4].eat(); The end I strongly advise you to learn Java before getting into scripting. Here are some useful links: My introductory guide to this programming language: https://tribot.org/forums/topic/75158-introduction-to-java/ The Oracle tutorials, one of the best resources available online for free: https://docs.oracle.com/javase/tutorial/ Here is the link for the TRiBot API, which is one of the most valuable scripting tools, so make sure to bookmark it: https://tribot.org/doc/ Thank you for reading my first scripting tutorial. I hope that you've learned something from it, and that you're one step closer to writing your own scripts. And remember: you will only get better at this by deliberate practice. It's hard, but not impossible.
  3. 15 points
    Updated world hopper Added firewall disable feature, both by command line and TRiBot settings Fixed Grand Exchange offer bug Added better support for detecting resizable mode TRiBot Firewall Settings There has been a number of requests for a feature to completely disable the firewall. We've included this feature in the general settings menu for your convenience. By default the firewall will still be enabled. This comes along with a few other bug fixes; including a GE bug that didn't allow users to purchase items, a world hopper update, and a more accurate method to detect resizable mode.
  4. 12 points
    Fluffee's Server Setup 2.0 [BETA] As some of you may know, I released an automated server setup script a little over a year ago. Albeit that script worked well, I was never fully satisfied with it, as I found it to be kind of messy to use. As a result, I rewrote the script, and restructured it, to add more, and stronger support for the different versions of Debian, the different versions of CentOS and the different versions of Ubuntu. However, with so many different Operating Systems being supported, and many different server providers having different setups, it's hard for me to test every possible scenario on my own. Which is why I've been privately handing this script out, and am now publicly looking for help. What does the script do? Similar to my previous setup script, this script changes the SSH port and creates a new user for connecting and using the server and disables root SSH connections; it installs the latest version of TightVNC Server (1.3.10) and sets that up with the desired port and password. It installs JDK 102 (32 or 64 bit depending on the OS), and installs TRiBot and OSBuddy and sets up the appropriate .jar file associations. What operating systems does it support? - CentOS (6.x and 7.x) (32 and 64 bit) - Debian (7.x and 8.x) (32 and 64 bit) - Ubuntu (12.x, 14.x and 16.x) (32 and 64 bit) Does it work? As far as I know, yes it does in fact work, and it works well if I might add. However, given that I can't test every possible setup, there is the potential for differences and issues, which is why I need help. I want to beta test, how can I help? The next time you setup a server, or if you just want to reinstall your old one, use this new script and let me know if you encounter any issues or things that you think are missing. Ideally, after you answer the questions the script prompts you for, you shouldn't have to touch the keyboard again. Therefore, if during installation the script prompts you for any kind of input that isn't the first few questions, please let me know as this is probably not supposed to happen. Also, if things don't work, like TRiBot doesn't open, there's no internet browser, LG won't hook, etc. make me aware of those issues as well, so I can try and fix them! I've found a bug, what do you need from me? A few things, I'll need the operating system and bit type and a description of the bug. I may ask you for SSH access to the server, as well as ask you to reinstall the server a few times, while I attempt to troubleshoot the issue. The issues may only arise on your server, so I might not be able to recreate the issue on my end, as my hosting provider may have a different server setup than your's. I've added in a bug report format below which would be the best way to report a bug, but simply shooting me a PM or messaging me on Skype also work, assuming you're willing to allow me to troubleshoot. How do I run the script? Login as root to a fresh VPS/dedi running one of the supported operating systems. From there run the commands listed below and follow the onscreen instructions. For those who would like to see the script's code, it can be found on my github here. The commands to run are as follows: wget --no-check-cert https://bitbucket.org/Fluffee/fluffees-server-setup/raw/master/fluffees-server-setup.sh && chmod +x fluffees-server-setup.sh && ./fluffees-server-setup.sh -v Version History
  5. 12 points
    This release features: Re-sizable mode support for both LG and the regular client Slightly improved login bot Removed final access modifiers from API classes Added RSServer hook wrapper to get the client's cached list of server/world info Bug fix for intelligent banking Improvement to the stability of LG over time Vastly improved the reliability and speed of Screen#getColorAt on both LG and the regular client Fix LG login problems Fixed re-sizable mode container bug Fixed re-sizable mode mouse bug Use of public constants in the Banking API Use of other various constants such as Projection#NULL_PT and Screen#EMPTY_COLOR We have much more in development to be released through the next few weeks! Stay tuned
  6. 10 points
    Hello, I wrote this script at quest release, however I never got around to finalizing and posting it. It is in mostly one class, however it should still be quite readable. It is built using the EnumScript framework which I quite like. Features include: Start the script at any step or anywhere in RuneScape that is supported by Dax's WebWalker. Arguments for house favor and skill lamp selections. By default, Arceuus house is chosen and the skills chosen are randomized. If you provide arguments, it will not randomize. Requirements: Only requirement is to have 1 feather or 2 gp. Arguments instructions: (important for customization!) Script can be found here: https://tribot.org/repository/script/id/2569 Source can be found here: https://github.com/FALSkills/TribotScripts/tree/master/clientofkourend Thank you to @Final Calibur for his ACamera class, and @daxmagex for his WebWalker and included utility functions. Walking in RuneScape would be a pain without you!
  7. 10 points
    I would like to congratulate @Todd on joining the development team. Expect great things from him!
  8. 9 points
    Improved web walker clicking accuracy Improved Clickable#click accuracy and made it also use RSModel's human clicking point generation algorithm. Clicking now uses DynamicClicking upon models when the entity's model isn't null. DynamicClicking is now the default clicking method used by Clicking.
  9. 8 points
    Today we are unveiling our new TRiBot help desk. This will efficiently help new and old members alike get the help they need. While we have solely relied on community support in the past, we are now moving forward to ticketed support. The help desk gives us many amazing features; easy to find help articles, tickets with statuses, secure and private conversations with our moderators, and lots more! Furthermore it will speed up the time that it takes for our users to get the help they both need and deserve. Click here to visit it it. Advantages over the forums: Software designed to help users with common issues Private conversations for more personal support issues Keep our forums clean and less cluttered Easy to use self-service with an organized knowledge base A couple things to keep in mind: We are currently working on creating more support articles to be released steadily in the next few months We aren't replacing the forums by any means We are still experimenting with the man-power required to respond to all your support questions. Response time may vary over the next few weeks. Finally, Here's why it's good for our power users that don't have many TRiBot problems: Quickly check on the status of appeals / script submissions / applications Ask about updates on features/suggestions Report bugs and issues more efficiently Find support articles more quickly We strive to continue being the best botting platform, including customer support which is very lacking in this industry. We hope everyone will benefit from this decision. We have plenty coming soon, including command line integration (CLI) as an easy means to automatically start clients with specified configuration files.
  10. 8 points
    A couple of things... 1) There has been an unwritten and ENFORCED rule that if you sell a 'lifetime' script, you must provide support for at least 6 months. 2) It seems the reason for this change is to target gold farmers. Then why the hell are you revoking my 1-instance lifetime Agility script? I purchased this because botting 1-99 agility takes over 250 hours (assuming you always get 50k + xp/hr which you don't). To keep it safe for my main account I have to bot it slowly over a long period of time (>1 year). Why not just cap the lifetime auth count per script? So if it really is big botters that are a problem, change the max auth count to 3 or 5 for lifetime purchases.So if they want to run 100 bots at a time, they have to buy 20 copies of the script... I think you can see the general consensus from users is that this is a shitty change for us, even if you are updating our subs for 1 year.
  11. 7 points
    Summary Hello everyone, I've started a project that I hope can benefit our antiban technology. Since ABCv2, there really hasn't been much improvement in antiban. I think the concepts behind Trilez's creation are the key to staying under the heuristic radar of Jagex and prolong bot life. This project is an extension of the current implementation of ABCUtil, and serves to replace some functionality, and also add some. Since my class extends ABCUtil, you still have access to everything ABC has to offer. I'm not replacing all of it! Why? There are three main reasons behind this project: Put simply, ABCv2 is cumbersome. It's annoying to implement in most cases, and very difficult to implement correctly in a lot of cases. This mainly applies to the new addition of Reactions, which requires a lot of unnecessary input from the script. Some of the human data behind the new Reactions of ABCv2 isn't ideal. Bots should not emulate the average player, because the average player plays RS like an AFK game. That's how these reactions were recorded. We want our bot to be very efficient, but not abnormally efficient. We want our bot to be a no-life, caffeine-driven player, but still human. (Though we still want each bot to be heuristically different than other bots, but we'll get to that). There are more things to add! Replacements Reactions I've already pointed out the problems with the current Reactions System. Anyone who's watched their bot wait 13 seconds between killing seagulls are likely also frustrated. Not to mention, ABCv2 does not cover reactions for predictable events. ABCv3 will offer a set of Reaction Types that allow the scripter to replace nearly all arbitrary sleep times with something that looks human, and takes into account RS username, mouse position, and a dynamic sleep. Here are some examples of Reactions that you can use in your script. Each one will use an equation that produces data that matches human data that I will collect: SHORT (generally around 200-600 milliseconds) MEDIUM (500-1000) LONG (1000,3000) BANK_APPEARS (used after bank screen opens. Based solely off of human data collected from people opening the bank) BANK_CLOSES (used after bank is closed) INTERFACE_APPEARS (used for non-bank interfaces) INTERFACE_CLOSES (used for non-bank interfaces) Now, we must also account for AFK Reactions, which are performed after long, idling tasks, such as chopping a tree. The current implementation takes into account 9 factors. My system will take into account the majority of those factors, and some of them will be auto-detected. For example, ABCv2 forces you to tell it whether or not you're in combat. My reactions will determine that for you. Also, the Abc3Util class will now provide helper classes for keeping track of idle events so that it can take into account average idle time. It will also make it easy to keep tasks separate. ABCv2 is really only meant for generating reaction times based off of a single Idle Task. But let's say your bot chops oaks AND Willows. Those each require separate reaction generating variables. Abc3Util will allow you to easily track data for any number of events at the same time, and generate reactions based on them, with only a few lines of code. All of the old Reaction Methods will be Overriden and marked "Deprecated" (they will still function normally, however). Preferred Target ABC preferred target is annoying to implement, and sometimes doesn't make sense. For example, it requires you to call it for hovering the next Target, then you must store that target for when you decide to actually click something. The problem, however, is that in order for this to make sense, you must make sure that not only is the Target valid, but also that it hasn't moved or anything else has spawned or even if your mouse isn't on it. Also, this method only takes into account distance, which isn't a good metric, because it ignores any and all obstacles. In effect, the ABCLv2 Preferred target system is useless. .... but it's a good idea. I'm going to replace this by calculating many of the above variables I mentioned inside the API. Therefore, instead of calling the method when going to hover and storing the result, you can just call it whenever. It will be a more expensive call, but it will take into account Mouse Position, Weighted Distance to targets, Competition, and it will be adjusted to allow for human-like decisions, which include not always picking the absolute most optimal targets. New Features Timed Action - Accidental Input Performing actions in a human way is important, but our input in general must also look human. Even though our actions are performed at human times, they still all have a purpose. Hell, even most of the times actions have specific purposes. How many times have we accidentally pressed a key on the keyboard while playing a video game? A lot. This action in meant to be performed while the game screen is focused, and it simply presses 1 or more keys on the keyboard. It works the same as all timed actions, except the "should" method will rarely return true when the mouse is on screen (though it's possible, to avoid heuristic detection). The method will also return different results (over time) based on the RS account username (like normal ABC). This method will also be affected by fatigue. Basically speaking, the longer the script running, the more likely these accidents (although they will still be rare). Predictive Inputs Now that we have human reactions, we must explore how humans have compensated for our slow nervous system! The answer is predicting the future. It's not hard. When we click the banker, we expect the bank screen to appear. Our reaction may be slow, but we compensate by moving our mouse near where we think the deposit button will appear. My API will simply provide a "shouldPredict()" method, which will return true most of the time, but the actual calculation will be complex. The implementation will be up to the scripter, except for APIs that I package with this project (for example, I might offer a Banking extension that uses this). The method will also return different results (over time) based on the RS account username (like normal ABC). This method will also be affected by fatigue. Simply put, the longer the script time, the fewer predictions (although it will normally still be true). Improvements Easier Implementation Singleton In ABCv2, you must get a new instance of the class and use it in all of your code, until a new RS account logs in. That's not necessary, and really annoying if you have a lot of source files. My implementation stores an instance of itself in a thread-local variable (works with tabs, but can only be retrieved on the main thread). Here's how you use it now: Abc3Util.instance().shouldHover(); You're of course welcome to store the result of "instance()" in your script for easier use, but now you don't have to pass it to all of your objects if you don't want to. Timed Actions In ABCv2, you must do something like "if(shouldDoX) { doX(); }" for each action. You probably have a method that goes through each action and performs it if needed. My implementation has a built in method for that. As a bonus, it randomizes the order in which it checks and performs the actions. By doing so avoids certain behavioral patterns. Even though checking your stats and moving the mouse are humanized behaviors, always performing them in the same order can be dangerous, even if it doesn't happen often. Abc3Util.instance().performTimedActions(); Release Schedule I have not yet decided if I will release this publicly. If it ends up truly helping with banrates, it will be a very valuable tool. I don't want to sound greedy, but I might have to charge for this (maybe offer it to Patreon subscribers?). How You Can Help? I will be asking for private Beta Testers eventually. I will need human data. But the human data I collect will be much more controlled than what Trilez collected in order to produce the results I want. Remember, we want to be human, but an efficient human. If I had enough developer support, I would consider allowing this to be open-sourced for contributions. Other than that, I have no way you can help other that be loyal to Tribot and spread the word. I may eventually have a Patreon where you can subscribe for certain benefits and I will put the money towards things that will speed this development along. Let me know if you'd be behind that. Credits Shotdox - For providing a base set of calculation methods for generating distributions (jogged my statistics memories) TRiLez - For inventing ABC and showing that human data is important. If we want to fight against heuristics, we need to implement heuristics of our own! If you have any question, feel free to post below, or contact me on Discord (wastedbro#9955).
  12. 7 points
    While attempting to upload my own script to the repository with JavaFX, I realized there was not a lot of information on this topic. This tutorial will explain how to incorporate JavaFX into your Tribot scripts and how to make sure it will work correctly when uploaded to the repository. Part 1 - JavaFX Why use JavaFX? JavaFX offers a high level of customization, including support of style sheets and FXML, and is the future of user interfaces in java. Prior to JavaFX, Swing was used to create user interfaces. JavaFX supports a variety of features that were previously not available in Swing. Furthermore, basic items in JavaFX have been updated to look much more modern then their Swing counterpart. Swing GUI vs. JavaFX GUI How do I learn JavaFX? Because there is already a large number of resources that currently exist to teach JavaFX, I will not be discussing everything about how to learn the basics of JavaFX. I highly recommend reading Oracle's guide to getting started with JavaFX located at https://docs.oracle.com/javafx/2/get_started/jfxpub-get_started.htm (I used this myself to learn the basics) FXML? FXML is "an XML-based user interface markup language created by Oracle Corporation for defining the user interface of a JavaFX application." as stated by Wikipedia at https://en.wikipedia.org/wiki/FXML. I highly recommend that you use FXML to design your GUI layouts. An easy to use drag and drop program that will create the FXML code for you is Scene Builder. Using this program, you don't need practically anything about FXML to get started. Scene Builder can be downloaded at http://gluonhq.com/products/scene-builder/. It is very similar to the Swing WindowBuilder plugin for Eclipse (or the Netbeans GUI builder, however, I don't recall its name). Scene Builder I'm ready to get started. For the purpose of this tutorial, we will create a basic application that has a textfield and a button and will save the value of the textfield when the button is pressed and will print it to the Tribot Client Debug. First, in order to use JavaFX in your IDE you must download the e(fx)clipse plugin for Eclipse located at https://www.eclipse.org/efxclipse/install.html. If you do not use Eclipse then you must find another plugin that will allow you to create JavaFX applications in your IDE. Do a quick google search and I'm sure you will be able to find it. Now we want to set up our JavaFX program. I recommend using Laniax's GUI API located at https://github.com/Laniax/LanAPI/tree/master/core/gui (thanks @laniax) Download the GUI class and the AbstractGUIController class and put them into your scripts package. The GUI handles all front end parts of the user interface, and the controller handles the logic. For the sake of this basic program, we are not going to use anything else from Laniax so delete everything that contains LogProxy and log in it. Additionally you may have to delete a few extra lines from the GUI class that involve other classes from the Laniax's API. Now create a main class that will extend script. We are going to create a new GUI object and display it, and wait until the GUI is complete. The URL fxml will contain the path to where we will place the FXML file. The "null" will be replaced with the path as a string. Now we want to build the GUI Controller. Remove the "getEnableNotifications" from the AbstractGUIController as we will not be using this. Create a new class called "Controller" that extends AbstractGUIController. The required initialize method is called when the FXML is loaded. Anything that must occur when the FXML is loaded can be placed within the method. In this case we will leave it blank. We will come back to these later on. Next we want to design the actual GUI with FXML. You must download Scene Builder (displayed above) at http://gluonhq.com/products/scene-builder/ to build your FXML file. An example of a complete FXML file created with Scene Builder is https://github.com/Naton1/nSand-Crabs/blob/master/fx/gui.fxml. Simply drag and drop the components you would like to use in Scene Builder. Open Scene Builder and click File, New to start a new application. Drag and drop the components as you wish to construct your GUI. I suggest messing around with this program for a bit to understand the basics of Scene Builder and JavaFX. Explore everything so that you can become familiar with all of the options you have (on both the left and right sidebars). Code Created by Scene Builder Now, in order to reference any of these objects from our java program, we need to give them each an fx id. This can be done by clicking on the item in Scene Builder that you want to reference, and then clicking "code" on the right sidebar. Type in whatever you want to call the component in your java program. Additionally, to add event handlers, enter the name of a method you want to call when an action is performed on the specified component in the onAction textfield. For this example, we will name the textfield as "textField" and the button as "startScriptButton". We will name the method that is called when the button is pressed "startScriptPressed". Furthermore, we need to set the "controller" of this FXML file. This can be done by clicking on the Controller tab and selecting your Controller class in the bottom left hand corner. Now, we want to incorporate this into our JavaFX application. Open up the GUIController and add two new fields, one for the new textfield and one for the button. They must be named exactly as named in the FXML. Additionally, all fxml objects must be referenced with the @FXML annotation. While you are doing this be sure that you are importing the correct javafx packages (hopefully your IDE will do this for you). We also need to add in the method that we added, #startScriptPressed Now when the button is pressed in the GUI, the startScriptPressed method will be called. Place all logic inside this method. We are simply going to have to print to the client debug. Don't forget to close the GUI so that the loop in the main script will end. Now all we have to do is go back in and edit the path to our FXML file, and we are all set to run the program. Now run the program and the text in the textfield will print to the client debug in Tribot. Congratulations! You made your first (very basic) Tribot script with JavaFX & FXML! This only shows the basics of what JavaFX can do but as you explore it more you will discover all of the incredible things that can now be done with this useful platform. Part 2 - JavaFX & FXML on the Tribot repository Obfuscation When uploading any files to the repository, they are all obfuscated, meaning the names of the objects in the code are all changed. When the FXML tries to reference a java object, it needs the exact name of the object. Therefore, we need something that can make sure the obfuscator does not change the names of important objects. This can be done by downloading an external .jar known as Allatori Annotations, also located on Laniax's API. https://github.com/Laniax/LanAPI/blob/master/allatori-annotations.jar This must be added to your build path in your IDE by right clicking on your project, going to build path, add external jar, and locating the jar that was just downloaded. Now to make sure certain names do not change, we just add the @DoNotRename annotation to the class, and all fields + methods that are related to the FXML. Example of adding in the @DoNotRename annotations Cannot reference local .fxml files When uploading your script to the repository, you cannot access your .fxml file. The only way to load a .fxml file into your GUI through Tribot is by uploading the .fxml file to a website or another method discovered by Laniax. You can either upload it to your own website and use the path of that as the argument to your URL object Example of URL of .fxml file uploaded to personal website Or you can do what @IceKontroI came up with - "I did have this problem a while back and my solution was to use Pastebin. Upload the .fxml file to https://pastebin.com/ then load up the raw FXML. That link can be used instead of a local file path, only problem is that it needs to be manually updated." The method that Laniax discovered to get around uploading your .fxml file is as follows: Quoted from Laniax The End Thanks for reading my guide, if you have any questions or if you have any other useful information that I could add, than please let me know. Hope this helps some of you from some of the problems that I had
  13. 7 points
    Vastly improved banking API intelligent withdraw/deposit Fixed a banking API deposit bug Updated substance look and feel to version 8.0.2
  14. 7 points
    Hello all, It seems that the latest update has broken an important aspect of TRiBot causing some scripts to not work properly or at all. We are working on a solution and will update when we can.
  15. 7 points
    TRiLeZ hax0r where is my monk-phish
  16. 6 points
    Note: Does not work for resizable. https://bitbucket.org/snippets/Encoded/reBAbg
  17. 6 points
    The following script payment methods are being removed: One Payment Auths Monthly Two Week One Month Two Month Three Month Six Month The reasons for this decision: Bot farmers taking advantage of unlimited script instances, costing us more money than what we get from them. Most of our revenue comes from individuals whom run one or two instances at a time. Then there are bot farmers whom pay $8 for VIP-E and use an unlimited script instance purchase which they purchased years ago. These bot farmers consume most of our computing resources compared to all other users. It doesn't make sense for us to support bot farmers in this way when they are costing more than the revenue they bring in. This loss of profit from bot farmers taking advantage of unlimited script instances ultimately is being paid for by the majority of TRiBot users. When we lose money from allowing bot farmers to carry on with not contributing their fair share, there's less money for us to spend on development, support, and various projects. Scripters are less inclined to provide adequate support when they're expected to provide long-term support for scripts which are no longer making them any money. Removing these script payment methods will force scripters to be more responsible and accountable for their scripts and customers. Script prices are expected to decline for users whom only run one or two instances while increase for bot farmers running 10+ accounts. Since the former represents most of our customer base, these new prices will be more fair overall for users. We are using the increased revenue flow to hire more developers, like how @Todd was recently hired as a developer, provide better support How are we providing better support? FreshDesk is being setup to better allow us to handle customer issues, emails, and tickets. We are also writing guides to be included in an easy to use, frequently updated knowledge base. After it has been setup, we will be hiring some support staff to actively work as an agent behind the help desk software. What kind of projects are coming? A few weeks ago, we hired a team of experts to redesign our back-end systems, front-end for repository, and back-end API endpoints for TRiBot to communicate. This will then allow us to more easily maintain our web services as well as introduce new features, or bring back old ones such as the bot panel. The project is expected to be completed within a few months, and is currently on schedule. Sneak peeks are soon to come. Old, outdated, or bug filled components of TRiBot are to be overhauled and redone progressively over the course of the year. A total remake of the TRiBot client is going to being development starting late Spring, which will address all of the problems TRiBot currently suffers from. The new client will have a fresh, responsive new UI, a new scripting API with a much, much better design than the current one, better anti-ban, overall better mouse movements for all users (not just VIP-E), more overall stability, better automated testing and code review to prevent issues, and lots more. Many of you may of heard TRiBot was getting a new client years ago. That was the plain, but unfortunately the developer behind it (not me nor any of the other TRiBot admins) disappeared due to personal issues, and misled me about his software engineering and general programming abilities. This project was abandoned last year. Do not let the development of a new client make you think the current version of TRiBot isn't going to keep getting updated. I will keep working on it, and Todd's main focus is on maintaining the current version of TRiBot. It's possible for us to not have to focus on only one project. What happens to previous unlimited or lifetime script purchases? All premium unlimited or lifetime script purchases will be converted over in the following manner: Those non-private script sales which have occurred in the past 6 months will automatically get converted over to 1-year script instances starting from the time of purchase. The running instance count will remain the same as to what was purchased. This is longer than what is stated in the point below because at the time of purchase, the customers would have believed they were getting more than they're actually going to get. To make it more fair for them, they are getting a longer time period. Those non-private script sales which have occurred previous to the past 6 months will automatically get converted to 6-month instances, starting from today. The running instance count will remain the same as to what was purchased. Private script instance purchases will be capped at 100 running instances. I hope everyone will deem these changes as fair, TRiLeZ
  18. 6 points
    Try our development release by checking "Development Release" on the TRiBot Loader. Note that these new features are currently in beta. This release features: Re-sizable mode support for both LG and the regular client Slightly improved login bot Removed final access modifiers from API classes Added RSServer hook wrapper to get the client's cached list of server/world info Bug fix for intelligent banking Improvement to the stability of LG over time More features to come very soon! Please test it and let us know here if there are any new bugs introduced in this release.
  19. 6 points
    Updated the banking API to use the game item cache instead of interfaces. This will result in less delay, greater efficiency, and greater reliability. LG will especially benefit from this update. Fixed a bug with the Grand Exchange API relating to searching for items.
  20. 6 points
    This release includes: Banking update fix Cache loader bug fix When TRiBot detects the cache reader has issues loading the cache, it will reload it all. This fixes the problem of loading an old cache which is re-written after loading a new client update. Edit: _3 includes: Fixed the bank withdraw issue Added intelligent withdraw/deposit In certain cases, the bot will now select "Withdraw-All" or other options instead of "Withdraw-X" (same for deposit). Edit: _4 includes: Other banking bug fixes
  21. 6 points
    Minor fixes for world hopper and login bot. Added ability to start TRiBot from command line, in beta. TRiBot CLI Client Starter There has been a number of requests for a feature to allow users to start TRiBot from the command line. We have developed a feature that will hopefully allow users managing large bot-farms to save time and frustration, and launch their clients from the command line. This feature will allow you to configure a bot farm on one machine, then, copy and paste that same configuration to any other machine. It is worth noting that this feature still needs a bit of testing and will be getting some love as we collect feedback in this thread. Known features that are not working: Script Arguments Tribot deleting XSD and XML files Bugs with proxy usage These features will be fixed very soon, we are also going to be adding these additional features: Command Line Arguments (No XML file needed) Full Linux Support For more information on how this works and how to try this out, please see our helpdesk article: http://help.tribot.org/support/solutions/articles/36000032862--advanced-how-to-use-cli-arguments-to-start-tribot-beta-
  22. 6 points
    -To start off, I've put more than $200+ and almost 5 years into TRIBOT. This is a place I'd call home, but this amendment to lifetime purchases is atrocious. You can seriously do a better job at keeping the lifetime auth's for people like me---who bot on only 1 or 2 accs at a time--- because 6 months to a year's access is absolute trash. LIMIT THE INSTANCES. NOT THE TIME. People should have access to lifetime auths for 1 account! I shouldn't have to buy private scripts to bot on a single account for an unlimited amount of time, especially when I'm already paying for VIP-Extended each month! This would be understandable if I had a 50+ fleet of minature bob's running around 24/7, but I'm a one-man Roo army over here. -Most of the scripters who have lifetime auths available are limited to 1 instance at a time anyways, and the scripters that do/did most likely had their scripts priced that way to compete with other scripters AT THE TIME. There is LITTLE TO ZERO COMPETITION AMONG SCRIPTERS NOW, so the few that are still left are free to set their prices to their personal likings without running into the previous problems of selling CHEAP, LIFETIME AUTHS WITH UNLIMITED INSTANCES. -As a business, I completely understand the implementation of these actions, but for the small time consumer like me, I'm getting completely fucked. I'll be spending 25$ a month to maintain 1-2 skilled accounts because I bot 10+ skills a month at a max of 5 hours a day to avoid bot detection. To get the stats that I want, I have to bot over an extremely long period of time and make sure to switch activities multiple times a day. Buying monthly subscriptions is ludicrous for me. Simply put, I'll most likely be going elsewhere after this 6 month period and most likely will be seriously considering quitting OSRS altogether. I don't play this game to make $, I play it for the nostalgia. How much is nostalgia worth to me? I guess we'll find out. ******You need to GRANDFATHER LIFETIME PURCHASES and make an amendment to LIMIT ACCOUNTS TO 1 INSTANCE!!!!!
  23. 6 points
    There was an investor (Ron Wayne) who sold his 10% share in Apple for USD 800 in 1976. Both him and the buyer agreed that it was fair price at that moment. Now that pack of stocks worth billions, it still does not mean that the buyer shall forfeit the deal, give back the stocks for free and then repurchase them from Wayne at the current market price.
  24. 6 points
    would be cool if tribot made an official CLI
  25. 6 points
    Quick Update: While progress on the actual antiban has been slow, I've been testing what I currently have. It's doing quite well. In the meantime, I've been developing a way for my scripts to easily incorporate all of my features. The best part? It's entirely optional. Take a quick look at something that will be included in all future premium scripts of mine: I won't just have the best antiban in general. I'll have the best antiban for each and every user, because it's completely up to you to choose. Happy botting!