Change admin password
Admin & client
Setting the client version writes it into the build; a client rebuild + restart is needed for it to take effect. "Stop all clients" sends a stop to every currently-running client across all PCs.
Fleet overview
By script
Accounts grouped by the script they logged the most activity under, with combined playtime, average humanness, ban count, and XP/hour where captured.
| Script | Accounts | Running | Banned | Total played | Avg humanness | Avg XP/hr |
|---|
Most at risk
Live (not-banned) accounts with the lowest humanness scores — the ones worth checking first.
| Account | Script | Humanness | Unbroken play | Reflection clicks |
|---|
Profit / XP
XP-per-hour is captured from live XP snapshots (added this session). Historical accounts that ran before XP telemetry existed show no value. GP profit is not yet tracked — it needs per-account inventory/GE-value sampling, which can be added next.
| Account | Script | XP gained | XP/hr | Total played |
|---|
Live characters
Live in-game state reported by running fleet clients (~every 20s): what each character is doing, its levels, XP gained + XP/hour, GP, and an XP trend. Launch an account to see it here.
| Character | Script | Activity | World | Combat | Total lvl | XP gained | XP/hr | GP | Trend | Updated |
|---|
PCs
| Label | Status | Last seen |
|---|
Discord Role Access
Access is driven by Discord server roles. The launcher signs testers in with Discord; a member with the Beta role can launch, the Admin role gets full access + this dashboard. Map each role to the SDN scripts & features it may use — a user gets the union of their roles' grants. Add a tester to a Discord role and they inherit its access.
Scripts — availability
The shared script store. Toggle a script off to hide it from every client's SDN (broken / not ready); the admin dashboard still shows it. Per-user script grants are set above.
SDN API keys
Per-machine API keys that let an agent push/update SDN scripts over the API without a browser login — e.g. a script-dev PC that recompiles and uploads jars while you work. Each key is labelled with the PC it belongs to and tracks its own usage. Keys can update the SDN only; they do not unlock accounts, proxies or client launching.
How to use a key from an agent / script
Send the key in the X-Fleet-Token header to the hub. Upload a compiled jar (recommended — no server-side compile):
curl -X POST "http://10.0.0.90:9090/api/sdn-admin/upload?name=<ScriptName>" -H "X-Fleet-Token: <YOUR_API_KEY>" -H "X-Change-Note: fixed banking loop, added GE fallback" --data-binary @<ScriptName>.jar
# Crimson auto-records which classes changed/added/removed each push; X-Change-Note
# adds your own message so other devs see WHAT changed. Both show under the key's Details.
# toggle a script on/off for every client's SDN
curl -X POST "http://10.0.0.90:9090/api/sdn-admin/set-enabled" -H "X-Fleet-Token: <YOUR_API_KEY>" -H "Content-Type: application/json" -d '{"name":"<ScriptName>","enabled":true}'
# compile from a source folder on the hub, or delete a script
# POST /api/sdn-admin/compile {"name":"...","src":"C:\path\to\src"}
# POST /api/sdn-admin/delete {"name":"..."}
After a push, restart the running script (Stop/Start) so it reloads the new jar — no client relaunch needed.
Import / export accounts
One text file, any of: email:password:otp:bankpin lines (the export format below; otp and bankpin optional), a CSV with an Email column (Password / 2FA_Key / Bank_Pin / Proxy_IP / Proxy_Port optional), or an account creator accounts.json. Logins already on file are not duplicated; a missing password / 2FA key / bank PIN is filled in.
Jagex accounts
One row per account. Click a column heading to sort - combat, total level and XP come from the last time each account was seen in game. Tick accounts and use the batch bar above to move or launch them.
| Character / login | Category | Cmb | Total | XP | PC | Proxy | Script | Status | Last active | Actions |
|---|
Advanced: create a character using raw credentials
Use this for a login that isn't imported yet. Same browser-driven flow as above.
Legacy accounts
Old-style Dreambot username/password profiles (RuneLite ConfigProfile), not a real Jagex OAuth/TOTP login.
| Label | PC | Proxy | Category | Script | Data folder | Status |
|---|
Other / pending login
CSV imports awaiting a manual first login, quick-launch test profiles, or anything not yet linked to a Jagex session or Dreambot profile.
| Label | PC | Proxy | Category | Script | Data folder | Status |
|---|
Manage categories
Categories are dashboard-only grouping - they never change how an account launches or which proxy it uses. Deleting a category keeps its accounts and moves them to Uncategorized.
| Category | Accounts | With proxy | No proxy |
|---|
Add / edit account profile
Optional — paste a real credentials.properties to make this a genuine Jagex-account profile (TOTP/2FA satisfied). Obtain one by launching through the official Jagex Launcher once with --insecure-write-credentials and logging in there. Do NOT use the in-client "Log in new Jagex account" button for this.
New job
Run one script (with parameters) across a set of accounts, staggered. Each launch uses the same path as the Launch button — session mint + character import for a stored-creds login — and the script is assigned to the account so it auto-starts once logged in. "Run now" fires immediately; a daily time auto-runs it once a day.
Jobs
| Job | Script | Params | Accounts | Stagger | Daily | On |
|---|
Proxy checker
Tests each proxy THROUGH the proxy: alive + latency, Jagex-compatible (reaches OSRS game world :43594 + Jagex auth), Enhanced (also reaches account.jagex.com + secure.runescape.com, not Cloudflare-blocked). Hover a result for per-endpoint detail.
| Proxy | Host | Scheme | Status & Jagex compat |
|---|
Account / ban checker
Checks each named character against the OSRS hiscores (routed through its proxy). "On hiscores" = present/active. "Not ranked" = UNKNOWN (could be banned, or just a new/low account that never ranked) — the definitive ban check is a launch/login (login-screen index 14), shown live as a BANNED pill on the Fleet tab.
| Character | Login (email) | Proxy | Hiscores / ban status |
|---|
Account analytics
| Account | Script | Status | Humanness | Last activity | Played before ban | Total played | XP/hr | First seen | Reflection clicks | Click interval |
|---|
Proxies shared pool — assign one per account
| Label | Scheme | Host | Port | User | Pass | Category | In use | Status & Jagex compat |
|---|
Paste-friendly: you can also type a whole proxy as host:port:user:pass in the Host field. Assign a proxy to an account from the dropdown in its row, or use "Auto-assign proxies" on the Accounts tab.
Bulk add proxies
One proxy per line as ip:port:user:pass (also accepts ip:port or a full scheme://user:pass@host:port URL). Blank lines and # comments are skipped; duplicates already in the pool are ignored. Pick the scheme below for lines that don't include one.
Manage proxy categories
Organisation only - a category never changes how a proxy is used or assigned. Deleting a category keeps its proxies and moves them to Uncategorized.
| Category | Proxies | Burned |
|---|