I'm sure there's already a forum post for this, but I can't seem to find it.
I'm new to botting and needed help getting everything up and running. I've logged in with the tribot client, but don't understand how to load a script that I activated on the site.
Any help would be appreciated!
By D Bolter
In order for first time VPS buyers to receive the 7 free days (30+7=37 days total), you would need to like this thread, leave a positive review on this thread, and leave me a positive feedback after your purchase.
Accepting OS GP ($0.7/m), Skrill, Crypto (coinbase), PayPal (friends/family/gift), Venmo
prices are for 30 days
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 bitbucket 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 && bash fluffees-server-setup.sh -v Version History
A while back I had to create an implementation of a Server and Client communications system for a personal script of mine. My implementation was shit. Here's a much better one. It's still a bit unrefined so if you have an improvement, post it and I'll consider it for revision. The implementation for a lot of the class events is abstract, meaning the user determines what he wants to do when those events fire. Both Server and Client feature a heartbeat system, where after a certain time interval, the Client will send some info to the Server to let it know it's still alive. Likewise every time interval the Server does the same, but for each Client Connection it has saved. Servers and Clients both always have threads open which wait for Objects to be read. When an Object is read, an event will be fired as mentioned below. If the Object read is a Request (covered later on), then it will be displayed through a separate designated event. Implementations of the following events are not mandatory. If you don't want to handle certain events, simply create a constructor for the Server/Client, but leave the blocks for the unused event blank.
public abstract void onConnectionGain(Connection connection); Fired whenever a Client successfully connects to the Server, providing you the Connection that was just established. public abstract void onConnectionLoss(Connection connection, Exception e); Fired whenever a Connection is dropped, except when the Server closes a Connection manually when its shutdown() method is called. The Exception describes the circumstances that lead to the Connection being dropped. public abstract void onWrite(Serializable object); Fired whenever an Object is written to every Connection in the Server's list of current Connections. public abstract void onWrite(Serializable object, Connection connection); Same as above, but fires once for each Connection in the Server's Connection list at the time of writing the Object. public abstract void onRead(Object object, Connection connection); Fires whenever an Object is received on the Server's end from a Client Connection. Does not fire when a Request is received, the following event handles those cases. public abstract void onRequest(Request request, Connection connection); Fires whenever a Request is received on the Server's end from a Client. This class should handle implementation of how exactly you want to handle Requests. Requests will be covered in detail later on in the post. public abstract void onShutdown(); Fires at the end of Server#shutdown(). Client events
public abstract void onConnectionGain(); Fired when the Client successfully established a Connection to the Server. public abstract void onConnectionLoss(Exception e); Fired when the Client's Connection to the Server drops. The Exception describes the circumstances that lead to the Connection being dropped. public abstract void onRead(Object object); Fires when the Client receives an Object from the Server. This again does not fire when a Request is received, that is handled by the event below. public abstract void onRequest(Request request); Fires when a Request is received on the Client's end, from the Server. public abstract void onShutdown(); Fires at the end of Client#shutdown(). Functionality
The primary function of a Server/Client implementation like this is to facilitate communication between the Client and Server. Communication can happen across multiple scripts and even multiple computers. They must all be on the same network, however. Reading more than one Object at a time is unsupported (would corrupt underlying streams), and the same for writing. You can, however, read and write at the same time. To set this up, the user must specify which port the Server will be set up on, and then create Clients that attempt to connect to that port. You can do this through the constructors like so:
Note the implementations of each event in the example above do not need to contain any actual code, they just need to have their headers. Clients will automatically attempt to re-connect to the Server with their designated port number. If the Server connection is lost while a Client is still online, it will fire a onConnectionLoss(...) event and wait 1 second before reconnecting. If a Client connection drops while the Server is still online, the Server will simply fire onConnectionLoss(...) and do nothing special.
When a Connection is dropped, either Server or Client, you won't know about it until you try to read/write to it. This is why both Server and Client implement a "heartbeat" system. Every time interval (0.5 seconds) the Server sends a null Object to each Client, and each Client does the same for its Server. This simply ensures a minimum read/write frequency between the Server and Client so that dropped connections can be handled properly. On read/write from a disconnected Connection, an error will be thrown, which will properly remove the Connection from the Server's list and fire onConnectionLoss(...).
Communication between Server and Client is two-way, meaning the Server can send Objects and Requests to any of its Connections and the Client can do the same to its designated Server. A Server can have as many Connections as your heap space allows, however a Client can only have 1 Server Connection. Reads happen automatically via their own threads, however writes must be handled directly by the user. Anything you want to write must be Serializable, otherwise you'll get an Exception. Here's how the write methods work:
public void write(Serializable object) Simply writes the given Serializable to every Connection in the Server's current Connection list. Fires onWrite(Serializable object); public void write(Serializable object, Connection connection) Writes the Serializable to only the specified Connection. Fires onWrite(Serializable object, Connection connection); Client
public void write(Serializable object) Writes the given object Fires onWrite(Serializable object); When writing Requests, if the Request is unfulfilled (see section below), it will appear in the recipient's onRequest(...) event.
Finally I'll get to Requests, which is one of the main things I built this system to handle. A Request is a specialized Object, sent to a recipient, with the expectation for it to be returned, but with some modification. A Client may want to send a Request containing a Point with coordinates (-1, -1), expecting it to be returned with different coordinates. Here's an example of what that might look like:
Simply extend Request<T> where T is the type of Object you want to be able to modify and implement Serializable so that the Request can actually be sent. When you initialize the Request<Point>, it will contain a Point (or otherwise specified type) variable called "target" which will be null until the Request is fulfilled. To fulfill the Request, simply call Request#fulfill(Object ... args) with the proper argument parameters (in this case 2 ints). The Request will automatically process the parameters in the way specified by your abstract implementation of Request#execute(Object ... args), and update the "target" from null to whatever the result actually is. If Request#execute(...) throws an Exception at any point, the Request will simply be processed as unfulfilled and ignored, even if it is written back to the sender. Here's what Request fulfillment looks like:
To send Requests, simply call the Client or Server's fulfill(...) method. It will write the specified Request to the target(s), wait for it to be returned as fulfilled, and then return it. If it doesn't receive the Request within a designated time frame, it'll throw a RequestTimeoutException. Requests use System.nanoTime() as an identifier to ensure the originally sent Request is returned at the end of the method call. This is a failsafe to ensure you don't accidentally return a different Request to the one that was originally sent out.
That's it. Here are the classes:
Please give a warm welcome to our new administrator, @Fluffee . He is our new and official customer support lead.
Over the past 6 months, Fluffee has done an excellent job with helping customers and answering all FreshDesk tickets in a professional and timely manner.
With this new position, Fluffee will be better able to help all of our loyal customers.
Gold Farming - Part 1 - Account Safety
So here is the long awaited gold farming guide that everyone has been waiting for. In this series we will be talking about various account safety measures to keep your account working for you, long term. I cannot stress this enough that even with every safety precaution you use, it is STILL possible to get banned, so only bot on accounts you do not care about. Lets get started.
Arguably the most important aspect when you want to start a farm. Keeping accounts separated and on different IP networks will keep your accounts from being noticed while creating and when botting. Jagex will temporarily block certain IPs from creating accounts if they notice you are making them in bulk, for instance an example of poor account creation vs. correct account creation:
Poor Account Creation:
You create 4 accounts within an hour, the 5th account you make is blocked because you created too many accounts on a single IP, now you must wait for your IP to be unsuspended creating a flagged IP that Jagex now watches over. You are now limited to making accounts and now you are wasting time.
Correct Account Creation:
You create 4 accounts over 2 proxies, IP1 and IP2. You make 2 accounts on IP1 and 2 accounts on IP2, now since you didn't make bulk accounts on 1 IP you are still free to make more accounts by oscillating between the two IPs. By doing this you relieve stress on a single IP which could of possibly been marked as flagged causing future accounts to be watched over and banned faster.
Have you ever seen a default level 3 character with green pants, brown shirt, and bald? Well he either doesn't care about his account or he's misinformed about how to gold farm correctly. Appearance makes the bot, if you want to be successful you need to act the part. Dressing your character up may not sound like it will do much but it will. Almost all bans come from player reports. Legit players feel the need to ban your bots because they feel it is unfair that you are using a system to produce resources while they can't, this is the incentive to ban bots. If you had 2 accounts, 1 with default "bob" look and 1 with full rune, it is more likely that your default character will be reported more often than the account with full Rune. Now this is not always the case as Jagex will have automated bot detection system that will ban you either way, but if you are using "looking glass" having your account look more legit will improve your longevity and overall success rate. Putting that extra 5 minutes of work to dress your character up will be very worth it in the end.
If you were to guess which one of these two accounts were a bot, the obvious answer would be the left one because the right account looks like a splasher. The real answer is that they are both bots, but since people think the right account is just been splashing "afk" it'll reduce the chances of player bans, which overall will reduce the chance of getting banned. While the account on the left just screams "bot" and will most likely be banned within 24 hours. This is just an example of an outfit you could potentially use on your accounts, and it is better to mix up your outfits rather than to have all your bots dressed up the same. The goal here is to simulate a real player.
Account Stats and Questing:
Account stats and quests are the numbers Jagex can use to determine a bot. If you want to make your accounts last randomize your skills you train and do some quests every now and then. F2P accounts are limited to the number of items they can trade over the GE or to another player for the first 17 hours (correct me if I'm wrong), but this can be over come by getting 8 quest points (also not 100% sure of this number). From my experience players who have a large number of F2P quests done will be more lenient when they are caught botting and will receive a 2-14 day ban before they are permanently. Don't be lazy and only level up the skill you are using to gold farm, but take some time and work on your botting accounts to make sure they look legit. This way they will last a lot longer than an average bot.
Since we know that appearance matters, and player reports play a role in being banned, staying undetected is a major key in dodging player reports. How to stay undetected? Bot in various areas that correspond to your botting habits. If you are using a Fletching Script, you are better off either botting in a very public place with many people on 1 square, for example the Grand Exchange in World 2, OR botting in an empty bank booth that you know no one will come to. Avoiding real players is the best way to stay unbanned, but this does not mean you cannot stay undetected forever. Jagex bot system is a lot better than you think it is. Botting large amount of hours is very risky and unnecessary for long term profit. However this should not shy you away from botting 24/7 which is very possible, but bans will come almost always.
Normal humans do not play for extended periods of times, if you want to reduce your bans use breaks according to what you set your age to when creating the account. Jagex will use this "age" variable to determine if it is possible for this player to be playing for long hours. For example if you set your age to 10-15, Jagex knows that you are likely to be in elementary school/high school which will determine your hours of play. Teenagers usually get out of school at 2-3PM EST so if they see that you are playing 12 hours a day, but your age is set to 13, this will be a huge indicator that you are a bot. Depending on your type of bot farm (which I will cover in part 2) you can either break this rule or follow it. Do not be discourage with this number, it is still very possible to have 24/7 bot farms then run all the time but they require a bit more work and knowledge on how to run.
Proxies overall are a great investment for gold farming. Basically proxies help you separate your accounts from being chain banned. What is chain banning? Chain banning is when all of your accounts you are botting are on a single IP address, lets say 1 account on this IP address is banned for botting. Jagex will then run a check on that IP to see if there are any other accounts on that IP that are also botting, if they detect any sort of suspicious activity then they do a mass ban on that single IP and wipe all the accounts associated with that IP. This means even if you have 5 account botting and only 1 of the 5 account gets caught, all 5 will still get banned. The way around this is to separate your IP address which each account so they have their own special space to avoid contact with other accounts. An example of correctly using proxies vs. not using proxies would be as so:
Not Using Proxies:
You have 10 accounts all botting on the same IP. Each of them are doing different tasks, fishing, woodcutting, mining, smithing etc. However Bot 3 is caught by Jagex's detection system. Jagex now runs a check on that IP to see if there are any other accounts associated with this IP. They find the other 9 accounts and ban all 10 accounts with 1 single click. You have now just wasted time and resources.
You have 10 accounts all botting on different IP. Each of them are doing different tasks, fishing, woodcutting, mining, smithing etc. This time Bot 5 is caught by Jagex's detection system. Jagex runs a check on Bot 5's IP address and sees no other bots on that IP. Your other 9 accounts are now safe from Bot 5's mistake by being caught. Now each account does not need it's own unique IP addresses, it really depends on what type of "Bot Farm" you want to run (this will be covered in another guide in the future). Some farms will be sufficient enough so that you can have multiple accounts on an IP and so on and so forth.
The most important rule of gold farming when you are starting out is documenting all your work, with all your steps. Why? If you get banned you can check your logs to see where you went wrong, and can prevent it from happening again. Lots of new people fail to realize how important this step is when gold farming because it requires lots of work to maintain information, however once you get the hang of it like I have it will only take you a few minutes everyday to update your docs. I recommend having your information on a spreadsheet such as Google Docs, with all information regarding the account in the cells.
An example template will be used here. I document all my information in my Google Docs everyday when checking and looting accounts:
As you can see I have everything from my account login to my total amount of gold made. Keeping track of your membership and account gold will vastly improve your chances of being successful while gold farming. Remember don't be lazy this will pay off in the end, and keep grinding.
An example of some of the cells being filled in will result in your ending cells to look like this (This is from last summer when I ran my Tau GE Bot Farm):
Further more I also document what I need to do next time, and work towards little goals everyday which add up tremendously.
This is just an example of what you could do depending on what kind of bot farm you want to be running. Overall the more organized you are the better off you will be, if you are serious about making money gold farming you need to treat this as a real job, as you will be making real money. Mule your gold on Legit looking accounts and sell regularly with accurate gold prices, and do not get ripped off as lots of gold resellers will try to "low ball" your gold. I would highly recommend selling your gold to big time gold resellers as it will greatly reduce your chances of being scammed when selling. If you need help looking for gold prices, feel free to PM me as I document resellers average buy prices everyday.
My Payouts are directly deposited to my IRL Bank account after I receive it via PayPal.
This about wraps up Part 1 of my Gold Farming Series. Be sure to follow me by going to my profile here: https://tribot.org/forums/profile/67302-pwningcows/ and click the "follow" button to be noticed when my other parts are released!
This release will:
Add new internal framework for capturing exceptions
Fix issue with not selecting the last column in world hopper (Thanks @Todd)
Add a message about pin usage in Banking#openBank (Thanks @Todd)
Disable the firewall by default (Thanks @Todd)
Fix handling of the welcome screen after login (Thanks @Encoded)
Fix wrong amount bank withdrawal (Thanks @Encoded)
Fix Game#isInViewport (Thanks @Encoded)
Call onBreakEnd for ListenerManager Breaking Listeners (Thanks @Encoded)
Fix Prayer#getPrayerPoints NumberFormatException (Thanks @JoeDezzy1)
Note: If you are using LG, please restart both the RS client and TRiBot.
This release will:
Fix LG for both OSBuddy and RuneLite
Fix issue where the resizable client isn't able to be made smaller (Thanks @JoeDezzy1)
Fix detection of the logout game tab when resizable mode and side panels are enabled (Thanks @JoeDezzy1)
Add initial support for Sentry to allow us to identify and easily debug exceptions happening with all TRiBot users
Add methods to determine if the bank is actually loaded, and not just the overarching interface (Thanks @wastedbro)
Improved CLI support
Full Sentry support
This release will:
Fix NPE in Camera API (Thanks @wastedbro)
Update deposit box interface ids (Thanks @Encoded)
Add various bank methods (Thanks @wastedbro)
Fix resizeable minimap bug (Thanks @wastedbro)
Remove Java 8 requirement
Please note: TRiBot is not yet fully compatible with Java 10+
Fix the break handler issues by ensuring the break handler thread never gets paused
Fix broken settings hooks
Improved CLI support
Note: If you are using LG, please restart both the RS client and TRiBot
This release will:
Add support for using custom F key bindings to switch between game tabs (Thanks @erickho123)
Fix tab opening for "Skills" and "Kourend Tasks" (Thanks @erickho123)
Note: If you are using LG, please restart both the RS client and TRiBot
This release will:
Fix an issue where breaks would stop firing
Fix Combat#getWildernessLevel, use dynamic search for text and cache ID for later calls
Fix an NPE in the Combat API
Fix Mouse#leaveGame bug where the mouse wouldn't actually leave the game screen
Recently Browsing 0 members
No registered users viewing this page.