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

Popular Content

Showing content with the highest reputation on 05/06/25 in all areas

  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. 1 point
    Congz Bro ! I love itt keep up the great work as always
  3. 1 point
    Hey, could I get a trial on this?
  4. Can I get a trial? I have been using another premium bot (not osbot) and I wanted to see how your script does.
  5. 1 point
    Thanks guys!! And right now there isn't proper ironman support yet, but it can work if you already have all the items. But I'm working on new update for ironmen the next big milestone is shop buying for items, so it can gather them. Right now the bot does gather some items but it's not enough for full ironman yet, I will be releasing new updates and then I'll announce them in this thread So my work will be divided into these three: - Adding more quests - Adding more ironman support - Adding more quest-specific options (e.g. kill a certain boss in a certain way, safespotting or prayer etc) Then after a lot of work on these I have something huge planned which I can't say right now Also done added all trials enjoy
  6. 1 point
    So sorry about that I will reduce the price threshold for various items, I was a bit aggressive on those I think I did 5x price for each item just to make sure they always buy, but I'll reduce it ASAP. EDIT: I can also add a price chooser if you like, should be super useful for more control over the script For the pebble status - was the script started midway or from beginning? I'll release an update ASAP. Also I've just made a fresh account testing waterfall again from beginning, and from midway, I will help and make sure it works for you 100%
  7. With the release of OSBot Native, which focuses on native code, getting started with scripting may seem a bit daunting at first. However, once you get the hang of it, scripting is just as easy as it ever was! OSBot Native is built on the Rust language, which means we mainly support scripting in Rust natively. Other FFI-compatibles languages will be added later on, but there is no ETA for this yet. Getting Started To set up a new script project, use the following command: cargo new sample_script --libThis command will create a new project, including a `lib.rs` and `Cargo.toml` file. The `lib.rs` file will serve as your entry point for the script. You can add other files if needed, but make sure to keep `lib.rs` as the main file. Next, youโ€™ll want to add the OSBot API dependency and set up your crate as a `cdylib` (this tells Rust that we want to build a shared library). Open the `Cargo.toml` file and ensure it looks something like this: [package] name = "sample_script" version = "0.1.0" edition = "2021" [lib] crate-type = ["cdylib"] [dependencies] osbot_api = { git = "https://github.com/OSBotNative/stub_api", features = ["script"] } Depending on your IDE, it should automatically start syncing and downloading the dependencies. If this doesn't happen, you can manually run the following command: cargo update Now, open the `lib.rs` file, delete any existing content, and paste in the script template. use osbot_api::api::script::script::Script; use osbot_api::api::script::script_metadata::{ScriptCategory, ScriptMetadata}; #[no_mangle] pub extern "C" fn metadata() -> ScriptMetadata { ScriptMetadata { name: "Sample Script".to_string(), author: "Patrick".to_string(), version: 1.0, info: "Getting started with native scripting".to_string(), logo: "https://i.gyazo.com/cff84f44847c548c9024b5a06384a73d.png".to_string(), category: ScriptCategory::Other,}} #[osbot_api::script_exports] pub struct SampleScript; impl Script for SampleScript { fn new() -> Self { Self { }} fn on_start(&mut self, params: Option<String>) {} fn on_loop(&mut self) -> i32 { 250}}Much of this code should be familiar to you, though in a new style. Weโ€™ve done our best to make the entire API feel as close to the Java API as possible, making the transition to Rust as easy as it can be! As in Java, a script will include the standard functions like `on_start`, `on_loop`, `on_pause`, `on_stop`, `on_resume`, and `on_render`. You can Ctrl+Click on `Script` (between `impl` and `for`) to open the `Script` trait file and see all the available functions. Letโ€™s start by creating a simple powerfisher script. The pseudocode for this would look something like: if inventory is full { drop all fish } else { if not fishing { start fishing } } All API functions are prefixed with the object you want to interact with, followed by the action: `inventory_something`, `bank_something`, `quests_something`, `npcs_something`, etc. So to check if the inventory is full, you can use: if inventory_is_full() { }If the inventory is full, we want to drop the fish. This is just as easy: inventory_drop_all_by_id(317); OR inventory_drop_all_by_name("Shrimp");These API functions automatically handle opening the inventory if it isnโ€™t already open. And just like that, half of our script is complete! Interacting with the fishing spot is a bit more complex, but still quite easy. First, we need to get the local player and check if it exists. If it does, we check whether the player is moving or animating. If neither is true, we can start looking for a fishing spot. If one is found, we can interact with it. In Java, we'd use `!= null` to check if something exists. Rust doesnโ€™t have this, so we use the `Option` type. An `Option` can be either `Some` or `None`, similar to checking for `null` in Java. For scripting, I prefer the following syntax: if let Some(local_player) = players_get_local_player() { }This attempts to get the local player, and if successful (`Some`), it returns the value. In Java, this would be written like: Player localPlayer = getPlayers().myPlayer();if (localPlayer != null) { } To check if the local player is idle (not moving or animating), we can do the following: if !local_player.is_moving() && !local_player.is_animating() { } Once the player is idle, we can find and interact with the fishing spot and wait until we're fishing. For this example, we'll wait up till 7500 milliseconds and checking if we're fishing every 250 milliseconds. This is done as follows: if let Some(fishing_spot) = npcs_find_closest_by_name("Fishing spot") { if fishing_spot.interact("Net") { utils_sleep_conditional(7500, 250, || { local_player.is_animating() });}}Just like item dropping handles the required conditions to drop the items, interact will ensure you can interact with the fishing spot by either walking to it or moving the camera. If you want to tweak these settings, check out the function `interact_args`. And now you have your first script completed! On to building and running it. Building The Script Read Section 14: https://osbot.org/forum/topic/203264-getting-started-rust-project-setup-rustrover-ide/ I hope this post gives enough information to start scripting using the Native API. If there are any questions; ask away! - The OSBot Team

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.