@weppy/roblox-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +39 -0
- package/CHANGELOG.md +37 -0
- package/LICENSE +53 -0
- package/README.md +162 -0
- package/assets/screenshots/connection_guide.png +3 -0
- package/assets/screenshots/connection_popup.png +3 -0
- package/assets/screenshots/plugin_main.png +3 -0
- package/assets/screenshots/settings.png +3 -0
- package/dist/http-bridge.d.ts +65 -0
- package/dist/http-bridge.d.ts.map +1 -0
- package/dist/http-bridge.js +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +1 -0
- package/dist/tools/asset-tools.d.ts +10 -0
- package/dist/tools/asset-tools.d.ts.map +1 -0
- package/dist/tools/asset-tools.js +1 -0
- package/dist/tools/bulk-tools.d.ts +11 -0
- package/dist/tools/bulk-tools.d.ts.map +1 -0
- package/dist/tools/bulk-tools.js +1 -0
- package/dist/tools/camera-tools.d.ts +5 -0
- package/dist/tools/camera-tools.d.ts.map +1 -0
- package/dist/tools/camera-tools.js +1 -0
- package/dist/tools/connection-tools.d.ts +5 -0
- package/dist/tools/connection-tools.d.ts.map +1 -0
- package/dist/tools/connection-tools.js +1 -0
- package/dist/tools/environment-tools.d.ts +8 -0
- package/dist/tools/environment-tools.d.ts.map +1 -0
- package/dist/tools/environment-tools.js +1 -0
- package/dist/tools/index.d.ts +21 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +1 -0
- package/dist/tools/instance-tools.d.ts +16 -0
- package/dist/tools/instance-tools.d.ts.map +1 -0
- package/dist/tools/instance-tools.js +1 -0
- package/dist/tools/log-tools.d.ts +6 -0
- package/dist/tools/log-tools.d.ts.map +1 -0
- package/dist/tools/log-tools.js +1 -0
- package/dist/tools/property-tools.d.ts +13 -0
- package/dist/tools/property-tools.d.ts.map +1 -0
- package/dist/tools/property-tools.js +1 -0
- package/dist/tools/raycast-tools.d.ts +11 -0
- package/dist/tools/raycast-tools.d.ts.map +1 -0
- package/dist/tools/raycast-tools.js +1 -0
- package/dist/tools/script-tools.d.ts +13 -0
- package/dist/tools/script-tools.d.ts.map +1 -0
- package/dist/tools/script-tools.js +1 -0
- package/dist/tools/search-tools.d.ts +11 -0
- package/dist/tools/search-tools.d.ts.map +1 -0
- package/dist/tools/search-tools.js +1 -0
- package/dist/tools/selection-tools.d.ts +16 -0
- package/dist/tools/selection-tools.d.ts.map +1 -0
- package/dist/tools/selection-tools.js +1 -0
- package/dist/tools/spatial-tools.d.ts +8 -0
- package/dist/tools/spatial-tools.d.ts.map +1 -0
- package/dist/tools/spatial-tools.js +1 -0
- package/dist/tools/state-tools.d.ts +12 -0
- package/dist/tools/state-tools.d.ts.map +1 -0
- package/dist/tools/state-tools.js +1 -0
- package/dist/tools/tag-tools.d.ts +8 -0
- package/dist/tools/tag-tools.d.ts.map +1 -0
- package/dist/tools/tag-tools.js +1 -0
- package/dist/tools/terrain-tools.d.ts +15 -0
- package/dist/tools/terrain-tools.d.ts.map +1 -0
- package/dist/tools/terrain-tools.js +1 -0
- package/dist/tools/visualization-tools.d.ts +9 -0
- package/dist/tools/visualization-tools.d.ts.map +1 -0
- package/dist/tools/visualization-tools.js +1 -0
- package/dist/types/index.d.ts +143 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +1 -0
- package/dist/utils/quota-checker.d.ts +46 -0
- package/dist/utils/quota-checker.d.ts.map +1 -0
- package/dist/utils/quota-checker.js +1 -0
- package/dist/utils/type-converter.d.ts +33 -0
- package/dist/utils/type-converter.d.ts.map +1 -0
- package/dist/utils/type-converter.js +1 -0
- package/dist/utils/validation.d.ts +17 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +1 -0
- package/docs/ko/README.md +174 -0
- package/docs/ko/faq.md +188 -0
- package/docs/ko/installation/claude-code.md +110 -0
- package/docs/ko/installation/claude-desktop.md +145 -0
- package/docs/ko/installation/codex-cli.md +120 -0
- package/docs/ko/installation/cursor.md +122 -0
- package/docs/ko/installation/gemini-cli.md +136 -0
- package/docs/ko/installation/other-clients.md +180 -0
- package/docs/ko/installation/plugin.md +98 -0
- package/docs/ko/tools/overview.md +270 -0
- package/package.json +46 -0
- package/plugins/weppy-roblox-mcp/.claude-plugin/plugin.json +53 -0
- package/plugins/weppy-roblox-mcp/agents/roblox-engineer.md +65 -0
- package/plugins/weppy-roblox-mcp/dist/dist/http-bridge.d.ts +65 -0
- package/plugins/weppy-roblox-mcp/dist/dist/http-bridge.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/http-bridge.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/index.d.ts +3 -0
- package/plugins/weppy-roblox-mcp/dist/dist/index.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/index.js +2 -0
- package/plugins/weppy-roblox-mcp/dist/dist/server.d.ts +13 -0
- package/plugins/weppy-roblox-mcp/dist/dist/server.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/server.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/asset-tools.d.ts +10 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/asset-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/asset-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/bulk-tools.d.ts +11 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/bulk-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/bulk-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/camera-tools.d.ts +5 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/camera-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/camera-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/connection-tools.d.ts +5 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/connection-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/connection-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/environment-tools.d.ts +8 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/environment-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/environment-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/index.d.ts +21 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/index.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/index.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/instance-tools.d.ts +16 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/instance-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/instance-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/log-tools.d.ts +6 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/log-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/log-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/property-tools.d.ts +13 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/property-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/property-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/raycast-tools.d.ts +11 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/raycast-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/raycast-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/script-tools.d.ts +13 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/script-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/script-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/search-tools.d.ts +11 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/search-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/search-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/selection-tools.d.ts +16 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/selection-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/selection-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/spatial-tools.d.ts +8 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/spatial-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/spatial-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/state-tools.d.ts +12 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/state-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/state-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/tag-tools.d.ts +8 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/tag-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/tag-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/terrain-tools.d.ts +15 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/terrain-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/terrain-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/visualization-tools.d.ts +9 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/visualization-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/tools/visualization-tools.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/types/index.d.ts +143 -0
- package/plugins/weppy-roblox-mcp/dist/dist/types/index.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/types/index.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/logger.d.ts +16 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/logger.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/logger.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/quota-checker.d.ts +46 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/quota-checker.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/quota-checker.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/type-converter.d.ts +33 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/type-converter.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/type-converter.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/validation.d.ts +17 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/validation.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/dist/utils/validation.js +1 -0
- package/plugins/weppy-roblox-mcp/dist/http-bridge.d.ts +45 -0
- package/plugins/weppy-roblox-mcp/dist/http-bridge.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/http-bridge.js +434 -0
- package/plugins/weppy-roblox-mcp/dist/http-bridge.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/index.d.ts +3 -0
- package/plugins/weppy-roblox-mcp/dist/index.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/index.js +59 -0
- package/plugins/weppy-roblox-mcp/dist/index.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/server.d.ts +13 -0
- package/plugins/weppy-roblox-mcp/dist/server.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/server.js +260 -0
- package/plugins/weppy-roblox-mcp/dist/server.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/asset-tools.d.ts +10 -0
- package/plugins/weppy-roblox-mcp/dist/tools/asset-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/asset-tools.js +127 -0
- package/plugins/weppy-roblox-mcp/dist/tools/asset-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/bulk-tools.d.ts +11 -0
- package/plugins/weppy-roblox-mcp/dist/tools/bulk-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/bulk-tools.js +225 -0
- package/plugins/weppy-roblox-mcp/dist/tools/bulk-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/environment-tools.d.ts +8 -0
- package/plugins/weppy-roblox-mcp/dist/tools/environment-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/environment-tools.js +93 -0
- package/plugins/weppy-roblox-mcp/dist/tools/environment-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/index.d.ts +18 -0
- package/plugins/weppy-roblox-mcp/dist/tools/index.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/index.js +59 -0
- package/plugins/weppy-roblox-mcp/dist/tools/index.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/instance-tools.d.ts +15 -0
- package/plugins/weppy-roblox-mcp/dist/tools/instance-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/instance-tools.js +252 -0
- package/plugins/weppy-roblox-mcp/dist/tools/instance-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/log-tools.d.ts +6 -0
- package/plugins/weppy-roblox-mcp/dist/tools/log-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/log-tools.js +53 -0
- package/plugins/weppy-roblox-mcp/dist/tools/log-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/property-tools.d.ts +13 -0
- package/plugins/weppy-roblox-mcp/dist/tools/property-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/property-tools.js +213 -0
- package/plugins/weppy-roblox-mcp/dist/tools/property-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/raycast-tools.d.ts +11 -0
- package/plugins/weppy-roblox-mcp/dist/tools/raycast-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/raycast-tools.js +420 -0
- package/plugins/weppy-roblox-mcp/dist/tools/raycast-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/script-tools.d.ts +13 -0
- package/plugins/weppy-roblox-mcp/dist/tools/script-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/script-tools.js +229 -0
- package/plugins/weppy-roblox-mcp/dist/tools/script-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/search-tools.d.ts +11 -0
- package/plugins/weppy-roblox-mcp/dist/tools/search-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/search-tools.js +196 -0
- package/plugins/weppy-roblox-mcp/dist/tools/search-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/selection-tools.d.ts +16 -0
- package/plugins/weppy-roblox-mcp/dist/tools/selection-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/selection-tools.js +185 -0
- package/plugins/weppy-roblox-mcp/dist/tools/selection-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/spatial-tools.d.ts +8 -0
- package/plugins/weppy-roblox-mcp/dist/tools/spatial-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/spatial-tools.js +155 -0
- package/plugins/weppy-roblox-mcp/dist/tools/spatial-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/state-tools.d.ts +153 -0
- package/plugins/weppy-roblox-mcp/dist/tools/state-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/state-tools.js +481 -0
- package/plugins/weppy-roblox-mcp/dist/tools/state-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/tag-tools.d.ts +8 -0
- package/plugins/weppy-roblox-mcp/dist/tools/tag-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/tag-tools.js +99 -0
- package/plugins/weppy-roblox-mcp/dist/tools/tag-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/terrain-tools.d.ts +15 -0
- package/plugins/weppy-roblox-mcp/dist/tools/terrain-tools.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/tools/terrain-tools.js +549 -0
- package/plugins/weppy-roblox-mcp/dist/tools/terrain-tools.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/types/index.d.ts +111 -0
- package/plugins/weppy-roblox-mcp/dist/types/index.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/types/index.js +8 -0
- package/plugins/weppy-roblox-mcp/dist/types/index.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/utils/logger.d.ts +16 -0
- package/plugins/weppy-roblox-mcp/dist/utils/logger.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/utils/logger.js +87 -0
- package/plugins/weppy-roblox-mcp/dist/utils/logger.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/utils/type-converter.d.ts +33 -0
- package/plugins/weppy-roblox-mcp/dist/utils/type-converter.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/utils/type-converter.js +203 -0
- package/plugins/weppy-roblox-mcp/dist/utils/type-converter.js.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/utils/validation.d.ts +17 -0
- package/plugins/weppy-roblox-mcp/dist/utils/validation.d.ts.map +1 -0
- package/plugins/weppy-roblox-mcp/dist/utils/validation.js +26 -0
- package/plugins/weppy-roblox-mcp/dist/utils/validation.js.map +1 -0
- package/plugins/weppy-roblox-mcp/package.json +43 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-game-dev/SKILL.md +548 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-mcp-guide/SKILL.md +680 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-mcp-guide/scripts/check-mcp.sh +86 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-planner/SKILL.md +588 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-planner/scripts/verify-plan.sh +134 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-sync/SKILL.md +389 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-sync/scripts/post-verify.sh +160 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-sync/scripts/pre-check.sh +304 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-sync/scripts/update-metadata.sh +27 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-task-tracker/SKILL.md +349 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-task-tracker/scripts/validate.sh +28 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/SKILL.md +244 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/effects.json +118 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/items.json +169 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/maps/maps.json +763 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/maps/sources/decorations.json +137 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/maps/sources/standalone-maps.json +331 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/maps/sources/terrain-presets.json +272 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/monsters.json +132 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/npcs.json +50 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/weapons.json +140 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/references/animations.json +40 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/references/rpg-balance.json +236 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/references/rpg.md +304 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/references/terrain-generation.json +192 -0
- package/plugins/weppy-roblox-mcp/skills/roblox-templates/samples/SpawnConfig.luau +152 -0
- package/roblox-plugin/WeppyRobloxMCP-Free.rbxm +3 -0
|
@@ -0,0 +1,548 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roblox-game-dev
|
|
3
|
+
description: Master orchestrator for Roblox game development. Handles sync, planning, development, and re-sync in a unified workflow. Use this when the user requests game creation or major feature development.
|
|
4
|
+
argument-hint: "[game description or feature request]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Roblox Game Development Orchestrator
|
|
8
|
+
|
|
9
|
+
This is the **master orchestrator skill** for Roblox game development. It coordinates the complete workflow from sync to deployment.
|
|
10
|
+
|
|
11
|
+
**This is the ONLY user-invocable skill for Roblox development.**
|
|
12
|
+
All other skills (sync, planner, task-tracker, templates, mcp-guide) are internal and referenced by this orchestrator.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Workflow State Machine
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
USER REQUEST
|
|
20
|
+
│
|
|
21
|
+
▼
|
|
22
|
+
┌─────────────────┐
|
|
23
|
+
│ 1. SYNC │ ← Blocking: Must complete before proceeding
|
|
24
|
+
└────────┬────────┘
|
|
25
|
+
│
|
|
26
|
+
▼
|
|
27
|
+
┌─────────────────┐
|
|
28
|
+
│ 2. PLAN │ ← Generate development plan
|
|
29
|
+
└────────┬────────┘
|
|
30
|
+
│
|
|
31
|
+
▼
|
|
32
|
+
┌─────────────────┐
|
|
33
|
+
│ 3. APPROVAL │ ← User must approve before development
|
|
34
|
+
└────────┬────────┘
|
|
35
|
+
│
|
|
36
|
+
▼
|
|
37
|
+
┌─────────────────┐
|
|
38
|
+
│ 4. DEVELOP │ ← Execute tasks with MCP tools
|
|
39
|
+
│ (Loop: tasks) │◄──┐
|
|
40
|
+
└────────┬────────┘ │
|
|
41
|
+
│ │
|
|
42
|
+
└── Next ────┘
|
|
43
|
+
│
|
|
44
|
+
▼
|
|
45
|
+
┌─────────────────┐
|
|
46
|
+
│ 5. RESYNC │ ← Update local cache with Studio state
|
|
47
|
+
└────────┬────────┘
|
|
48
|
+
│
|
|
49
|
+
▼
|
|
50
|
+
┌─────────────────┐
|
|
51
|
+
│ 6. COMPLETE │ ← Summary and next steps
|
|
52
|
+
└─────────────────┘
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Phase 1: SYNC (Blocking)
|
|
58
|
+
|
|
59
|
+
**This phase MUST complete before any other actions.**
|
|
60
|
+
|
|
61
|
+
### Pre-Check
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
./.claude/skills/roblox-sync/scripts/pre-check.sh --check-only
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Exit Code Handling:**
|
|
68
|
+
|
|
69
|
+
| Exit | STATUS | Action |
|
|
70
|
+
|------|--------|--------|
|
|
71
|
+
| 0 | `synced` | Proceed to Phase 2 |
|
|
72
|
+
| 0 | `needs_sync` | Execute full sync |
|
|
73
|
+
| 11 | - | **STOP** - Studio not connected |
|
|
74
|
+
|
|
75
|
+
### Full Sync
|
|
76
|
+
|
|
77
|
+
**Refer to:** `.claude/skills/roblox-sync/SKILL.md`
|
|
78
|
+
|
|
79
|
+
The sync skill handles:
|
|
80
|
+
- MCP tool loading
|
|
81
|
+
- Service structure fetching (all 7 services)
|
|
82
|
+
- Script source extraction
|
|
83
|
+
- Cache directory creation
|
|
84
|
+
- Verification
|
|
85
|
+
|
|
86
|
+
**Wait for VERIFICATION=passed before proceeding.**
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Phase 2: PLAN
|
|
91
|
+
|
|
92
|
+
### Project State Analysis
|
|
93
|
+
|
|
94
|
+
**Refer to:** `.claude/skills/roblox-planner/SKILL.md` → "Project State Detection & Template Usage"
|
|
95
|
+
|
|
96
|
+
Based on sync data, determine project state:
|
|
97
|
+
- **Empty project** → Use templates actively
|
|
98
|
+
- **Existing content** → Follow user intent, reference templates only when needed
|
|
99
|
+
|
|
100
|
+
### Plan Generation
|
|
101
|
+
|
|
102
|
+
**Refer to:** `.claude/skills/roblox-planner/SKILL.md` → "Workflow" sections
|
|
103
|
+
|
|
104
|
+
The planner skill handles:
|
|
105
|
+
- Requirements gathering
|
|
106
|
+
- Plan document creation
|
|
107
|
+
- Task breakdown
|
|
108
|
+
- Template/asset concept references (no hardcoded IDs)
|
|
109
|
+
|
|
110
|
+
### Plan Document Location
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
.roblox-cache/plans/{plan-id}.md
|
|
114
|
+
.roblox-cache/tasks/{plan-id}-tasks.md
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Phase 3: APPROVAL
|
|
120
|
+
|
|
121
|
+
**User approval is REQUIRED before development.**
|
|
122
|
+
|
|
123
|
+
Present plan summary:
|
|
124
|
+
|
|
125
|
+
```markdown
|
|
126
|
+
## Proposed Development Plan
|
|
127
|
+
|
|
128
|
+
### {Game Name}
|
|
129
|
+
{Brief vision}
|
|
130
|
+
|
|
131
|
+
### Phases & Tasks
|
|
132
|
+
|
|
133
|
+
| Phase | Focus | Tasks |
|
|
134
|
+
|-------|-------|-------|
|
|
135
|
+
| 1 | Foundation | {count} |
|
|
136
|
+
| 2 | Core Mechanics | {count} |
|
|
137
|
+
| 3 | Content | {count} |
|
|
138
|
+
| 4 | Polish | {count} |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
**Do you approve this plan?**
|
|
143
|
+
- Yes → Start development
|
|
144
|
+
- Modify → Tell me what to change
|
|
145
|
+
- Cancel → Abort
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
On approval:
|
|
149
|
+
```bash
|
|
150
|
+
echo "{plan-id}" > .roblox-cache/current-plan.txt
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Phase 4: DEVELOP (Task Loop)
|
|
156
|
+
|
|
157
|
+
### MCP Tools
|
|
158
|
+
|
|
159
|
+
**Refer to:** `.claude/skills/roblox-mcp-guide/SKILL.md`
|
|
160
|
+
|
|
161
|
+
Load tools as needed using ToolSearch:
|
|
162
|
+
```
|
|
163
|
+
ToolSearch: "+robloxstudio create_instance"
|
|
164
|
+
ToolSearch: "+robloxstudio create_script"
|
|
165
|
+
ToolSearch: "+robloxstudio focus_camera"
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Quota-Aware Workflow
|
|
169
|
+
|
|
170
|
+
**IMPORTANT:** Before starting development, check Pro tool quota status.
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
ToolSearch: "select:mcp__weppy-roblox-mcp__get_usage_status"
|
|
174
|
+
get_usage_status({})
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Response handling:**
|
|
178
|
+
|
|
179
|
+
| canUsePro | Action |
|
|
180
|
+
|-----------|--------|
|
|
181
|
+
| `true` | Use Pro tools normally |
|
|
182
|
+
| `false` | Use free tool alternatives, inform user |
|
|
183
|
+
|
|
184
|
+
**When quota is exhausted (canUsePro=false):**
|
|
185
|
+
|
|
186
|
+
1. Inform user: "Pro 도구를 사용할 수 없어 대안을 찾아보겠습니다."
|
|
187
|
+
2. Use free alternatives (see table below)
|
|
188
|
+
3. If task requires Pro-only features, inform user: "이 작업에는 Pro 도구가 필요합니다. 할당량이 리셋되면 계속하거나, Pro로 업그레이드하면 제한 없이 사용할 수 있습니다."
|
|
189
|
+
|
|
190
|
+
**Pro → Free Tool Alternatives:**
|
|
191
|
+
|
|
192
|
+
| Pro Tool | Free Alternative | Notes |
|
|
193
|
+
|----------|------------------|-------|
|
|
194
|
+
| `mass_create_instances` | `create_instance` loop | Slower but functional |
|
|
195
|
+
| `terrain_generate` | `terrain_fill_block` combinations | Manual setup required |
|
|
196
|
+
| `insert_free_model` | `create_instance_with_properties` | Build manually |
|
|
197
|
+
| `batch_execute` | Sequential individual calls | More API calls |
|
|
198
|
+
| `set_lighting` / `set_atmosphere` | Individual property sets | Use `set_property` |
|
|
199
|
+
|
|
200
|
+
### Camera Focus Policy
|
|
201
|
+
|
|
202
|
+
**IMPORTANT:** Camera focus is NEVER automatic. Always use `focus_camera` explicitly after creating objects or terrain.
|
|
203
|
+
|
|
204
|
+
| Action | Camera Focus Required |
|
|
205
|
+
|--------|----------------------|
|
|
206
|
+
| Terrain created | `focus_camera` on cameraFocus from terrain-presets.json |
|
|
207
|
+
| Map inserted | `focus_camera` on cameraFocus from maps.json |
|
|
208
|
+
| Model/Asset inserted | `focus_camera` on inserted instance |
|
|
209
|
+
| Major structure created | `focus_camera` for overview |
|
|
210
|
+
| Phase completed | `focus_camera` for summary view |
|
|
211
|
+
|
|
212
|
+
**`respectAutoFocusSetting` Option:**
|
|
213
|
+
|
|
214
|
+
When calling `focus_camera` from skills, always set `respectAutoFocusSetting: true` to respect the user's Auto Focus Camera plugin setting:
|
|
215
|
+
|
|
216
|
+
```typescript
|
|
217
|
+
// This allows users to disable auto-focus via plugin settings
|
|
218
|
+
await mcp.focus_camera({
|
|
219
|
+
targetPath: "game.Workspace.MyModel",
|
|
220
|
+
respectAutoFocusSetting: true, // Always true in skills
|
|
221
|
+
distance: 50, // Absolute distance in studs
|
|
222
|
+
offset: { x: 30, y: 20, z: 30 } // Offset in studs for lookAt calculation
|
|
223
|
+
});
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**Understanding distance and offset:**
|
|
227
|
+
|
|
228
|
+
| Parameter | Type | Description |
|
|
229
|
+
|-----------|------|-------------|
|
|
230
|
+
| `distance` | studs | **Absolute distance** from target (minimum: 10 studs) |
|
|
231
|
+
| `offset` | studs | **Camera offset in studs** from target for lookAt calculation |
|
|
232
|
+
|
|
233
|
+
**Using focusView from maps.json / terrain-presets.json:**
|
|
234
|
+
|
|
235
|
+
For maps and terrain, use the predefined `focusView`:
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
// After creating terrain from preset
|
|
239
|
+
const preset = terrainPresets.presets["mountain_valley"];
|
|
240
|
+
await mcp.focus_camera({
|
|
241
|
+
targetPath: "game.Workspace.Terrain",
|
|
242
|
+
respectAutoFocusSetting: true,
|
|
243
|
+
distance: preset.focusView.distance, // e.g., 686 studs
|
|
244
|
+
offset: preset.focusView.offset // e.g., { x: -400, y: 300, z: -350 } studs
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
// After inserting a map
|
|
248
|
+
const map = maps.assets.find(m => m.id === 123456);
|
|
249
|
+
await mcp.focus_camera({
|
|
250
|
+
targetPath: result.path,
|
|
251
|
+
respectAutoFocusSetting: true,
|
|
252
|
+
distance: map.focusView.distance,
|
|
253
|
+
offset: map.focusView.offset
|
|
254
|
+
});
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**Standard Camera Focus Patterns:**
|
|
258
|
+
|
|
259
|
+
```typescript
|
|
260
|
+
// After terrain creation (512x512 map) - use preset's focusView
|
|
261
|
+
await mcp.focus_camera({
|
|
262
|
+
targetPath: "game.Workspace.Terrain",
|
|
263
|
+
respectAutoFocusSetting: true,
|
|
264
|
+
distance: 686, // studs - covers ~512 stud terrain
|
|
265
|
+
offset: { x: -400, y: 300, z: -350 } // studs offset for lookAt
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
// After creating a model/folder structure (medium size ~50 studs)
|
|
269
|
+
await mcp.focus_camera({
|
|
270
|
+
targetPath: "game.Workspace.GameFolder",
|
|
271
|
+
respectAutoFocusSetting: true,
|
|
272
|
+
distance: 100, // studs
|
|
273
|
+
offset: { x: 60, y: 40, z: 60 } // studs offset for lookAt
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
// After inserting an asset (small ~10 studs)
|
|
277
|
+
await mcp.focus_camera({
|
|
278
|
+
targetPath: result.path, // Path returned from insert_free_model
|
|
279
|
+
respectAutoFocusSetting: true,
|
|
280
|
+
distance: 30, // studs
|
|
281
|
+
offset: { x: 20, y: 10, z: 18 } // studs offset for lookAt
|
|
282
|
+
});
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Asset Selection
|
|
286
|
+
|
|
287
|
+
**Refer to:** `.claude/skills/roblox-templates/SKILL.md`
|
|
288
|
+
|
|
289
|
+
When tasks require assets:
|
|
290
|
+
1. Read `roblox-templates/references/{game-type}.md`
|
|
291
|
+
2. Read `roblox-templates/assets/{category}.json`
|
|
292
|
+
3. Select assets matching the concept defined in task
|
|
293
|
+
4. Insert via MCP
|
|
294
|
+
5. **Call `focus_camera` on inserted asset**
|
|
295
|
+
|
|
296
|
+
### Script Generation
|
|
297
|
+
|
|
298
|
+
For complex scripts, delegate to `roblox-engineer` agent:
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
Task({
|
|
302
|
+
subagent_type: "roblox-engineer",
|
|
303
|
+
prompt: "[GENERATE SCRIPT] {script name} for {location}.
|
|
304
|
+
Requirements: {requirements}
|
|
305
|
+
Return only the Luau source code."
|
|
306
|
+
})
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Then use returned code with MCP `create_script`.
|
|
310
|
+
|
|
311
|
+
### Development Visualization
|
|
312
|
+
|
|
313
|
+
**IMPORTANT:** When configuring spawn positions, zones, or markers, use the Development Visualization MCP tools for real-time preview in `Workspace.DevPreview`.
|
|
314
|
+
|
|
315
|
+
#### Visualization MCP Tools
|
|
316
|
+
|
|
317
|
+
| Tool | Description |
|
|
318
|
+
|------|-------------|
|
|
319
|
+
| `visualization_create_area` | Create semi-transparent box for zone visualization |
|
|
320
|
+
| `visualization_create_marker` | Create spawn point marker with optional asset preview |
|
|
321
|
+
| `visualization_remove` | Remove specific visualization by ID |
|
|
322
|
+
| `visualization_clear` | Remove all preview objects |
|
|
323
|
+
| `visualization_focus` | Focus camera on specific element |
|
|
324
|
+
| `visualization_get_status` | Get current visualization state |
|
|
325
|
+
|
|
326
|
+
#### visualization_create_marker Parameters
|
|
327
|
+
|
|
328
|
+
| Parameter | Type | Description |
|
|
329
|
+
|-----------|------|-------------|
|
|
330
|
+
| `id` | string | Unique identifier (required) |
|
|
331
|
+
| `label` | string | Text shown on marker label (required) |
|
|
332
|
+
| `position` | {x,y,z} | Marker position (required) |
|
|
333
|
+
| `markerType` | string | Marker type (determines color) |
|
|
334
|
+
| `assetId` | number | **Roblox Asset ID for model preview** |
|
|
335
|
+
| `assetName` | string | Asset name (shown in label) |
|
|
336
|
+
| `count` | number | Spawn count (shown as "x5" in label) |
|
|
337
|
+
| `area` | {x,y,z} | Optional area indicator size |
|
|
338
|
+
| `color` | {r,g,b} | Custom color (when markerType is "custom") |
|
|
339
|
+
| `focusCamera` | boolean | Focus camera on creation (default: true) |
|
|
340
|
+
|
|
341
|
+
#### Workflow: Monster Spawn Configuration
|
|
342
|
+
|
|
343
|
+
```
|
|
344
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
345
|
+
│ 1. CREATE SPAWN ZONE AREA │
|
|
346
|
+
│ MCP: visualization_create_area │
|
|
347
|
+
│ → Creates transparent area box in DevPreview │
|
|
348
|
+
└────────────────────┬────────────────────────────────────────┘
|
|
349
|
+
│
|
|
350
|
+
▼
|
|
351
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
352
|
+
│ 2. CREATE SPAWN MARKERS WITH ASSET PREVIEW │
|
|
353
|
+
│ MCP: visualization_create_marker (with assetId) │
|
|
354
|
+
│ → Creates marker + actual monster model preview │
|
|
355
|
+
│ → Camera auto-focuses for placement verification │
|
|
356
|
+
└────────────────────┬────────────────────────────────────────┘
|
|
357
|
+
│
|
|
358
|
+
▼
|
|
359
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
360
|
+
│ 3. USER CONFIRMATION │
|
|
361
|
+
│ Review and adjust positions │
|
|
362
|
+
│ Use visualization_remove to delete unwanted markers │
|
|
363
|
+
└────────────────────┬────────────────────────────────────────┘
|
|
364
|
+
│
|
|
365
|
+
▼
|
|
366
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
367
|
+
│ 4. CREATE SPAWN SCRIPT & CLEANUP │
|
|
368
|
+
│ Create spawn script with confirmed positions │
|
|
369
|
+
│ Call visualization_clear to remove all previews │
|
|
370
|
+
└─────────────────────────────────────────────────────────────┘
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
#### Implementation Pattern
|
|
374
|
+
|
|
375
|
+
```typescript
|
|
376
|
+
// Step 1: Create spawn zone area visualization
|
|
377
|
+
await mcp.visualization_create_area({
|
|
378
|
+
id: "forest_zone",
|
|
379
|
+
name: "Forest Zone",
|
|
380
|
+
center: { x: 100, y: 25, z: 100 },
|
|
381
|
+
size: { x: 200, y: 50, z: 200 },
|
|
382
|
+
color: { r: 0, g: 255, b: 0 } // Green
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
// Step 2: Create monster spawn markers with asset preview
|
|
386
|
+
await mcp.visualization_create_marker({
|
|
387
|
+
id: "zombie_spawn_1",
|
|
388
|
+
label: "Zombie x5",
|
|
389
|
+
position: { x: 80, y: 5, z: 80 },
|
|
390
|
+
markerType: "monster",
|
|
391
|
+
assetId: 3375251681, // Actual Zombie asset ID
|
|
392
|
+
assetName: "Zombie",
|
|
393
|
+
count: 5,
|
|
394
|
+
area: { x: 30, y: 10, z: 30 }
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
await mcp.visualization_create_marker({
|
|
398
|
+
id: "orc_spawn_1",
|
|
399
|
+
label: "Orc Warrior x3",
|
|
400
|
+
position: { x: 120, y: 5, z: 120 },
|
|
401
|
+
markerType: "monster",
|
|
402
|
+
assetId: 71129266059717, // Orc Warrior asset ID
|
|
403
|
+
assetName: "Orc Warrior",
|
|
404
|
+
count: 3
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
// Step 3: User reviews, adjust if needed
|
|
408
|
+
// Remove marker if necessary:
|
|
409
|
+
await mcp.visualization_remove({ id: "orc_spawn_1" });
|
|
410
|
+
|
|
411
|
+
// Step 4: After confirmation, create spawn script and cleanup
|
|
412
|
+
await mcp.visualization_clear();
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
#### Marker Types
|
|
416
|
+
|
|
417
|
+
| Type | Color | Use Case |
|
|
418
|
+
|------|-------|----------|
|
|
419
|
+
| `monster` | Red | Monster/enemy spawn points |
|
|
420
|
+
| `player` | Green | Player spawn locations |
|
|
421
|
+
| `npc` | Blue | NPC positions |
|
|
422
|
+
| `item` | Yellow | Item/loot spawn points |
|
|
423
|
+
| `custom` | Gray (or custom color) | Other markers |
|
|
424
|
+
|
|
425
|
+
#### Preview Folder Structure
|
|
426
|
+
|
|
427
|
+
```
|
|
428
|
+
Workspace/
|
|
429
|
+
└── DevPreview/ ← Auto-created by visualization tools
|
|
430
|
+
├── Area_forest_zone ← Semi-transparent zone box
|
|
431
|
+
├── Marker_zombie_spawn_1 ← Marker + asset preview
|
|
432
|
+
│ ├── Cylinder ← Position indicator cylinder
|
|
433
|
+
│ ├── Label ← BillboardGui label
|
|
434
|
+
│ └── AssetPreview ← Actual monster model (when assetId provided)
|
|
435
|
+
└── Marker_orc_spawn_1
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
#### Key Points
|
|
439
|
+
|
|
440
|
+
| Rule | Description |
|
|
441
|
+
|------|-------------|
|
|
442
|
+
| **Unique IDs** | Each visualization must have a unique `id` |
|
|
443
|
+
| **Asset Preview** | Providing `assetId` inserts actual model preview |
|
|
444
|
+
| **Auto camera focus** | Respects `autoFocusOnVisualization` setting |
|
|
445
|
+
| **Cleanup after use** | Always call `visualization_clear` when done |
|
|
446
|
+
| **DevPreview is temp** | Never use for permanent game objects |
|
|
447
|
+
|
|
448
|
+
### Progress Tracking
|
|
449
|
+
|
|
450
|
+
**Refer to:** `.claude/skills/roblox-task-tracker/SKILL.md`
|
|
451
|
+
|
|
452
|
+
Update task status in `.roblox-cache/tasks/{plan-id}-tasks.md`:
|
|
453
|
+
- `pending` → `in-progress` → `completed`
|
|
454
|
+
|
|
455
|
+
Report progress after each phase.
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
459
|
+
## Phase 5: RESYNC
|
|
460
|
+
|
|
461
|
+
After development, sync Studio state back to local cache.
|
|
462
|
+
|
|
463
|
+
**Refer to:** `.claude/skills/roblox-sync/SKILL.md` → Steps 3-6
|
|
464
|
+
|
|
465
|
+
Re-fetch affected services and verify.
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## Phase 6: COMPLETE
|
|
470
|
+
|
|
471
|
+
### Summary Report
|
|
472
|
+
|
|
473
|
+
```markdown
|
|
474
|
+
## Development Complete
|
|
475
|
+
|
|
476
|
+
### {Game Name}
|
|
477
|
+
|
|
478
|
+
**Tasks Completed:** {count}/{total}
|
|
479
|
+
|
|
480
|
+
### What Was Created
|
|
481
|
+
- Instances: {list}
|
|
482
|
+
- Scripts: {list}
|
|
483
|
+
- Assets: {list}
|
|
484
|
+
|
|
485
|
+
### Next Steps
|
|
486
|
+
1. Playtest the game in Studio
|
|
487
|
+
2. Adjust balance/difficulty
|
|
488
|
+
3. Publish when ready
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### Update Plan Status
|
|
492
|
+
|
|
493
|
+
Mark plan as completed in `.roblox-cache/plans/{plan-id}.md`
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
## Error Handling
|
|
498
|
+
|
|
499
|
+
| Error | Action |
|
|
500
|
+
|-------|--------|
|
|
501
|
+
| MCP not responding | Guide user to reconnect Studio |
|
|
502
|
+
| Task failure | Log error, mark as failed, continue if possible |
|
|
503
|
+
| User interruption | Save progress, allow resume later |
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
## Related Skills (Internal Reference Only)
|
|
508
|
+
|
|
509
|
+
| Skill | Purpose | When Referenced |
|
|
510
|
+
|-------|---------|-----------------|
|
|
511
|
+
| `roblox-sync` | Studio ↔ Cache synchronization | Phase 1, Phase 5 |
|
|
512
|
+
| `roblox-planner` | Plan creation & state detection | Phase 2 |
|
|
513
|
+
| `roblox-task-tracker` | Progress tracking & handoffs | Phase 4 |
|
|
514
|
+
| `roblox-templates` | Asset concepts & game references | Phase 4 (development) |
|
|
515
|
+
| `roblox-mcp-guide` | MCP tool documentation | Phase 4 (development) |
|
|
516
|
+
|
|
517
|
+
**Users cannot invoke these skills directly.** This orchestrator manages all coordination.
|
|
518
|
+
|
|
519
|
+
---
|
|
520
|
+
|
|
521
|
+
## Quick Reference
|
|
522
|
+
|
|
523
|
+
### Essential Commands
|
|
524
|
+
|
|
525
|
+
```bash
|
|
526
|
+
# Pre-sync check
|
|
527
|
+
./.claude/skills/roblox-sync/scripts/pre-check.sh --check-only
|
|
528
|
+
|
|
529
|
+
# Post-sync verification
|
|
530
|
+
./.claude/skills/roblox-sync/scripts/post-verify.sh
|
|
531
|
+
|
|
532
|
+
# Plan verification
|
|
533
|
+
./.claude/skills/roblox-planner/scripts/verify-plan.sh <plan-id>
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
### Cache Structure
|
|
537
|
+
|
|
538
|
+
```
|
|
539
|
+
.roblox-cache/
|
|
540
|
+
├── current-plan.txt # Active plan ID
|
|
541
|
+
├── plans/ # Plan documents
|
|
542
|
+
├── tasks/ # Task lists
|
|
543
|
+
└── logs/ # Activity logs
|
|
544
|
+
|
|
545
|
+
roblox-studio-sync/
|
|
546
|
+
├── explorer/ # Studio state cache
|
|
547
|
+
└── last-sync.txt # Sync timestamp
|
|
548
|
+
```
|