Loading the getting started guide…
Build scripts for SlugBot.
The compatibility layer, client-side APIs, project conventions, and release path—collected for developers building scripts that will run and ship inside the SlugBot client.
Updated for client 1.1.77: 84 more DreamBot types (spawn, hitsplat, var, widget and menu listeners, TaskScript, input profiles, worlds), slot-aware Grand Exchange helpers, and the SlugHub API. Your own jars load only with Developer Mode on in the launcher settings. Both API browsers and the offline kit are generated from the same source.
Scripter documentation
Porting a DreamBot script? These guides cover the compatibility shim, project layout, local testing, and submission path.
Getting started →
Prerequisites, local setup, and your first build.
02 · referenceDreamBot shim →
Available APIs and compatibility differences.
03 · structurePlugin structure →
Organize a script plugin the SlugBot way.
04 · workflowBuild and test →
Compile locally and verify in your client.
05 · dashboardSlugHub →
Show your script's task and stats on the user's phone.
06 · no codeScript Manufacturer →
Build scripts from connected blocks, with setup GUI and paint.
The complete references are now browsable: DreamBot shim and Microbot API. Need help? Join the SlugBot Discord.
Loading the plugin structure guide…
Loading the build and test guide…
Loading the Script Manufacturer guide…
DreamBot shim
Search the current DreamBot compatibility surface, including script lifecycle, animation and projectile listeners, random solvers, client settings, trade, and entity wrappers. This reference shows what is implemented, what behaves differently, and when to use the native Microbot API instead. The offline archive includes the complete shim source.
Loading the shim reference…
Microbot API
Browse the current native Rs2 helpers, the queryable API and SlugHub: inventory, equipment, banking, Grand Exchange, dialogue, settings, movement, combat, and cached entities. Search exact overloads, return types, and constants below.
Native API guide and recent additions
Loading the native API guide…
Loading the queryable API guide…
SlugHub
SlugHub shows every account a user runs on the SlugBot website, from a phone or any other computer: what it is doing, for how long, its stats, bank, world, ban status and a map of where it has been. Your script appears there automatically. A few optional lines of code make its card show exactly what it is doing.
Microbot.status line, login and ban state, runtime, skills, bank, world and map are all recorded by the client for every script. Calling the API is optional: it replaces the status line with your own task, a detail line and up to 12 custom stats.import net.runelite.client.plugins.microbot.slughub.SlugHub;
SlugHub.setTask("Mining iron ore"); // headline on the card
SlugHub.setDetail("Walking to Al Kharid bank"); // one line under it
SlugHub.setStat("Ores mined", oresMined); // custom stats, in the order you add them
Loading the SlugHub guide…
Fleet CLI
Control saved accounts and installed scripts from PowerShell on the same Windows PC as the running SlugBot launcher. The launcher still handles client updates, licenses, client slots and session setup. Fleet CLI ships with the current Windows launcher (1.1.68) and client (1.1.77).
resources\SlugBot-Fleet.ps1 next to your installed SlugBot.exe. Run it under the same Windows user account as the launcher. Commands print one JSON object; errors go to stderr with a nonzero exit code. Every launch uses a normal client slot (3 standard, unlimited with VIP).Commands
| Command | What it does | Required arguments |
|---|---|---|
| accounts | List saved account IDs and nicknames. accounts set-session saves a game session for a character. | None; set-session needs -CharacterId and a session |
| profiles | List client settings profiles and SlugBuilder AIO profiles. | None |
| launch | Launch a saved account, optionally starting a script. Returns the client pid and windowHandle. | -Account |
| clients | List running clients this launcher started, and the client slots in use. | None |
| scripts | List installed scripts and their running status for an open client. | -Account |
| start | Start a script in an open client. | -Account, -Script |
| stop | Stop a script in an open client. | -Account, -Script |
| stats | Latest account snapshot: login state, world, skills, quests, bank, wealth, position, current script. | -Account |
| events | Lifecycle events: launched, login, logout, disconnected, banned, script started/stopped, client exited. | -Account |
| proxies | List proxies, or proxies set / proxies clear an account's proxy. | -Account for set/clear; -Proxy for set |
| plugins | List your local plugin folder, or plugins install a jar into it. | -Jar for install |
Arguments
| Argument | Used with | Meaning |
|---|---|---|
-Account | most commands | Saved account ID, nickname, or display name. The match must be unique. |
-Script | launch, start, stop | Installed script name. Exact match, ignoring capitalization; the sidebar [S] prefix is optional. Optional for launch. |
-ScriptConfig | launch, start | Path to a .json file (or inline JSON) of setting key → value. The client writes them into the script's RuneLite config group before it starts, so normal @ConfigItem getters return them. Max 200 keys, about 12 KB. |
-ClientProfile | launch | RuneLite client settings profile. Omit it to use the account's saved choice. See profiles for available names. |
-ScriptProfile | launch | Saved SlugBuilder AIO profile. Requires -Script 'SlugBuilder AIO'. Other scripts use -ScriptConfig. |
-Ram | launch | Client memory limit, such as 1024m or 2g. Omit it to use the launcher's default. |
-Proxy | launch, proxies set | SOCKS5 only: host:port, host:port:user:pass or socks5://user:pass@host:port. On launch it applies to that launch only. |
-LocalPlugins | launch | Start the client in Developer Mode so it loads your own jars from .runelite\microbot-plugins. |
-Dev | launch | Start the client with Developer Mode and RuneLite developer tools. |
-SessionIdFile | launch, accounts set-session | File holding a game session id (or set SLUGBOT_SESSION_ID). -SessionId also works but stays in shell history. |
-CharacterId, -DisplayName | accounts set-session, launch | The character the session belongs to; set-session creates the saved account if it is new. |
-Jar | plugins install | Plugin jar to copy into the local plugin folder. Store product file names are refused. |
-Since, -Limit | events | Only events newer than this ms epoch; at most this many (max 1000). |
PowerShell examples
$fleet = 'C:\Path\To\SlugBot\resources\SlugBot-Fleet.ps1'
powershell.exe -NoProfile -File $fleet accounts
powershell.exe -NoProfile -File $fleet profiles
powershell.exe -NoProfile -File $fleet launch -Account 'Main' -ClientProfile 'default' -Script 'SlugBuilder AIO' -ScriptProfile 'Fresh' -Ram '2g'
powershell.exe -NoProfile -File $fleet launch -Account 'Main' -Script 'DDevil Fighter' -ScriptConfig 'C:\fleet\fighter.json'
powershell.exe -NoProfile -File $fleet clients
powershell.exe -NoProfile -File $fleet scripts -Account 'Main'
powershell.exe -NoProfile -File $fleet start -Account 'Main' -Script 'DDevil Fighter'
powershell.exe -NoProfile -File $fleet stop -Account 'Main' -Script 'DDevil Fighter'
powershell.exe -NoProfile -File $fleet stats -Account 'Main'
powershell.exe -NoProfile -File $fleet events -Account 'Main' -Limit 50
powershell.exe -NoProfile -File $fleet plugins install -Jar 'C:\builds\MyScriptPlugin.jar'
powershell.exe -NoProfile -File $fleet launch -Account 'Main' -LocalPlugins -Script 'My Script'
Use accounts and profiles first, then replace the example names with saved values. scripts, start, and stop need that account's client to be running. If a script fails to start during launch, the response contains clientStarted: true and the pid; that client is running and holds a slot, so check it before retrying. Pass -ScriptConfig as a file: Windows PowerShell 5.1 strips the quotes from inline JSON. For scripters: -ScriptConfig needs a RuneLite config interface on your plugin, and Fleet lists a local plugin only when it is isExternal = true or has "Script"/"AIO" in its name or a script tag.
Build, test, submit.
Build against the shim
Start from the plugin structure guide, keep client APIs on the correct thread, and use the compatibility reference before reaching for workarounds.
Run it in your client
Compile locally, load the readable QA jar, and test the actual task flow before handing anything over.
Make it production-ready
Remove secrets and hardcoded paths, handle user interruption, and keep the script recoverable from live game state.
Send it for release
Submit the source privately. Slug handles obfuscation, compilation, signing, and publication to the client.
Submission checklist
Your script is ready when it builds cleanly, runs without your development machine’s private files, and can recover naturally after a bank, dialogue, movement, or login interruption.
Loading the submission guide…