Jump to content
Fluffee

[Tutorial] Fluffee's Ultimate Guide to Botting: Part Three - All About Servers

Recommended Posts

Fluffee's Ultimate Guide to Botting: Part Three - All About Servers

Welcome once again to Fluffee's Ultimate Guide to botting series. If you haven't already read part one or part two, please do so here (https://tribot.org/forums/topic/62462-tutorial-fluffees-ultimate-guide-to-botting-part-one-account-creation-and-management/) or here (https://tribot.org/forums/topic/62766-tutorial-fluffees-ultimate-guide-to-botting-part-two-all-about-proxies/)

--What are servers?--

In a general sense, a server is much like your own home computer, except they are setup for doing different things. In some cases, servers are used to run web sites, office/school networks or running an email service. And as a result of this, companies have began to rent servers out to people, allowing those people to use the companies servers to run websites, maintain an email service, etc. without actually owning a server themselves. Years ago, RuneScape botters realized that these very same servers would allow them to run their bots around the clock without leaving their home PC on all the time. As a result, you now see many people buying Dedicated Severs and/or Virtual Private Servers to run their RuneScape bots.

--What are Virtual Private Servers?--

A Virtual Private Server, or VPS as they are commonly referred to, are virtual servers which you pay a monthly fee to have access to. These Virtual Servers allow you to run your bots 24/7 without leaving your computer on, as the bots will run in the Virtual Server and not your home computer. The reason Virtual Private Servers are so common in the botting community is that they allow users to run their bots while their computer is turned off, and they're relatively inexpensive (around $10 per month, depending on the plan). One of the major drawbacks to a VPS, is that the server you're paying for access to is not a real server, but rather a virtual one created on a real server. The issue with that comes from companies overselling their Virtual Private Servers, essentially they sell more Virtual Private Servers on a real server then what the real server can actually handle, which results in poor performance for running bots. There is no real way to avoid this when purchasing a Virtual Private Server except by purchasing a server from a trusted provider hoping that they won't oversell.

--What are Dedicated Servers?--

Dedicated Servers are very similar to Virtual Private Servers, they come with similar operating systems, you access them the same way, and they allow you to do the same things. However, a Dedicated Server outclasses a Virtual Private Server in one key aspect. A dedicated server is a server, which again you pay a fee to access, but this time you're paying for access to a physical, real server that the company owns and maintains. As a result of this Dedicated Servers are much more expensive, but you pay for the reassurance that you get access to what you advertised, with no overselling what so ever. If you're a serious goldfarmer a Dedicated Server may be for you, and some people swear by them, but if you're new and just looking to get your feet wet a VPS is more then enough for what you'll be doing!

--Why should you use a server of some kind?--

As I've stated above, the most common reason for anyone to use a server over just running bots on your home PC is the ability to go to bed, turn off your computer and have your bots still running in the background. Another great thing, which I personally love about using a Server is the ability to easily measure the costs of your gold farm versus the profits. Using your home PC to run bots is not free as you do have to pay for power consumption, and I hate not being able to accurately measure that cost. Although that's just me, I'm sure someone will probably feel the same!

--How do I setup my server for use with TRiBot?--

I could post an entire guide on how to do this, and actually I have ;) For anyone who's new to servers, and wants a quick and easy way to set them up, check out my guide below, which was updated March 6th, 2016; so yes it's extremely up to date!

 

--How do I effectively manage multiple servers?--

There's two methods I will propose, and it's up to you how you would like to use them! The first method, as many can expect is a spreadsheet (I love spreadsheets). This spreadsheet, like my others is self explanatory, and has fields for the Server IP, VNC and SSH ports, root password, vnc password and user account password and a description of what runs on the server. However, the one downfall to this is that you can't click on an IP and connect to your server, but that's where RealVNC comes in. To download RealVNC head over to this link https://www.realvnc.com/download/vnc/ and download the full VNC package. During the Install you can uncheck the box for the VNC Server, as you won't need any of that.

Once RealVNC is installed, head to the RealVNC install folder, and open up the VNC Address Book. From there open up the New Entry Dialogue

8t9vqIp.gif

Enter in your server IP and Port into the VNC Server field, uncheck the box for Username, and check the box for Password, then enter in your VNC password. Then press OK. You should then see this dialogue box, where you are prompted to enter a Master Password to protect your address book, so go ahead and do that as well!

S6qgqju.png

Once that's done, you'll see something like this. From there, right click on your newly added VNC Server and you can rename it to make it more recognizable if you'd like

HOjGOvL.gif

And you're done! You now have your first Server added to the Address Book, which makes life incredibly easy as you can just double click to connect! Congrats :)

--How to manage files on your VPS?--

Note: This section of the guide assumes you are not using SSH keys to connect to your server.

There's a couple of ugly, quick and dirty methods to transfer files, such as uploading to Dropbox, or some equivalent and transferring files that way. However, there's a much better method that'll I'll be showcasing today. To begin with download WinSCP from here: https://winscp.net/eng/download.php

Once WinSCP is installed, or downloaded, go ahead and run it. You should be brought to a screen similar to this

gSrvmqv.png

To setup WinSCP to connect to your server, go to the right hand side and change the protocol to SCP (this is a protocol built off of SSH, which means you won't need to install anything extra on your server. After that, type in your server IP address into the field labelled "Host name", and then enter the Port you use to connect via SSH into the "Port number" field. Finally, enter in your SSH username and password; then hit Login or Save (If you wish to).

Assuming you entered everything correctly, you should connect to your server and be able to Upload and Download files through the WinSCP interface.

DtLtwDG.png

--How to Sync your .tribot Folder across multiple locations?--

Due to the length of this particular part of the tutorial, I've decided to move it to it's own topic which you can find here

Shoutout to user @HackRain for inspiring me to figure this out.

And that about brings this segment of the guide to the end, to overview, we've covered what a server is, the different types of servers you can use, should you use a server, and then how to effectively use and manage those servers. I hope you've enjoyed, and learned something from this lengthy guide, be sure to keep on the lookout for Part 4 :)

 

Edited by iFluffee
  • Like 3

Share this post


Link to post
Share on other sites
31 minutes ago, wafel said:

@Fluffee
I'm running around 10 VPS at time. Is it anyway to reset/start/stop clients on each VPS manually (or synced, by doing it at one vps or something)?
Nowadays, I have to log-in on every VPS and reset clients daily. 

I'm sure there's a way if you write your own script but if not the only thing i can think of off the top of my head is just to kill each server and then restart them in the morning but then you'd have to open up each client again to start it back up. I used to do this but then i wrote into my code to stop after muling at night.
Also if you're not using looking glass you can use the client starter to start multiple clients on one vps.

Share this post


Link to post
Share on other sites
15 hours ago, lets be friends said:

I'm sure there's a way if you write your own script but if not the only thing i can think of off the top of my head is just to kill each server and then restart them in the morning but then you'd have to open up each client again to start it back up. I used to do this but then i wrote into my code to stop after muling at night.
Also if you're not using looking glass you can use the client starter to start multiple clients on one vps.

I'm using poor VPS to run clients (not looking glasses) for different proxies, thats why I'm having a lot of them.  Is there anyway to auto-start tribot clients on every VPS restart? That would help. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By IceKontroI
      Overview
      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.
      Server events
      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(...).
      Writing
      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:
      Server
      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.
      Requests
      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.
      Classes
      That's it. Here are the classes:
       
    • By TRiLeZ
      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.
    • By YoHoJo
      More Runescape Botting Guides at https://RSBotSpot.com
      Join our Runescape Botting Discord chat channel here
      Original/Updated Article here at RSBotSpot
      This guide contains affiliate links
      How to Unlock your Runescape Bot Account
      If you’ve tried your hand at goldfarming, you’ve probably experienced getting some of your accounts getting locked shorty after tutorial island.
      Locked Runescape Account
      After seeing this, many people assume the account is banned or useless, and continue creating more accounts. But that’s not the case! This guide will cover how to get your Runescape bot account unlocked (not unbanned) and continue botting.
      Account locks are a common occurrence for people who use proxies for Runescape botting. In my experience, this does not mean the proxy is flagged, and I’m able to bot successfully after recovery.
      Our Favorite Runescape Botting Proxy Providers
      We've tested and had great results with Runescape botting proxies from:
      Blazing Proxy (Use code RSBOTSPOT to save 5% recurring!)(CHEAPEST) Virmach (Use code SAVE20 to save 20% on your first order!) Proxy Fish (Use code OSBOT20 to save 20% on your first order!) Your Private Proxy How to Unlock your Runescape Botting Account
      1. Log into the Locked Account
      Load up Runescape and attempt to log into the account. Then click the “Forgotten your password?” link, and follow the prompts.
      Forgot Password Link
       
      2. Complete the Recovery Form
      Fill out the recovery form to the best of your ability.
      Runescape Account Recovery Form
      I highly recommend using the same IP you created the account on for this step. Check out our how to register your runescape account through a proxy guide for info on that.
      Tip: To find out your Internet Service Provider use a tool like whatsmyip.
      3. Visit Account Recovery Link
      Visit the account recovery link in your email from Runescape, and set a new password.
      Runescape Account Recovery Unlock Email
      Recovery email is not instant. Typically comes well within 24 hours
      That’s it, you’re done!
      Your account is now unlocked and good to go, Happy Botting!
      Our Favorite Runescape Botting Proxy Providers
      We've tested and had great results with Runescape botting proxies from:
      Blazing Proxy (Use code RSBOTSPOT to save 5% recurring!)(CHEAPEST) Virmach (Use code SAVE20 to save 20% on your first order!) Proxy Fish (Use code OSBOT20 to save 20% on your first order!) Your Private Proxy Our Other Guides:
      All About Proxies for Runescape Botting How to Create and Register Runescape Bot Accounts Through a Proxy How to Use Proxies With TRiBot How to Expand your Goldfarm with a Botting VPS
    • By Fluffee
      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
       
  • Our picks

    • 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
        • Like
      • 30 replies
    • 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
        • Like
      • 21 replies
    • This release will:

      Add LG support for Runelite


      Fix NPCChat issues


      Fix a bug where the camera angle setter would just hold down a key for 5 seconds (the timeout)


      Slightly adjust the rotation via keys to be more accurate


      Add the ability for asynchronous camera movement via keys


      Make Camera rotation via mouse more fluid, with more antiban, and work much better in resizable mode


      Add a "Camera#setCamera" method, allowing the rotation and angle to be set in parallel


      Increase the likelihood of using the mouse for camera movements


      Add support for adjusting the camera to positionable entities (Positionable#adjustCameraTo)



      Upcoming updates:

      Improved CLI support


      Much more



      Note: If you are using LG, please restart both the RS client and TRiBot
        • Thanks
        • Like
      • 59 replies
    • This update will:

      Allow for clicking through the chat box when possible (Thanks @Todd)


      Fix Combat#selectIndex (Thanks @Encoded)


      Ensure worlds stay sorted and added a check to avoid misclicks in the in-game world hopper (Thanks @erickho123)


      Fix out-dated Options API interface indices (Thanks @Todd)



      Upcoming updates:

      Break handler bug fix


      Improved CLI support


      Much more



      Note: If you are using LG, please restart both the RS client and TRiBot
        • Like
      • 12 replies
    • This release will:

      Fix login bot after today's game update (Thanks @JoeDezzy1)


      Fix latest in-game world hopping issues (Thanks @erickho123)


      Compact Settings UI and set location relative to TRiBot (Thanks @JoeDezzy1)


      Fix an older implementation of GrandExchange#getWindowState (Thanks @JoeDezzy1)


      Improve the preformance of NPCChat by only searching in certain interface parents (Thanks @JoeDezzy1)



      Upcoming updates:

      Break handler bug fix


      Improved CLI support


      LG support for RuneLite


      Much more



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

    No registered users viewing this page.

×