A team of AI agents that collaborate in a chat inside Roblox Studio to build, edit, and test your game — reading/writing scripts, creating instances, running Luau, inserting Marketplace models, capturing the viewport, and reading playtest logs. A Coordinator delegates to a Planner, Coder, Reviewer, and Test Engineer, and you watch them work in real time.
AI Studio goes far beyond a raw tool bridge like the official
roblox-studio-mcp: instead of exposing tools
to one external model, it runs a coordinated multi-agent team with a polished in-Studio UI,
per-role model selection, chat history, context compaction, and a testing workflow built in.
- Plugin (Luau) = a thin chat UI + a tool executor. It long-polls the backend, runs each tool
against the live DataModel (
ScriptEditorService,Instance.new,ChangeHistoryService,LogService,CaptureService…), and posts the result back. Every AI action is one undo step. - Backend (Node/TS, Vercel AI SDK) orchestrates the agents. A Coordinator delegates to specialists; their tool calls are proxied to the plugin so the real Studio work happens in Luau.
- Your API keys never enter Studio — they live on the backend; the plugin only talks to
127.0.0.1.
roblox-studio-mcp |
AI Studio | |
|---|---|---|
| Interface | External MCP client | In-Studio chat panel (dockable, monochrome) |
| Agents | Single model, one loop | Multi-agent team (Coordinator → Planner / Coder / Reviewer / Tester) |
| Providers | Whatever the client uses | Anthropic + OpenAI + OpenRouter, per-role picker, keys from the UI |
| Testing | Run code, read console | run_tests runner + Test Engineer + get_logs + QA loop |
| Assets | — | Creator Store search + insert, in-engine capture_viewport vision |
| Conversation | Stateless | Chat history, context compaction, stop button, token usage |
| 🤝 Multi-agent team | Coordinator delegates to Planner, Coder, Reviewer, Test Engineer — visible live with avatars + handoffs |
| 🧪 Testing first | run_tests spec runner, get_logs, and a Test Engineer that writes & runs tests until green |
| 👁 Vision | capture_viewport (in-engine, any OS incl. Wayland) + host-side screen_capture — the agents see what they built |
| 🧱 Real assets | search_creator_store + insert_model to build with free Marketplace models |
| 🔎 Code-aware | script_grep across the whole project, read_all_scripts, inspect_instance |
| 🎛 Configurable | Per-role model picker + API keys, all from the settings panel (no .env editing needed) |
| 🎮 Playtest | simulate_input drives keyboard/mouse in a playtest + get_run_state to assert behavior |
| 💬 Great chat UX | Markdown + syntax-highlighted code blocks, streaming with a stop button, chat history, token usage |
| 🛡 Trust | Optional approval mode (preview each change before it applies) + one-click revert of a whole turn |
| 💸 Budget guard | Cap tokens per turn so a runaway loop can't burn your balance |
| 🐳 Easy deploy | docker compose up — no local Node setup needed |
| ♻️ Safe | Every action is one undo step; context auto-compacts on long chats |
cd backend
npm install
cp .env.example .env # add ANTHROPIC_API_KEY (or set keys later from the UI)
npm run dev # http://127.0.0.1:31700Defaults are all Claude, so ANTHROPIC_API_KEY alone is enough — or leave .env blank and paste
keys into the plugin's Settings → API Anahtarları.
rokit install # Rojo + StyLua + selene + lune
rojo build plugin/default.project.json -o AIStudio.rbxmCopy AIStudio.rbxm into your Studio Plugins folder (or rojo serve), restart Studio,
and click the AI Studio toolbar button. The status dot turns green when connected. Prefer a
one-file download? Grab the latest release.
See docs/INSTALL.md for per-platform paths (incl. Linux/Vinegar).
Type a task (Enter to send):
- “Add an anchored bright-green Part named Spawn to Workspace.” → done directly.
- “Build a jump-pad system — plan, code, review, and test it.” → the team collaborates; you see each agent, delegation handoffs, tool calls, and Markdown replies.
- “Insert a sports car from the Creator Store and add a seat.” → searches the Marketplace and inserts it.
- “Capture the viewport and tell me if the UI looks right.” → the agent sees a screenshot and iterates.
⚙ Settings — pick a model per role + set provider keys. 🕘 History — past chats are saved. ■ Stop — interrupt a running turn anytime.
Testing workflow and vision details:
docs/TESTING.md.
cd backend && npm run typecheck && npm test # tsc + node:test
stylua plugin/src && selene plugin/src # format + static analysis (Roblox API)
lune run plugin/test/markdown.test.luau # pure-Luau unit tests
rojo build plugin/default.project.json -o /tmp/AIStudio.rbxm
node backend/test/fakePlugin.mjs "Build a jump pad — plan, code, review." # headless E2ECI runs all of the above on every push. PRs welcome — see CONTRIBUTING.md.
- Host-side
screen_captureworks on macOS, X11 Linux, and wlroots Wayland; GNOME Wayland blocks it (Mutter security) — use the in-enginecapture_viewportthere. run_luauusesloadstringin the plugin context — only run AI Studio against projects you trust.
MIT — see LICENSE.