manage_system
Read or edit RPG Maker MV System.json settings, create plugins and projects, run live playtests, and export web builds.
Instructions
Project-wide settings in data/System.json (writes are immediate), project lifecycle, and the live playtest bridge. action "get" returns section: "full" (large), "switches"/"variables" (names by ID; empty means free) or "title". "set_title" sets the game title. "name_switch"/"name_variable" label one by ID (names only). "set_starting_position" {mapId, x, y} for new games (not validated; check with query_map "infos"). "create_plugin" writes js/plugins/.js with a proper header (and a pluginCommand hook when commands are given) and registers it in js/plugins.js (order is load order); the same name replaces it. "scaffold_project" creates a new editor-openable project at destPath from NewData (never overwrites; does not switch the active project). "playtest" runs the active project in the bundled nwjs; "open_editor" opens it in RPGMV.exe, repairing a missing Game.rpgproject (Windows; engine from install, RPGMAKER_MV_INSTALL or the Steam path). "mine_templates" learns layouts and tile roles from this project for semantic generation. "export_web" builds an HTML5 folder and zip for itch.io (see outDir, zip, prune). Live bridge: "install_bridge_plugin" writes js/plugins/McpBridge.js (active only in playtest); "bridge_start" opens the loopback socket and its handshake; "bridge_status" says whether the game is connected, and why not in lastAuthError; "bridge_telemetry" drains exceptions, logs, scene changes, player position and executing commands (filter types, peek keeps them); "bridge_command" sends reload_map, reload_database, get_state, teleport_player, interact, press_button or ping; "take_screenshot" captures the live game ("bridge_screenshot" is an alias); "bridge_stop" closes it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | set_starting_position: starting tile X (should be walkable) | |
| y | No | set_starting_position: starting tile Y | |
| id | No | name_switch/name_variable: switch or variable ID to label (1-based) | |
| zip | No | export_web: also write <outDir>.zip with index.html at its root (default true) | |
| body | No | create_plugin: custom JS body; omit for a safe generated skeleton | |
| file | No | bridge_command "reload_database": the data file to re-read, e.g. "Skills.json" | |
| help | No | create_plugin: @help text (multi-line allowed) | |
| name | No | name_switch/name_variable: descriptive label. create_plugin: the plugin name (bare token — letters/digits/_/-, becomes js/plugins/<name>.js) | |
| peek | No | bridge_telemetry: leave the frames in the buffer instead of consuming them | |
| port | No | bridge_start/install_bridge_plugin: loopback port for the live bridge (default 32123, or RPGMV_BRIDGE_PORT) | |
| test | No | playtest: run in playtest/test mode (default true; false runs it as a normal launch) | |
| wait | No | bridge_command: wait for the game to answer (default true; false is fire-and-forget) | |
| limit | No | bridge_telemetry: return at most this many of the most recent frames. mine_templates: keep at most this many layouts, largest maps first | |
| mapId | No | set_starting_position: map where new games start (must exist) | |
| prune | No | export_web: drop img/audio/movies files no data or script references (default false; assets a plugin names only at runtime would be lost) | |
| title | No | action "set_title": new game title | |
| types | No | bridge_telemetry: only return these frame types, e.g. ["exception","log"] | |
| action | Yes | What to do; see the tool description. Default "get" | |
| author | No | create_plugin: @author name | |
| button | No | bridge_command "press_button": safe RPG Maker input to press | |
| outDir | No | export_web: folder for the HTML5 build, outside the project (absolute, or relative to it). It must be new, empty, or a previous export_web folder; <outDir>.zip is written beside it unless zip:false. Copies js, fonts, data and assets, keeps encrypted assets as they are, never copies saves or backups. Returns file counts, bytes and the screen size for an itch.io embed. | |
| params | No | create_plugin: @param definitions [{name, type?, desc?, default?}] surfaced in js/plugins.js | |
| status | No | create_plugin: enable the plugin in js/plugins.js (default true) | |
| command | No | bridge_command: which safe instruction to send to the running game | |
| install | No | playtest/open_editor: RPG Maker MV install root (contains nwjs-win/ and RPGMV.exe); defaults to RPGMAKER_MV_INSTALL or the standard Steam install | |
| section | No | action "get": which part of System.json to return (default "full") | |
| commands | No | create_plugin: plugin command names to document (@command) and wire a pluginCommand handler stub for | |
| destPath | No | scaffold_project: directory for the NEW project (must be empty of a project). title/mapId/x/y set the new game's title and start position | |
| direction | No | bridge_command "teleport_player": facing after the transfer (2 down, 4 left, 6 right, 8 up) | |
| timeoutMs | No | bridge_command/take_screenshot: how long to wait for the answer (default 8000, screenshots 15000) | |
| durationMs | No | bridge_command "press_button": hold duration in milliseconds (default 80, range 30-1000) | |
| sourcePath | No | scaffold_project: a blank-project (NewData) folder to clone; defaults to the RPGMAKER_MV_INSTALL env var or the standard Steam install | |
| description | No | create_plugin: @plugindesc short description | |
| screenshotName | No | take_screenshot: optional safe filename prefix (letters, numbers, _ and -, up to 64 characters) | |
| minDistinctTiles | No | mine_templates: a map needs at least this many distinct tiles to count as content rather than scratch (default 10) | |
| telemetryInterval | No | install_bridge_plugin: frames between player-position frames (default 30; 60 = once per second) |