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
    36
    Points
    23408
    Posts
  2. FrostBug

    Scripter III
    17
    Points
    3967
    Posts
  3. Khaleesi

    Developer
    11
    Points
    27742
    Posts
  4. Extreme Scripts

    Trade With Caution
    9
    Points
    10702
    Posts

Popular Content

Showing content with the highest reputation on 05/12/16 in all areas

  1. 15 points
    Script thread Update: Version 1.1 is now live, featuring changes to reduce the ban rate, as well as partial Mirror Mode support (see FAQ) ! This thread is for discussions and questions regarding the FrostCaves script. Script status: LIVE (Get it HERE) Demonstration video made by @Keven during early beta testing: PLEASE read below FAQ before buying the script and/or posting your questions FAQ Troubleshooting Info Screenshots Change Log Thank you @Fruity for the graphics Thank you @Zach for making this possible in the first place
  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. NEW! Added Gemstone Crab! 81 Hours at Cows Brutal Black Dragon support Sulphur Nagua support Blue Dragon 99 ranged 99 Ranged at Gemstone Crab 81 Range F2p Safespotting Hill Giants Hotkey List // F1 = set cannon tile // F2 = hide paint // F3 = Set afk tile // F4 = reset afk tile // F6 = Set safespot tile // F7 = activate tile selector // F8 = Reset tile selector // F9 and F10 used by the client, EDIT: will re-assign as they are no longer used by client // F11 = Set breaks tile // F12 = Reset breaks tile User Interface Banking Tab Demo (handles everything with banking) You can copy inventory (to avoid adding individual items...), you can insert item names which have Auto-Fill (for you lazy folk!) and you can choose whether to block an item and avoid depositing it in bank, ideal for runes and ammo. Looting Tab Demo (From looting to alchemy, noted/stackable items too) You can choose whether to alch an item after looting it simply by enabling a checkbox, with a visual representation. All items are saved upon exiting the bot, for your convenience! Tasking Demo (Not to be confused with sequence mode, this is an individual task for leveling) You can set stop conditions, for example to stop the bot after looting a visage, you can have a leveling streak by changing attack styles and training all combat stats, you can have windows alert bubbles when an event occurs and an expansive layout for misc. options! Prayer Flick Demo (Just example, I made it faster after recording this GIF) There are two settings: Safe mode and efficient mode, this is safe mode: Fight Bounds Demo Allows you to setup the fight bounds easily! Simplified NPC chooser Either choose nearby (local) NPCs or enter an NPC name to find the nearest fight location! Simple interface, just click! Level Task Switch Demo (Switching to attack combat style after getting 5 defence) You can choose how often to keep levels together! e.g. switch styles every 3 levels Cannon Demo (Cannon is still experimental, beta mode!) Choose to kill npcs with a cannon, recharges at a random revolution after around 20-24 hits to make sure the cannon never goes empty too! Results Caged Ogres: How does this bot know where to find NPCs? This bot will find far-away npcs by simply typing the NPC name. All NPCs in the game, including their spawn points have been documented, the bot knows where they are. You can type 'Hill giant' while your account is in Lumbridge, and the bot will find it's way to the edgeville dungeon Hill giants area! Here is a visual representation of the spawn system in action (this is just a visual tool, map mode is not added due to it requiring too much CPU) Fight Area Example (How the bot searches for the npc 'Wolf') Walking System The script has 2 main walking options which have distinctive effects on the script. The walking system is basically a map with points and connections linking each point. It tells the script where to go, and decides the routes to take when walking to fightzones. Walking system 1 This uses a custom walking API written by myself and is constantly being updated as new fightzones are added. Pros: - Updates are instant, no waiting times - More fightzones are supported Cons: - Sometimes if an object is altered, the changes are not instant - Restarting the script too many times requires loading this webwalker each time which adds unnecessary memory (there is no way to make it only load at client startup since I don't control the client) Walking system 2 This is the default OSBot webwalking API - it is relatively new and very stable since the developers have built it, but is currently lacking certain fightzones (e.g. stronghold) and other high level requirement zones. It is perfect for normal walking (no object interactions or stairs, entrances etc) and never fails. Pros: - Stable, works perfect for normal walking - All scripters are giving code to improve the client webwalker - More efficient when restarting the script since it is loaded upon client start Cons: - No stronghold support yet - Some new/rare fightzones not supported yet - If there is a game-breaking update or an unsupported fightzone, it may take some time to add/repair (less than 24 hours usually) So which system should I choose? Whichever one suits your chosen fightzone best! There really shouldn't be any problems - the sole purpose of these options are for backup and emergency purposes, if the script ever messes up there is always the next option to select. Note: If the script ever fails, there will be immediate updates to fix the walking systems! Script Queue/Bot Manager: Script ID is 758, and the parameters will be the profile name that you saved in the fighter setup! Bug Report templates: New feature request - What is the new feature - Basic description of what the script should do - Basic actions for the script: 'Use item on item' etc. For when the script gets stuck on a tile (or continuous loop): - Which exact tile does the script get stuck on? (exact tile, not 'near the draynor village') - Plugin or normal script? - Did you try all 3 walking options? Script has a logic bug (e.g. dies while safespotting) or (cannon mode doesn't pickup arrows) - What is the bug - How did you make the bug happen - (optional) recommendation for the bug, e.g. 'make the script walk back' or something - Tried client restart? - Normal script or a plugin? - Which exact setup options are enabled? Afk mode, cannon mode, etc etc.
  4. I caught my one eyed kitten winking at my girlfriend last night... I am starting to think something is going on. I know its just a kitten but what if he is trying to replace me.. Photos of Pirate the kitten below am I being crazy.... or should i get rid of him before its to late?
  5. Brought to you by the #1 most sold script series on the market. Come and see why everyone's choosing Czar Scripts! This is the most advanced Agility bot you will find anywhere. BUY NOW $9.99 NEW! Added Both Wyrm Courses! SCRIPT INSTRUCTIONS Optimal Setup for the bot: Please set the mouse zoom to far away (to the left, like below) so that more obstacles can be seen in the view, and so the script can be more stable and reliable Also, make sure to have roofs toggled off (either go to settings tab or type ::toggleroof) for optimal results
  6. I am posting to state that the current level of completion that they have done for me will be sufficient compensation. As of this point I consider the dispute to be dealt with and no longer require anything from Sysm or his workers, unless it turns out that they botted the account (hopefully not).
  7. by Czar Buy now (only $8.99!) 143 HOURS IN ONE GO!!!!! update: this bot is now featured on the front page of osbot! More reviews than every other fishing bot combined! 100 hour progress report!!! How to use Script Queue: ID is 552, and the parameters will be the profile name that you saved in setup! This process is really simple, just to save you headache
  8. this is a story about how i fell in love with maldesto: i really like maldesto because he gave me many chances on osbot, i was a cunt to him to once when i got shown some stuff - i did some bad things but he forgave me, i have seen since that he is a gr8 individual i really like him - my love doesn't die - although he doesn't like me back really good guy, always sees the best in people and now im currently an assistant but i did some worse things to alek.. i cheated on him with frostbug.. he has forgiven me and now we have kittens on the way thx all
  9. As I thought script is Flawless. Runs efficiently for hours with no need to babysit. The only problem i'm having now is deciding if I should purchase this script, or Czar's fishing script first :p
  10. The requirements are so low it's laughable, it literally requires 1 bond, 20k and some ore for blast furnace, I usually put 3-4m on each goldfarm acc and just let it run all weekend, I get at least 10m per account this script will be available either today or tomorrow, I will be doing some final testing to make sure everything is perfect and then it's all good ^^
  11. Firstly I am not sure that your script even works? You have created a variable GroundItem arrows; And you set its value to the closest arrows ground item: this.arrows = (GroundItem)this.groundItems.closest(new String[]{"Adamant arrow"}); You only need to use this. to refer to a variable in the current class, if there is another variable in the method with the same name. I am not sure why you are casting to GroundItem here because the method already returns a GroundItem. I am also not sure why you are using a String[] with one value, rather than just using a String. Perhaps you decompiled this from someone else's script? You then only pick up these arrows if there are < 25 of them: if(this.arrows.getAmount() <25 && this.arrows != null ...) Which will also throw a NullPointerException by the way, as you are calling getAmount() before checking if it is null. Finally, you walk to the bank when the amount of arrows on the ground is >= 100: if (this.arrows.getAmount() >= 100) getWalking().webWalk(edgevilleBank); I also don't understand why you are always web walking to the bank. You only need to do that if you are not already in the bank. The web walking may also fail, which will lead to your calls to getBank().open() etc. throwing errors. You are also not sleeping after calling getBank().open or after taking the arrows, which will result in a lot of spam clicking. None of this code makes any sense, and I would be surprised if it has been working at all for you. What you really want to be doing, is checking how many arrows you have in your Inventory. If you have more than 100 arrows in your inventory, the you want to bank. If there are any amount of arrows on the ground, then you want to pick them up. With regards to walking to find arrows, you can just web walk to random positions within the area you created, and stop walking if there are arrows on the ground. I have written an untested example and have added comments to it, to try and show you how this could be done: import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.map.Position; import org.osbot.rs07.api.map.constants.Banks; import org.osbot.rs07.api.model.GroundItem; import org.osbot.rs07.api.webwalk.INodeRouteFinder; import org.osbot.rs07.event.WebWalkEvent; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.Condition; import org.osbot.rs07.utility.ConditionalSleep; import java.awt.*; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.Optional; @ScriptManifest(author = "Explv", name = "Adamant Arrow Wildy Looter", info = "Loots adamant arrows in the Wilderness", version = 0.1, logo = "") public class WildyLooter extends Script { // This is an enum of all the possible states of the script private enum State { FIND_LOOT, LOOTING, BANKING, WALKING_TO_WILDERNESS, WALKING_TO_BANK } private final Area wilderness = new Area(3070, 3527, 3100, 3548); private final int adamantArrowID = 890; private int adamantArrowPrice = -1; private long prevArrowCount; // Stores the amount of arrows in the inventory private long arrowCounter; // Stores the amount of arrows collected private long startTime; /* The INoderouteFinder is what web walking uses to find routes, you need to create one of these to use custom web walking events. Only create this ONCE, it is very expensive to create. */ private INodeRouteFinder routeFinder; @Override public void onStart() { // When the script starts, an instance of INodeRouteFinder is created, for the custom web walk event routeFinder = INodeRouteFinder.createAdvanced(); // When the script starts, set the prevArrowCount to the amount of arrows in the inventory prevArrowCount = getInventory().getAmount("Adamant arrow"); startTime = System.currentTimeMillis(); adamantArrowPrice = getPrice(adamantArrowID); // get the price of adamant arrows } @Override public int onLoop() throws InterruptedException { // This line makes sure that the route finder is created, before we continue with the script if (routeFinder == null) return 100; /* A switch statement, is just like having multiple if else statements, where we are only checking the value on one variable */ switch (getState()) { // get the result of the getState() method case FIND_LOOT: findLoot(); // when the value is FIND_LOOT, call the findLoot() method (random walk) break; case LOOTING: loot(); // when the value is LOOTING, call the loot method (pick up arrows) break; case BANKING: bank(); // when the value is BANKING, perform the banking break; case WALKING_TO_WILDERNESS: // TODO: I'm not sure that web walking to the wilderness will even work, you may need to make a custom method for this getWalking().webWalk(wilderness); break; case WALKING_TO_BANK: getWalking().webWalk(Banks.EDGEVILLE); break; } return random(200, 300); } // This method returns what State the script is in at the current point in time. private State getState() { // If there are at least 100 Adamant arrows in the inventory if (getInventory().getAmount("Adamant arrow") >= 100) { // If we are in the bank, then perform banking, otherwise, walk to the bank return Banks.EDGEVILLE.contains(myPosition()) ? State.BANKING : State.WALKING_TO_BANK; } // We do not have 100 Adamant arrows in the inventory so: // If the player is not in the wilderness, walk there if (!wilderness.contains(myPosition())) return State.WALKING_TO_WILDERNESS; // If there are Adamant arrows on the ground, pick them up if (getGroundItems().closest("Adamant arrow") != null) return State.LOOTING; // There are no Adamant arrows on the ground, so randomly walk until we find some return State.FIND_LOOT; } // This method randomly walks around the wilderness, looking for arrows private void findLoot() { // Here we try and get a Position which is inside the wilderness area, and at least 20 tiles from the player final Optional<Position> randomDestination = wilderness.getPositions().stream().filter(position -> getMap().distance(position) >= 20).findAny(); // If we found a position that is at least 20 tiles away if (randomDestination.isPresent()) { // Create a custom WebWalkEvent, using the routefinder we created, and with the position as its destination final WebWalkEvent webWalkEvent = new WebWalkEvent(routeFinder, randomDestination.get()); // Set the break condition of the event to stop walking when there are Adamant arrows on the ground webWalkEvent.setBreakCondition(new Condition() { @Override public boolean evaluate() { return getGroundItems().closest("Adamant arrow") != null; } }); // Start web walking execute(webWalkEvent); } } // This method picks up Adamant arrows from the ground private void loot() { // Find the closest Adamant arrows final GroundItem adamantArrows = getGroundItems().closest("Adamant arrow"); // If we found some, and we successfully perform the interaction "Take" if (adamantArrows != null && adamantArrows.interact("Take")) { // Sleep for 5 seconds or until the arrows no longer exist (Either we picked them up, or someone else did) new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return !adamantArrows.exists(); } }.sleep(); updateArrowCount(); // Update the arrow counter } } // This method updates the arrow counter; private void updateArrowCount() { long arrowInvcount = getInventory().getAmount("Adamant arrow"); arrowCounter += (arrowInvcount - prevArrowCount); prevArrowCount = arrowInvcount; } // This method performs the banking private void bank() throws InterruptedException { if (!getBank().isOpen()) openBank(); // If the bank isn't open, open it else if(!getInventory().isEmpty() && getBank().depositAll()){ // Otherwise, the bank is open, so deposit everything prevArrowCount = 0; // Reset inventory arrow amount to 0 (we just deposited them) } } // Custom method for opening the bank (with a sleep to avoid spam clicking) private void openBank() throws InterruptedException { // If we successfully performed the open bank interaction if (getBank().open()){ // Sleep for 5 seconds, or until the bank is open new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return getBank().isOpen(); } }.sleep(); } } @Override public void onPaint(final Graphics2D g) { Font font1 = new Font("Arial", 0, 12); Color color1 = new Color(255, 255, 255, 255); g.setFont(font1); g.setColor(color1); g.drawString("Runtime: " + formatTime(System.currentTimeMillis() - startTime), 8, 335); g.drawString("Arrows collected: " + arrowCounter, 8, 350); if (adamantArrowPrice > -1) { g.drawString("Arrow price: " + adamantArrowPrice, 8, 370); g.drawString("Profit: " + formatValue(adamantArrowPrice * arrowCounter), 8, 390); } } // Converts ms to a timestamp private String formatTime(long ms){ long s = ms / 1000, m = s / 60, h = m / 60, d = h / 24; s %= 60; m %= 60; h %= 24; return d > 0 ? String.format("%02d:%02d:%02d:%02d", d, h, m, s) : h > 0 ? String.format("%02d:%02d:%02d", h, m, s) : String.format("%02d:%02d", m, s); } // Converts a value to m or k private String formatValue(long v){ return (v > 1_000_000) ? String.format("%.2fm", (double) (v / 1_000_000)) : (v > 1000) ? String.format("%.1fk", (double) (v / 1000)) : v + ""; } // Gets the price of an item from the rsbuddy api private int getPrice(int id){ try { URL url = new URL("http://api.rsbuddy.com/grandExchange?a=guidePrice&i=" + id); URLConnection con = url.openConnection(); con.setUseCaches(true); BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream())); String[] data = br.readLine().replace("{", "").replace("}", "").split(","); return Integer.parseInt(data[0].split(":")[1]); } catch(Exception e){ log(e); } return -1; } @Override public void onExit(){ routeFinder = null; } } An explanation of this: If there are at least 100 Adamant arrows in the inventory: If the player is in the bank: If the bank is not open: Attempt to open it Sleep until it is open Else: Deposit everything Else: Walk to the bank Else if the player is not in the wilderness: Walk there Else if there are any Adamant arrows on the ground: Attempt to take them Sleep until the arrows no longer exist Else: Randomly walk until there are some Adamant arrows on the ground
  12. can I take bribes??
  13. All I can say about this thread is wow
  14. In order to come back, he will need to let me team view him and enter the account information on HIS pc only. To verify he even gave you the right information. + Pay you back.
  15. Damn 2expensive for a like me
  16. It's my osbot 2 month anniversary tomorrow 12th March 2016 i returned to osbot and been active every day, here's to many more months
  17. Hey guys, paypal is always a risk to receive money on. i want to know how you guys all deal with this, since there is no support from paypal for selling virtual items. i know some website's or people ask to forward the paypal payment email. but why? it makes no sense in me eye's. So what's the best way to deal with chargebacks and to win every dispute? recording every in-game trade?(when selling rsgp and what about selling accounts?) also want to start currency exchange website, but still doubt how to use paypal. want to know you experience with paypal chargeback and how to deal with them thank you all guys greetz jappa ps: sorry for my bad English, never got it on school. but i guess its still better then google translate
  18. if (getInventory().interact("Use", "Blue dye")) { getInventory().interact("Use", "Goblin mail"); } or if (getInventory().getItem("Blue dye").interact("Use")) { getInventory().getItem("Goblin mail").interact(); }
  19. 1 point
    YOU CAN DO ET BOG! Nice to see it getting closer
  20. sell the account and buy an acc with 99 defence
  21. You can always cancel the subscription via paypal it wont hurt any so the month before you leave or what not just cancel it.
  22. Im guessing rock crabs wont be supported?
  23. Wow this looks great! Will definitely need to try it out, congrats on another release!
  24. could i have a 24 hour trial?
  25. very good!!!!! have safe spot?
  26. pirate @Alek willl adopt him
  27. 1 point
    Thanks for the quick push! But that shouldn't be the issue. I had over 1,000 food left. If that is the issue, maybe the bot isn't scrolling down far enough?
  28. You are using Intellij Form Designer though right? private JPanel panel; If that JPanel is not bound to the JPanel in Intelij Form Designer, then when you call: add(panel); It will throw a NullPointerException.Here is a graphical example of what I meant in my previous comment. Firs you have to provide a name for the top level JPanel in the .form view: Then in the bound Java class with the same name you do: import javax.swing.*; public class GUI extends JFrame { private JPanel mainPanel; public GUI(){ add(mainPanel); setTitle("Whatever"); setVisible(true); } } This code works perfectly fine.Don't forget you will also need to set a preferred size on your JFrame otherwise it will be very small: import javax.swing.*; import java.awt.*; public class GUI extends JFrame { private JPanel mainPanel; public GUI(){ add(mainPanel); setTitle("Whatever"); setVisible(true); setPreferredSize(new Dimension(400, 400)); } } One more important thing.If you are uploading this script to the SDN, and you are using Intellij Form Designer, you will need to make Intellij compile the .form into Java code in your class. If you don't do this, when you copy over your GUI class file, none of your GUI code will be there, and it will break. To do this you need to go to: File -> Settings -> Editor -> GUI Designer And change the option "Generate GUI into:"'s value to Java source code. And then make the project
  29. Looks amazing.
  30. you took pic when 5 ppl said yes lol. heres the updated pic and link http://www.strawpoll.me/10190272/r
  31. tryin to figure out best way to go about weekend suiciding with this
  32. Request Template: - Script name: AIO herblore - trial length a couple of hours just to test out the script - Reason for trial: testing out script before purchase - Are you ging to give feedback on the script? yes definitely
  33. Graphics look like I'm playing unreal tournament Its laughable
  34. Can u please add Snare Spell to "Stun + Alch" Option please?
  35. Request Template: - Script name AIO Woodcut - trial length: Just want to try it before i pay - Reason for trial: as above,.. - Are you ging to give feedback on the script? Defiantly!
  36. Script Name: Khal Motherlode Miner Trial Length: 24 Hours Reason for the Trial: Interested in buying, need to test first. Are you willing to give feedback on the script: Of course!
  37. The way you explain things really intrigues me, you should teach no joke.
  38. Sometimes, if you get a bot ban your entire account gets deleted and it will say invalid user/pass even if it's correct
  39. 1 point
    could i have a trial on this one? i love your mining script!
  40. Still buying. I am not looking for a website, I am looking to trade with another member of the forum. As I mentioned in the first post, I'm tired of dealing with Chinese gold sellers.
  41. Use spotlight and search for osbot. it should find the osbot folder. then drag the downloaded .jar scripts into it and refresh client. should appear in local scripts

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.