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.

progamerz

Scripter II
  • Joined

  • Last visited

Everything posted by progamerz

  1. Are you using mirror mode? And this error you sent is related to osbot not able to get the worlds list(I'll try implementing a failsafe), did you have any connection issue? As for the script not detecting dragon bones or burning amulet in bank it's also related to mirror mode if you are using that, a restart usually fixes that Contact me on discord which is available in my signature for faster response
  2. I had a problem with GUI loading, ill push an update that should fix it
  3. Pushed v2.92 which should fix the CLI issues, the update should be live in few hours
  4. Pushed v4.528 which should support them, the update should be live in few hours
  5. CLI is already added, you can check the "Setup Guide" section in the OP to know what is available
  6. Enabled trial for 24 hours starting from now enjoy
  7. Pushed update v4.527 Changelog: - Improved general task handling - Improved equip tasks - Added "random" option to cows location and fixed a rare bug that happened when "random" chicken location was chosen Allow up to 24hrs for the SDN version to be updated. Thank you for the reports, what do you mean by setup inventory?
  8. Hello, thank you for the detailed report, I just ran your settings, and it went to the bank and got longsword and bronze shield, whenever it logs out it should say why in the logger, what did it show in the logger when it logged out? Edit: I found the bug of it going to chickens and idling instead of attacking, and I'm testing the script and will push update v4.526 in few minutes
  9. Enabled trial for 12 hours starting from now, enjoy
  10. I re-enabled your trial, for the time being make sure that you are running fixed mode and ill add a fix for resizeable ASAP
  11. What do you mean specifically? Like setting up changing auto casts? I'm going to check it right now and see if I can replicate it, are u using resizeable? EDIT: I tried running the script with random zoom setting in mirror mode, and it fixed itself, posting the logger would help me
  12. Enabled trial for 24 hours starting from now enjoy
  13. I would like to see the logs, and I'll try improving the lighting of incenses mode EDIT: I pushed an update v4.012 which should add more logs related to personal host method which could help me, it should be live in few hours
  14. My bad, i authed someone else, it should be fine now xD
  15. Sure, enabled trial for 24 hours starting from now, I haven't really tested that feature a lot, so I would be happy to hear feedback enjoy
  16. Enabled trial for 24 hours starting from now, enjoy
  17. I'm glad to hear that, though I wouldn't recommend botting 15 hours without breaks especially if F2P unless you don't care about the account
  18. Pushed update v4 Changelog: - Added chaos altar support in CLI and GUI Allow up to 24hrs for the SDN version to be updated.
  19. If you check the logger what does it say? what settings did you use in GUI? You can contact me on discord
  20. Are you using the dev build? Because there was a change in the settings tab.
  21. Enabled trial for 24 hours starting from now, enjoy Make sure to use the latest dev version of the client:
  22. A simple mining script that was created for my needs, you can add in the position of the ores and what is the type of ore you want to mine, and it will hover over the next ore and drop when inventory is full. To change the position of ores, you can edit the values in "positions" or add more positions. To change the ore type, you can edit the value in "oreToMine" and set it to whatever rock you want to mine. SimpleMiner.java import org.osbot.rs07.api.map.Position; import org.osbot.rs07.api.model.Entity; import org.osbot.rs07.api.model.Item; import org.osbot.rs07.api.model.RS2Object; import org.osbot.rs07.api.ui.Skill; import org.osbot.rs07.event.InteractionEvent; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.ConditionalSleep2; import java.awt.*; import java.awt.event.KeyEvent; import java.util.Arrays; import java.util.List; @ScriptManifest(version = 0.0, logo = "", author = "Progamerz", name = "Simple Miner", info = "") public class SimpleMiner extends Script { List<Position> positions = Arrays.asList(new Position(3183, 3376, 0), new Position(3181, 3376, 0)); Rock oreToMine = Rock.TIN; RS2Object currentOre; RS2Object nextOre; long startTime; @Override public void onStart() { startTime = System.currentTimeMillis(); getExperienceTracker().start(Skill.MINING); } @Override public int onLoop() throws InterruptedException { if (getDialogues().isPendingContinuation()) { getDialogues().clickContinue(); } else if (getInventory().isFull()) { dropAll(); } else { if (myPlayer().isAnimating()) { handleAnimating(); } else { if (currentOre == null || !currentOre.exists()) { getCurrentOre(); } else if (customInteract(currentOre)) { ConditionalSleep2.sleep(5_000, 250, () -> myPlayer().isAnimating() || !currentOre.exists() || getDialogues().isPendingContinuation()); } } } return 250; } @Override public void onPaint(Graphics2D g) { int x = 10, y = 50; g.setFont(g.getFont().deriveFont(16.0f)); g.setColor(Color.BLUE); if (startTime != 0) { long elapsedTime = System.currentTimeMillis() - startTime; g.drawString(String.format("Runtime: %s", formatTime(elapsedTime)), x, y += 25); g.drawString(String.format("XP(/HR): %d(%d)", getExperienceTracker().getGainedXP(Skill.MINING), getExperienceTracker().getGainedXPPerHour(Skill.MINING)), x, y += 25); } } private void getCurrentOre() { if (nextOre != null) { // We finished mining currentOre, and we want to change it to nextOre and set nextOre to null currentOre = nextOre; nextOre = null; } else { // The script ran for the first time, we have to initialize currentOre currentOre = getClosestOre(); } } private void handleAnimating() { if (nextOre != null && nextOre.exists()) { if (!entityBoundsHasMyMouse(nextOre)) nextOre.hover(); } else { // We should find nextOre when we are mining to hover over nextOre = getNextOre(); } } private RS2Object getClosestOre() { return oreToMine.getClosestWithOre(this, rock -> positions.contains(rock.getPosition())); } private RS2Object getNextOre() { return oreToMine.getClosestWithOre(this, rock -> positions.contains(rock.getPosition()) & !rock.getPosition().equals(currentOre.getPosition())); } private void dropAll() throws InterruptedException { if (getSettings().isShiftDropActive()) { getKeyboard().pressKey(KeyEvent.VK_SHIFT); } for (int i : new int[]{ 0, 4, 8, 12, 16, 20, 24, 25, 21, 17, 13, 9, 5, 1, 2, 6, 10, 14, 18, 22, 26, 27, 23, 19, 15, 11, 7, 3 }) { Item item = getInventory().getItemInSlot(i); if (item != null) { if (getSettings().isShiftDropActive()) { getInventory().interact(i); } else { getInventory().interact(i, "Drop"); } sleep(random(50, 150)); } } if (getSettings().isShiftDropActive()) { getKeyboard().releaseKey(KeyEvent.VK_SHIFT); } } private boolean entityBoundsHasMyMouse(Entity entity) { List<Polygon> polygonList = getDisplay().getModelMeshTriangles(entity.getGridX(), entity.getGridY(), entity.getZ(), entity.getModel()); if (polygonList != null && !polygonList.isEmpty()) { return polygonList.stream().anyMatch(polygon -> polygon.contains(getMouse().getPosition())); } return false; } private boolean customInteract(Entity entity) { InteractionEvent interactionEvent = new InteractionEvent(entity, "Mine"); interactionEvent.setWalkTo(false); interactionEvent.setOperateCamera(false); return execute(interactionEvent).hasFinished(); } private String formatTime(long ms) { long sec = ms / 1000, d = sec / 86400, h = sec / 3600 % 24, m = sec / 60 % 60, s = sec % 60; return (d < 10 ? "0" + d : d) + ":" + (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m) + ":" + (s < 10 ? "0" + s : s); } } Rock.java import org.osbot.rs07.api.filter.Filter; import org.osbot.rs07.api.model.Entity; import org.osbot.rs07.api.model.RS2Object; import org.osbot.rs07.script.MethodProvider; import java.util.stream.Stream; //Author @Explv public enum Rock { CLAY(new short[]{6705}), COPPER(new short[]{4645, 4510}), TIN(new short[]{53}), IRON(new short[]{2576}), SILVER(new short[]{74}), COAL(new short[]{10508}), GOLD(new short[]{8885}), MITHRIL(new short[]{-22239}), ADAMANTITE(new short[]{21662}), RUNITE(new short[]{-31437}); private final short[] colours; Rock(final short[] colours) { this.colours = colours; } @SafeVarargs public final RS2Object getClosestWithOre(final MethodProvider methods, final Filter<RS2Object>... filters) { return methods.getObjects().closest( obj -> Stream.of(filters).allMatch(f -> f.match(obj)) && hasOre(obj) ); } public boolean hasOre(final Entity rockEntity) { if (rockEntity.getDefinition() == null) { return false; } short[] colours = rockEntity.getDefinition().getModifiedModelColors(); if (colours == null) { return false; } for (short rockColour : this.colours) { for (short entityColour : colours) { if (rockColour == entityColour) { return true; } } } return false; } }
  23. Send me your config on discord that can be found in C:\Users\<YourName>\OSBot\Data\Progamerz AIO Cows\Configs I just tried it, and it tanned hides, deposited them and ran back to kill cows
  24. I pushed an update to fix this with v4.525, allow up to 24 hours for the update to be live
  25. Enabled trial for 24 hours starting from now, enjoy

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.