RS3 Developer Tools
Lua-native developer toolkit for official RuneScape 3 plugins: LuaLS stubs, manifest schema, rs3dev CLI, MCP server, and agent guidance
0
Skills
0
Rules
Skills
5Skills list
Add an event handler Subscribe an RS3 plugin to a client event with a typed callback, a namespaced reference name, and cleanup in PluginShutdown.
add-event-handler
Add tests Write Lua tests for an RS3 plugin that run outside the client with rs3dev test, against the API fakes generated from the stubs, covering load, clicks, events, persistence and PluginShutdown.
add-tests
Add a UI window Add a GroupBox window with labels, buttons and other components to an RS3 plugin, wired to the plugin layer and destroyed on shutdown.
add-ui-window
New plugin Create a new RS3 plugin folder with a valid manifest, a commented main.lua, LuaLS stubs wiring, and the first sync into dev_plugins.
new-plugin
Preflight and package Run validate and preflight on an RS3 plugin, fix every error, build the mod.io zip, and walk through the manual submission checklist.
preflight-and-package
Rules
9Rules list
| Name | Scope | Description |
|---|---|---|
| Rs3 Ai Policy | Follow the Jagex AI policy; never ingest other developers' plugin code or the docs into a model, and review every generated line. | |
| Rs3 Events | Subscribe to client events and component hooks with namespaced reference names and release them in PluginShutdown. | |
| Rs3 Lua Idioms | Write RS3 plugin code as plain, idiomatic Lua 5.4.8 that runs inside the client sandbox. | |
| Rs3 Manifest | Keep plugin.json valid against the RS3 manifest schema with a contact email, explicit permissions and declared URLs. | |
| Rs3 Permissions | Declare httpAccess, chatAccess and trackingAccess in plugin.json and gate optional ones with Plugin.HasPermission. | |
| Rs3 Persistentdb | Store plugin state in PersistentDB with typed accessors and keys scoped per character. | |
| Rs3 Prettyui | Depend on the PrettyUI library plugin through the manifest and treat its exported table as read-only. | |
| Rs3 Readability | Keep plugin code readable for Jagex moderators; no minified, transpiled, generated-looking or obfuscated Lua. | |
| Rs3 Secrets | Never commit or log secrets; plugins carry no credentials and the toolkit reads none from source. |
Installation
Installation steps
- Install Node.js 22 or later and the Lua language server
- Run
npm install -g @tmhs/rs3-devtools-cli - Run
rs3dev init my-pluginand open the folder in Cursor or VS Code