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.

Reminiscence

Java Lifetime Sponsor
  • Joined

  • Last visited

Everything posted by Reminiscence

  1. troll responses, but you do learn some fundamentals doing the basic two that most people start out with
  2. Or a powerminer.
  3. Mirror mode, in my experience, has been extremely effective. I've botted 3 99's on my account using only mirror mode.
  4. Fixed the special attacks. Will be adding rock cakes/dharoks/overloads soon.
  5. correct any sort of script use will inevitably be detected, be it with 5 people or 500 people using it moving the mouse off screen, or setting random sleep(random(0, 0)) timers won't really change much either i'd be more concerned about playtime, mirror mode and existing bans on your IP
  6. anti-ban = meme no real difference between private, premium and free
  7. Again, it's not my computer or internet. Unless of course, an i7-8700k at 5.0GHz and 32GB ddr4 @ 3200mhz isn't enough to run one bot. Then I definitely understand. Please suggest me better computer parts so I can run this. On a side note, I'm going to have to request that non-developers stop posting in here.
  8. I'm well aware of how it should work, and I get 50ms~ on my current world. No proxies, no pc lag, no internet lag. This has always worked before, but recently mirror mode has been rather questionable. It seems as if it doesn't properly register that it's supposed to shift drop. It also fails after a while even with shift dropping disabled.
  9. Already tried, won't deselect, just keeps going onto the next item in inventory.
  10. No console output/no errors/no warnings/no exceptions No crash A simple barbarian fishing script that used to work inventory.dropAllExcept("Feather", "Barbarian rod"); 64-bit Shift-dropping and non-shift dropping broken Script will attempt to drop all and accidentally select an item and keep selecting used item on next item. Incredibly bot-like. The only solution I could find was to turn off shift-dropping, but it still occurred after a few tries. Edit: Solution was to reduce mirror mode to 300ms.
  11. It was down and is up again today. Seems buggy though.
  12. I'll make one for whoever gets second place, if you're cool with that.
  13. lol, thank you, I really did need a good laugh. It was a stressful day at work today. I kinda figured around that as well, thank you. There are two bans, but neither should concern anyone so long as they play legit or are very careful when using mirror mode with a private script. Thank you, I do appreciate that.
  14. 7-9 years old, username login, I am the original creator, all gold and items included. 90% of stats carefully botted over years with private scripts.
  15. That's such a weird way to do it lol. Will re-do that part. Thanks for letting me know.
  16. https://www.mediafire.com/file/0wkqajtfunv2a8l/nmz.jar/file Will walk to Yanille bank, withdraw Prayer pot(4)'s, enter the dream with your current rumble set up already, pray, use recurrent damage and zapper. Must already have coins in coffer. Drinks prayer at a random amount between 10-35. Will use special attack on your current weapon. Will keep re-entering the dream so long as there are coins in there. https://pastebin.com/C94MsvLB Couldn't get mirror mode to read widgets or interact with dialogue, had to use timers. Won't continue your dream if you already set one up.
  17. It's disappointing. It's the only reason I bought lifetime sponsor. It was literally the only selling point for me to spend any money here.
  18. There's no method for interact (item1, action, item2). https://osbot.org/api/org/osbot/rs07/api/util/ItemContainer.html#interact-int-java.lang.String...- You should look into conditional sleeps. Use them between selecting the item and interacting, then sleeping until the action is done or no action is done for a set amount of time. I'm gonna go on a limb here and imagine you're working on a firemaking script. You should check for pre-existing fires in your current spot as well as the spot behind you, before even attempting to interact. Also, you'll need to make sure that you can actually walk to the tile.
  19. I RWT on my main, have been for the past year off and on. No bans yet.
  20. Guess that settles it. I'll go ahead and work on a free one. Yeah, but that's a lot more effort than just pressing the play button and letting it auto-sort itself.
  21. What happened to the Slayer scripts that were on the market? Looks like we don't have a single one anymore.
  22. Just request that the script makers add sleep(random(500, 800)) to all their scripts for unlimited botting and no ban rate.
  23. Edit: Added script source again. Seems like someone edited my post and removed it. Here we go. Didn't see any other prayer scripts on the first page, so that was enough to just write one out. Be sure to edit your hosts accordingly. Some code may be ugly and ghetto because I could not get widgets to work. (weird considering they always worked for me before) Here's a proggy. Paint was redone after initial testing. import org.osbot.rs07.api.map.Position; import org.osbot.rs07.api.ui.Message; import org.osbot.rs07.api.ui.Skill; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.ConditionalSleep; import java.awt.*; @ScriptManifest(name = "Get Boned", author = "Sony", version = 1.0, info = "", logo = "") public class GetBoned extends Script { public boolean hasSetHost1 = false, hasSetHost2 = false, hasSetHost3 = false, useHost1 = true, useHost2 = false, useHost3 = false; private long startTime, runTime; public String bone = "Wyvern bones", coins = "Coins", state, host = "parte", host2 = "jokcy", host3 = "the 420 cc", curHost; Position phialsPos = new Position(2949, 3213, 0); Position portalPos = new Position(2953, 3224, 0); @Override public void onStart() { experienceTracker.startAll(); startTime = System.currentTimeMillis(); } public boolean isAnimating() throws InterruptedException{ for(int i = 0; i < 5; i++){ if(myPlayer().isAnimating() || players.myPlayer().isMoving()) return true; else sleep(100); } return false; } public enum State { unnoting, entering, praying, exiting, idle, exit } private State getState() throws InterruptedException { if (inventory.contains(inventory.getItem(bone).getNotedId()) && !inventory.contains(inventory.getItem(bone).getUnnotedId()) && npcs.closest("Phials") == null) { state = "Exiting"; return State.exiting; } if (inventory.contains(inventory.getItem(bone).getNotedId()) && !inventory.contains(inventory.getItem(bone).getUnnotedId()) && npcs.closest("Phials") != null) { state = "Unnoting"; return State.unnoting; } if (inventory.contains(inventory.getItem(bone).getUnnotedId()) && objects.closest("Incense burner") == null) { state = "Entering house"; return State.entering; } if (inventory.contains(inventory.getItem(bone).getUnnotedId()) && objects.closest("Incense burner") != null && !isAnimating()) { state = "Praying"; return State.praying; } if (isAnimating() && inventory.contains(inventory.getItem(bone).getUnnotedId())) { state = "Idling..."; return State.idle; } state = "Idling..."; return State.idle; } @Override public int onLoop() throws InterruptedException { if (!inventory.contains(bone)) { stop(); } switch (getState()) { case unnoting: if (map.distance(npcs.closest("Phials")) > 8) { walking.webWalk(phialsPos); new ConditionalSleep(10000) { @Override public boolean condition() throws InterruptedException { return map.distance(npcs.closest("Phials")) < 8; } }.sleep(); } if (map.distance(npcs.closest("Phials")) < 8) { if (inventory.contains(inventory.getItem(bone).getNotedId())) { inventory.getItem(inventory.getItem(bone).getNotedId()).interact("Use"); if (inventory.isItemSelected()) { npcs.closest("Phials").interact("Use"); new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return dialogues.isPendingOption(); } }.sleep(); } if (dialogues.isPendingOption()) { sleep(random(600, 1800)); if (inventory.getItem(inventory.getItem(bone).getNotedId()).getAmount() > 1 ) { dialogues.selectOption(3); } else { dialogues.selectOption(1); } new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return inventory.contains(inventory.getItem(bone).getUnnotedId()); } }.sleep(); } } } break; case entering: if (objects.closest("Portal") != null) { if (map.distance(objects.closest("Portal")) > 5) { walking.webWalk(portalPos); new ConditionalSleep(10000) { @Override public boolean condition() throws InterruptedException { return map.distance(objects.closest("Portal")) < 5; } }.sleep(); } if (map.distance(objects.closest("Portal")) < 5) { if (widgets.get(162, 33, 0) == null) { objects.closest("Portal").interact("Friend's house"); new ConditionalSleep(8000) { @Override public boolean condition() throws InterruptedException { return widgets.get(162, 33, 0) != null; } }.sleep(); } sleep(random(1200, 1500)); if (useHost1) { curHost = host; if (!hasSetHost1) { keyboard.typeString(host, true); hasSetHost1 = true; } else { keyboard.typeEnter(); } } if (useHost2) { curHost = host2; if (!hasSetHost2) { keyboard.typeString(host2, true); hasSetHost2 = true; } else { keyboard.typeEnter(); } } if (useHost3) { curHost = host3; if (!hasSetHost3) { keyboard.typeString(host3, true); hasSetHost3 = true; } else { keyboard.typeEnter(); } } new ConditionalSleep(15000) { @Override public boolean condition() throws InterruptedException { return objects.closest("Incense burner") != null; } }.sleep(); } } break; case exiting: if (!isAnimating() && objects.closest("Altar") != null) { objects.closest("Portal").interact("Enter"); new ConditionalSleep(10000) { @Override public boolean condition() throws InterruptedException { return objects.closest("Incense burner") == null; } }.sleep(); } break; case praying: if (!isAnimating() && objects.closest("Incense burner") != null) { inventory.getItem(inventory.getItem(bone).getUnnotedId()).interact("Use"); new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return inventory.isItemSelected(); } }.sleep(); objects.closest("Altar").interact("Use"); new ConditionalSleep(50000) { @Override public boolean condition() throws InterruptedException { return !inventory.contains(inventory.getItem(bone).getUnnotedId()) || dialogues.isPendingContinuation() || !isAnimating(); } }.sleep(); } break; case idle: new ConditionalSleep(2500) { @Override public boolean condition() throws InterruptedException { return !isAnimating() || dialogues.isPendingContinuation(); } }.sleep(); break; default: break; } return 600; } private final RenderingHints antialiasing = new RenderingHints( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); private final Color color1 = new Color(0, 0, 0, 192); private final Color color2 = new Color(0, 0, 0); private final Color color3 = new Color(255, 255, 255); private final BasicStroke stroke1 = new BasicStroke(1); private final Font font1 = new Font("Arial", 0, 14); private final Font font2 = new Font("Arial", 0, 12); public final String formatTime(final long ms){ long s = ms / 1000, m = s / 60, h = m / 60; s %= 60; m %= 60; h %= 24; return String.format("%02d:%02d:%02d", h, m, s); } public void onMessage(Message message) throws java.lang.InterruptedException { if(message.getType() == Message.MessageType.GAME) { if (message.getMessage().contains("player is offline") && useHost1) { log("host 1 is offline"); log("checking if host 2 is online"); log(""); useHost1 = false; useHost2 = true; useHost3 = false; return; } if (message.getMessage().contains("player is offline") && useHost2) { log("host 2 is offline"); log("checking if host 3 is online"); log(""); useHost1 = false; useHost2 = false; useHost3 = true; return; } if (message.getMessage().contains("player is offline") && useHost3) { runTime = System.currentTimeMillis() - startTime; log("all three hosts offline, exiting"); log(""); log("Runtime: " + formatTime(runTime)); log("XP Gained: " + experienceTracker.getGainedXP(Skill.PRAYER)); stop(); } } } @Override public void onPaint(Graphics2D g) { g.setRenderingHints(antialiasing); runTime = System.currentTimeMillis() - startTime; g.setColor(color1); g.fillRect(563, 219, 156, 179); g.setColor(color2); g.setStroke(stroke1); g.drawRect(563, 219, 156, 179); g.setFont(font1); g.setColor(color3); g.drawString("Get Boned", 606, 240); g.drawLine(575, 246, 700, 246); g.setFont(font2); g.setColor(color3); g.drawString("Host: " + curHost, 570, 260); g.drawString("State: " + state, 570, 275); g.drawString("Runtime: " + formatTime(runTime), 570, 290); g.drawString("Exp gained: " + experienceTracker.getGainedXP(Skill.PRAYER), 570, 305); g.drawString("Exp/Hour: " + experienceTracker.getGainedXPPerHour(Skill.PRAYER), 570, 320); g.drawString("Levels gained: " + experienceTracker.getGainedLevels(Skill.PRAYER), 570, 335); } }
  24. nah, @Alek doesn't actually know what he's talking about. this is all bad advice. adding a sleep(random(232, 765)); call everytime you do an action is basically the best anti-ban possible and it werks

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.