Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

A Beginners Guide to Writing OSBot Scripts (where to get started!) by Apaec

Featured Replies

  • Author
4 minutes ago, thatguycalledrob said:

Great Quickstart guide, thanks!

I did have to change .entity to .RS2Object in my code for some reason - I'm sure I will work out why as I read into the API more!
Also there have been some interface changes in newer versions of eclipse (since your screenshots), adding the osbot jar file to your library is in a different interface in eclipse neon.

Cheers (:

Yes, this guide is look overdue a re-write. Hopefully I can find time in the coming weeks to work on it!

Apa

  • Alek unpinned this topic
  • 2 weeks later...

Great introduction example,

after completing this I was able to make up my own script without too many problems. This should be stickied.

  • Author
10 hours ago, BeefWellington said:

I am trying to compile this script and I get the .jar file into the scripts folder, but when I open OSBot it does not show up. How to fix this?

Are you sure the script successfully compiled, you didn't re-use the same name for a different jar, and the manifest is correct?

Otherwise there's no reason it shouldn't show up! Also make sure you have the build path set up correctly!

I tried to make a simple power chopping script, building off of your tea thiever. However, it empties the inventory of logs and not the axe, like its supposed to, then it hovers over the tree and never attempts to chop. I think the issue is in using !inventory.isEmptyExcept 

import org.osbot.rs07.api.model.RS2Object;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;

import java.awt.*;

@ScriptManifest(author = "broker12", info = "Power chops", name = "OakChopper", version = 0, logo = "")
public class Main extends Script {

    @Override
    public void onStart() {
        log("OakChopper status: Started");
    }

    private enum State {
         CHOP, DROP, WAIT,
    };

    private State getState() {
        RS2Object tree = getObjects().closest("Oak");
        if (!inventory.isEmptyExcept("Rune axe"))
            return State.DROP;
        if (tree != null)
            return State.CHOP;
        return State.WAIT;
    }

    @Override
    public int onLoop() throws InterruptedException {
        switch (getState()) {
        case CHOP:
            RS2Object tree = getObjects().closest("Oak");
            if (tree != null) {
                tree.interact("Chop-down");
            }
            break;
        case DROP:
            inventory.dropAllExcept("Rune axe");
            break;
        case WAIT:
            sleep(random(400, 700));
            break;
        }
        return random(200, 300);
    }

    @Override
    public void onExit() {
        log("OakChopper status: Ended");
    }

    @Override
    public void onPaint(Graphics2D g) {

    }


  • Author
15 minutes ago, Broker12 said:

I tried to make a simple power chopping script, building off of your tea thiever. However, it empties the inventory of logs and not the axe, like its supposed to, then it hovers over the tree and never attempts to chop. I think the issue is in using !inventory.isEmptyExcept 


import org.osbot.rs07.api.model.RS2Object;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;

import java.awt.*;

@ScriptManifest(author = "broker12", info = "Power chops", name = "OakChopper", version = 0, logo = "")
public class Main extends Script {

    @Override
    public void onStart() {
        log("OakChopper status: Started");
    }

    private enum State {
         CHOP, DROP, WAIT,
    };

    private State getState() {
        RS2Object tree = getObjects().closest("Oak");
        if (!inventory.isEmptyExcept("Rune axe"))
            return State.DROP;
        if (tree != null)
            return State.CHOP;
        return State.WAIT;
    }

    @Override
    public int onLoop() throws InterruptedException {
        switch (getState()) {
        case CHOP:
            RS2Object tree = getObjects().closest("Oak");
            if (tree != null) {
                tree.interact("Chop-down");
            }
            break;
        case DROP:
            inventory.dropAllExcept("Rune axe");
            break;
        case WAIT:
            sleep(random(400, 700));
            break;
        }
        return random(200, 300);
    }

    @Override
    public void onExit() {
        log("OakChopper status: Ended");
    }

    @Override
    public void onPaint(Graphics2D g) {

    }


That sounds like you might have got the interaction name wrong; double check what the exact (case sensitive) interaction is by overing over the oak tree and looking at the tool tip!

Thanks! It works now but it ends up dropping each log as soon as it gets it. Fiddling with it now.

  • Author
39 minutes ago, Broker12 said:

Thanks! It works now but it ends up dropping each log as soon as it gets it. Fiddling with it now.

Nice, that's because you're checking 'is empty except'. Perhaps try checking for a full inventory instead?

This is cool, thanks man! currently learning Java before my next CS semester. So glad to have a few ideas in the right direction!

  • Author
1 minute ago, vitanet said:

its good netbeans ide? and how i can setup

You can use whichever IDE you want, even notepad if you are crazy enough!

I personally use eclipse and it works well for me, but i've heard good things about IntelliJ Idea. 

Does anyone reccomend Eclipse today still? I have IntelliJ on my laptop but I'm having issues following step 2. on this guide. Trying to get a vers of eclipse if this doesnt work

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.