Setup guide
How to use Cursor with Roblox Studio
Cursor is comfortable in a big Luau codebase and its agent mode is happy to work unattended. The friction is connecting it to the game: Cursor is the odd one out among agent CLIs, and instructions written for Claude Code or Codex will quietly not work.
Same bridges, different plumbing. Every agent needs Roblox Studio's built-in MCP server plus a plugin that carries file changes and console output out of Studio. The Claude Code guide covers those shared steps; this page is about what Cursor does differently.
1. Cursor ignores .mcp.json
The file Claude Code reads is not the file Cursor reads. Cursor looks in <workspace>/.cursor/mcp.json (or a global ~/.cursor/mcp.json), and it has no mcp add command — its mcp subcommand only lists, enables and disables what is already there. Codex and Grok both give you a supported add command; with Cursor you write the file.
// <workspace>/.cursor/mcp.json
{
"mcpServers": {
"baseplate": {
"url": "http://127.0.0.1:34901/mcp?ws=<url-encoded-workspace-path>"
}
}
}
Keep it project-scoped. Editing the global config to reach one Roblox project is how you end up with a stale bridge URL pointing at a workspace you closed last week. Any tooling that writes this for you should preserve entries it did not create — Baseplate rewrites only its own baseplate key.
2. The approval flag
A newly configured server is not trusted yet. Run cursor mcp list after adding it and you will most likely see the server reported as needing approval — and until it is approved, tool calls simply do not reach it. Launching the agent with --approve-mcps loads it without an interactive prompt.
Symptom worth recognising: the agent behaves like the tools do not exist — it describes what it would check instead of checking it, and never mentions Studio. That is an unapproved server, not a model being lazy.
3. Then the two Studio-side steps
These are the same for every agent and are where most setups actually stall:
- Restart Studio completely after installing the bridge plugin — quit the application, not just the place — and approve its HTTP permission prompt.
- Enable Studio as an MCP server under Assistant → Manage MCP Servers, then restart Studio again. Without it, Play requests fail with “no active Studio instance” while everything else looks healthy.
Add rojo serve and the loop closes: Cursor edits src/, Rojo pushes the change into the open place, and the next playtest runs against the edited game rather than the one you started with.
What you get once it is wired
Cursor can run Luau in the live session, read the real stack trace instead of guessing from a symptom, fix the cause and re-test. It is one of the three CLIs that can produce a verified PASS — Claude Code and Codex are the others — because its tool calls arrive as checkable events rather than as claims in prose. Baseplate can also mix engines in one crew, so a Cursor tile and a Claude Code tile can build in parallel with enforced file ownership.
Honest limits
- Bring your own Cursor plan. Baseplate drives the CLI you already pay for and adds no token markup.
- Verified playtests need Studio open. No Studio session, no evidence — only static analysis.
- Cursor's config lives in a file, not a command. If Cursor changes that format, hand-written setups break; that is the trade for a CLI without an mcp add.
- Review before shipping — start with the RemoteEvent checklist.
Let Cursor test what it wrote
Baseplate writes the project-scoped MCP config, installs the Studio plugin and runs the verified playtest loop. Free plan, one agent, your own Cursor account.
Download Baseplate free