Setup guide
How to use Claude Code with Roblox Studio
Claude Code is already good at Luau. What it cannot do from a terminal is press Play, read the Output window, or look at the running DataModel — so it writes code it has no way to check. This is how you give it those hands, and what changes once you do.
The short version: Claude Code needs two bridges — Roblox Studio's own built-in MCP server, and a plugin that moves file changes and console output between Studio and your terminal. Baseplate installs and wires both, and the setup below is the same either way.
What you need first
- Claude Code, signed in with your own Claude account. Baseplate drives the CLI you already pay for; it does not resell tokens or meter prompts.
- Roblox Studio, recent enough to have Assistant → Manage MCP Servers.
- Rojo, if you want file edits to land in the open place automatically: rokit add rojo-rbx/rojo.
- A Rojo-style project folder — a default.project.json and a src/ tree. Baseplate can scaffold one if you are starting fresh.
Step 1 — install the bridge plugin
The plugin is the half of the bridge that lives inside Studio. It long-polls the local Baseplate server, which means Studio never opens a port of its own — the same pattern Roblox uses in its official Studio MCP server. Baseplate installs it into your local plugins folder for you and tells you when a newer version ships.
Step 2 — restart Studio completely and approve HTTP
This is the step almost everyone loses twenty minutes to. A freshly installed plugin shows as installed but stays disconnected until Studio is fully restarted — closing the place is not enough, quit the whole application — and until you approve the plugin's HTTP permission prompt. If your checklist says “installed but not connected”, this is the fix, not a broken install.
Step 3 — enable Studio as an MCP server
This is the second step that traps people, because nothing about it is discoverable. In Studio, open Assistant → Manage MCP Servers and turn on Enable Studio as MCP server, then restart Studio again. This is what gives an agent Roblox's own tools — running Luau in the live session, capturing the screen, starting and stopping a playtest.
Symptom worth recognising: if this is off, tools appear to exist but every Play request dies with “no active Studio instance”. The server looks healthy and nothing works. Baseplate probes the live path rather than checking whether a file exists, so it reports this state honestly instead of showing green.
Step 4 — point Claude Code at the bridge over MCP
Claude Code reads a .mcp.json in the workspace. Baseplate writes that file and launches the CLI with --mcp-config, so the tools are present in the very first turn rather than after a reconnect. Doing it by hand looks like this:
{
"mcpServers": {
"baseplate": {
"type": "http",
"url": "http://127.0.0.1:34901/mcp?ws=<url-encoded-workspace-path>"
}
}
}
Codex and Cursor keep MCP configuration somewhere else — Codex in a global ~/.codex/config.toml written by codex mcp add, Cursor in .cursor/mcp.json. All three end up with the same tools.
Step 5 — start Rojo
With rojo serve running and the place connected, an edit Claude Code makes in src/ is in the running game moments later. That is what turns “here is a patch” into “here is a fix I just watched work”.
What actually changes once it is connected
The interesting part is not that the agent writes Luau faster. It is that the agent can now check itself:
- It runs the game and watches the console — the same Output you would read.
- It reads the real stack trace and finds the cause in your source, instead of guessing from the symptom.
- It edits src/, and Rojo syncs the change into the open session.
- It playtests again, and only reports PASS when the console is genuinely clean.
That loop is the whole point. A terminal agent that cannot run your game will confidently tell you a fix “should work now”; an agent that can press Play has to prove it. If you want the failure modes that survive code review but not a real Play session, the runtime guide walks through four of them with copyable tests.
Honest limits
- You still need your own Claude subscription. Baseplate is orchestration, not an AI plan, and Claude Code bills through your account.
- Verified playtests need a real Studio session open. There is no headless Roblox; if Studio is closed, you get static analysis, not evidence.
- Not every CLI can prove a PASS. Claude Code, Codex and Cursor emit checkable tool-call events. Grok Build runs fine as a builder tile but does not expose them, and Gemini CLI has no verified structured mode.
- Review what it writes before you ship. An agent that fixed a runtime error has not audited your security; the RemoteEvent checklist is the pass to run before release.
Give Claude Code a Roblox Studio it can see
Baseplate's free plan is the whole loop: one agent, the live Studio bridge, Rojo sync and verified playtests. You bring the Claude plan you already pay for.
Download Baseplate free