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.

Alek

Ex-Staff
  • Joined

  • Last visited

Everything posted by Alek

  1. Not a scripting question, belongs in the witchcraft section.
  2. Areas can be polygons, not rectangles. Not sure if you specifically meant rectangle areas.
  3. If you are on Windows try downloading the .NET redistributables, I think there is a sticky thread about it in the mirror mode section.
  4. It could literally be anything.
  5. Alek replied to Anne's topic in Spam/Off Topic
    No idea who he was, he just kept private messaging me about contacting the "owner of osbot" to buy his friend's revolutionary anti-ban technology.
  6. Thanks for reporting.
  7. Alek replied to Magyar's topic in Spam/Off Topic
    Literally the biggest OSRS botting community.
  8. This thread is ridiculous, I read the post and the only bit of information he mentions is in reference to packet bots.
  9. Mirror Mode came out first, then other bots started trying to copy the idea (such as LG). There are many variables that go into a ban, mirror mode addresses a few overlying concerns. Mirror mode by itself is not enough to protect you 100%, and it's not efficient for a farm. Mirror mode is intended for running one or two accounts that you actually care about.
  10. That's very unsubstantiated; the point of mirror mode is to minimize traces of the client. Keeping up with official tweets, news articles, game changes, and other media posted directly from the game developers, we have a pretty good understanding of a few methods they are using to target bots. No, it won't help you run a completely undetected bot farm. There are many variables that go into a ban, running just mirror mode alone won't make you completely safe. We've never made this claim. @SuikaBooty Proxies set through the mirror mode client will not work, but attaching to Firefox will.
  11. The meaning of life is to play game Runescape, it is fine game with fine line. But it is also very fun. The purpose of game is to make transaction of gold. Fortunately I know good site where you can make gold. Many activity and good times, come check it out!
  12. Try dropAll and let me know if you get different results.
  13. Admittedly we probably should have came up with a dynamic world loading solution a very, very long time ago - but I set aside some time to finally do it. The world results are recached every 8 hours, so you should be safe from the bot accidentally loading dmm/skill worlds as the default. As always, I load your preference of F2P/P2P. Additionally I added shift dropping to the Inventory API. I do not modify your settings, meaning that if you have it enabled the bot will shift-drop and if not then it will drop it regularly. Recall that this follows similar suit to ESC closing interfaces (another game setting). If for instance your call Bank close(), it will check if this setting is active and either press the ESC key or click the widget. Download: https://osbot.org/devbuilds/osbot 2.4.114.jar I'm going to go play Rust now so don't bother me.
  14. You didn't post your code so we don't know how to improve it.
  15. Seems there is an issue with connecting to the game servers. Whether you are on version .111 or .112, if you get a bot initialization error just keep trying to restart OSBot until it works. It's completely random and if the internet gods are pleased, you may be blessed with the game actually loading. Nothing much more we can do since this is not related to our services. Thanks!
  16. Issue with the game servers, not an issue on our end.
  17. Does it go to a black screen, then come back? Does it go to a screen color and not return to normal? Kind of a notable difference,
  18. I believe we post general information telling users to verify who they talk to first. It doesn't make much sense to pin topics about individual OSBot members, we would have 15 pages of pinned threads.
  19. Alek replied to Alek's topic in Snippets
    It's a simple free script, don't expect the world.
  20. Alek posted a topic in Snippets
    Someone asked me for the source, here you go: import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.model.GroundItem; import org.osbot.rs07.api.model.Item; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.api.ui.EquipmentSlot; 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.*; import java.util.Arrays; import java.util.Comparator; import java.util.Optional; import java.util.function.Predicate; import java.util.stream.Collectors; /** * Created by Alek on 6/26/2016. */ @ScriptManifest(name = "Macro Killer", author = "Alek", version = 1.4, info = "Macro Killer", logo = "") public class MacroKiller extends Script { private boolean isUsingRanged = false; private Area combatArea; private String state = "State: Idle"; private Font titleFont = new Font("Sans-Serif", Font.BOLD, 10); private String ammoType; private int ammoRemaining = 0; private boolean isAvasEquipped = false; private int collectAmmo = 0; private Predicate<NPC> suitableNPC = n -> getMap().canReach(n) && n.getHealthPercent() > 0 && n.hasAction("Attack") && combatArea.contains(n) && !n.isUnderAttack() && getMap().realDistance(n) < 7; private Predicate<GroundItem> suitableArrowStack = g -> g.getName().contains(ammoType) && getMap().realDistance(g) < 4; @Override public void onPaint(Graphics2D g) { g.setFont(titleFont); g.setColor(Color.WHITE); g.drawRect(mouse.getPosition().x - 3, mouse.getPosition().y - 3, 6, 6); g.drawString("Macro Killer v1.5 - Written by Alek", 10, 250); g.drawString(state, 10, 265); if (isUsingRanged) g.drawString("Remaining " + ammoType + "s: " + ammoRemaining, 10, 280); } @Override public void onStart() { if (getEquipment().getItemInSlot(EquipmentSlot.WEAPON.slot).getName().contains("bow")) { Item ammo = getEquipment().getItemInSlot(EquipmentSlot.ARROWS.slot); if (ammo != null && ammo.getAmount() > 1) { ammoType = ammo.getName().toLowerCase().split(" ")[1]; isUsingRanged = true; } if (isUsingRanged) { Item item = getEquipment().getItemInSlot(EquipmentSlot.CAPE.slot); isAvasEquipped = item != null && (item.getName().contains("Ava's")); } } combatArea = myPlayer().getArea(6); } @Override public int onLoop() { if (getSkills().getDynamic(Skill.HITPOINTS) < (getSkills().getStatic(Skill.HITPOINTS) / 2)) { state = "State: Looking for food to eat"; Optional<Item> foodItem = Arrays.stream(getInventory().getItems()).filter(i -> i != null && (i.hasAction("Eat") || i.hasAction("Drink"))).findFirst(); if (foodItem.isPresent()) { state = "State: Eating food " + foodItem.get().getName(); foodItem.get().interact("Eat", "Drink"); } else { state = "State: No food remaining, logging out"; stop(true); } } else if (!getCombat().isFighting() || myPlayer().getInteracting() == null) { if (isUsingRanged) { state = "State: Checking equipment for " + ammoType + "s"; Item arrows = getEquipment().getItemInSlot(EquipmentSlot.ARROWS.slot); if (arrows == null || arrows.getAmount() < 10) { state = "State: Not enough arrows, logging out"; stop(true); return 0; } ammoRemaining = arrows.getAmount(); state = "State: Scanning ground for " + ammoType + "s"; java.util.List<GroundItem> arrowItems = groundItems.getAll().stream().filter(suitableArrowStack).collect(Collectors.toList()); arrowItems.sort(Comparator.comparingInt(GroundItem::getAmount).thenComparingInt(GroundItem::getAmount).reversed()); if (!isAvasEquipped && !arrowItems.isEmpty()) { if (arrowItems.get(0).getAmount() > 1 || ((collectAmmo = ~collectAmmo & 1) == 1)) { state = "State: Looting " + arrowItems.get(0).getName() + "(s) with a stack size of " + arrowItems.get(0).getAmount(); if (arrowItems.get(0).interact("Take")) { ConditionalSleep pickup = new ConditionalSleep(4000, 500) { @Override public boolean condition() throws InterruptedException { return !arrowItems.get(0).exists(); } }; if (pickup.sleep()) { if (arrowItems.get(0).getName().equals(getEquipment().getItemInSlot(EquipmentSlot.ARROWS.slot).getName())) getInventory().interact("Wield", arrowItems.get(0).getId()); } } } } } state = "State: Searching for monsters to kill"; java.util.List<NPC> npcs = getNpcs().getAll().stream().filter(suitableNPC).collect(Collectors.toList()); if (!npcs.isEmpty()) { npcs.sort(Comparator.<NPC>comparingInt(a -> getMap().realDistance(a)).thenComparingInt(b -> getMap().realDistance(b))); if (npcs.get(0).interact("Attack")) { state = "State: Attacking " + npcs.get(0).getName(); new ConditionalSleep(3000, 500) { @Override public boolean condition() throws InterruptedException { return !npcs.get(0).exists() || npcs.get(0).isUnderAttack(); } }.sleep(); } } } return 500; } }
  21. Alek replied to Maldesto's topic in Spam/Off Topic
    hello
  22. This is called scripting help, please post in the botting & bans sections for detailed ban statistics.
  23. Alek replied to TheWind's topic in Scripting Help
    Its a bit older, missing things like nointerface
  24. Depends on when the script was made and when it broke. Read this:

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.