Results 1 to 3 of 3

Thread: [Starting out with Runescape botting]

  1. #1
    Join Date
    Aug 2019
    0 Post(s)

    [Starting out with Runescape botting]

    Hello everyone, I'm sorry if this question might be a little off topic but I was hoping that some of you could maybe clarify some things for me.

    Lately I've been researching how to start creating my own botting client for rs related games, And I was just really wondering how all these botting clients like Powerbot, Tribot / Epicbot are established.

    I did sincerely try to figure it out myself, I've even went and made my first Colorbot from scratch using basic C. Even though it's nothing compared to the real deal and all functions are very basic,
    I still think it was a funny learning experience. However I would like to try and build something with a little more structure.

    Now I've read something about the existence of reflection & injection bots.

    I know that pretty much all bots run on java code but the real thing I would like to know is: "How are these bots making it possible to integrate their script within the game client" ?

    Because when I try to look it up I mostly come across Java files that are already running on some sort of external library.
    For example Powerbot makes scripting easy by adding layers of abstraction because it comes with it's own set of libraries and external classes.

    But how are these botting clients able to extract the essential data needed from the actual game?

    Essential data like: (Npc names, item ID's, current tile information, Player & area information etc.)

    Are they able to acces this data by decompiling the original game client and by extracting original game classes and thus manipulating them?
    OR are there certain type of ways to hook custom scripts to the client itself?

    I've heard that it will most likely take a lot of work to even establish a basic working script from scratch, but as an
    learning software developer I would love to know the basics and have a little more insight as in how these types of bots work.

    Therefore any info/help is greatly is appreciated :P
    Last edited by FertileSoil; 08-06-2019 at 08:32 PM.

  2. #2
    Join Date
    Dec 2014
    40 Post(s)
    I'm pretty sure Soxs is developing a bot using the Runelite API. hit him up for direction/pointers. It takes a lot of work

  3. #3
    soxs's Avatar
    soxs is offline
    Lifetime ViP  
     Merchant   $200 Credit    Premium: 200->300 hours used  
    Join Date
    May 2011
    3 Post(s)
    The following is a very basic explanation:

    Main stream bot creators decompile and deobfuscate the runescape game pack, to know the locations of different fields and methods which store game play data (stats, location, npcs, etc).
    These field/method locations are often called “hooks”.

    Using those hooks the developers create a java client which embeds the runescape game within it. Using getter injection or reflection the developer can pass through the previously mentioned hooks to get game data in real time.

    It’s then up to the developer how they decide to interpret the data and how they want to interact with it. Runelite only provides overlays, powerbot provides mouse input, but in the end they serve very similar purposes.

    edit: (more detail)

    Injection & reflection bots are able to provide the "scripting layer" you often see by abstracting the lower level function calls (such as moving the mouse, or translating world locations to mini map locations).

    Injection means modifying the actual game file and adding what's called "getter methods" into the code. A getter method is usually designed to return a (often private) field.
    So for example, if you had a private integer in your game called "health", you could add a public getter called "getHealth" which would return "health".

    Reflection is somewhat different. Reflection can create copy instances of classes, modify a fields access modifiers from private to public on runtime, and directly read values from fields. This eliminates the need to add getters (and in my opinion is easier to implement). However if I remember correctly it is the more cpu intensive approach and therefor less appealable to bot farmers who intend to get their accounts banned anyways.

    and finally, "mirror" mode, is adding a "java-agent debugger" to rs'/runelites/whatever-clients JVM and then just using reflection from there.

    Are these detected by Jagex? Injection possibly, reflection probably not. But only because Jagex (these days) rely on behavioural patterns for evidence against macroers.
    If Jagex wanted to add code to detect injection/reflection/"mirror" mode - they could, and very easily. But the reason they do not (I believe) is because it becomes a cat-and-mouse game. Jagex adds code to detect methods > bot developers patch their code > jagex adds more code > etc etc etc..

    PS: making any kind of bot (that doesnt get you banned) is a fair piece of work
    Last edited by soxs; 08-14-2019 at 10:53 AM.

  4. church, xcendrox liked this post

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts