Skip 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.

Leaderboard

  1. Czar

    Global Moderator
    6
    Points
    23654
    Posts
  2. MGI

    Developer
    5
    Points
    366
    Posts
  3. Belwaar

    Members
    5
    Points
    28
    Posts
  4. Chuckle

    Java Lifetime Sponsor
    3
    Points
    2640
    Posts

Popular Content

Showing content with the highest reputation on 11/10/18 in Posts

  1. Release notes (2.7): Fixed mouse scrolling (That should enable lots of broken features such as world hopping and banking to work properly) Fixes for certain crashes/freezing Support for RuneLite Other miscellaneous bug fixes. More updates to follow soon
  2. ๐Ÿ‘‘CzarScripts #1 Bots ๐Ÿ‘‘ ๐Ÿ‘‘ LATEST BOTS ๐Ÿ‘‘ If you want a trial - just post below with the script name, you can choose multiple too. ๐Ÿ‘‘ Requirements ๐Ÿ‘‘ Hit 'like' ๐Ÿ‘ on this thread
  3. pest control is utter cancer under 100 combat. this script saved me so much personal time on void. great script!
  4. โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ PREMIUM SUITE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ FREE / VIP+ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โŒ  Sand crabs - $4,99 | Rooftop Agility - $5,99 | AIO Smither - $4,99 | AIO Cooker - $3,99 | Unicow Killer - ยฃ3,99 | Chest Thiever - ยฃ2,99 | Rock crabs - $4,99 | Rune Sudoku - $9,99 โŒก โŒ  AIO Herblore - FREE & OPEN-SOURCE | Auto Alcher - FREE | Den Cooker - FREE | Gilded Altar - FREE | AIO Miner - VIP+ โŒก โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ What is a trial? A trial is a chance for you to give any of my scripts a test run. After following the instructions below, you will receive unrestricted access to the respective script for 24 hours starting when the trial is assigned. Your trial request will be processed when I log in. The trial lasts for 24 hours to cater for time zones, such that no matter when I start the trial, you should still get a chance to use the script. Rules: Only 1 trial per user per script. How to get a trial: 'Like' this thread AND the corresponding script thread using the button at the bottom right of the original post. Reply to this thread with the name of the script you would like a trial for. Your request will be processed as soon as I log in. If i'm taking a while, i'm probably asleep! Check back in the morning Once I process your request, you will have the script in your collection (just like any other SDN script) for 24 hours. Private scripts: Unfortunately I do not currently offer private scripts. ________________________________________ Thanks in advance and enjoy your trial! -Apaec.
  5. #1 SOLD MAGIC SCRIPT #1 MOST FEATURES MAGIC SCRIPT ESC MODE, HOVER-CLICK, NEAREST ITEM CLICK, FLAWLESS JMod nearby and we still alive. Anti-ban and Optimal script usage Anti-ban: - Don't go botting more than 3 hours at once, take breaks! Otherwise the ban-rate is highly increased! - Bans also depend on where you bot, for the best results: bot in unpopular locations Banking-related spells are the lowest ban-rate (spells which require banking or can be casted near a bank, e.g. superheating, maybe alching, jewelry enchanting etc etc) since you can just go to a full world and blend in with other non-bots (humans), for example: world 2 grand exchange If casting spells on npcs, then unpopular locations reduce the banrate by alot, So make sure not to go to botting hotspots otherwise you may be included in ban waves. - Some good areas used to be (until some got popular): grizzly bear, yanille stun-alching, any overground tiles (upstairs etc) but once the areas are overpopulated, try to go to another location which is similar to the aforementioned locations. This is a very popular thread with many many users so if a new location is mentioned, the location will be populated very quickly so I can only suggest examples of good locations - Don't go botting straight after a game update, it can be a very easy way to get banned. Wait a few hours! If you ever get banned, just backtrack your mistakes and avoid them in the future: you cannot be banned without making botting mistakes. Keep in mind you can be delay-banned from using previous scripts, so don't go using free/crap scripts for 24 hours then switching to a premium script, because the free/crap previous script can still get you banned! For more anti-ban information, see this thread which was created by an official developer: http://osbot.org/forum/topic/45618-preventing-rs-botting-bans/
  6. NEW CURRENT RECORD: 294 HOURS RUNTIME! Shoutout to @Ruutihattu NEW: Sandstone mining + hopper support Humidify/water circlet/bandit unnote Ardy cloak tele support Setup Screen Preview Results 84 HOURS ON NEW LEVEL 20 ACCOUNT Suicided account with mirror mode near rock crabs, 81 mining! I will probably go for 99 Even supports Ancient Essence Crystal mining! Preview: Mine 1 drop 1 item drop pre-hover feature:
  7. import org.osbot.rs07.api.ui.RS2Widget; import org.osbot.rs07.event.Event; import org.osbot.rs07.input.mouse.RectangleDestination; import org.osbot.rs07.listener.LoginResponseCodeListener; import org.osbot.rs07.utility.ConditionalSleep; import java.awt.*; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; public final class LoginEvent extends Event implements LoginResponseCodeListener { public enum LoginEventResult { UNEXPECTED_SERVER_ERROR(1, "Unexpected server error"), LOG_IN(2, "Log in"), INVALID_CREDENTIALS(3, "Invalid username or password"), BANNED(4, "Username is banned"), ACCOUNT_ALREADY_LOGGED_IN(5, "Account is already logged in try again in 60 seconds"), RUNESCAPE_UPDATED(6, "Runescape has been updated! Please reload this page."), WORLD_IS_FULL(7, "This world is full. Please use a different world."), LOGIN_SERVER_OFFLINE(8, "Unable to connect. login server offline."), TOO_MANY_CONNECTIONS_FROM_ADDRESS(9, "Login limit exceeded. Too many connections from you address."), BAD_SESSION_ID(10, "Unable to connect. Bad session id."), PASSWORD_CHANGE_REQUIRED(11, "We suspect someone knows your password. Press 'change your password' on the front page."), MEMBERS_ACCOUNT_REQUIRED(12, "You need a members account to login to this world. Please subscribe, or use a different world."), TRY_DIFFERENT_WORLD(13, "Could not complete login. Please try using a different world."), TRY_AGAIN(14, "The server is being updated. Please wait 1 minute and try again."), SERVER_UPDATE(15, "The server is being updated. Please wait 1 minute and try again."), TOO_MANY_INCORRECT_LOGINS(16, "Too many incorrect longs from your address. Please wait 5 minutes before trying again."), STANDING_IN_MEMBERS_ONLY_AREA(17, "You are standing in a members-only area. To play on this world move to a free area first."), ACCOUNT_LOCKED(18, "Account locked as we suspect it has been stolen. Press 'recover a locked account' on front page."), CLOSED_BETA(19, "This world is running a closed beta. sorry invited players only. please use a different world."), INVALID_LOGIN_SERVER(20, "Invalid loginserver requested please try using a different world."), PROFILE_WILL_BE_TRANSFERRED(21, "You have only just left another world. your profile will be transferred in 4seconds."), MALFORMED_LOGIN_PACKET(22, "Malformed login packet. Please try again"), NO_REPLY_FROM_LOGIN_SERVER(23, "No reply from loginserver. Please wait 1 minute and try again."), ERROR_LOADING_PROFILE(24, "Error loading your profile. please contact customer support."), UNEXPECTED_LOGIN_SERVER_RESPONSE(25, "Unexepected loginserver response"), COMPUTER_ADDRESS_BANNED(26, "This computers address has been blocked as it was used to break our rules."), SERVICE_UNAVAILABLE(27, "Service unavailable."); int code; String message; LoginEventResult(int code, String message) { this.code = code; this.message = message; } } private static final Map<Integer, LoginEventResult> responseCodeLoginResultMap = new HashMap<>(); static { for (LoginEventResult result : LoginEventResult.values()) { responseCodeLoginResultMap.put(result.code, result); } } private static final Rectangle TRY_AGAIN_BUTTON = new Rectangle(318, 262, 130, 26); private static final Rectangle LOGIN_BUTTON = new Rectangle(240, 310, 120, 20); private static final Rectangle EXISTING_USER_BUTTON = new Rectangle(400, 280, 120, 20); private static final Rectangle CANCEL_LOGIN_BUTTON = new Rectangle(398, 308, 126, 27); private static final Rectangle CANCEL_WORLD_SELECTOR_BUTTON = new Rectangle(712, 8, 42, 8); private final String username, password; private int maxRetries = 5; private LoginEventResult loginEventResult; private int retryNumber = 0; public LoginEvent(final String username, final String password) { this.username = username; this.password = password; setAsync(); } public LoginEvent(final String username, final String password, final int maxRetries) { this(username, password); this.maxRetries = maxRetries; } @Override public final int execute() throws InterruptedException { if (loginEventResult != null) { handleLoginResponse(); } if (retryNumber >= maxRetries) { setFailed(); } if (hasFailed()) { return 0; } if (!getBot().isLoaded()) { return 1000; } else if (getClient().isLoggedIn() && getLobbyButton() == null) { setFinished(); return 0; } if (getLobbyButton() != null) { clickLobbyButton(); } else if (isOnWorldSelectorScreen()) { cancelWorldSelection(); } else if (!isPasswordEmpty()) { clickButton(CANCEL_LOGIN_BUTTON); } else { login(); } return random(100, 150); } public LoginEventResult getLoginEventResult() { return loginEventResult; } private void handleLoginResponse() throws InterruptedException { switch (loginEventResult) { case BANNED: case PASSWORD_CHANGE_REQUIRED: case ACCOUNT_LOCKED: case COMPUTER_ADDRESS_BANNED: case UNEXPECTED_SERVER_ERROR: case INVALID_CREDENTIALS: case RUNESCAPE_UPDATED: case LOGIN_SERVER_OFFLINE: case TOO_MANY_CONNECTIONS_FROM_ADDRESS: case BAD_SESSION_ID: case UNEXPECTED_LOGIN_SERVER_RESPONSE: case SERVICE_UNAVAILABLE: case TOO_MANY_INCORRECT_LOGINS: case ERROR_LOADING_PROFILE: setFailed(); break; case ACCOUNT_ALREADY_LOGGED_IN: case TRY_AGAIN: case SERVER_UPDATE: case NO_REPLY_FROM_LOGIN_SERVER: case MALFORMED_LOGIN_PACKET: sleep(random((int)TimeUnit.MINUTES.toMillis(1), (int)TimeUnit.MINUTES.toMillis(2))); retryNumber++; break; case PROFILE_WILL_BE_TRANSFERRED: sleep(random((int)TimeUnit.SECONDS.toMillis(5),(int)TimeUnit.SECONDS.toMillis(10))); retryNumber++; break; case WORLD_IS_FULL: case TRY_DIFFERENT_WORLD: case CLOSED_BETA: case INVALID_LOGIN_SERVER: case MEMBERS_ACCOUNT_REQUIRED: case STANDING_IN_MEMBERS_ONLY_AREA: // Should hop to a different world here setFailed(); break; } } private boolean isOnWorldSelectorScreen() { return getColorPicker().isColorAt(50, 50, Color.BLACK); } private void cancelWorldSelection() { if (clickButton(CANCEL_WORLD_SELECTOR_BUTTON)) { new ConditionalSleep(3000) { @Override public boolean condition() throws InterruptedException { return !isOnWorldSelectorScreen(); } }.sleep(); } } private boolean isPasswordEmpty() { return !getColorPicker().isColorAt(350, 260, Color.WHITE); } private void login() { switch (getClient().getLoginUIState()) { case 0: clickButton(EXISTING_USER_BUTTON); break; case 1: clickButton(LOGIN_BUTTON); break; case 2: enterUserDetails(); break; case 3: clickButton(TRY_AGAIN_BUTTON); break; } } private void enterUserDetails() { if (!getKeyboard().typeString(username)) { return; } if (!getKeyboard().typeString(password)) { return; } new ConditionalSleep(30_000) { @Override public boolean condition() throws InterruptedException { return getLobbyButton() != null || getClient().isLoggedIn() || getClient().getLoginUIState() == 3 || loginEventResult == LoginEventResult.BANNED || loginEventResult == LoginEventResult.ACCOUNT_LOCKED; } }.sleep(); } private void clickLobbyButton() { if (getLobbyButton() != null && getLobbyButton().interact()) { new ConditionalSleep(10_000) { @Override public boolean condition() throws InterruptedException { return getLobbyButton() == null; } }.sleep(); } } private RS2Widget getLobbyButton() { try { return getWidgets().getWidgetContainingText("CLICK HERE TO PLAY"); } catch (NullPointerException e) { return null; } } private boolean clickButton(final Rectangle rectangle) { return getMouse().click(new RectangleDestination(getBot(), rectangle)); } @Override public final void onResponseCode(final int responseCode) { if (!responseCodeLoginResultMap.containsKey(responseCode)) { log("Got unknown login response code " + responseCode); setFailed(); return; } this.loginEventResult = responseCodeLoginResultMap.get(responseCode); log(String.format("Got login response: %d '%s'", responseCode, loginEventResult.message)); } } Usage example: import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; @ScriptManifest(author = "Explv", name = "Login Test", version = 0.1, logo = "", info = "") public class TestScript extends Script { private LoginEvent loginEvent; @Override public void onStart() { if (getClient().isLoggedIn()) { getLogoutTab().logOut(); } loginToAccount("username", "password"); } @Override public int onLoop() throws InterruptedException { if (loginEvent != null ) { if (loginEvent.isQueued() || loginEvent.isWorking()) { log("LoginEvent is running, script is idle"); return 2000; } if (loginEvent.hasFailed()) { stop(); } getBot().removeLoginListener(loginEvent); loginEvent = null; } log("Script is doing scripty things"); return 2000; } private void loginToAccount(String username, String password) { loginEvent = new LoginEvent(username, password); getBot().addLoginListener(loginEvent); execute(loginEvent); } } OSBot must be run with random events disabled, for example: java -jar "OSBot 2.5.59.jar" -allow norandoms
  8. 1 point
    Molly's Thiever This script is designed to quickly and efficiently level your thieving! Check out the features below. Buy HERE Features: - Capable of 200k+ per hour and 30k+ exp/ph on mid-level thieving accounts. - Quickly reaches 38 thieving to get started on those master farmers for ranarr and snap seeds! - Fixes itself if stuck. - Hopping from bot-worlds. - Stun handling so the bot doesn't just continually spam click the npc. - Drops bad seeds if inventory is full at master farmers. - Eats any food at the hp of your choosing. Supports: -Lumbridge men -Varrock tea -Ardougne cake -Ardougne silk -Ardougne fur -Kourend Fruit Stalls -Ardougne/Draynor master farmer -Ardougne/Varrock/Falador guards -Ardougne knight -Ardougne paladin -Ardougne hero -Blackjacking bandits as well as Menaphite thugs, this has limitations, click the spoiler below to see them Setup: Select your option from the drop down menu, it will tell you the location where the target is located. Fill out the gui and hit start. Simple setup! Proggies: Proggy from an acc started at 38 theiving:
  9. https://osbot.org/forum/profile/320207-harley-quiin/ ordered 2x all F2P quests. he completed tut island then traded me for supplies, 387k worth on 2 accounts only 800k lose and 2 accounts but spent like 10 mins making the accounts and making emails to register them 2, I dont really care about the money but hate time wasters and hes now not replying to me on skype I hope he gets banned or at least his negative is left there so future people will think twice about using him . {hidden}
  10. 1 point
    omg right on thank you so much!d0zza!
  11. 1 point
    added your discord
  12. 1 point
    he scammed around 3b with his both acc.
  13. Flawless at the moment. Thank you, best script I've purchased so far.
  14. 1 point
    https://gyazo.com/cdf17270ba136f91dd28630dc659288f They are using butler in house to make planks
  15. Just had a quick glance, i'm not sure why you're extending Script in your second class? Only one class can extend Script, otherwise the script executor won't know the entry point to your code Hopefully fixing this will prevent the crashing issue which you are experiencing. You should then be able to debug further issues yourself, if there are any As a side note, when developing code it is important to do it in small parts. Add one bit at a time instead of writing the whole thing and only then testing it. That will make sure you don't end up in this situation in the future -Apa
  16. Will be Doing this Order. Talking on Skype.
  17. obviously you are not ready
  18. this is absolute extreme example and does not even make sense. If there is a surgeon or doctor at mid-high end hospital - he is 100% ready for his job to be done perfect no matter what school he finished. with job like this, ppl doing it are 110% ready and prepared for it no matter of school - or else he would not get position. if you want to be a medic and finish med school, you have to be top guy to finish and to be able to be surgeon..no other way around it. job like this requires 100% perfection. Lead director of hospital -- "well, John looks like a nice guy....he failed his exams 2 times when he was doing surgeon on a frog but i reaaaly like him..idk, i say let hire him!" shit does not work like that.
  19. Another vouch just purchased another proxy and was sold within 2 minutes of request. Fast and efficient. Thank you
  20. 1 point
    I dont do infernal's @Pink Clay is pretty much the only person to go for infernal services
  21. 1 point
    i love this script! i hate nmz so this is perfect for getting all those imbues and herb boxes for my pures!
  22. excellent agility script! got 2 pets on 2 of my newest accounts!
  23. 1 point
    perfect for getting that pesky cooking stat up. its so boring to do by hand, i use this on all my new pure accounts
  24. No, I don't. First step of getting a script on SDN is getting your GIT account for OSBOT. Then through GIT you submit your script. If I'm releasing open source scripts and scripts where anybody could have the .jar file then it doesn't seem very productive for osbot to be releasing these scripts on SDN because anybody could already have the script.
  25. I'm aware I can't use it as an excuse and am prepared for any consequence/refund required. Thanks
  26. and im telling him what my price would be?
  27. I had a trial for the Blastfurnace script but the script didn't work at all, can I have a trial again just to try it out I really want to buy this script but I don't know if it works well.
  28. 1 point
    Yes, constants as in the same object. Java uses whats called a String constant pool where all string literals are stored. When creating the second literal, the pool is checked, and a reference to the previously added literal is returned
  29. 1 point
    I posted irl pet before I read this properly ?
  30. 1 point
    Issue has been fixed and the update has been pushed. Should go live within 24 hours.
  31. Hi first of all nice script it runs smooth but it has some flaws. - The bot isn't able to pay the forge man, when it right click pay it gets stuck in a look trying to pay 2,500 and never stops. - After opening the back to deposit the smelted bars or grabbing new ores it opens the bank then closes the bank and then re-opens it and finally takes the new ores. So if you under 60+ smithing the scripts isn't usable since it will try to pay for the furnace (or when the coin depot is running low) for ever. I used mirror mode and stealth injection to test.
  32. It's a good solution, just be clear on how you write it so you don't get confused later (variable naming). time variables have to be global. private boolean idleFor(int millis){ if(myPlayer().isAnimating() || myPlayer.isMoving()) { timeSinceAction = System.currentTimeMillis(); } else { timeSinceIdle = System.currentTimeMillis(); } return timeSinceAction + millis < timeSinceIdle; }
  33. Looks impressive!
  34. GJ Kev. Imagine getting banned for this lol i'd probs quit life

Account

Navigation

Search

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.