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.

Leaderboard

Popular Content

Showing content with the highest reputation on 04/03/17 in Posts

  1. ๐Ÿ‘‘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
  2. 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.
  3. Recently we have reversed some various parts of the client which stores flags triggered in memory regions which are protected. Depending on your operating system you can unprotect these special regions of memory and read its information, but then this triggers another event which automatically disconnects your account. The bytecode (for the technically savvy): 0: invokestatic 3: astore_1 4: getstatic 7: ldc 9: invokevirtual 12: getstatic 17: invokevirtual 20: aload_1 21: ldc 23: iconst_0 24: anewarray 27: invokevirtual 30: pop 31: aload_1 32: invokevirtual 35: astore_2 36: aload_1 37: ldc 39: iconst_0 40: anewarray 43: invokevirtual So what does all this mean and how does this affect you? Well we've found that reaction time is one of the leading causes of bans followed closely by mouse movement. Reaction time: As a player normally plays a game, their reaction time slowly decreases set by fatigue. We urge scripters to write scripts which slowly start becoming less and less responsive as the script continues. At around the 4-5 hour mark, the script should no longer run. Cutting trees, mining rocks, attacking the next monster, all should get slower. Mouse Movement: It appears that most bots use a normal distribution in their algorithms for their mouse movements while natural players use something closer to a modified poisson distribution. Every four game ticks the point of your mouse is recorded, hashed, and sent to the game servers for analysis. It takes approximately 1,000 requests to re-create your movements on the server, which is equivalent to approximately 3 hours of gameplay. From the bot client perspective we will be quickly re-writing our mousemovement event algorithms while we start to work with script writers to evaluate script detection points (such as reaction time). Thank you for your understanding and we hope to be the first client to lead the way in this new era of bot detection!a
  4. 2 points
    Hey everyone I found an interesting tutorial about how to create a 3D object with an awt graphics object and I adapted this code into a script. The result is an interesting paint overlay. Here is a proof of concept: The sphere perfectly loops but the gif doesn't My Source code: package osbot; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; import org.osbot.rs07.api.filter.Filter; import org.osbot.rs07.api.map.Position; import org.osbot.rs07.api.map.constants.Banks; import org.osbot.rs07.api.model.Item; import org.osbot.rs07.api.model.Player; import org.osbot.rs07.api.model.RS2Object; 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; @ScriptManifest(name = "3D Paint", author = "Gary_Oak", version = 1.0, info = "", logo = "") public class Main extends Script { private int width = 400; private int height = 400; private double rotate = -180; private int xOffset = 10; private int yOffset = 10; @[member='Override'] public void onStart() { } @[member='Override'] public void onExit() { // Code here will execute after the script ends } @[member='Override'] public int onLoop() { if (rotate >= 180) { rotate = -180; } this.rotate = this.rotate + 1; return 100; // The amount of time in milliseconds before the loop starts // over } @[member='Override'] public void onPaint(Graphics2D g) { Graphics2D g2 = (Graphics2D) g; g2.setColor(new Color(0, 0, 0, 0)); g2.fillRect(0, 0, this.width, this.height); List<Triangle> tris = new ArrayList<>(); tris.add(new Triangle(new Vertex(100, 100, 100), new Vertex(-100, -100, 100), new Vertex(-100, 100, -100), Color.WHITE)); tris.add(new Triangle(new Vertex(100, 100, 100), new Vertex(-100, -100, 100), new Vertex(100, -100, -100), Color.RED)); tris.add(new Triangle(new Vertex(-100, 100, -100), new Vertex(100, -100, -100), new Vertex(100, 100, 100), Color.GREEN)); tris.add(new Triangle(new Vertex(-100, 100, -100), new Vertex(100, -100, -100), new Vertex(-100, -100, 100), Color.BLUE)); for (int i = 0; i < 4; i++) { tris = inflate(tris); } double heading = Math.toRadians(this.rotate); Matrix3 headingTransform = new Matrix3(new double[] { Math.cos(heading), 0, -Math.sin(heading), 0, 1, 0, Math.sin(heading), 0, Math.cos(heading) }); double pitch = Math.toRadians(this.rotate); Matrix3 pitchTransform = new Matrix3( new double[] { 1, 0, 0, 0, Math.cos(pitch), Math.sin(pitch), 0, -Math.sin(pitch), Math.cos(pitch) }); Matrix3 transform = headingTransform.multiply(pitchTransform); BufferedImage img = new BufferedImage(this.width, this.height, BufferedImage.TYPE_INT_ARGB); double[] zBuffer = new double[img.getWidth() * img.getHeight()]; // initialize array with extremely far away depths for (int q = 0; q < zBuffer.length; q++) { zBuffer[q] = Double.NEGATIVE_INFINITY; } for (Triangle t : tris) { Vertex v1 = transform.transform(t.v1); v1.x += this.width / 2; v1.y += this.height / 2; Vertex v2 = transform.transform(t.v2); v2.x += this.width / 2; v2.y += this.height / 2; Vertex v3 = transform.transform(t.v3); v3.x += this.width / 2; v3.y += this.height / 2; Vertex ab = new Vertex(v2.x - v1.x, v2.y - v1.y, v2.z - v1.z); Vertex ac = new Vertex(v3.x - v1.x, v3.y - v1.y, v3.z - v1.z); Vertex norm = new Vertex(ab.y * ac.z - ab.z * ac.y, ab.z * ac.x - ab.x * ac.z, ab.x * ac.y - ab.y * ac.x); double normalLength = Math.sqrt(norm.x * norm.x + norm.y * norm.y + norm.z * norm.z); norm.x /= normalLength; norm.y /= normalLength; norm.z /= normalLength; double angleCos = Math.abs(norm.z); int minX = (int) Math.max(0, Math.ceil(Math.min(v1.x, Math.min(v2.x, v3.x)))); int maxX = (int) Math.min(img.getWidth() - 1, Math.floor(Math.max(v1.x, Math.max(v2.x, v3.x)))); int minY = (int) Math.max(0, Math.ceil(Math.min(v1.y, Math.min(v2.y, v3.y)))); int maxY = (int) Math.min(img.getHeight() - 1, Math.floor(Math.max(v1.y, Math.max(v2.y, v3.y)))); double triangleArea = (v1.y - v3.y) * (v2.x - v3.x) + (v2.y - v3.y) * (v3.x - v1.x); for (int y = minY; y <= maxY; y++) { for (int x = minX; x <= maxX; x++) { double b1 = ((y - v3.y) * (v2.x - v3.x) + (v2.y - v3.y) * (v3.x - x)) / triangleArea; double b2 = ((y - v1.y) * (v3.x - v1.x) + (v3.y - v1.y) * (v1.x - x)) / triangleArea; double b3 = ((y - v2.y) * (v1.x - v2.x) + (v1.y - v2.y) * (v2.x - x)) / triangleArea; if (b1 >= 0 && b1 <= 1 && b2 >= 0 && b2 <= 1 && b3 >= 0 && b3 <= 1) { double depth = b1 * v1.z + b2 * v2.z + b3 * v3.z; int zIndex = y * img.getWidth() + x; if (zBuffer[zIndex] < depth) { img.setRGB(x, y, getShade(t.color, angleCos).getRGB()); zBuffer[zIndex] = depth; } } } } } g2.drawImage(img, 0, 0, null); } public static Color getShade(Color color, double shade) { double redLinear = Math.pow(color.getRed(), 2.4) * shade; double greenLinear = Math.pow(color.getGreen(), 2.4) * shade; double blueLinear = Math.pow(color.getBlue(), 2.4) * shade; int red = (int) Math.pow(redLinear, 1 / 2.4); int green = (int) Math.pow(greenLinear, 1 / 2.4); int blue = (int) Math.pow(blueLinear, 1 / 2.4); return new Color(red, green, blue); } public static List<Triangle> inflate(List<Triangle> tris) { List<Triangle> result = new ArrayList<>(); for (Triangle t : tris) { Vertex m1 = new Vertex((t.v1.x + t.v2.x) / 2, (t.v1.y + t.v2.y) / 2, (t.v1.z + t.v2.z) / 2); Vertex m2 = new Vertex((t.v2.x + t.v3.x) / 2, (t.v2.y + t.v3.y) / 2, (t.v2.z + t.v3.z) / 2); Vertex m3 = new Vertex((t.v1.x + t.v3.x) / 2, (t.v1.y + t.v3.y) / 2, (t.v1.z + t.v3.z) / 2); result.add(new Triangle(t.v1, m1, m3, t.color)); result.add(new Triangle(t.v2, m1, m2, t.color)); result.add(new Triangle(t.v3, m2, m3, t.color)); result.add(new Triangle(m1, m2, m3, t.color)); } for (Triangle t : result) { for (Vertex v : new Vertex[] { t.v1, t.v2, t.v3 }) { double l = Math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z) / Math.sqrt(30000); v.x /= l; v.y /= l; v.z /= l; } } return result; } } package osbot; public class Matrix3 { double[] values; Matrix3(double[] values) { this.values = values; } Matrix3 multiply(Matrix3 other) { double[] result = new double[9]; for (int row = 0; row < 3; row++) { for (int col = 0; col < 3; col++) { for (int i = 0; i < 3; i++) { result[row * 3 + col] += this.values[row * 3 + i] * other.values[i * 3 + col]; } } } return new Matrix3(result); } Vertex transform(Vertex in) { return new Vertex(in.x * values[0] + in.y * values[3] + in.z * values[6], in.x * values[1] + in.y * values[4] + in.z * values[7], in.x * values[2] + in.y * values[5] + in.z * values[8]); } } package osbot; import java.awt.Color; public class Triangle { Vertex v1; Vertex v2; Vertex v3; Color color; Triangle(Vertex v1, Vertex v2, Vertex v3, Color color) { this.v1 = v1; this.v2 = v2; this.v3 = v3; this.color = color; } } package osbot; public class Vertex { double x; double y; double z; Vertex(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } } Original code and article: http://blog.rogach.org/2015/08/how-to-create-your-own-simple-3d-render.html https://gist.github.com/Rogach/f3dfd457d7ddb5fcfd99
  5. rates pls giv dank rates p.s danker the rate i giv u immunity from
  6. cx

    2 points
    old and gay but that's okay even though the sky may look grey the sun will come back in May
  7. 2 points
    Perhaps try using some classes instead
  8. You are changing the boolean value in one instance of the class and outputting the boolean value from another. They aren't the same value. The solution is to use getters and setters to change fields within a class.
  9. 2 points
    You can't rely on an api method to execute correctly first time, low-cpu or not (The reason for this is the bot is dealing with a live game, so latency fluctuations / dcs etc also have a say in the script execution). For this reason, writing scripts in a heavily 'recipe' style is not recommended (e.g bank#open, then bank#withdraw assuming the bank is open after calling bank#open) Try and design your scripts such that it will do whatever it needs to do and repeat if necessary to reach the desired in-game situation. (tip: try the if statement) ~apa D:
  10. 2 points
  11. 2 points
    nah the difference is dbuffed's wife left him, this guy just left his parents
  12. 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
  13. NEW! supports new south + east shortcuts, new hopper (upstairs), and mouse invokes!!! (just like runelite!) 'the intelligent choice' By Czar 34-99 Mining on video!! Agility Shortcut Setup Window Preview 70 hours run time https://i.imgur.com/wiF6VPO.png
  14. This is an AIO (All-in-one) bot that has almost every thieving style except blackjack, ask for a free trial by liking thread or making a post! Vyres and elves are now supported! Both can make solid profit per hour, decent passive income! BIG THANK YOU TO ALL OUR SUPPORTERS! WE ARE THE MOST SOLD THIEVING BOT IN OSBOT HISTORY. MOST REPLIES, MOST USERS, LONGEST PROGGIES #1 Thiever | Most Overall Sales | Most Total Replies | Most Results | 10+ Years Maintained | 'the intelligent choice' by Czar SUPPORTS VYRES 224M made in a single sitting of 77 hours 1.1B made from elves and vyres!! ELVES SUPPORTED TOO! (NEW) 2.1m/hr, 6 crystals in 7 hrs 99 THIEVING MANY MANY TIMES, 35M EXP IN ONE BOTTING RUN!! 99 thieving in ~43k xp (12 minutes remaining)! Just got 99 proggy! Gratz to @iz0n THIEVING PET AT LVL 22 FROM TEA STALLS 11.5 HOURS, WITH PET TOO!! 610k/hr getting 99s on deadman worlds!
  15. Did full void for me very fast and hand done highly recommend
  16. 1 point
    I'd say 5m+ honestly. I used to buy these in the past and paid 5m for them
  17. i autoclicked 55-94 mage 3 times in a poh 18+ hours a day with murgee
  18. I recorded 3600 solid alchs by hand without stopping which came up to roughly 3 hours which I use to this day
  19. use mouse recorder.. Record your clicks for 1 hour and then just replay it 6 times. Its better than a autoclicker just clicking on heal every 30 seconds.
  20. Make hans static (However I'm sure that's a bad idea unless they're final) or in your main class have a method that's responsible for updating the value? I.e: public class Main { public boolean hans = false; public void setHansValue(boolean val) { this.hans = val; } public int onLoop() { Processing p = new Processing(); p.exchangeContext(getBot(); log("Hans is" + hans); p.Loop(); return 500; } } public class Processing { public void Loop() { m.exchangeContext(getBot()); log("Switching hans to true)" Main.setHansValue(true); } }
  21. 1 point
    I'll work on that. Here is a Gyazo of the problem accuring. https://gyazo.com/10b863bc29ea09ea472314a23114a1b1
  22. congrats you botted on ur main and got banned u earn idiot of the day
  23. 1 point
    Apologies haha, it's a sure way to end up in an infinite loop, perhaps consider a for loop or a different design such as integrating a method relying on the onLoop's delayed loop to retry!
  24. 1 point
    Conditional sleeps should fix it
  25. like 275m if it helps I came a bit
  26. Can I please have a trial for perfect fishing. This is the second time I have asked because before I didnt managed to use it as my account got banned. I love all the other scripts Ive tried so there is a strong chance I will buy this. I just need to test it first.
  27. Oh shit no lol I set it in the middle of the spider area, i'll try outside the spider area :P sorry. I'll let you know
  28. http://www.biblestudytools.com/niv/ Here you go man, May Jesus set you in the right path my frin.
  29. Hi, welcome to OSBot. There is really only one main difference between reflection and injection bots. An injection bot modifies the game code and allows the bot to access more information. The only potential benefit of using a reflection bot is that it does not modify the game code and that could theoretically remove one avenue of detection. There are techniques one can use to make injection less detectable while maintaining the benefits of using injection (this is what OSBot does). Tl;dr both are detectable and both can get you banned, we don't know exactly how Jagex bans so we can't say if using one over the other is better.
  30. 1 point
    Stfu ur weaker than a 6 yo
  31. 1 point
    no pictures though ? You slacking.
  32. Can i get a trial please

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.