Skip to content

Releases

v3.4.4

Choose a tag to compare

@Chrrxs Chrrxs released this 15 Nov 00:52

The Studio plugin keeps working after an upgrade while an older MCP session is still open, and playtest starts report Studio's own reason when Studio refuses them.

Fixes

  • Upgrading no longer breaks the plugin while an older session is open. Only one MCP server owns the Studio port, and Studio connects only to it. Before, a newer session that started while an older one owned the port still replaced the plugin with its own version, which the older server rejected with HTTP 426 plugin_version_mismatch. --auto-install-plugin now installs only from the server that owns the port: at startup, or when a waiting session takes the port after the older one exits. A waiting session logs Port <port> is owned by MCP server v<old>…. To switch to the new version, close every MCP client still running the old one. (#169, #170)
  • Main and inspector on the same port. The installed plugin is now the edition of the server that owns the port. Before, whichever session started last replaced it with its own edition. (#170, #171)
  • Playtest starts report Studio's refusal. When Studio refuses a test start because it thinks an earlier test is still running, solo_playtest and multiplayer_playtest return studio_test_in_progress with Studio's text and a recovery hint, instead of a readiness timeout. solo_playtest in Run mode refuses the TestService multi-client setup (ExecuteWithStudioRun = true with NumberOfPlayers > 0) that caused this state. (#167, #168)

Upgrading from v3.4.3 or earlier: older servers still install the plugin on every startup. If Studio reports plugin_version mismatch once after this upgrade, close all MCP clients and start one again.

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Antigravity CLI
agy mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.

v3.4.3

Choose a tag to compare

@Chrrxs Chrrxs released this 09 Nov 03:48

Fixes for clients that never registered in games that rename remotes, readable tool errors in Claude Code, and safer asset, monetization, input, and MicroProfiler calls.

Fixes

  • Play clients register in games that rename remotes. Some games rename every remote in ReplicatedStorage on the client. The client broker now finds its channels by an __MCPChannel attribute when the name has changed, so solo_playtest no longer times out with only the edit and server roles. (#154)
  • Failed tool calls show their error in Claude Code. Clients on the 2026-07-28 protocol showed "Unknown error" for every failure. Failed results now keep the error as a text block. Successful results are unchanged. (#155)
  • generate_model stays on the Studio it resolved for the whole job, including the reference image upload. It also keeps its error codes and request details. (#158, #162)
  • upload_asset: an explicit userId now overrides a default group set in the environment. (#159)
  • Monetization: two creates with the same name in one server process can no longer both pass the duplicate-name check. When a create may or may not have reached Roblox, it fails with create_outcome_unknown, and creates of that name are blocked for up to 10 minutes until list or get shows the item. Creates from separate server processes are still not coordinated. (#160)
  • Key and mouse releases are always sent. While Studio isn't rendering they are queued and sent again once the window renders. (#161)
  • MicroProfiler captures in the default directory get unique names and never overwrite another capture. Pruning leaves captures younger than 10 minutes alone, since another server process may still be using them. (#163)

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Antigravity CLI
agy mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.

v3.4.2

Choose a tag to compare

@Chrrxs Chrrxs released this 26 Oct 01:44

Whole MicroProfiler recordings, all-or-nothing property edits, and fixes for playtest clients dropped during large copies.

What's new

  • Whole MicroProfiler recordings. capture_micro_profiler records every frame (up to 30 s) and analyzes it on the MCP host. action: "start" / "stop" record around other tool calls; action: "analyze" re-reads a saved capture or .gprx dump. Results flag captures taken while Studio drew at a reduced rate (data_quality.render_throttled) and list the roles sharing a solo Studio process (process_roles).
  • All-or-nothing property edits. set_properties with atomic: true checks every property before writing and puts earlier writes back if one fails. dryRun: true previews without writing.

Fixes

  • Playtest clients are no longer dropped while large screenshots or captures are copied back from a busy game. Solo client captures go through the server instead.
  • Inspector: get_simulation_state and get_device_simulator_state work on a secondary server.
  • generate_model: retries with the same operation_id reuse the uploaded image instead of uploading it again.
  • get_memory_breakdown / get_scene_analysis report each peer's real failure and a summary.
  • get_attributes keeps CFrame rotation (Components).
  • A playtest client that has left is reported as gone, not as an ambiguous target.

Behavior changes

  • capture_micro_profiler returns schema_version: 3; max_events, frame_window, history_truncated and frames_evicted are gone, and output_path writes the raw .gprx.
  • get_simulation_state errors entries are { code, message }.
  • MicroProfiler captures through a shared Studio connection need 3.4.2 on both the primary and the secondary server. A 3.4.2 secondary refuses them through an older primary with primary_unsupported.

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Antigravity CLI
agy mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.

v3.4.0

Choose a tag to compare

@Chrrxs Chrrxs released this 24 Oct 21:12

Manage experience settings from your AI tool, safer multi-script find-and-replace, and fixes for hangs and silent failures.

What's new

  • Manage experience settings. The new manage_experience tool reads and updates the connected experience's title, description, server size, voice chat, supported devices, private server price, and social links.

Changes

  • Safer find-and-replace across scripts. A preview shows exactly what will change in each script, and applying it changes only those scripts, only if nothing has changed since. If a write fails partway, scripts already changed are put back, without overwriting anything you typed in the meantime.
  • Safer retries. More tools that change your place can be retried after a timeout without applying the change twice.
  • classFilter: "Script" no longer also edits LocalScripts and ModuleScripts.
  • Script edits no longer change the wrong spot when the text to replace appears in overlapping places, such as repeated end lines.
  • MicroProfiler timings are now accurate (they were several times too long), and captures no longer pause Studio's profiler.
  • Requests to playtest clients no longer hang when the client stops responding; you get a clear error instead.
  • Failed asset uploads are reported as errors instead of success.
  • Importing or uploading from a file path that isn't a regular file no longer hangs the server.
  • find_and_replace_in_scripts no longer applies part of a replacement when it would exceed maxReplacements; it changes nothing and reports the total.

Contributors

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Antigravity CLI
agy mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.

v3.3.0

Choose a tag to compare

@Chrrxs Chrrxs released this 18 Oct 21:09

Minor release adding batched script edits, async model generation, mouse move and scroll, and bounded object search that guards duplicate-name paths.

Changes:

  • edit_script_lines accepts an edits array that applies all or none as one undo step. get_script_source returns a revision; pass it as expected_revision to reject edits to a script that changed since the read. dry_run previews the diff, and operation_id makes retries safe.
  • generate_model with async=true returns a job ID before generation finishes. Read or await the result with get_request_status, whose new wait_ms waits for any retained operation. operation_id lets a retry join the same job instead of generating a second model.
  • simulate_mouse_input adds move and scroll (with wheel). Moving is rejected under touch device emulation, where it never reaches the game.
  • search_objects takes path, className (IsA), and maxResults. It returns at most 100 results by default (previously unlimited) and reports truncated. Queries now match as plain text instead of Lua patterns, and an unknown searchType is rejected instead of returning no results.
  • When siblings share a name, writes through that path (set_properties, script edits, insert_asset, import_rbxm, and find_and_replace_in_scripts without dryRun) are now refused instead of changing an arbitrary match. Reads use the first match and report ambiguousPaths and pathWarning.
  • A server running as a proxy refuses async jobs and status waits when the primary server is on an older version, instead of losing the job.

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Antigravity CLI
agy mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.

v3.2.1

Choose a tag to compare

@Chrrxs Chrrxs released this 13 Oct 23:28

Patch release fixing multiplayer client targeting, playtests with Server Authority, and slow playtest stops.

Changes:

  • A role-suffixed instance_id (for example instance:…-client-2) now targets that client or server in every tool that takes target. Previously eval_client_runtime ran on client-1, and leave_client removed client-1. A conflicting target is now rejected with ambiguous_target.
  • Server-suffixed IDs now default to the server in execute_luau, breakpoints, export_rbxm, import_rbxm, get_memory_breakdown, and get_scene_analysis. Pass the controller instance_id for the old defaults.
  • capture_screenshot, simulated input, and selection action=view now use the playtest client when the edit DataModel isn't connected, instead of failing with target_role_required.
  • Playtests in places with NextGenerationReplication (enabled by Server Authority) now connect and stop normally.
  • Stopping a playtest no longer waits 30 seconds when the plugin's HTTP requests are busy.
  • The server now closes Studio WebSockets that stop answering pings, so dead connections no longer stay registered.
  • Fixed manage_instance launch authorization sometimes reporting process_running: null on Windows.

Contributors

  • Thanks @Dvitash for the shutdown fix and WebSocket liveness check in #112, which landed in #113.

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Antigravity CLI
agy mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.

v3.2.0

Choose a tag to compare

@Chrrxs Chrrxs released this 08 Oct 18:04

Minor release adding developer product and game pass management, Studio under Wine on native Linux, and keeping MCP data out of saved places.

Changes:

  • New manage_monetization tool to list, get, create, and update developer products and game passes.
  • Studio can now be managed under Wine on native Linux via ROBLOX_STUDIO_WINE_LAUNCHER.
  • The plugin no longer saves __MCP* attributes into places and removes ones left by earlier versions (save once to clean the file).
  • During MCP-started solo playtests, StudioTestService:GetTestArgs() returns an __mcpTopology table instead of {}.
  • Remembered server URLs and breakpoints for unpublished places are now keyed by place name.
  • Fixed manage_instance launches failing with HTTP 500 on Windows and WSL (regressed in 3.1.6).
  • preview_asset audio downloads now name the required legacy-asset:manage scope, including on 403.
  • MicroProfiler captures taken with the display off now return micro_profiler_no_frames instead of an empty success.
  • Fixed a registry lock race between concurrent MCP processes.

Contributors

  • Thanks @Dvitash for Studio management under Wine on native Linux in #108.

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Antigravity CLI
agy mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.

v3.1.6

Choose a tag to compare

@Chrrxs Chrrxs released this 30 Sep 16:51
af8f5ee

Patch release improving screenshots on macOS and for local place files, plugin installation, imports, and property edits.

Changes:

  • capture_screenshot can now fall back to capturing the Studio window on macOS 14 or newer when Studio returns a blank frame. The host needs Screen Recording permission and Xcode Command Line Tools. If the tools are missing, the tool reports it instead of opening the macOS installer dialog.
  • Fixed the Windows screenshot fallback for places opened from a file. Studio shows the file's full path in the window title, so the fallback never found the window. It now matches the file name. It still refuses to pick between several matching windows, and each capture stays on the same window.
  • An explicit multiplayer client instance_id now targets that client for screenshots and input, instead of the first client.
  • set_properties no longer turns the strings "true" and "false" into booleans for string properties. Script Source edits now use the same editor-aware writer as the script tools. Parent/PrimaryPart accept "" to clear them.
  • import_rbxm now enforces its size limit while reading files, URLs, and base64 (just under 37.5 MiB, so the payload fits the transport limits). URL downloads have a 30-second deadline and can be cancelled, and line-wrapped base64 is accepted.
  • The plugin installer now downloads the release that matches the installed server version, and both editions validate against it.
  • Fixed a first-run race where MCP processes starting at the same time could create different auth tokens.
  • Network requests to Roblox APIs and between MCP processes now have deadlines.
  • manage_instance close now waits, for up to 15 seconds, for a Studio that is still signing in to Roblox. Ending Studio mid sign-in could sign the Windows account out of Studio.

Contributors

  • Thanks @RyanLua99 for the macOS screenshot fallback and multiplayer client targeting in #98.
  • Thanks @bgd4141221 for the property, auth, import, and installer fixes in #99 and the shared plugin installer in #100.

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Antigravity CLI
agy mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.

v3.1.5

Choose a tag to compare

@Chrrxs Chrrxs released this 17 Sep 04:10

Patch release improving Studio reconnection, screenshots, and profiler reliability.

Changes:

  • Fixed blank or failed playtest screenshots when Studio uses Vulkan on Windows by falling back to host-window capture. Viewport coordinates are preserved even when Studio is behind other windows; minimized windows cannot be captured.
  • Fixed automatic plugin reconnection after server restarts and listener handoffs, with bounded connection attempts and clearer retry diagnostics.
  • manage_instance now verifies that Studio has actually exited before reporting a successful close.
  • Client script-profiler requests now return bounded timeout and disconnect diagnostics without automatically retrying captures whose outcome is unknown.
  • Fixed MicroProfiler captures returning empty or stale data by refreshing the snapshot before pausing capture and explicitly configuring the frame limit.

Contributors

  • Thanks @hsangrento for the screenshot fallback and reconnect improvements in #85.
  • Thanks @yoyo999888 for reporting the Studio shutdown issue in #86.
  • Thanks @Dvitash for reporting the automatic reconnection issue in #95.

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Antigravity CLI
agy mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.

v3.1.4

Choose a tag to compare

@Chrrxs Chrrxs released this 11 Sep 15:44

Patch release improving screenshots, multiplayer routing, and tool-result reliability.

Changes:

  • Added faster screenshots with overlay UI and coordinates matching mouse input. These improvements are currently available only with Studio's FFlagImageScreenCaptureEnabled4 flag enabled (Studio restart required). Without it, screenshots use the existing capture path.
  • Fixed multiplayer routing across multiple MCP sessions so live clients remain reachable.
  • Enforced Inspector read-only permissions on proxy requests, blocking write and execution endpoints.
  • Tool failures now report correctly to MCP clients while preserving error details and partial results.
  • Preserved user-defined attribute and property names that could previously disappear from tool results.

Contributors

Recommended Install

Use the npm package with --auto-install-plugin so the matching Studio plugin is installed automatically:

# Claude Code
claude mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Codex CLI
codex mcp add robloxstudio -- npx -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

# Gemini CLI
gemini mcp add robloxstudio npx --trust -- -y @chrrxs/robloxstudio-mcp@latest --auto-install-plugin

Fully close and reopen Roblox Studio after the plugin is first installed or updated.