From 2ed39bb8ec09c33bd1069ecc84e0d6d5b527e69c Mon Sep 17 00:00:00 2001 From: AndNowWhat Date: Fri, 8 May 2026 00:25:47 +0200 Subject: [PATCH 1/2] script tut --- docs/Guides/ScriptSubmissionWorkflow.md | 28 +- docs/Guides/Tutorial/01-install.md | 73 +++ docs/Guides/Tutorial/02-launching-accounts.md | 64 +++ docs/Guides/Tutorial/03-bot-menu.md | 65 +++ docs/Guides/Tutorial/04-ide-setup.md | 113 +++++ docs/Guides/Tutorial/05-first-script.md | 255 +++++++++++ docs/Guides/Tutorial/06-reading-the-game.md | 383 ++++++++++++++++ docs/Guides/Tutorial/07-debug-overlays.md | 136 ++++++ docs/Guides/Tutorial/08-cache-data.md | 224 ++++++++++ docs/Guides/Tutorial/09-publishing-to-sdn.md | 213 +++++++++ .../Tutorial/10-multi-module-projects.md | 418 ++++++++++++++++++ docs/Guides/Tutorial/_category.json | 8 + docs/Guides/Tutorial/index.md | 44 ++ docs/Guides/images/ADD_ACCOUNT_LOADER.png | Bin 0 -> 64226 bytes docs/Guides/images/ALL_DEBUG.png | Bin 0 -> 463311 bytes docs/Guides/images/CHOOSE_SUB_PLAN.png | Bin 0 -> 119607 bytes docs/Guides/images/LOADER_INJECT.png | Bin 0 -> 29604 bytes .../images/OPEN_OVERLAY_AND_SCRIPTS.png | Bin 0 -> 477133 bytes docs/Guides/images/SCRIPT_OPTIONS.png | Bin 0 -> 1204059 bytes .../SWITCH_TO_SDN_SCRIPTS_SCRIPTS_WINDOW.png | Bin 0 -> 49854 bytes docs/Guides/images/TOP_UP.png | Bin 0 -> 61501 bytes 21 files changed, 2017 insertions(+), 7 deletions(-) create mode 100644 docs/Guides/Tutorial/01-install.md create mode 100644 docs/Guides/Tutorial/02-launching-accounts.md create mode 100644 docs/Guides/Tutorial/03-bot-menu.md create mode 100644 docs/Guides/Tutorial/04-ide-setup.md create mode 100644 docs/Guides/Tutorial/05-first-script.md create mode 100644 docs/Guides/Tutorial/06-reading-the-game.md create mode 100644 docs/Guides/Tutorial/07-debug-overlays.md create mode 100644 docs/Guides/Tutorial/08-cache-data.md create mode 100644 docs/Guides/Tutorial/09-publishing-to-sdn.md create mode 100644 docs/Guides/Tutorial/10-multi-module-projects.md create mode 100644 docs/Guides/Tutorial/_category.json create mode 100644 docs/Guides/Tutorial/index.md create mode 100644 docs/Guides/images/ADD_ACCOUNT_LOADER.png create mode 100644 docs/Guides/images/ALL_DEBUG.png create mode 100644 docs/Guides/images/CHOOSE_SUB_PLAN.png create mode 100644 docs/Guides/images/LOADER_INJECT.png create mode 100644 docs/Guides/images/OPEN_OVERLAY_AND_SCRIPTS.png create mode 100644 docs/Guides/images/SCRIPT_OPTIONS.png create mode 100644 docs/Guides/images/SWITCH_TO_SDN_SCRIPTS_SCRIPTS_WINDOW.png create mode 100644 docs/Guides/images/TOP_UP.png diff --git a/docs/Guides/ScriptSubmissionWorkflow.md b/docs/Guides/ScriptSubmissionWorkflow.md index 13a2b436..b18bf996 100644 --- a/docs/Guides/ScriptSubmissionWorkflow.md +++ b/docs/Guides/ScriptSubmissionWorkflow.md @@ -1,8 +1,18 @@ -# Script Submission Workflow +--- +title: Script Submission Workflow +description: How to submit changes to your scripts using feature branches and squashed commits — GitHub Desktop and Git CLI walkthroughs. +--- + +import React from 'react'; +import ContentBlock from '@site/src/components/ContentBlock'; + + This document outlines the process for submitting changes to your scripts using feature branches and squashing commits. This ensures that your script reviewers can review all changes in a single, consolidated commit, improving the review process. -## Step-by-Step Workflow using Github Desktop (Recommended) + + + ### Clone the Repository 1. Open **GitHub Desktop**. @@ -64,9 +74,9 @@ Following this workflow helps ensure that your reviewers can see all your change If you have any questions or run into any issues, please reach out! ---- + -## Step-by-Step Workflow using Git CLI + ### Clone the Repository If you haven't already cloned your repository, you can do so using the following command: @@ -153,9 +163,9 @@ git branch -d feature/your-feature-name git push origin --delete feature/your-feature-name ``` ---- + -## Summary of Commands + 1. Create and switch to a new branch: ```bash @@ -192,8 +202,12 @@ git push origin --delete feature/your-feature-name git push origin --delete feature/your-feature-name ``` ---- + + + Following this workflow helps ensure that your reviewers can see all your changes in a single commit, making the review process smoother and more efficient. If you have any questions or run into any issues, please reach out! + + diff --git a/docs/Guides/Tutorial/01-install.md b/docs/Guides/Tutorial/01-install.md new file mode 100644 index 00000000..e5aeb843 --- /dev/null +++ b/docs/Guides/Tutorial/01-install.md @@ -0,0 +1,73 @@ +--- +title: 1. Install & First Launch +description: Buy a subscription on the BotWithUs website, install the loader, and exclude it from antivirus. +sidebar_position: 1 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; +import BrowserWindow from '@site/src/components/BrowserWindow'; + + + + +BotWithUs is paid software. Before anything else, you need an active subscription. + +1. Create an account on [botwithus.com](https://botwithus.com) and sign in. +2. Choose how you want to pay — wallet top-up or direct card checkout. + +**Option 1 — Top up your wallet, then subscribe** + +Useful if you want to pay with crypto, or keep a balance for renewals. + +- Open [**My Account**](https://botwithus.com/profile/) and under **Wallet Balance** click **Manage** (or go straight to your [**Wallet**](https://botwithus.com/wallet/)). +- Click **Add Funds** and top up with card or crypto. + +> ![Add funds to your wallet](../images/TOP_UP.png) + +- Head to [**Plans**](https://botwithus.com/plans/), pick your subscription, and pay with your wallet balance. + +> ![Choose a subscription plan](../images/CHOOSE_SUB_PLAN.png) + +**Option 2 — Pay directly with card** + +- Go straight to [**Plans**](https://botwithus.com/plans/) and pay with a card at checkout. + +Once your subscription is active you can review or change it any time from [**Manage Subscription**](https://botwithus.com/subscription/manage/). + +:::info Payment issues? +If a payment went through but your subscription isn't showing as active, ping a `@Dev` in the [BotWithUs Discord](https://discord.gg/botwithus) and they'll sort it out. +::: + + + + + + +1. Head to the [**Download**](https://botwithus.com/download) page and grab the loader. The quick guide on the same page tells you which build to pick. +2. Run the installer. Defaults are fine — it puts the loader in your `BotWithUs/` user folder. +3. The first launch creates `~/BotWithUs/scripts/local/` (where your own scripts go later) and `~/BotWithUs/scripts/sdn/` (where marketplace scripts get cached). + + + + + +The loader injects into the RuneScape client process, which is exactly the kind of behaviour antivirus tools like to flag. Most users hit at least one false positive. + +Add an exclusion for the BotWithUs install folder *before* you run the loader for the first time. Even Microsoft Defender will quietly quarantine the executable on some systems. + +- **Windows Defender:** Settings → Privacy & security → Windows Security → Virus & threat protection → Manage settings → Add or remove exclusions → Add an exclusion → Folder → pick your `BotWithUs` install folder. +- **Third-party AVs (Avast, Bitdefender, Kaspersky, Malwarebytes, etc.):** add the same folder to the AV's allow/exclusions list. The exact menu varies, but every AV has one. + +If the loader vanishes a few seconds after you launch it, or never produces a window at all, antivirus is the first thing to check. The loader is signed and clean — it's the injection that triggers heuristics. + + + + + +1. Start the loader. +2. Sign in with the same account you used on [botwithus.com](https://botwithus.com). The loader fetches your active subscription from the website automatically — there's no separate serial or activation key. +3. Once you're signed in, the toolbar lights up and you're ready to add a game account. + + + +**Next:** [launching accounts →](./02-launching-accounts.md) diff --git a/docs/Guides/Tutorial/02-launching-accounts.md b/docs/Guides/Tutorial/02-launching-accounts.md new file mode 100644 index 00000000..8ff50879 --- /dev/null +++ b/docs/Guides/Tutorial/02-launching-accounts.md @@ -0,0 +1,64 @@ +--- +title: 2. Launching Accounts +description: Launch classic and launcher accounts through the BotWithUs loader, plus session limits. +sidebar_position: 2 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; + + + +RuneScape has two login systems. **Both run directly from the BotWithUs loader** — the only difference is how the loader gets hold of your accounts. + +| Account type | How you log in normally | What you'll do here | +|---|---|---| +| **Classic** | Username + password directly into the game | Save credentials in the **account manager**, then create a session | +| **Launcher** | The launcher → click an account tile | Have the **launcher open** so the loader can pull your accounts in, then create a session | + +If you're not sure which you have: if you log in through the **launcher**, it's a launcher account. + + + + + +This is the simpler path. + +1. In the loader, open the **Account Manager** (button on the toolbar). +2. Click **Add account** and enter your username and password. + - You can leave credentials blank, but **autologin won't work** if you do. + +> ![Adding an account in the loader](../images/ADD_ACCOUNT_LOADER.png) + +3. Save the entry. +4. Back on the main loader screen, click **Launch account** then select classic or launcher. +5. Choose your saved account from the list. +6. Click **Launch session**. + +A game client window opens. After about **5 seconds**, BotWithUs injects into it. You'll know injection succeeded when the **BotWithUs logo** appears in the corner of the client — this is a prerequisite for opening the bot menu in [chapter 3](./03-bot-menu.md). + +> ![Loader injecting into the client](../images/LOADER_INJECT.png) + + + + + +Launcher accounts can't store credentials inside the loader — the launcher handles that. The loader pulls your accounts straight from the launcher, so it just needs to be **open** in the background. + +1. Open the **launcher** and sign in. +2. Switch to the **BotWithUs loader**. +3. Click **Add account**, and select the account type. +4. Click **Clear and repopulate** — the loader will re-read your accounts from the Jagex Launcher. +5. Click **Launch session**. + +The loader starts the client and BWU injects. It may take up to 10 seconds for the loader overlay to show in-game. + + + + + +- Your basic subscription allows for 2 sessions, any additional session can be purchased on the website if you want to bot more accounts at the same time. +- Closing the client frees a slot. + + + +**Next:** [the bot menu →](./03-bot-menu.md) diff --git a/docs/Guides/Tutorial/03-bot-menu.md b/docs/Guides/Tutorial/03-bot-menu.md new file mode 100644 index 00000000..31fbcf42 --- /dev/null +++ b/docs/Guides/Tutorial/03-bot-menu.md @@ -0,0 +1,65 @@ +--- +title: 3. The Bot Menu +description: Open the BotWithUs in-game menu, learn the hotkeys, and tell Scripts apart from SDN Scripts. +sidebar_position: 3 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; + + + +This chapter assumes you've already launched a client and BotWithUs has injected — see [chapter 2](./02-launching-accounts.md) if the BWU logo isn't showing in the corner yet. + +Open the **bot menu** in two ways: + +- Press **Insert** on your keyboard, **or** +- Click the **BotWithUs logo** in the corner of the client. + +The overlay opens on top of the game. From there, click **Scripts** to bring up the scripts window. + +> ![Open the overlay and click Scripts](../images/OPEN_OVERLAY_AND_SCRIPTS.png) + + + + + +Inside the scripts window you'll see two tabs. Switch to the **SDN** tab to see anything you've subscribed to from the marketplace. + +> ![Switch to the SDN tab in the scripts window](../images/SWITCH_TO_SDN_SCRIPTS_SCRIPTS_WINDOW.png) + +| Tab | Where the scripts come from | When you'd use it | +|---|---------------------------------------------------|---| +| **Scripts** | `.jar` files you put in your local scripts folder | Scripts you wrote, or custom ones a friend sent you | +| **SDN** | The BotWithUs marketplace, downloaded on request | Anything you've subscribed to on [botwithus.net/sdn](https://botwithus.net/sdn) | + +You'll meet "Scripts" again in [chapter 5](./05-first-script.md) when you build your own. + + + + + +Two things to check: + +1. **Did you actually subscribe on the website?** Browse [botwithus.net/sdn](https://botwithus.net/sdn), click a script, and confirm it. +2. **Hit Refresh in the SDN tab.** No need to restart the loader — just click **Refresh** in the SDN tab and your new subscriptions will load. + +After that, the script should appear under the **SDN** tab in the scripts window. Press the load button to start the download (usually instant or only a few seconds). + + + + + +Same flow for both tabs: + +1. Click the script's name in the list. +2. Its options window appears (every script has its own — read what it asks for). +3. Click **Play** to start the script. Some scripts have their own play button inside the script's configuration UI — use whichever the script provides. +4. Watch your character act on screen, and watch the script console for any issues. + +> ![Configuring a script's options](../images/SCRIPT_OPTIONS.png) + +To stop a script, click **Stop** in its window (it replaces the Play button). Closing the script's configuration window with the configuration icon does **not** stop the script — only **Stop** does. The main overlay can be hidden the same way: press **Insert** or click the BWU logo. + + + +**Next:** if you only want to *use* scripts, you're done. To start writing your own, head to [setting up your coding environment →](./04-ide-setup.md). diff --git a/docs/Guides/Tutorial/04-ide-setup.md b/docs/Guides/Tutorial/04-ide-setup.md new file mode 100644 index 00000000..75d3e5a2 --- /dev/null +++ b/docs/Guides/Tutorial/04-ide-setup.md @@ -0,0 +1,113 @@ +--- +title: 4. Setting Up Your Coding Environment +description: Install IntelliJ IDEA, get JDK 20, and clone the BotWithUs skeleton script. +sidebar_position: 4 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; +import BrowserWindow from '@site/src/components/BrowserWindow'; + + + +Before you can write a script, you need three things on your machine: + +| Tool | What it is | Why you need it | +|---|---|------------------------------------------------------------------------------------------------------------| +| **IntelliJ IDEA** | The code editor (an "IDE") | This is where you type, run, and build your scripts. This guide focuses on IntelliJ but any IDE will work. | +| **JDK 20** | The Java compiler | Scripts are written in Java; the JDK turns your code into a `.jar` BotWithUs can load | +| **Skeleton repo** | A pre-made starter project | Has all the BotWithUs APIs wired up so you can hit "build" and get a working script on day one | + + + + + + +IntelliJ comes in two editions: **Community** (free) and **Ultimate** (paid). Community is just fine for everything we'll do. + +1. Go to [jetbrains.com/idea/download](https://www.jetbrains.com/idea/download/). +2. Scroll down to the **Community Edition** section. Don't grab Ultimate by mistake — it's at the top of the page. +3. Click **Download**, run the installer. +4. Accept the defaults. The only useful checkbox is **Add "Open Folder as Project"** (it puts a right-click shortcut in Windows Explorer). +5. Launch IntelliJ when it finishes. + +On first launch IntelliJ asks about themes and plugins — pick whatever you like, defaults are safe. + + + + + + + +The **skeleton** is an empty BotWithUs script with the build setup already done. Cloning it means you don't have to set up Gradle, Maven, dependencies, or output paths by hand. + +You can clone using either Git (if you know it) or directly through IntelliJ. The IntelliJ way is easier. + +#### Cloning through IntelliJ + +1. From the IntelliJ welcome screen, click **Clone Repository** (or **File → New → Project from Version Control** if a project is already open). +2. In the **URL** field, paste: + ``` + https://github.com/BotWithUs/BwuScriptJavaSkeleton + ``` +3. Pick a folder for it (default is fine). +4. Click **Clone**. + +IntelliJ will download the project and ask if you want to **trust** it — say **Trust Project**. It'll then start indexing files (bottom status bar). Wait for indexing to finish before doing anything else. + +#### If IntelliJ asks about Git + +If IntelliJ says *"Git is not installed"* and you don't already have it: install it from [git-scm.com](https://git-scm.com/), accept all defaults, and try the clone again. Git is also useful later if you want to track your changes, and it's a must-have for publishing scripts to the marketplace. + + + + + + +You don't need to fetch a JDK from the web — IntelliJ has a built-in dialog. With the skeleton project open: + +1. Go to **File → Project Structure** (or `Ctrl+Alt+Shift+S`). +2. On the left, click **Project**. +3. Find the **SDK** dropdown. If it's blank or shows the wrong version, click it → **Download JDK…**. +4. In the dialog: + - **Version:** 20 + - **Vendor:** any works, but **Eclipse Temurin** or **Amazon Corretto** are common safe choices. + - **Location:** leave the default. +5. Click **Download**. IntelliJ pulls the JDK and selects it for the project. +6. Set **Language level** to **SDK Default**. +7. Click **OK**. + + + + + +The skeleton uses **Gradle** (Kotlin DSL — `build.gradle.kts`) to manage its dependencies. IntelliJ should detect this automatically and start a Gradle sync as soon as the project opens. + +- Look for a **Gradle** tool window on the right edge of IntelliJ. Click it. +- You should see the project with sections like **Tasks** (with `build`, `assemble`, etc.) and **Dependencies**. +- If a yellow banner at the top of the editor says *"Gradle project needs to be imported"* or *"Load Gradle Changes"* — click it (or press the refresh/sync icon in the Gradle tool window). + +When indexing and the Gradle sync finish, the bottom status bar goes quiet. You're ready. + + + + + +In the **Project** tool window (left edge): + +1. Expand `src` → `main` → `java` → `net.botwithus...` (the package path varies by skeleton version). +2. Find the `.java` file — it'll be the one with the same name as the skeleton's main class. +3. Double-click to open. + +:::info This is just a folder structure +What you see in the **Project** tool window is the same folder layout that exists on disk. IntelliJ collapses Java packages into a single dotted entry (e.g. `net.botwithus.example`) for readability, but if you open the project folder in Windows Explorer you'll find real, nested folders: `src\main\java\net\botwithus\example\`. Each `.` in the package name is a folder boundary on disk. +::: + +If the editor shows code with **no red squiggles**, the IDE, JDK, and dependencies are all happy. You're ready to build it into a real script. + +:::warning If there are red squiggles everywhere +That usually means Gradle hasn't finished syncing or the JDK isn't set. Re-check Step 3 and Step 4. Still stuck? Post a screenshot in the [public scripters channel](https://discord.com/channels/973830420858810378/1257291849475817565) on Discord. +::: + + + +**Next:** [build the skeleton into your first running script →](./05-first-script.md) diff --git a/docs/Guides/Tutorial/05-first-script.md b/docs/Guides/Tutorial/05-first-script.md new file mode 100644 index 00000000..0523089e --- /dev/null +++ b/docs/Guides/Tutorial/05-first-script.md @@ -0,0 +1,255 @@ +--- +title: 5. Your First Local Script +description: Build the BotWithUs skeleton into a .jar, let Gradle drop it in the right folder, and watch it run inside the bot menu. +sidebar_position: 5 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; + + + +Before we open the skeleton, the absolute minimum Java you'll see in every script: **variables**. A variable is a named slot that holds one value of a specific type. Java is **statically typed** — you declare the type up front, and you can't put a value of the wrong type into it. + +Declaration is always `Type name = value;`: + +```java +int coins = 1500; // whole number (32-bit) +long xp = 2_500_000_000L;// whole number, bigger range — note the 'L' suffix +double accuracy = 0.875; // decimal number +boolean isFull = true; // true / false only +String loot = "Dragon bones";// text — note the capital S, String is a class + +final int MAX_TRIES = 3; // 'final' = "this never changes" (a constant) + +var nearestNpc = NpcQuery.newQuery().name("Banker").results().nearest(); // 'var' = "compiler, infer the type for me" +``` + +A few things to know: + +- **Naming**: `lowerCamelCase` for variables/fields (`botState`, `loopDelay`), `UPPER_SNAKE_CASE` for `final` constants (`MAX_TRIES`). +- **`int` vs `long`**: use `int` by default; reach for `long` when the number could exceed about 2 billion (timestamps, big XP totals, BotWithUs delays). +- **`String` is *not* a primitive** — it's a class. That's why it's capitalized, and why you compare two strings with `.equals(...)`, never `==`. +- **`var`** lets the compiler figure out the type from the right-hand side. Useful when the type is long-winded; the type is still fixed, you just don't have to type it out. + +You'll see all of these used in the skeleton in the next section. + + + + + +You already have the skeleton open in IntelliJ. In this chapter you'll: + +1. Look at the two files that make up the skeleton script. +2. Add a single line that prints to the console (so we can prove the script is alive). +3. Build it into a `.jar` with Gradle. +4. Confirm the `.jar` landed in the right folder — the skeleton's build script handles this for you. +5. Open BotWithUs and run it. + +That's the entire end-to-end flow. Everything else you'll learn later is variations on these five steps. + + + + + +Inside the skeleton you'll find two files under `src/main/java/net/botwithus/`: + +| File | Job | +|---|-----------------------------------------------------------------------------------------| +| `SkeletonScript.java` | The script itself — what runs every loop. | +| `SkeletonScriptGraphicsContext.java` | The ImGui settings panel users see when they click script configuration. | + +#### `SkeletonScript.java` (trimmed) + +Before the class itself, real Java files start with a **package declaration** and a list of **imports** — every class name you use (`LoopingScript`, `Client`, `LocalPlayer`, `Execution`, `Backpack`, etc.) has to be imported from its package, otherwise the compiler doesn't know where to find it. The skeleton's actual top of file looks like this: + +```java +package net.botwithus; + +import net.botwithus.api.game.hud.inventories.Backpack; +import net.botwithus.internal.scripts.ScriptDefinition; +import net.botwithus.rs3.game.Client; +import net.botwithus.rs3.game.hud.interfaces.Interfaces; +import net.botwithus.rs3.game.queries.builders.objects.SceneObjectQuery; +import net.botwithus.rs3.game.scene.entities.characters.player.LocalPlayer; +import net.botwithus.rs3.game.scene.entities.object.SceneObject; +import net.botwithus.rs3.script.Execution; +import net.botwithus.rs3.script.LoopingScript; +import net.botwithus.rs3.script.config.ScriptConfig; + +import java.util.Random; +``` + +You almost never type these by hand — when you reference a new class, IntelliJ pops up an *Unresolved reference* error and you press **Alt+Enter** to auto-import it. If you ever copy a snippet from this guide and the class name has a red squiggle, that's all it means: import is missing. Alt+Enter fixes it. + +The snippets below leave imports out for readability, but they exist in the real file. + +```java +public class SkeletonScript extends LoopingScript { + + private final Random random = new Random(); + private BotState botState = BotState.IDLE; + + enum BotState { IDLE, SKILLING, BANKING } + + public SkeletonScript(String s, ScriptConfig scriptConfig, ScriptDefinition scriptDefinition) { + super(s, scriptConfig, scriptDefinition); + this.sgc = new SkeletonScriptGraphicsContext(getConsole(), this); + } + + @Override + public void onLoop() { + LocalPlayer player = Client.getLocalPlayer(); + if (player == null + || Client.getGameState() != Client.GameState.LOGGED_IN + || botState == BotState.IDLE) { + Execution.delay(random.nextLong(3000, 7000)); + return; + } + switch (botState) { + case SKILLING -> Execution.delay(handleSkilling(player)); + case BANKING -> { /* your banking logic */ } + } + } +} +``` + +A few things worth knowing: + +| Piece | What it means | +|---|---| +| `extends LoopingScript` | "This class is a BotWithUs script." `LoopingScript` is the simplest base class — it just calls `onLoop()` repeatedly (~every 100 ms by default; change with `this.loopDelay = 500`). | +| `this.sgc = new SkeletonScriptGraphicsContext(...)` | Wires up the ImGui settings panel. The `sgc` field is what BWU draws when a user opens your script. | +| `BotState` enum + `botState` field | A simple state machine. The skeleton ships with `IDLE`, `SKILLING`, `BANKING` — replace these with whatever your script needs. | +| `onLoop()` early-return | If we're not logged in **or** the bot is idle, just delay and bail. The state machine only runs when the player is in-game and the bot is doing something. | + +`Execution.delay(...)` blocks the loop for the given number of milliseconds — use it to pace actions/queries so you don't spam the game. + +#### `SkeletonScriptGraphicsContext.java` + +The graphics context is where you describe your settings UI with ImGui. The skeleton's version draws a window with two tabs: + +```java +@Override +public void drawSettings() { + if (ImGui.Begin("My script", ImGuiWindowFlag.None.getValue())) { + if (ImGui.BeginTabBar("My bar", ImGuiWindowFlag.None.getValue())) { + if (ImGui.BeginTabItem("Settings", ImGuiWindowFlag.None.getValue())) { + ImGui.Text("Welcome to my script!"); + ImGui.Text("My scripts state is: " + script.getBotState()); + ImGui.EndTabItem(); + } + if (ImGui.BeginTabItem("Other", ImGuiWindowFlag.None.getValue())) { + script.setSomeBool(ImGui.Checkbox("Are you cool?", script.isSomeBool())); + ImGui.EndTabItem(); + } + ImGui.EndTabBar(); + } + ImGui.End(); + } +} +``` + +You don't need to touch this for now — just know it's where your script's settings window lives. + + + + + +Open `SkeletonScript.java` and add **one line** at the very top of `onLoop()`, before the early-return check: + +```java +@Override +public void onLoop() { + println("Hello from SkeletonScript!"); + + LocalPlayer player = Client.getLocalPlayer(); + if (player == null + || Client.getGameState() != Client.GameState.LOGGED_IN + || botState == BotState.IDLE) { + Execution.delay(random.nextLong(3000, 7000)); + return; + } + // ...rest unchanged +} +``` + +`println(...)` is a helper provided by `LoopingScript` — anything you pass to it shows up in the BotWithUs console window when the script is running. Putting it **above** the early-return guarantees it fires every loop, even while the bot is `IDLE`. We'll use that console heavily for debugging in later chapters. + +Save the file (`Ctrl+S`). + +:::tip Why not put real game logic yet? +Because we want to confirm the build → load → run pipeline works end-to-end **before** layering anything on top. If something's wrong, a one-line script makes the problem much easier to spot. Until you get comfortable it's best to test every new feature you add before adding more. +::: + + + + + +1. Open the **Gradle** tool window on IntelliJ's right edge. +2. Expand the project → **Tasks → build**. +3. Double-click **build**. + +IntelliJ runs Gradle, compiles your code, and produces a `.jar`. The bottom panel shows progress; you want to see **BUILD SUCCESSFUL** at the end. + +If you get **BUILD FAILED**, scroll up in the output. The first red line usually points at the file and line number with the problem. + +:::info You can also use the wrapper from the terminal +If you prefer the terminal: open IntelliJ's terminal (`Alt+F12`) and run `gradlew build`. Same result. +::: + + + + + +The skeleton's `build.gradle.kts` defines a custom `copyJar` task that runs **automatically after every successful build** and drops the finished `.jar` into your local scripts folder. + +A `.jar` is just a Java archive — very similar to a `.zip` or `.rar` — holding your compiled classes, resources like images, and metadata. + +``` +%USERPROFILE%\BotWithUs\scripts\local\ +``` + +(That's `C:\Users\\BotWithUs\scripts\local\` — paste the `%USERPROFILE%` form into Explorer's address bar and Windows will resolve it.) + +After **BUILD SUCCESSFUL**, open that folder. You should see the skeleton's jar (e.g. `BwuScriptJavaSkeleton-1.0-SNAPSHOT.jar`) sitting in there. + +:::info Don't see the .jar? +The `copyJar` task in `build.gradle.kts` controls the destination. Open it and look for the section that references `${user.home}\BotWithUs\scripts\local\` — that's where it lands. If you've changed it, either change it back or copy the `.jar` to the local folder by hand. +::: + + + + + +1. Launch a game client through the loader ([chapter 2](./02-launching-accounts.md)). +2. Wait for injection (BWU logo appears). +3. Press **Insert** to open the bot menu and click **Scripts**. +4. On the **Scripts** tab (the local one — *not* SDN), find **SkeletonScript** in the list. +5. Click it, then click **Play**. + +Open the BotWithUs **console**. Every loop, you should see: + +``` +Hello from SkeletonScript! +``` + +**That's a working script.** + +Open the script's settings window and you'll see the two ImGui tabs ("Settings" and "Other") rendered by `SkeletonScriptGraphicsContext` — proof that the graphics context is wired up too. + + + + + +| Symptom | Likely cause | Fix | +|---|---|---| +| Script not in the **Scripts** list | `.jar` isn't in `BotWithUs\scripts\local\` | Confirm `copyJar` ran in the build output; copy the `.jar` over manually if needed | +| Script appears, but errors when started | Compile target wrong / missing dependency | Re-check JDK 20 in [chapter 4](./04-ide-setup.md), then rebuild | +| Console shows nothing | Console window is closed or filtered | Open the console from the loader; check there's no filter set | +| BUILD FAILED in IntelliJ | Code error or wrong JDK | Read the first red line in the Gradle output — it tells you what and where | + + + +You've now built and run your first script. From here, every new feature is just *more code inside `onLoop()`* (or new tabs in the graphics context). The next chapter teaches you what game data you can actually look at from in there. + +**Next:** [reading the game →](./06-reading-the-game.md) diff --git a/docs/Guides/Tutorial/06-reading-the-game.md b/docs/Guides/Tutorial/06-reading-the-game.md new file mode 100644 index 00000000..aa676e27 --- /dev/null +++ b/docs/Guides/Tutorial/06-reading-the-game.md @@ -0,0 +1,383 @@ +--- +title: 6. Reading the Game +description: Plain-English tour of the data your script can read — varbits, scene objects, NPCs, inventory, skills, interfaces, position, events, and more. +sidebar_position: 6 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; + + + +Your script is a brain that watches the game and decides what to do. Everything it watches falls into a handful of categories. Once you know what's in each category and *why it exists*, you stop guessing and start reading the game like the engine sees it. + +| Category | Answers the question | Examples | +|---|---|-------------------------------------------------------| +| **Varbits** | "Is this small flag on or off? What stage of the quest am I at?" | Is this prayer active? Is this potion buff active? | +| **Varps** | Same idea as varbits, just bigger numbers | Quest progress, packed settings, per-player counters | +| **Varcs** | Per-client values (UI state, options) | Whether the chat box is hidden, music volume | +| **Scene objects** | "What buildings, doors, trees, ores, banks are around me?" | Bank chest, magic tree, mining rock, ladder | +| **NPCs** | "What characters are around me — friendly or hostile?" | Boss, monster, banker, shopkeeper | +| **Ground items** | "What loot is on the floor near me?" | Bones, rare drops, dropped supplies | +| **Projectiles** | "Is something flying through the air right now?" | Boss special attack, player's spell, dragonfire | +| **Animations / spot animations** | "What is something *doing* right now?" | Player swinging axe, NPC casting, ground graphic effect | +| **Inventory, bank & equipment** | "What items am I carrying, banking, or wearing?" | Backpack stacks, equipped weapon, bank counts | +| **Skills & XP** | "What level am I? How much XP did I just gain?" | Mining level, XP gained this session, level-up | +| **Interfaces & components** | "What menu/dialog is open and what does it say?" | Bank window, quest dialog, options menu | +| **Player & position** | "Where am I, am I in my target area, what's the engine seeing me do?" | Coordinate, current Area, my animation/hitsplats | +| **Events** | "Tell me when X happens — I don't want to keep checking." | Chat message arrived, XP gained, inventory changed | + +The rest of this chapter is one section per category, in plain English, with concrete examples from real BotWithUs scripts. + + + + + +Think of a varbit as a labeled slot the game stores a small number in. Each varbit has an **ID** (a number) and a **value**. The value is *usually* 0 or 1 (a flag), but plenty of varbits are real small integers — counters, timers, tiered settings. + +In real WithUs scripts you'll find varbits doing all of these: + +- **Yes/no flags** — "Is this prayer turned on?" → `VarManager.getVarbitValue(prayer.getVarbitId()) > 0` +- **Counters** — "How many flowers are in the basket right now?" → `VarManager.getVarbitValue(basket.getFlowerCountVarbit())` +- **Buff/familiar timers** — "How much time is left on my BoB familiar?" → `VarManager.getVarbitValue(BOB_REMAINING_TIME_VARBIT)` +- **Mode toggles** — "Is area-loot enabled?" → `VarManager.getVarbitValue(27943) == 1` +- **Boss/quest stage** — "Which phase is the boss in?" → `varbit == 3` + +Reading one looks like: + +```java +int phase = VarManager.getVarbitValue(SOME_VARBIT_ID); +if (phase == 3) { + // boss is in phase 3, do phase-3 things +} +``` + +You don't memorize varbit IDs — you **find** them. Varbits behave differently from varps in the debug overlay, so finding them has its own workflow — see [chapter 7](./07-debug-overlays.md) for the details. + +In a finished script the IDs usually end up as named constants (`PERFECT_WOODCUTTING_JUJU_VARBIT = 26029`) so the call site reads naturally. + + + + + +A varp ("var player") is a varbit's bigger cousin — a full 32-bit integer the game tracks per player. Under the hood, varbits are *slices* of varps (each varp is split into bit-fields, and a varbit is one of those fields). For your purposes: + +- Use a **varbit** when the in-game state is small (a flag, a stage, a small counter) — most of the time. +- Reach for a **varp** when the value is too big to be a varbit (large counters, packed quest progress, certain settings) or when the debug overlay shows the change in the varp panel rather than the varbit panel. + +Reading is the same shape, different method: + +```java +int value = VarManager.getVarpValue(SOME_VARP_ID); +``` + +You'll mostly meet varps in quest tracking and certain global settings. + + + + + +A varc ("var client") lives only in **your** game client. They store UI state and per-client preferences: which chat tab is active, whether music is muted, how a sub-panel was last sorted. + +You'll use varcs less often than varbits/varps, but they're the right tool when your script depends on a **UI** state the server doesn't know about — for example, "is this side panel currently expanded or collapsed?" + +There's also `getVarcStringValue(...)` for varcs that hold strings rather than numbers (e.g. user-entered text or a selected option label). + + + + + +A **scene object** is anything in the world that *isn't a person*: trees, banks, ladders, mining rocks, fishing spots, doors, anvils, prayer altars, fires, ranges. Each has a position, a name, and one or more right-click options ("Chop down", "Mine", "Climb-up", "Add logs to"). + +The query is a chain of filters: `name(...)`, `option(...)`, `id(...)`, `animation(...)`, etc. — combine whichever you need. Real patterns from our scripts: + +```java +// Filter by name only: +SceneObject tree = SceneObjectQuery.newQuery() + .name("Magic tree") + .results() + .nearest(); + +// Filter by name AND right-click option (many "Fire" objects +// exist in the world; we only want a cookable one): +SceneObject fire = SceneObjectQuery.newQuery() + .name("Fire") + .option("Cook-at") + .results() + .nearest(); + +// Filter by option only — "give me whatever is nearby that lets +// me 'Load Last Preset from'", regardless of name: +SceneObject preset = SceneObjectQuery.newQuery() + .option("Load Last Preset from") + .results() + .nearest(); + +// Filter out scene objects that exist in the scene data but aren't +// currently rendered/interactable. Very common in encounters where +// the same name can refer to an active or inactive object (open vs +// closed door, powered vs unpowered anchor, used vs fresh trapdoor) +// you will use hidden flag almost everywhere: +SceneObject tree = SceneObjectQuery.newQuery() + .name("Tree") + .hidden(false) + .results() + .nearest(); + +if (tree != null) { + tree.interact("Chop down"); +} +``` + +What `SceneObjectQuery` actually does: "give me every scene object in the loaded scene matching these filters" — then you call `.nearest()` / `.first()` / iterate. If nothing matches, you get `null` back, which is why every interaction is preceded by a null check. + +:::tip Why filter by option, not just name? +Many objects share names (every "Fire" is named "Fire", but only some are cookable). Filtering by the right-click option you actually want skips decorative or wrong-state copies. This is *the* most common mistake in early scripts. +::: + + + + + + +NPCs are the moving people and monsters. Same query shape as scene objects: + +```java +Npc boss = NpcQuery.newQuery() + .name("Araxxor") + .results() + .nearest(); +``` + +What you read off an NPC: + +- **Position** — where they are (`getCoordinate()`). +- **Animation ID** — what they're currently doing (`getAnimationId()`; see below). +- **Health** — how alive they are (boss kill detection). +- **Overhead text** — what they just said. +- **Target** — who/what they're attacking — useful to detect when the boss switches to or away from you. + +NPCs are how your script "sees" enemies, vendors, summoning familiars, slayer task targets, and any creature in the world. Boss scripts in particular spend most of their time reading the boss NPC's animation and target. + + + + + +A **ground item** is anything sitting on a tile that you can pick up: bones a monster dropped, rares from a kill, supplies someone tossed. Same query pattern as scene objects and NPCs: + +```java +GroundItem loot = GroundItemQuery.newQuery() + .name("Dragon bones") + .results() + .nearest(); + +if (loot != null) { + loot.interact("Take"); +} +``` + +You'll mostly use this in money-making and combat scripts — anything that loots after a kill. + + + + + +A **projectile** is something the game has launched but not yet landed: a fireball, a thrown spear, a dragon's breath, a boss's homing attack. Each has an **ID**, a **source** (who fired it), a **target**, a **position**, and a **landing cycle** — the engine tick when it'll hit. + +Projectiles are critical for **boss scripts** — they're how you know an attack is *coming* before the damage actually hits. By the time the damage lands, it's too late to switch prayers or step out. + +The real pattern from our prayer-flicker code is: + +```java +EntityResultSet magicProjectiles = + ProjectileQuery.newQuery().ids(1234).results(); // some boss's magic attack ID + +for (Projectile p : magicProjectiles) { + long landingInMs = (Client.getClientCycle() - p.getEndCycle()) * 20L; + // landingInMs is negative while the projectile is still mid-flight, + // 0 when it lands, positive once it's already landed. + if (landingInMs > -300 && landingInMs < 0) { + // ~300 ms before impact — flick to the matching prayer + } +} +``` + +Two things to notice: + +- We query **by ID** (`.ids(1234)`) — each boss attack has its own projectile ID. You learn them with the debug overlay. +- `(Client.getClientCycle() - p.getEndCycle()) * 20L` gives you a number relative to landing. **Negative** = "lands in N ms" (still in flight), **positive** = "landed N ms ago." Boss flickers in our codebase (`ZukWithUsNM`, `AraxxorWithUs`) trigger when `landingInMs` is in a small negative window like `-300 < landingInMs < 0` — that's the lead-time you need to swap prayers before the hit registers. + + + + + +Every action in the game has an **animation ID**. Player swinging an axe = one ID. Player drinking a potion = another. Boss winding up its special = another. + +Two flavors: + +- **Animation** — attached to a character (player, NPC, monster). Read the character's `getAnimationId()`. +- **Spot animation** — a graphic that plays at a *location* without a character (e.g., a magic rune appearing on the ground, an explosion mark). + +The single most-used idiom is **`getAnimationId() == -1`**, which means *the character isn't doing anything right now*. You'll see it in two shapes: + +```java +// Wait until I'm idle (e.g. finished chopping): +Execution.delayUntil(12000, () -> Client.getLocalPlayer().getAnimationId() == -1); + +// "Am I currently doing anything?" — for skill/combat detection: +boolean busy = player.isMoving() || player.getAnimationId() != -1; +``` + +For specific actions, compare against known IDs (most of the time, the simple `!= -1` check above is enough): + +```java +LocalPlayer player = Client.getLocalPlayer(); +boolean isHarvesting = + player.getAnimationId() == 21228 + || player.getAnimationId() == 36249 + || player.getAnimationId() == 36250 + || player.getAnimationId() == 31055; +``` + +Animation IDs change between bosses, skills, and outfits — you'll be looking them up constantly. + + + + + +Your **inventory** (the backpack), the **bank**, and your **equipped gear** are all readable. The most-used helpers in our scripts: + +```java +if (Backpack.isFull()) { + // walk to bank +} + +int axes = Backpack.getCount("Dragon hatchet"); + +Item weapon = Equipment.getItemAt(EquipmentSlot.WEAPON); +``` + +Common questions you'll answer with these: + +- **Backpack** — "Is my backpack full? Do I still have logs to bank? Do I have a tinderbox?" +- **Bank** — "Do I have stamina potions in the bank to withdraw? How many planks left?" +- **Equipment** — "Am I wearing the right weapon for this monster?" + +For specific item *queries* by ID/predicate, use `InventoryItemQuery` — same shape as `SceneObjectQuery` but for items. + + + + + +The `Skills` API tells you levels and XP: + +```java +int miningLevel = Skills.MINING.getLevel(); +int miningXp = Skills.MINING.getExperience(); +``` + +Use this when you need to: + +- Gate behavior on level ("Don't try to mine runite until level 85"). +- Track session XP for an in-script counter. +- Detect when training is "done" (target level reached). + +For a *push-based* version — "tell me whenever XP changes" — see Events below. + + + + + +Every UI panel in the game (bank window, dialog box, quest journal, settings) is an **interface** made up of **components**. Each component has a position, text, and sometimes buttons or input fields. + +```java +if (Interfaces.isOpen(517)) { + // confirm option +} + +Component continueBtn = ComponentQuery.newQuery(517) + .text("Click here to continue") + .results() + .first(); +``` + +You'll reach for interfaces when your script depends on the **UI** being in a specific state — most commonly: + +- The **bank** is open before depositing/withdrawing. +- A **dialog** is on screen so you can advance it. +- The **deposit/withdraw mode** of a panel is the one you want. + +Interface IDs (like `517` above) are also discoverable through the debug overlays in the next chapter. + + + + + +Your own character is a `LocalPlayer` — same shape as any `Player`/`Npc`, so you read animation, position, target, and hitsplats off it the same way: + +```java +LocalPlayer me = Client.getLocalPlayer(); +Coordinate pos = me.getCoordinate(); +int anim = me.getAnimationId(); // -1 means idle +``` + +For "am I in the right zone?" use an `Area`: + +```java +Area minePit = new Area.Rectangular( + new Coordinate(3290, 3370, 0), + new Coordinate(3300, 3380, 0)); + +if (!minePit.contains(me)) { + // walk back to the mine +} +``` + +`Movement` and `NavPath` (the action side) build on top of these reads — your script asks "where am I?" with `Coordinate`, then asks `Movement` to walk somewhere new. + + + + + +Everything above is **pull**: your `onLoop()` runs and asks the game "what's the state right now?" Sometimes you'd rather the game *tell you* the moment something happens — that's an **event**. + +```java +EventBus.subscribe(ChatMessageEvent.class, e -> { + if (e.getMessage().contains("You receive a Clue scroll")) { + println("Clue dropped — switch state to bank."); + } +}); +``` + +The events you'll hit most often: + +- **`ChatMessageEvent`** — anything in the game chat. +- **`SkillUpdateEvent`** — XP gained / level up. +- **`InventoryUpdateEvent`** — items added or removed from the backpack. + +Two rules of thumb: + +- **Subscribe in your constructor or `initialize()`**, not inside `onLoop()` (you'd subscribe over and over). +- **Don't run game queries directly in an event handler** — handlers fire on a different thread. Use them to set a flag your `onLoop()` reads next tick. +- **Don't run execution delays inside the events**. + + + + + +Most scripts boil down to a tiny decision loop using these primitives: + +> *Look at varbits / inventory / NPC animations / projectiles to figure out what's happening, then interact with a scene object, NPC, or interface to do something about it.* + +A toy example for a woodcutter: + +1. **Look** — query for the nearest tree. Read my own animation ID. +2. **Decide** — if I'm idle (`getAnimationId() == -1`) and there's a tree, click it. If `Backpack.isFull()`, switch to banking instead. +3. **Repeat** — `onLoop()` fires again ~100 ms later. + +That's it. Boss scripts add more checks (projectiles, varbits, target switches) but the shape is identical. + + + +You now know **what** the game exposes. The next chapter shows you the on-screen tools BotWithUs gives you for **finding** the specific IDs and values your script needs. After that, we'll look at the cache dump, which contains almost everything the game has to offer. + +**Next:** [debug overlays →](./07-debug-overlays.md) diff --git a/docs/Guides/Tutorial/07-debug-overlays.md b/docs/Guides/Tutorial/07-debug-overlays.md new file mode 100644 index 00000000..224dd889 --- /dev/null +++ b/docs/Guides/Tutorial/07-debug-overlays.md @@ -0,0 +1,136 @@ +--- +title: 7. Debug Overlays +description: The in-game debug windows you use to find IDs, watch values change, and inspect the scene. +sidebar_position: 7 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; + + + +Chapter 6 told you *what* the game exposes (varbits, NPCs, animations, etc.). This chapter shows you the **debug overlays** — small windows BotWithUs draws on top of the game that let you watch all of that live. + +Without overlays, finding "the varbit that flips when I pick up an item" means digging through the cache dump or printing values to the script console at runtime. The overlays cut that loop down to seconds. + +> ![All debug overlays open at once on the game client](../images/ALL_DEBUG.png) + + + + + +1. Inject into a client and open the **bot menu** (Insert). +2. Look for a **Debug** tab in the menu. +3. Toggle each overlay you want. They appear as draggable windows on top of the game. + +You can have many open at once. Drag them by their title bar; resize from the bottom-right corner. + + + + + +These are the workhorses. Pick the one that matches what you're trying to find. + +#### Player + +Shows your own character's current state: position, animation ID, world tile etc... + +**Use it when:** you want to know if your player is currently doing something. Watch `Animation ID` flip from `-1` (idle) to a specific number when you click a tree, attack a monster, drink a potion. That number is your "player is busy" check. + +#### NPC + +Lists every NPC currently in the scene with their name, ID, animation ID, and position. Click one to focus its details. + +**Use it when:** +- You need an NPC's **ID** to query for it cleanly. +- You're hunting the **animation ID** of a boss's special attack — open this, watch the boss, note which animation number flashes during the wind-up. + +#### Scene Object + +Same idea for objects in the world. Lists trees, doors, banks, etc. with their names, IDs, and right-click options. + +**Use it when:** +- You don't know what name BotWithUs uses for an object (the in-game tooltip and the API name don't always match). +- You're checking that an object's **interact options** are what you expect ("Mine", "Quick-mine", etc.). + +#### Varbit / Varp Watcher + +Lists varbits and varps with their current values. **Big asymmetry:** varps populate the watcher automatically — when one changes, you see it. Varbits **do not** auto-populate; the overlay can only show varbit IDs you've explicitly told it to watch (you cannot scan them live). + +**Use the watcher for varps when:** you need an unknown ID for a quest stage, a setting toggle, a phase counter. Procedure: filter to "changed recently" → do the in-game action → glance at which varp value flipped → that's your varp. + +**For varbits, the watcher is not the find tool.** You'll usually: + +- Look the varbit up in the **cache dump** (`latest_varbits.json`, chapter 8) by name/context, or +- Grab it from the BotWithUs **Discord data channels**, which keep curated lists for common things like potion timers and prayer flags, or +- If you've already found the *varp* with the watcher, drill down to which bit-range inside that varp moved — that's your varbit. + +#### Projectile Viewer + +Live list of projectiles flying through the scene with their source, target, and ID. + +**Use it when:** writing a boss script. You watch the boss attack and read the projectile ID off this overlay so your script can react to it next time. + +#### Component / Interface + +Lists every UI element ("interface component") on screen with its IDs and current text. + +**Use it when:** you need to click a specific button on an interface, or read text from the chat box, the bank window, a dialog. + +#### Spot Animation Viewer + +Lists active spot animations (those graphics-only effects that aren't tied to a character). + +**Use it when:** the cue you need is an effect on the ground (an AOE marker, an explosion, a teleport sparkle) rather than a character animation. + + + + + +This is the single most useful technique in the whole tutorial — for everything *except* varbits. You'll use it constantly. + +To find any unknown game value (varps, NPC fields, projectile IDs, animation IDs, scene-object state): + +1. Open the relevant overlay (varp watcher, NPC, projectile viewer — whichever matches). +2. Trigger the in-game event you care about — drink the potion, attack the boss, click the door. +3. Note which row(s) and what value they changed *to*. +4. That's your ID and target value. + +Example — *"What's the varp that holds my Overload buff state?"* + +1. Open the varp watcher, clear it. +2. Drink an Overload. +3. Multiple rows update, but since we're looking for a buff timer (a clear before/after) we can usually deduce which one matters. That row's ID is your "overload active" varp. +4. If you actually need the **varbit** inside that varp (because the engine packs several flags into one varp), open the cache dump's `latest_varbits.json` and find the varbits whose `varpId` matches — then pick the one whose bit-range covers the bits that flipped. + +:::warning Varbits don't show up here automatically +The find-by-changing trick **does not work for varbits** — the watcher can't scan them live, it only displays IDs you explicitly add. To find a varbit ID, use the **cache dump** (chapter 8), the BotWithUs **Discord data channels** (curated lists for prayers, potions, common buffs), or the "find the varp first, then drill down" approach above. +::: + + + + + +You'll find a lot of IDs while working on a script. Keep a plain `.txt` file open next to IntelliJ and dump them as you go: + +``` +Magic tree object_id: 38755 +Chop animation anim_id: 24937 +Boss special wind anim_id: 12345 +``` + +Future-you will thank present-you. A boss script can easily collect 30+ IDs. + + + + + +A few common gotchas: + +- **Multiple matching results.** "Magic tree" might appear twice (the visible tree, plus a stump waiting to respawn). The inspector shows them as separate rows — make sure your script's filter (`.name(...)`, `.option(...)`, `.hidden(false)`) picks the right one. +- **Varbit IDs differ between RuneScape versions.** When game updates ship (chapter 2), some IDs can also shift. If a working script suddenly doesn't, run the find-by-changing trick again to confirm the IDs you stored are still right. + + + +You can now (a) read the game and (b) find the specific IDs you need. The next chapter shows you how to skip the "look it up live" step entirely for static data — pulling it straight from the cache. + +**Next:** [cache data gathering →](./08-cache-data.md) diff --git a/docs/Guides/Tutorial/08-cache-data.md b/docs/Guides/Tutorial/08-cache-data.md new file mode 100644 index 00000000..9f5fef23 --- /dev/null +++ b/docs/Guides/Tutorial/08-cache-data.md @@ -0,0 +1,224 @@ +--- +title: 8. Cache Data Gathering +description: Pull item, NPC, and object info straight from the game cache so your script doesn't need hard-coded numbers. +sidebar_position: 8 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; + + + +When the game client launches, it downloads (or reads from disk) a giant package of static data: every item's name, every NPC's stats, every object's right-click options, every interface layout. That package is **the cache**. + +The cache is *the* source of truth for things like: + +- "What's the official in-game name for item ID 12345?" +- "What right-click options does this object have?" +- "What stats does this NPC have?" +- "What's this varbit's underlying varp and bit range?" + +You can read all of this from inside your script without making the player walk over and look at it. + + + + + +Most beginner scripts get written with hard-coded numbers — and worse, hard-coded *lists*: + +```java +// Hardcoded raw fish IDs — fragile and incomplete. +// Every time Jagex adds a new fish, you have to find this list and update it. +int[] RAW_FISH = { 317, 321, 327, 331, 335, 341, 353, 359, 363, 371, 377, 383, 389, 395, 401, /* ...keep going forever... */ }; +``` + +That works until Jagex adds a new fish, renames an item, or you copy your script to a fresh setup and realize you missed twelve IDs. **Cache lookups** let you discover the answer at runtime instead — the cache is the single source of truth and you ask it directly. + +The most useful pattern is **iterating the cache to find every item matching a rule**. This loop is lifted straight from `CookWithUs.loadRawFishItems()`: + +```java +// Build the list of raw fish at script start by walking the cache. +List rawFishItems = new ArrayList<>(); +HashSet seenNames = new HashSet<>(); + +for (int i = 0; i < 60000; i++) { // walk every known item id + ItemType item = ConfigManager.getItemType(i); + if (item != null + && item.getCategory() == 57 // 57 = "Cooking" category + && item.getName().startsWith("Raw ")) { + if (seenNames.add(item.getName())) { // dedupe by name + rawFishItems.add(item); + } + } +} +println("Loaded " + rawFishItems.size() + " unique raw fish items from cache"); +``` + +When Jagex ships a new fish next month, your script picks it up automatically — no code change. You also don't have to *know* the IDs in advance; you describe what you want ("a Cooking-category item whose name starts with 'Raw '") and the cache hands you the matching set. Same trick works for "every overload variant", "every herb", "every uncharged piece of augmented gear" — anything where the in-game grouping is reflected in `getCategory()` or the item's name. + +Use simple by-name resolution when you only need one specific thing: + +```java +ItemType potion = ConfigManager.getItemType("Super restore (4)"); +int id = potion.getId(); +``` + +This is highly optional for one-off IDs but **strongly recommended** the moment your script needs a *list* of related items. + + + + + +BotWithUs exposes the cache through `ConfigManager` (or equivalent helpers — exact names vary by API version, but the *concepts* are stable). + +| Helper | Returns info about | Common use | +|---|---|---| +| **ItemType** | An item (name, examine text, value, stackable, etc.) | "Get the ID of the item called 'Magic logs'" | +| **NpcType** | An NPC's static info | "What name does NPC 1234 have?" | +| **ObjectType** | A scene object's static info | "What right-click options does this object define?" | +| **VarbitType** | A varbit's underlying structure | Maps a varbit to the varp it lives in and the bits it occupies | + +You'll usually use them as a *one-shot lookup* in `initialize()` (so you do the work once) and store the result in a variable but can also be used to check if specific item is for example notable on runtime. + + + + + +Walk the cache once in `initialize()` and store the result: + +```java +private List rawFishIds = new ArrayList<>(); +private int superRestore4Id; + +@Override +public boolean initialize() { + this.loopDelay = 600; + + // One-shot lookup for a specific item. + superRestore4Id = ConfigManager.getItemType("Super restore (4)").getId(); + + // Bulk discovery — same loop as above, this time storing IDs into a field. + rawFishIds = findItemIds(57, "Raw "); + + return super.initialize(); +} +``` + +Then in `onLoop()` you use the variables, never the literal numbers: + +```java +// Withdraw any raw fish we know about — no hardcoded list. +for (int id : rawFishIds) { + if (Bank.getCount(id) > 0) { + Bank.withdraw(id, 28); + break; + } +} + +if (Backpack.getCount(superRestore4Id) > 0) { + // we still have a 4-dose super restore in the bag +} +``` + +Your script now survives Jagex adding new fish, renaming an item, or shifting IDs in patches — as long as the **rule** stays the same ("Cooking category, name starts with 'Raw '"), you're fine. + +:::tip Names aren't unique +Some names appear on multiple things (e.g., several different "Bank chest" objects in different cities). When that happens, lookup-by-name returns *one* of them, which may not be the one you want. Add a second filter (location, animation, additional name keyword) or fall back to the ID printed by the debug overlay. +::: + + + + + +`ConfigManager` lets you read cache data **at runtime** from inside a script. There's a complementary tool: an **offline dump of the entire cache as JSON** that gets posted to the BotWithUs Discord and updated whenever a new RuneScape patch ships. You grep it from your editor instead of running the game and watching overlays. + +#### What's in the dump + +| File | What it holds | +|---|---| +| `items.json` | Every item: id, name, examine, stack flags, ground/widget actions | +| `npcs.json` | Every NPC: id, name, combat stats, animation IDs | +| `locations.json` | Every scene object ("location"): id, name, right-click options | +| `structs.json` | Game **structs** — small typed records the engine uses for everything from buff bar entries to potion timers (see below) | +| `enums.json` | Enum tables (e.g. lookup tables that map item id → noted item id) | +| `dbrows.json` | Database rows (modern Jagex content like Vault rooms ships through these) | +| `latest_varbits.json` / `latest_varps.json` | Every varbit/varp the cache currently knows about | +| `quests.json`, `achievements.json` | Quest and achievement metadata | +| `cs2/` | ~20k+ decompiled **CS2 client scripts** (TypeScript-like) — what the game itself runs when you click a button | +| `cs2_diff.json` | Diff vs the previous dump — perfect after game updates to see exactly what shifted | + +#### Where to get it + +Grab the latest dump from the BotWithUs Discord. The repo is auto-updated, so cloning/pulling always gives you the current cache without having to run an extractor yourself. + +#### When to reach for it instead of `ConfigManager` + +- **You don't have the game running** and just want to find an ID — grep `items.json` for the name and read the `id` field. +- **You want to see what *all* the entries look like**, not just one — e.g., listing every item whose name contains "Potion". +- **You're investigating game mechanics** — the cs2 scripts show you exactly what the game does when an interface button is clicked, which is often faster than trial-and-error in the live game. +- **A varbit ID changed after a patch** — `cs2_diff.json` and the dated `zips/` archives let you compare yesterday's cache to today's. +- **You need a struct's field layout** — buff bar entries, action bar slots, and many quest-stage records are structs; the dump shows every key that struct uses. + +#### Practical examples + +The dump is just text files, so any search tool works. The IntelliJ **Find in Files** dialog (`Ctrl+Shift+F`) over the dump folder is the easiest cross-platform option. + +```bash +# Bash / Git Bash / WSL — "What's the item ID for Magic logs?" +grep -B1 -A2 '"name": "Magic logs"' items.json + +# "Which NPCs have 'Araxxor' in their name?" +grep '"name": "[^"]*Araxxor' npcs.json +``` + +```powershell +# PowerShell equivalents — "What's the item ID for Magic logs?" +Select-String -Path items.json -Pattern '"name": "Magic logs"' -Context 1,2 + +# "Which CS2 scripts touch the bank?" +Select-String -Path cs2\*.ts -Pattern 'bank' -List +``` + +In a hard-stuck debugging session, this is often faster than starting the client and chasing values through the debug overlays — especially for static info like item names, struct fields, or "did this varbit ID change in the last patch?" + + + + + +Cache data is for **static** info — facts that don't change while the game is running. Don't reach for the cache when you need to know: + +- The **current animation** of a specific NPC (use the NPC's live state). +- The **current value** of a varbit (use `VarManager`). +- Whether the boss is *right now* in phase 3 (use a varbit or NPC animation). + +Rule of thumb: if the answer can change *during a session*, it's not in the cache. + + + + + +Two things to start using `ConfigManager` for immediately: + +1. **Replace any item ID literal in your code** with a `getItemType("name").getId()` lookup. Cleaner code, fewer bugs. +2. **Build a small "constants" class** that holds every cache-resolved ID for your script: + +```java +public class Cfg { + public static int SUPER_RESTORE_4_ID; + public static int OVERLOAD_6_ID; + public static List RAW_FISH_IDS = new ArrayList<>(); + + public static void load() { + SUPER_RESTORE_4_ID = ConfigManager.getItemType("Super restore (4)").getId(); + OVERLOAD_6_ID = ConfigManager.getItemType("Overload (6)").getId(); + RAW_FISH_IDS = findItemIds(57, "Raw "); // same iteration helper as above + } +} +``` + +Call `Cfg.load()` once in `initialize()`. Now your whole script reads `Cfg.SUPER_RESTORE_4_ID` everywhere — readable and centralised. + + + +You can now (a) write a script, (b) read live game state, (c) find unknown IDs, and (d) resolve static data cleanly. The last chapter takes your finished script and puts it on the marketplace. + +**Next:** [publishing to SDN →](./09-publishing-to-sdn.md) diff --git a/docs/Guides/Tutorial/09-publishing-to-sdn.md b/docs/Guides/Tutorial/09-publishing-to-sdn.md new file mode 100644 index 00000000..ed8cde02 --- /dev/null +++ b/docs/Guides/Tutorial/09-publishing-to-sdn.md @@ -0,0 +1,213 @@ +--- +title: 9. Publishing to SDN +description: Take your finished local script and put it on the BotWithUs marketplace so others can use it. +sidebar_position: 9 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; + + + +So far your script has lived in `BotWithUs\scripts\local\`. That folder is **personal** — only you and people you hand the `.jar` to can run it. + +The **SDN** (Script Distribution Network) is the central marketplace at [botwithus.net/sdn](https://botwithus.net/sdn). Once a script is on the SDN it shows up under **SDN Scripts** in everyone's bot menu when they subscribe to it (free or paid). + +Publishing is the last step — it's also a *gated* step, because every SDN script gets reviewed before it ships. + + + + + +Going through this list yourself before sending your script for review will speed up your release and avoid the most common rejection reasons. + +#### 1. Build system — Gradle or Maven + +Your script must build through a real, reproducible build system — either **Gradle** or **Maven** is fine, including the Maven multi-module workspace from [chapter 10](./10-multi-module-projects.md). + +- For Gradle: `build.gradle` or `build.gradle.kts` at the root, and `./gradlew build` (or `gradle build`) must produce a jar cleanly. +- For Maven: `pom.xml` at the root (or a parent POM that includes the script as a module), and `mvn package` must produce the final jar. +- **No pre-built jars.** Submissions without a working build setup are auto-rejected — reviewers must be able to compile from source. + +#### 2. Java version — must target Java 20 + +BotWithUs runs on **Java 20**. Scripts compiled against Java 21 or newer will crash the loader. + +Gradle: + +```groovy +java { + sourceCompatibility = JavaVersion.VERSION_20 + targetCompatibility = JavaVersion.VERSION_20 +} +``` + +Maven: + +```xml + + 20 + 20 + +``` + +To verify what your jar was actually compiled with: + +```bash +# Bash / Git Bash / WSL +javap -verbose -classpath build/libs/YourScript.jar YourMainClass | grep "major version" +``` + +```powershell +# PowerShell equivalent +javap -verbose -classpath build\libs\YourScript.jar YourMainClass | Select-String "major version" +``` + +The output must say **major version 64** (Java 20). Version 65 = Java 21 = rejection. + +#### 3. `script.ini` — required fields + +The file must exist at one of these paths: + +- `src/main/resources/script.ini`, or +- `script.ini` at the repo root. + +It must contain at least: + +```ini +version=1 +apiVersion=2 +``` + +Missing or malformed `script.ini` is an automatic block. + +#### 4. Jar size — under 15 MB + +If your compiled jar exceeds **15 MB**, contact a moderator before submitting. Don't submit anyway. + +#### 5. No sensitive data in the repo + +Don't commit API keys, tokens, passwords, or credentials. If your script needs config, load it from a local file that's listed in `.gitignore`. + +#### 6. Behavioral basics + +These aren't auto-rejected by tooling, but reviewers bounce on them constantly: + +- It works end-to-end for the activity it advertises — no "will TODO this later." +- It handles the user clicking Stop mid-action without crashing. +- It pauses or logs out gracefully on long disconnects — not spam-clicking a logged-out client. +- It doesn't print confidential info to the console (player names, paths, debug dumps). +- You've tested it on at least one fresh account — your dev account often has setup that hides bugs. +- You've read the [BotWithUs rules](../../Rules/) so your script doesn't violate any (e.g., no real-world trading flows). + + + + + +Before reviewers build your script, an automated security scan runs over the source. Hits on the patterns below either block submission outright or require explicit staff approval. + +#### Always blocked — no exceptions + +These are detected by Jagex's anti-cheat and cause player bans, so they never ship in an SDN script. + +| Pattern | Why | +|---|---| +| `java.awt.event.KeyEvent` | Anti-cheat detection → bans | +| `java.awt.event.MouseEvent` | Same | +| `java.awt.event.InputEvent` | Same | + +#### Blocked unless you get explicit staff approval + +These have legitimate uses (a local log file, a curated GE flow), but each one is reviewed case-by-case. **Disclose them in your submission message.** Trying to obfuscate or hide them is an automatic permanent ban. + +| Pattern | Category | +|---|---| +| `java.net.` / `HttpURLConnection` / `HttpClient` / `Socket` / `URLConnection` | Network access | +| `OkHttp` / `okhttp` / `retrofit` | Network libraries | +| `FileOutputStream` / `FileWriter` / `DataOutput` / `BufferedWriter` | File writing | +| `discord.com` / `webhook` / `telegram` / `pastebin` | External services | +| `trade` / `Trading` / `GrandExchange` | Economy manipulation | +| `Class.forName` / `getMethod` / `invoke` | Reflection | +| `Base64.decode` / `DatatypeConverter` | Encoded payloads | +| `Runtime.getRuntime` / `ProcessBuilder` / `exec(` | Process execution | +| `java.awt.Robot` / `java.awt.Toolkit` / `GraphicsEnvironment` / `MouseInfo` / `PointerInfo` | System input/screen | +| `ClassLoader` / `URLClassLoader` / `defineClass` / `Unsafe` | Dynamic class loading | +| `System.loadLibrary` / `System.load` | Native libraries | +| `native` method | Native code | + + + + + +Confirm all of the following before you send the link: + +- [ ] Gradle or Maven build system present, and `./gradlew build` / `mvn package` succeeds cleanly +- [ ] Jar compiles to Java 20 (major version 64) +- [ ] `script.ini` present with `version=1` and `apiVersion=2` +- [ ] Jar is under 15 MB +- [ ] No `java.awt.event.KeyEvent/MouseEvent/InputEvent` anywhere in source +- [ ] No network, file I/O, or reflection code — *or* you've disclosed it and have staff approval +- [ ] No credentials or tokens in the repo +- [ ] Script works correctly in your local BWU client +- [ ] You've read the BotWithUs rules and your script doesn't violate them + +If anything is "no," fix it first. Ask in the community Discord if you're unsure — much faster than going through a rejection cycle. + + + + + +The full GitHub-based submission workflow has its own page. Open it in a new tab and follow it end-to-end: + +> **→ [Script Submission Workflow](../ScriptSubmissionWorkflow.md)** + +That page covers: + +- Cloning the SDN scripts repo with **GitHub Desktop** (no command line required). +- Creating a **feature branch** for your script. +- Committing your code, syncing with `main`, **squashing**, and pushing. +- Opening the **pull request** for review. + +Come back here once you've read it. + + + + + +A `@Dev` or script reviewer will check: + +- **Does it build?** Pull the branch, run `./gradlew build` or `mvn package` (whichever your repo uses), expect success. +- **Does it match the description?** A "woodcutter" that secretly does combat fails review. +- **Is it safe?** No outbound network calls to unknown URLs, no reading random files, no obvious anti-detection trickery. +- **Is it a duplicate?** If five other scripts already do exactly the same thing, you may be asked to differentiate or contribute to the existing one. +- **Is the UI sane?** ImGui windows that crash on edge inputs or display garbage will get flagged. + +Reviews can take from a few hours to a few days depending on volume. Be patient and respond to feedback in the PR thread. + + + + + +Once your script is merged and built by SDN: + +1. It appears at [botwithus.net/sdn](https://botwithus.net/sdn) in the appropriate category. +2. Users **subscribe** to it on the website. +3. The script appears in their bot menu under **SDN Scripts** after a refresh. + +Updates work the same way: another feature branch, another PR, another (faster) review. + + + + + +You started with no software and no code. You now have: + +- A working BotWithUs install. +- A built skeleton script you can extend. +- A mental model for everything you can read off the running game. +- The debug tools to find any unknown ID. +- A clean way to resolve static data from the cache. +- A path to ship your work to other users. + +If you got value out of this tutorial, drop a thanks in [Discord](https://discord.gg/botwithus) — and consider passing it along to someone earlier in the journey. The community runs on it. + + diff --git a/docs/Guides/Tutorial/10-multi-module-projects.md b/docs/Guides/Tutorial/10-multi-module-projects.md new file mode 100644 index 00000000..5748b991 --- /dev/null +++ b/docs/Guides/Tutorial/10-multi-module-projects.md @@ -0,0 +1,418 @@ +--- +title: 10. Multi-Module Projects & Sharing Code (Advanced) +description: Scale beyond one-script-per-repo — a Maven multi-module workspace, your own reusable API, and many scripts in a single project. +sidebar_position: 10 +--- + +import ContentBlock from '@site/src/components/ContentBlock'; + + + +By chapter 9 you can ship a single script. This chapter is for when **one repo per script stops working** for you: + +- You're maintaining 10+ scripts and find yourself copy-pasting helpers (banking, prayer flicking, area logic) between them. +- You want a **shared API** — your own utility classes — that every script you write pulls in by name. +- You're tired of opening a different IDE window per script. + +The pattern below is the same one BotWithUs uses internally for the production `BwUMavenScripts` collection: **a single Maven workspace with one parent POM, a few category aggregators, individual script modules, and one or more shared API modules**. `mvn install` from the root builds *everything*, drops every jar into your scripts folder, and updates shared APIs across all scripts atomically. + + + + + +Chapter 5 used Gradle because that's what the official skeleton ships with. Multi-module is possible in either tool, but **Maven's multi-module story is dramatically more mature**, and the established BotWithUs production workspaces are all Maven. This chapter is Maven. + +Both Gradle and Maven are accepted for SDN submissions ([chapter 9](./09-publishing-to-sdn.md)), so the workspace you build here can ship straight to the SDN — no need to convert anything. + +The mental model is the same in both: + +- A **parent project** declares shared versions and plugins. +- **Module projects** inherit from the parent and either *aggregate* (point at sub-modules) or *produce* a jar. +- Modules can **depend on each other** by Maven coordinates — your script module pulls in your API module as if it were any third-party library. + + + + + +``` +MyScripts/ ← root (parent POM) +├── pom.xml ← parent: deps, plugins, repos +├── APIs/ +│ ├── pom.xml ← aggregator +│ └── MyApi/ +│ ├── pom.xml ← leaf: produces MyApi.jar +│ └── src/main/java/.../MyApi.java +├── Bosses/ +│ ├── pom.xml ← aggregator +│ ├── AraxxorScript/ +│ │ ├── pom.xml ← leaf: depends on MyApi +│ │ └── src/main/java/.../AraxxorScript.java +│ └── ZukScript/ +│ ├── pom.xml +│ └── src/main/java/... +└── Skilling/ + ├── pom.xml + ├── ChopScript/ + └── FishScript/ +``` + +Three layers: + +1. **Root** — declares Maven coordinates, the BotWithUs Nexus repo, shared dependency versions, and global plugins. `packaging=pom`. +2. **Category aggregators** (`Bosses`, `Skilling`, `APIs`) — group related modules. Also `packaging=pom`. Their only job is to list the leaf modules they contain. +3. **Leaf modules** — produce an actual jar. These are your scripts and your API libraries. + + + + + +The root `pom.xml`. Every leaf inherits from this. + +```xml + + + 4.0.0 + + com.example + MyScripts + 1.0-SNAPSHOT + pom + + + 20 + 20 + UTF-8 + + + + APIs + Bosses + Skilling + + + + + + + net.botwithus.rs3 + botwithus-api + [1.0.5,2.0.0) + + + net.botwithus.xapi.public + api + [1.2.6,2.0.0) + + + com.google.code.gson + gson + 2.10.1 + + + org.projectlombok + lombok + 1.18.28 + provided + + + + + + + botwithus + https://nexus.botwithus.net/repository/maven-releases/ + + + +``` + +Three things that earn their keep here: + +- **`packaging=pom`** says "this project doesn't produce a jar; it exists to be inherited from." +- **`dependencyManagement`** centralises versions. Child modules write `...net.botwithus.rs3...` *without* a ``; Maven fills it in from here. Bumping the BotWithUs API version is then a one-line change instead of edits across 40 modules. +- **``** points at the BotWithUs Nexus so `botwithus-api` and `xapi.public:api` resolve. You only need this once, in the parent. + +:::tip Version ranges +`[1.0.5,2.0.0)` means "any 1.x version ≥ 1.0.5". The BotWithUs API ships frequent compatible 1.x updates, so a range gives you new features automatically while shutting the door on a hypothetical breaking 2.0. +::: + + + + + +`Bosses/pom.xml` (and the equivalent for `Skilling`, `APIs`). These are pure routing — they tell Maven where the actual modules live. + +```xml + + 4.0.0 + + + com.example + MyScripts + 1.0-SNAPSHOT + ../pom.xml + + + Bosses + pom + + + AraxxorScript + ZukScript + + +``` + +That's it. The aggregator inherits from the parent and lists its children. Building `Bosses` builds every boss script underneath. + +You don't *need* this layer — the parent could list every script directly — but once you have 30+ scripts, grouping by category keeps things readable and lets you build "just the bosses" with `mvn -pl Bosses install`. + + + + + +This is where the real value of the multi-module setup lives. Build a module that holds your reusable code — banking helpers, area definitions, prayer flicker, whatever you'd otherwise paste into every script. + +`APIs/MyApi/pom.xml`: + +```xml + + 4.0.0 + + + com.example + MyScripts + 1.0-SNAPSHOT + ../../pom.xml + + + MyApi + + + + + net.botwithus.rs3 + botwithus-api + + + net.botwithus.xapi.public + api + + + org.projectlombok + lombok + provided + + + +``` + +`src/main/java/com/example/api/Banker.java`: + +```java +package com.example.api; + +import net.botwithus.api.game.hud.inventories.Backpack; +import net.botwithus.rs3.game.queries.builders.objects.SceneObjectQuery; +import net.botwithus.rs3.game.scene.entities.object.SceneObject; + +public final class Banker { + public static boolean depositAll() { + if (Backpack.isEmpty()) return true; + SceneObject chest = SceneObjectQuery.newQuery() + .name("Bank chest") + .option("Use") + .hidden(false) + .results() + .nearest(); + return chest != null && chest.interact("Use"); + } +} +``` + +Now any script in your workspace can call `Banker.depositAll()` after declaring `MyApi` as a dependency. + + + + + +`Bosses/AraxxorScript/pom.xml`: + +```xml + + 4.0.0 + + + com.example + MyScripts + 1.0-SNAPSHOT + ../../pom.xml + + + AraxxorScript + + + + net.botwithus.rs3 + botwithus-api + + + net.botwithus.xapi.public + api + + + + + com.example + MyApi + 1.0-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + 20 + 20 + + + --enable-preview + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.4.1 + + + package + shade + + ${user.home}\BotWithUs\scripts\local\AraxxorScript.jar + + + + com.example + + net.botwithus.xapi.public + + + + + + + + + +``` + +The script source then uses your API straight up: + +```java +import com.example.api.Banker; +// ... +if (Backpack.isFull()) { + Banker.depositAll(); +} +``` + + + + + +The BotWithUs loader scans `~/BotWithUs/scripts/local/` for jars and loads each one independently. It does **not** recursively resolve Maven dependencies at runtime — if your script's jar references a class that isn't inside the jar, you'll get `NoClassDefFoundError` at startup. + +`maven-shade-plugin` solves this by **fattening** your final jar: it unpacks every dependency listed in `` and packs the classes back into a single jar. So the `AraxxorScript.jar` that lands in your local folder physically contains both your script code *and* `MyApi` classes. + +The rules are simpler than they look: + +- **Always include your own API modules.** They're not on the loader's classpath otherwise. Use a group-level include (`com.example`) so a single line covers all of them. +- **Always include `xapi.public:api`** (`net.botwithus.xapi.public`). It's a public extension API, not part of the loader, so your script needs its classes inside the jar. +- **Don't include `botwithus-api`** (`net.botwithus.rs3:botwithus-api`). That one *is* the loader's own API, supplied at runtime — bundling it creates duplicate-class conflicts. + +For comparison, the production `AraxxorWithUs/pom.xml` uses three group-includes — its own group, a third-party API its scripts share (`net.akisame.api`), and the public extension API: + +```xml + + + net.botwithus.api + net.akisame.api + net.botwithus.xapi.public + + +``` + +Same pattern, different group names. + +You can also put a default shade config in the parent POM and let leaves only override the `outputFile`. + + + + + +Once the structure is in place, your loop is: + +``` +# Build everything from the root — every script jar lands in ~/BotWithUs/scripts/local/ +mvn -f MyScripts/pom.xml install + +# Or build just one module + everything it depends on +mvn -pl Bosses/AraxxorScript -am install + +# Or one category +mvn -pl Bosses install +``` + +`-am` ("also make") is the magic flag for fast iteration: changing a function in `MyApi`, then running `mvn -pl Bosses/AraxxorScript -am install`, rebuilds `MyApi` *and* `AraxxorScript` and nothing else. Seconds, not a full workspace rebuild. + +In IntelliJ, the same thing is available as a **Maven tool window** — expand each module, double-click `package`, your script lands in the local folder. Keep the loader running; just hit **Refresh** in the SDN tab afterwards (chapter 3) and the new jar is picked up without restarting. + + + + + +Don't pre-emptively create `MyApi`. The right time is when you find yourself copying the same helper into a second script. Then: + +1. Create the API module (parent POM, basic dependencies — no shade plugin, since the API is consumed by other scripts, not loaded directly). +2. Move the helper there. +3. Add the API as a dependency in both consuming scripts. +4. From now on, fixes propagate to both with a single `mvn install`. + +Common things that earn their place in a shared API: + +- **Banking flows** — every skilling/combat script banks; the click sequence is identical. +- **Area definitions** — coordinates and `Area.Rectangular`s for common locations (Wars Retreat, GE, lobbies). +- **Prayer flicker** — the projectile-driven prayer switching from chapter 6, parameterised by attack IDs. +- **Action-bar helpers** — abstraction over `ActionBar` calls that retry, wait for the GCD, etc. +- **State machines / tree-script base classes** — if your scripts share a structure (e.g. all use a `LeafTask` tree), the framework belongs in the API. + +Keep things specific to a single script *out* of the shared API. Cross-cutting helpers belong there; boss-specific phase logic doesn't. + + + + + +- **`relativePath` wrong** — every leaf POM's `` must point at the actual parent POM. Off by one `..` and Maven warns "non-resolvable parent POM" during build. +- **Forgetting to bundle your API** — script jar builds, drops in folder, loads, and explodes the moment it calls `Banker.depositAll()` because shade didn't include `com.example:MyApi`. Add the include. +- **Bundling the BotWithUs loader API** — shading `net.botwithus.rs3:botwithus-api` into your jar gives you "duplicate class" errors at runtime when the loader's copy collides with yours. Bundle your own modules and `net.botwithus.xapi.public`, but never `botwithus-api` itself. +- **Using `LATEST` for your *own* inter-module deps** — for the BotWithUs Nexus artifacts (`botwithus-api`, `xapi.public:api`) the production scripts use `LATEST` and that's fine; the Nexus only ever serves a sane current version. But for *workspace-internal* deps (your `MyApi` module from a sibling script), pin the explicit version (`1.0-SNAPSHOT`). `LATEST` against a local module resolves unpredictably across reactor builds. +- **Editing `dependency-reduced-pom.xml`** — that file is auto-generated by shade. Edit `pom.xml` only. + + + +You now know how to scale a single tutorial script into a workspace of dozens — sharing code through your own API module, building everything with one command, and keeping versions consistent through a parent POM. That's the structure every serious BotWithUs author ends up with. + +Congrats — you've completed the zero-to-script tutorial. diff --git a/docs/Guides/Tutorial/_category.json b/docs/Guides/Tutorial/_category.json new file mode 100644 index 00000000..8e55d5bd --- /dev/null +++ b/docs/Guides/Tutorial/_category.json @@ -0,0 +1,8 @@ +{ + "label": "Zero-to-Script Tutorial", + "position": 1, + "link": { + "type": "generated-index", + "description": "A start-from-nothing walkthrough: install BotWithUs, launch your first session, write your first script, and read game data. No coding experience required." + } +} diff --git a/docs/Guides/Tutorial/index.md b/docs/Guides/Tutorial/index.md new file mode 100644 index 00000000..2fe25d25 --- /dev/null +++ b/docs/Guides/Tutorial/index.md @@ -0,0 +1,44 @@ +--- +title: Zero-to-Script Tutorial +description: A start-from-nothing walkthrough — from buying a sub to writing your first script. No coding experience required. +slug: /tutorial +sidebar_position: 0 +--- + +import React from 'react'; +import ContentBlock from '@site/src/components/ContentBlock'; + + + +This tutorial walks you all the way from **zero** to **your first working script**. It assumes you have **never written code before**. + +You don't have to read it in one sitting. Each chapter is short, focused on one thing, and links to the next. If you get stuck, ask in the [Discord](https://discord.gg/botwithus) — a screenshot of where you are usually unblocks you in seconds. + +### What you'll do + +1. **[Install & first launch](./01-install.md)** — buy a sub, install the loader, exclude it from antivirus, and run it for the first time. +2. **[Launching accounts](./02-launching-accounts.md)** — classic accounts via the account manager, launcher (Jagex) accounts, session limits. +3. **[The bot menu](./03-bot-menu.md)** — the Insert hotkey, Scripts vs SDN Scripts, subscribing to marketplace scripts. +4. **[Setting up your coding environment](./04-ide-setup.md)** — install IntelliJ, get JDK 20, clone the skeleton script. *Skip this if you only want to use marketplace scripts.* +5. **[Your first local script](./05-first-script.md)** — build the skeleton into a `.jar`, drop it in the right folder, and watch it run in the bot menu. +6. **[Reading the game](./06-reading-the-game.md)** — varbits, varps, varcs, scene objects, NPCs, projectiles, animations. What each one is *for*, in plain English. +7. **[Debug overlays](./07-debug-overlays.md)** — the in-game debug windows you use to find IDs and watch values change. +8. **[Cache data gathering](./08-cache-data.md)** — pulling item, NPC and object info from the game cache so your script doesn't need hard-coded numbers. +9. **[Publishing to SDN](./09-publishing-to-sdn.md)** — uploading your finished script so others can use it. +10. **[Multi-module projects](./10-multi-module-projects.md)** *(advanced)* — once you're maintaining several scripts, scale up to a Maven workspace with a shared API. + +### What you won't need + +- Prior coding experience (we'll explain Java basics as we hit them). +- Reverse-engineering or low-level know-how — BotWithUs gives you clean APIs so you can focus on **what** your script does, not **how** the game internally works. +- A fancy PC. Anything that runs RuneScape 3 will run a bot too. + +:::tip If you only want to *use* scripts +You can stop after **chapter 3**. Marketplace scripts cover most activities. Read chapter 4 onwards only if you want to write or modify your own. +::: + +:::info Keep the API reference open while you write +The full BotWithUs Java API is documented at **[static.botwithus.com/static/javadoc/net.botwithus.rs3/module-summary.html](https://static.botwithus.com/static/javadoc/net.botwithus.rs3/module-summary.html)**. This tutorial covers the *concepts* and the most common patterns, but every class you meet (`SceneObjectQuery`, `VarManager`, `Backpack`, `Execution`, etc.) has many more methods than we touch on. When you want to know "what else can I ask this object?" or "what overloads does this method have?", open the javadoc — it's the source of truth, generated straight from the API. +::: + + diff --git a/docs/Guides/images/ADD_ACCOUNT_LOADER.png b/docs/Guides/images/ADD_ACCOUNT_LOADER.png new file mode 100644 index 0000000000000000000000000000000000000000..aff6a5fcd01627f0aa0a0466d3e0981595eda8b7 GIT binary patch literal 64226 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 F{C{^E_%r|j literal 0 HcmV?d00001 diff --git a/docs/Guides/images/ALL_DEBUG.png b/docs/Guides/images/ALL_DEBUG.png new file mode 100644 index 0000000000000000000000000000000000000000..06fe1fbdd957a7baf1720d260721e2d914a9bec6 GIT binary patch literal 463311 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