RuneLite fork with a hidden always-on plugin hosting automation scripts. Composite Gradle build, Java 11 target (JDK 17+ to develop).
- Compile:
./gradlew :client:compileJava - Full:
./gradlew buildAll - Shaded jar:
./gradlew :client:assemble - Tests (opt-in):
:client:runUnitTests,:client:runTests,:client:runIntegrationTest(needs running game)
- Never instantiate caches/queryables directly — use
Microbot.getRs2XxxCache().query()/.getStream(). Seerunelite-client/src/main/java/net/runelite/client/plugins/microbot/api/QUERYABLE_API.md. - Never block/sleep on the client thread.
- Never use static sleeps to wait for game state — use
sleepUntil(condition, timeoutMs). - Keep
MicrobotPluginhidden/always-on; don't break its config panel wiring. - Respect existing Checkstyle/Lombok patterns; don't weaken security (telemetry tokens, HTTP clients).
- Minimal logging; no PII or session identifiers.
- P0: client crashes, client-thread blocking, login/world-hop breakage, cache invariant corruption, credential/token exposure.
- P1: script loop timing, overlay correctness, plugin discovery/config, shaded-jar packaging, build reproducibility.
./microbot-cli(JSON output) — seedocs/MICROBOT_CLI.md, HTTP APIdocs/AGENT_SERVER.md, full tool listdocs/AGENT_SCRIPT_TOOLS.md.- Agent Server plugin runs on port 8081 by default.
- Offline client-thread lookup:
./microbot-cli ct <method>. - Test mode:
-Dmicrobot.test.mode=true -Dmicrobot.test.script=<PluginName>→ results in~/.runelite/test-results/. Protocol:docs/AGENTIC_TESTING_LOOP.md.
Use the settings search bar — tab indices shift on updates. Verify changes via ./microbot-cli varbit <id>.
Read docs/entity-guides/README.md. Add a gotcha there when you fix an entity-assumption bug.
- Keep root
README.md,docs/README.md, anddocs/INDEX.mdshort routing pages. - Put volatile command details, API examples, endpoint lists, generated inventories, and screenshots in the narrowest owning doc.
- Prefer links to owner docs over copying the same guidance into multiple high-level files.
- Script authoring & threading:
runelite-client/.../microbot/AGENTS.md - State machines (use for 3+ phase scripts):
.../microbot/statemachine/AGENTS.md - Architecture:
docs/ARCHITECTURE.md,docs/decisions/ - Setup:
docs/development.md,docs/installation.md