About roblox-studio
A skill for building and maintaining scenes in Roblox Studio, using `roblox-studio` MCP tools on the place currently open in Studio. It covers new-map workflows, quick blockouts, targeted repairs, and validation, with guidance to preserve existing content and constrain edits.
Key features
- 01Apply scene specifications to build maps
- 02Create quick graybox blockouts
- 03Batch repairs to existing maps
- 04Generate terrain and edit properties
- 05Validate maps and check readiness
Use cases
- 01Build a new map in Studio
- 02Draft a route as a testable blockout
- 03Repair specific issues in a generated map
- 04Check map readiness and review behavior
MCP support
Uses `roblox-studio` MCP tools to connect to the place open in Studio, inspect its hierarchy and properties, and edit and validate maps. The workflow checks tool availability and sets limits on managed roots and authorized changes.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ shiroksh/ skills --skill roblox-studioAfter installing, type/roblox-studioin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/scene-spec.mdsetup.mdtools.mdDetails
From the project READMERoblox Studio
Use the roblox-studio MCP tools to work against the place currently open in Studio. Keep new work under Workspace/MapDrafts.
Preflight
- Confirm the MCP tools are available. If they are missing or
studio_pingreports offline, read setup.md. - Run
studio_pingbefore every work session. - Inspect the relevant hierarchy with
studio_get_tree; usestudio_find_instancesandstudio_get_propertiesfor targeted reads. - State the place and target root before changing anything. Never imply that Studio changed when the bridge is offline.
Choose a Workflow
- New map or major rebuild: read scene-spec.md, draft one SceneSpec, then use
map_apply_scene_spec. - Fast graybox: use
map_create_blockout, then validate the route before visual refinement. - Existing generated map repair: inspect first and batch related edits with
studio_patch_instances. - Before a substantial repair, use
studio_export_modelto keep a private local model backup. - Focused property edit: use
studio_set_properties; usestudio_create_instanceonly inside a managed root. - Terrain-only task: use
terrain_generatewith an explicit bounded size. - Luau plus Rojo output: set
codegen.targettobothand review every script before apply. - Tool choice or argument uncertainty: read tools.md.
Build Loop
- Translate the request into named areas, player route, scale, style, interactions, and acceptance checks.
- Preserve existing content unless the user explicitly asked to replace or edit it.
- For a SceneSpec, run
map_apply_scene_specwithdryRun=true. - Review target root, object count, services touched, filesystem writes, scripts, terrain, and reported risks.
- Apply with
dryRun=falsewhen the user requested the build or explicitly approved the dry run. - Run
map_validateon the exact returned map root withstrictGeometry=true. - Run
map_readiness_checkfor playable maps; useprofile="house"only for its named house contract. - Inspect from useful angles with
studio_focus_instance,studio_set_camera, andstudio_visual_probe. - When behavior matters, review a managed test ModuleScript returning
function(args). Raise an error on failure and return a JSON-serializable value on success. Callstudio_run_testwithconfirmToken="RUN_STUDIO_TEST", optionalmode(runorplay), andtimeoutSeconds(integer 1-120, default 30). Tests execute ordinary project code, not a sandbox. Use a working copy and disable or mock persistent/external writes. - Repair concrete failures and repeat validation. Prefer a scoped patch over rebuilding a sound map.
Quality Bar
- Include a SpawnLocation, readable route, safe landings, and an obvious destination for playable maps.
- Use unique, semantic names and models/folders for levels, buildings, routes, and systems.
- Ground normal maps with
layout.grounding.mode="raycast"; usemanualfor a known elevation andnoneonly for intentional sky or void maps. - Put doors, buttons, elevators, teleporters, and checkpoints in
functionalObjects. Bind a behavior to existing visible geometry withtargetwhen possible. - Treat validation warnings about terrain intersections, blocked doors, stair headroom, unreachable landings, or solid overlaps as repair work.
- Do not call a map visually ready from object counts or
map_validatealone. - Use
studio_capture_viewportfor real viewport evidence after native permission is granted. Never substitute a desktop capture, invent a frame, or trigger permission dialogs during a background-only task. Review in-world text before sharing an image.
Guardrails
- Never request Roblox credentials, cookies, or
.ROBLOSECURITY. - Never send the bridge token anywhere except the local Studio plugin.
- Never use external asset IDs without a user-supplied allowlist.
- Keep direct edits and deletes inside managed roots. Deletes require the configured confirm token and explicit user intent.
- Do not enable
studio_execute_luauto bypass declarative tools. If it is genuinely required, explain the exact code and risk first. - Avoid remote code, HTTP,
require(assetId),loadstring, and hidden loaders in generated Luau.
Handoff
Report the exact map root, manifest path, Rojo files, validation/readiness result, playtest result, warnings left, and the next manual Studio check. Separate verified results from visual judgment.