SlugBotMANAGED AUTOMATION
For approved script developers

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.

Start with a working projectDownload the minimal Gradle plugin, open it in IntelliJ, and build against your installed SlugBot client.
Download starter ↓

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.

START HEREChoose a section below, or use the developer docs rail on the left. Porting? Start with the DreamBot shim. Writing new code? Start with Microbot.
Build with SlugBot

Scripter documentation

Porting a DreamBot script? These guides cover the compatibility shim, project layout, local testing, and submission path.

The complete references are now browsable: DreamBot shim and Microbot API. Need help? Join the SlugBot Discord.

Scripter guide · 01

Loading the getting started guide…

Scripter guide · 02

Loading the plugin structure guide…

Scripter guide · 03

Loading the build and test guide…

Scripter guide · 04

Loading the Script Manufacturer guide…

Compatibility reference

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…

The client-side API

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…

Account dashboard

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.

NO WORK NEEDEDClient 1.1.74 or newer. Script name, your 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…

Local launcher automation

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).

SETUPKeep the SlugBot launcher open. Find 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

CommandWhat it doesRequired arguments
accountsList saved account IDs and nicknames. accounts set-session saves a game session for a character.None; set-session needs -CharacterId and a session
profilesList client settings profiles and SlugBuilder AIO profiles.None
launchLaunch a saved account, optionally starting a script. Returns the client pid and windowHandle.-Account
clientsList running clients this launcher started, and the client slots in use.None
scriptsList installed scripts and their running status for an open client.-Account
startStart a script in an open client.-Account, -Script
stopStop a script in an open client.-Account, -Script
statsLatest account snapshot: login state, world, skills, quests, bank, wealth, position, current script.-Account
eventsLifecycle events: launched, login, logout, disconnected, banned, script started/stopped, client exited.-Account
proxiesList proxies, or proxies set / proxies clear an account's proxy.-Account for set/clear; -Proxy for set
pluginsList your local plugin folder, or plugins install a jar into it.-Jar for install

Arguments

ArgumentUsed withMeaning
-Accountmost commandsSaved account ID, nickname, or display name. The match must be unique.
-Scriptlaunch, start, stopInstalled script name. Exact match, ignoring capitalization; the sidebar [S] prefix is optional. Optional for launch.
-ScriptConfiglaunch, startPath 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.
-ClientProfilelaunchRuneLite client settings profile. Omit it to use the account's saved choice. See profiles for available names.
-ScriptProfilelaunchSaved SlugBuilder AIO profile. Requires -Script 'SlugBuilder AIO'. Other scripts use -ScriptConfig.
-RamlaunchClient memory limit, such as 1024m or 2g. Omit it to use the launcher's default.
-Proxylaunch, proxies setSOCKS5 only: host:port, host:port:user:pass or socks5://user:pass@host:port. On launch it applies to that launch only.
-LocalPluginslaunchStart the client in Developer Mode so it loads your own jars from .runelite\microbot-plugins.
-DevlaunchStart the client with Developer Mode and RuneLite developer tools.
-SessionIdFilelaunch, accounts set-sessionFile holding a game session id (or set SLUGBOT_SESSION_ID). -SessionId also works but stays in shell history.
-CharacterId, -DisplayNameaccounts set-session, launchThe character the session belongs to; set-session creates the saved account if it is new.
-Jarplugins installPlugin jar to copy into the local plugin folder. Store product file names are refused.
-Since, -LimiteventsOnly 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.

The path to a working script

Build, test, submit.

01 · local

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.

02 · QA

Run it in your client

Compile locally, load the readable QA jar, and test the actual task flow before handing anything over.

03 · polish

Make it production-ready

Remove secrets and hardcoded paths, handle user interruption, and keep the script recoverable from live game state.

04 · handoff

Send it for release

Submit the source privately. Slug handles obfuscation, compilation, signing, and publication to the client.

Before you hand it over

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.

RELEASEDo not send a readable release jar or credentials. Follow the submission guide, send the source through the private handoff process, then contact Slug in Discord.

Loading the submission guide…