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.

Patrick

Developer
  • Joined

  • Last visited

Everything posted by Patrick

  1. Once there are some scripts ready for release, we can release the client. There is no point before that. No ETA on that yet however
  2. Patrick posted a topic in Releases
    Hey, This version brings support for the latest game release. Mirror is still being updated. MISC: - Minor bug fixes. - The OSBot Team
  3. It's only available atm to those with the scripter rank and with released scripts
  4. Scripters are currently exploring the new client and working on their first scripts
  5. I'll have a look at that script to see if it overrides some stuff regarding the login. No idea why it would randomly disconnect the client otherwise.
  6. Patrick replied to Patrick's topic in Combat & Slayer
    Enjoy
  7. Should be today
  8. Patrick posted a topic in Releases
    Hey, Quick release for the latest game version. Mirror is still being updated. FIXES: - Added support for game revision 230. MISC: - Minor bug fixes. The OSBot Team
  9. Patrick posted a topic in Releases
    Hey, API CHANGES: - Small Sailing preperations - Fix for worldhopper to prevent going to sailing alpha worlds or development worlds WEB WALKER: - Fixed a couple of broken and broken links MISC: - Minor bug fixes. - The OSBot Team
  10. 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
  11. Patrick posted a topic in Releases
    Hey, A quick dev build to fix the sailing alpha worlds issues for the worldhopper. Download link: http://osbot.org/devbuilds/osbot 2.7.50.jar API CHANGES: - Small Sailing preperations - Fix for worldhopper to prevent going to sailing alpha worlds FIXES: WEB WALKER: - Fixed a couple of links BOT MANAGER: MISC: - Minor bug fixes. - The OSBot Team
  12. Patrick replied to Patrick's topic in Combat & Slayer
    Please post a screenshot + the logger output
  13. Mirror is back up
  14. Hey, This version fixes the random game crashes. MISC: - Minor bug fixes. - The OSBot Team
  15. Hey, Mirror is still being updated to support revision 229. WEB WALKER: - Added some random links MISC: - Added support for revision 229 - Minor bug fixes. - The OSBot Team
  16. Patrick replied to Patrick's topic in Combat & Slayer
    Please post the report according to the template. I'll need at least a screenshot with info to know where it's trying to go. Was your inventory full at this point? I need some more info (screenshot, settings etc) Enjoy
  17. Hey, This release fixes the odd webwalker behaviour from the previous version. MISC: - Minor bug fixes. - The OSBot Team
  18. Hey, If you're encountering issues with the webwalker, try deleting the map files in the User/OSBot/Data folder FIXES: - Fixed an issue with invoke walking. WEB WALKER: - Fix for new duel arena options. MISC: - Minor bug fixes. - The OSBot Team
  19. Hey, As most of our focus is currently on C++ client support, just some small changes. Download link: http://osbot.org/devbuilds/osbot 2.7.45.jar API CHANGES: - Added some more hooks to item definition. - Added a function to bulk-load item definitions. WEB WALKER: - Small tweaks to charter ships and path gen validation. MISC: - Better support for revision 228. - Minor bug fixes. - The OSBot Team
  20. Patrick replied to Patrick's topic in Combat & Slayer
    Enjoy
  21. We hope to be able to give scripters an early version within a couple of weeks, but no ETA yet
  22. Hey, This release fixed a webwalker crash from the previous release MISC: - Minor bug fixes. - The OSBot Team
  23. Hey, WEB WALKER: - Added some failsafes when teleportable path generation fails. BOT MANAGER: - A new account info popup will show when double clicking the username when the bot is running. MISC: - Added support for game revision 227 - Minor bug fixes. - The OSBot Team
  24. Patrick replied to Patrick's topic in Combat & Slayer
    Enjoy It does Do you perhaps have a lot of ring of wealth (1) in the bank?
  25. Patrick replied to Patrick's topic in Hunter
    What should the script do for UIM when it should bank?

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.