@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.
Files changed (293) hide show
  1. package/.claude-plugin/marketplace.json +39 -0
  2. package/CHANGELOG.md +37 -0
  3. package/LICENSE +53 -0
  4. package/README.md +162 -0
  5. package/assets/screenshots/connection_guide.png +3 -0
  6. package/assets/screenshots/connection_popup.png +3 -0
  7. package/assets/screenshots/plugin_main.png +3 -0
  8. package/assets/screenshots/settings.png +3 -0
  9. package/dist/http-bridge.d.ts +65 -0
  10. package/dist/http-bridge.d.ts.map +1 -0
  11. package/dist/http-bridge.js +1 -0
  12. package/dist/index.d.ts +3 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +2 -0
  15. package/dist/server.d.ts +13 -0
  16. package/dist/server.d.ts.map +1 -0
  17. package/dist/server.js +1 -0
  18. package/dist/tools/asset-tools.d.ts +10 -0
  19. package/dist/tools/asset-tools.d.ts.map +1 -0
  20. package/dist/tools/asset-tools.js +1 -0
  21. package/dist/tools/bulk-tools.d.ts +11 -0
  22. package/dist/tools/bulk-tools.d.ts.map +1 -0
  23. package/dist/tools/bulk-tools.js +1 -0
  24. package/dist/tools/camera-tools.d.ts +5 -0
  25. package/dist/tools/camera-tools.d.ts.map +1 -0
  26. package/dist/tools/camera-tools.js +1 -0
  27. package/dist/tools/connection-tools.d.ts +5 -0
  28. package/dist/tools/connection-tools.d.ts.map +1 -0
  29. package/dist/tools/connection-tools.js +1 -0
  30. package/dist/tools/environment-tools.d.ts +8 -0
  31. package/dist/tools/environment-tools.d.ts.map +1 -0
  32. package/dist/tools/environment-tools.js +1 -0
  33. package/dist/tools/index.d.ts +21 -0
  34. package/dist/tools/index.d.ts.map +1 -0
  35. package/dist/tools/index.js +1 -0
  36. package/dist/tools/instance-tools.d.ts +16 -0
  37. package/dist/tools/instance-tools.d.ts.map +1 -0
  38. package/dist/tools/instance-tools.js +1 -0
  39. package/dist/tools/log-tools.d.ts +6 -0
  40. package/dist/tools/log-tools.d.ts.map +1 -0
  41. package/dist/tools/log-tools.js +1 -0
  42. package/dist/tools/property-tools.d.ts +13 -0
  43. package/dist/tools/property-tools.d.ts.map +1 -0
  44. package/dist/tools/property-tools.js +1 -0
  45. package/dist/tools/raycast-tools.d.ts +11 -0
  46. package/dist/tools/raycast-tools.d.ts.map +1 -0
  47. package/dist/tools/raycast-tools.js +1 -0
  48. package/dist/tools/script-tools.d.ts +13 -0
  49. package/dist/tools/script-tools.d.ts.map +1 -0
  50. package/dist/tools/script-tools.js +1 -0
  51. package/dist/tools/search-tools.d.ts +11 -0
  52. package/dist/tools/search-tools.d.ts.map +1 -0
  53. package/dist/tools/search-tools.js +1 -0
  54. package/dist/tools/selection-tools.d.ts +16 -0
  55. package/dist/tools/selection-tools.d.ts.map +1 -0
  56. package/dist/tools/selection-tools.js +1 -0
  57. package/dist/tools/spatial-tools.d.ts +8 -0
  58. package/dist/tools/spatial-tools.d.ts.map +1 -0
  59. package/dist/tools/spatial-tools.js +1 -0
  60. package/dist/tools/state-tools.d.ts +12 -0
  61. package/dist/tools/state-tools.d.ts.map +1 -0
  62. package/dist/tools/state-tools.js +1 -0
  63. package/dist/tools/tag-tools.d.ts +8 -0
  64. package/dist/tools/tag-tools.d.ts.map +1 -0
  65. package/dist/tools/tag-tools.js +1 -0
  66. package/dist/tools/terrain-tools.d.ts +15 -0
  67. package/dist/tools/terrain-tools.d.ts.map +1 -0
  68. package/dist/tools/terrain-tools.js +1 -0
  69. package/dist/tools/visualization-tools.d.ts +9 -0
  70. package/dist/tools/visualization-tools.d.ts.map +1 -0
  71. package/dist/tools/visualization-tools.js +1 -0
  72. package/dist/types/index.d.ts +143 -0
  73. package/dist/types/index.d.ts.map +1 -0
  74. package/dist/types/index.js +1 -0
  75. package/dist/utils/logger.d.ts +16 -0
  76. package/dist/utils/logger.d.ts.map +1 -0
  77. package/dist/utils/logger.js +1 -0
  78. package/dist/utils/quota-checker.d.ts +46 -0
  79. package/dist/utils/quota-checker.d.ts.map +1 -0
  80. package/dist/utils/quota-checker.js +1 -0
  81. package/dist/utils/type-converter.d.ts +33 -0
  82. package/dist/utils/type-converter.d.ts.map +1 -0
  83. package/dist/utils/type-converter.js +1 -0
  84. package/dist/utils/validation.d.ts +17 -0
  85. package/dist/utils/validation.d.ts.map +1 -0
  86. package/dist/utils/validation.js +1 -0
  87. package/docs/ko/README.md +174 -0
  88. package/docs/ko/faq.md +188 -0
  89. package/docs/ko/installation/claude-code.md +110 -0
  90. package/docs/ko/installation/claude-desktop.md +145 -0
  91. package/docs/ko/installation/codex-cli.md +120 -0
  92. package/docs/ko/installation/cursor.md +122 -0
  93. package/docs/ko/installation/gemini-cli.md +136 -0
  94. package/docs/ko/installation/other-clients.md +180 -0
  95. package/docs/ko/installation/plugin.md +98 -0
  96. package/docs/ko/tools/overview.md +270 -0
  97. package/package.json +46 -0
  98. package/plugins/weppy-roblox-mcp/.claude-plugin/plugin.json +53 -0
  99. package/plugins/weppy-roblox-mcp/agents/roblox-engineer.md +65 -0
  100. package/plugins/weppy-roblox-mcp/dist/dist/http-bridge.d.ts +65 -0
  101. package/plugins/weppy-roblox-mcp/dist/dist/http-bridge.d.ts.map +1 -0
  102. package/plugins/weppy-roblox-mcp/dist/dist/http-bridge.js +1 -0
  103. package/plugins/weppy-roblox-mcp/dist/dist/index.d.ts +3 -0
  104. package/plugins/weppy-roblox-mcp/dist/dist/index.d.ts.map +1 -0
  105. package/plugins/weppy-roblox-mcp/dist/dist/index.js +2 -0
  106. package/plugins/weppy-roblox-mcp/dist/dist/server.d.ts +13 -0
  107. package/plugins/weppy-roblox-mcp/dist/dist/server.d.ts.map +1 -0
  108. package/plugins/weppy-roblox-mcp/dist/dist/server.js +1 -0
  109. package/plugins/weppy-roblox-mcp/dist/dist/tools/asset-tools.d.ts +10 -0
  110. package/plugins/weppy-roblox-mcp/dist/dist/tools/asset-tools.d.ts.map +1 -0
  111. package/plugins/weppy-roblox-mcp/dist/dist/tools/asset-tools.js +1 -0
  112. package/plugins/weppy-roblox-mcp/dist/dist/tools/bulk-tools.d.ts +11 -0
  113. package/plugins/weppy-roblox-mcp/dist/dist/tools/bulk-tools.d.ts.map +1 -0
  114. package/plugins/weppy-roblox-mcp/dist/dist/tools/bulk-tools.js +1 -0
  115. package/plugins/weppy-roblox-mcp/dist/dist/tools/camera-tools.d.ts +5 -0
  116. package/plugins/weppy-roblox-mcp/dist/dist/tools/camera-tools.d.ts.map +1 -0
  117. package/plugins/weppy-roblox-mcp/dist/dist/tools/camera-tools.js +1 -0
  118. package/plugins/weppy-roblox-mcp/dist/dist/tools/connection-tools.d.ts +5 -0
  119. package/plugins/weppy-roblox-mcp/dist/dist/tools/connection-tools.d.ts.map +1 -0
  120. package/plugins/weppy-roblox-mcp/dist/dist/tools/connection-tools.js +1 -0
  121. package/plugins/weppy-roblox-mcp/dist/dist/tools/environment-tools.d.ts +8 -0
  122. package/plugins/weppy-roblox-mcp/dist/dist/tools/environment-tools.d.ts.map +1 -0
  123. package/plugins/weppy-roblox-mcp/dist/dist/tools/environment-tools.js +1 -0
  124. package/plugins/weppy-roblox-mcp/dist/dist/tools/index.d.ts +21 -0
  125. package/plugins/weppy-roblox-mcp/dist/dist/tools/index.d.ts.map +1 -0
  126. package/plugins/weppy-roblox-mcp/dist/dist/tools/index.js +1 -0
  127. package/plugins/weppy-roblox-mcp/dist/dist/tools/instance-tools.d.ts +16 -0
  128. package/plugins/weppy-roblox-mcp/dist/dist/tools/instance-tools.d.ts.map +1 -0
  129. package/plugins/weppy-roblox-mcp/dist/dist/tools/instance-tools.js +1 -0
  130. package/plugins/weppy-roblox-mcp/dist/dist/tools/log-tools.d.ts +6 -0
  131. package/plugins/weppy-roblox-mcp/dist/dist/tools/log-tools.d.ts.map +1 -0
  132. package/plugins/weppy-roblox-mcp/dist/dist/tools/log-tools.js +1 -0
  133. package/plugins/weppy-roblox-mcp/dist/dist/tools/property-tools.d.ts +13 -0
  134. package/plugins/weppy-roblox-mcp/dist/dist/tools/property-tools.d.ts.map +1 -0
  135. package/plugins/weppy-roblox-mcp/dist/dist/tools/property-tools.js +1 -0
  136. package/plugins/weppy-roblox-mcp/dist/dist/tools/raycast-tools.d.ts +11 -0
  137. package/plugins/weppy-roblox-mcp/dist/dist/tools/raycast-tools.d.ts.map +1 -0
  138. package/plugins/weppy-roblox-mcp/dist/dist/tools/raycast-tools.js +1 -0
  139. package/plugins/weppy-roblox-mcp/dist/dist/tools/script-tools.d.ts +13 -0
  140. package/plugins/weppy-roblox-mcp/dist/dist/tools/script-tools.d.ts.map +1 -0
  141. package/plugins/weppy-roblox-mcp/dist/dist/tools/script-tools.js +1 -0
  142. package/plugins/weppy-roblox-mcp/dist/dist/tools/search-tools.d.ts +11 -0
  143. package/plugins/weppy-roblox-mcp/dist/dist/tools/search-tools.d.ts.map +1 -0
  144. package/plugins/weppy-roblox-mcp/dist/dist/tools/search-tools.js +1 -0
  145. package/plugins/weppy-roblox-mcp/dist/dist/tools/selection-tools.d.ts +16 -0
  146. package/plugins/weppy-roblox-mcp/dist/dist/tools/selection-tools.d.ts.map +1 -0
  147. package/plugins/weppy-roblox-mcp/dist/dist/tools/selection-tools.js +1 -0
  148. package/plugins/weppy-roblox-mcp/dist/dist/tools/spatial-tools.d.ts +8 -0
  149. package/plugins/weppy-roblox-mcp/dist/dist/tools/spatial-tools.d.ts.map +1 -0
  150. package/plugins/weppy-roblox-mcp/dist/dist/tools/spatial-tools.js +1 -0
  151. package/plugins/weppy-roblox-mcp/dist/dist/tools/state-tools.d.ts +12 -0
  152. package/plugins/weppy-roblox-mcp/dist/dist/tools/state-tools.d.ts.map +1 -0
  153. package/plugins/weppy-roblox-mcp/dist/dist/tools/state-tools.js +1 -0
  154. package/plugins/weppy-roblox-mcp/dist/dist/tools/tag-tools.d.ts +8 -0
  155. package/plugins/weppy-roblox-mcp/dist/dist/tools/tag-tools.d.ts.map +1 -0
  156. package/plugins/weppy-roblox-mcp/dist/dist/tools/tag-tools.js +1 -0
  157. package/plugins/weppy-roblox-mcp/dist/dist/tools/terrain-tools.d.ts +15 -0
  158. package/plugins/weppy-roblox-mcp/dist/dist/tools/terrain-tools.d.ts.map +1 -0
  159. package/plugins/weppy-roblox-mcp/dist/dist/tools/terrain-tools.js +1 -0
  160. package/plugins/weppy-roblox-mcp/dist/dist/tools/visualization-tools.d.ts +9 -0
  161. package/plugins/weppy-roblox-mcp/dist/dist/tools/visualization-tools.d.ts.map +1 -0
  162. package/plugins/weppy-roblox-mcp/dist/dist/tools/visualization-tools.js +1 -0
  163. package/plugins/weppy-roblox-mcp/dist/dist/types/index.d.ts +143 -0
  164. package/plugins/weppy-roblox-mcp/dist/dist/types/index.d.ts.map +1 -0
  165. package/plugins/weppy-roblox-mcp/dist/dist/types/index.js +1 -0
  166. package/plugins/weppy-roblox-mcp/dist/dist/utils/logger.d.ts +16 -0
  167. package/plugins/weppy-roblox-mcp/dist/dist/utils/logger.d.ts.map +1 -0
  168. package/plugins/weppy-roblox-mcp/dist/dist/utils/logger.js +1 -0
  169. package/plugins/weppy-roblox-mcp/dist/dist/utils/quota-checker.d.ts +46 -0
  170. package/plugins/weppy-roblox-mcp/dist/dist/utils/quota-checker.d.ts.map +1 -0
  171. package/plugins/weppy-roblox-mcp/dist/dist/utils/quota-checker.js +1 -0
  172. package/plugins/weppy-roblox-mcp/dist/dist/utils/type-converter.d.ts +33 -0
  173. package/plugins/weppy-roblox-mcp/dist/dist/utils/type-converter.d.ts.map +1 -0
  174. package/plugins/weppy-roblox-mcp/dist/dist/utils/type-converter.js +1 -0
  175. package/plugins/weppy-roblox-mcp/dist/dist/utils/validation.d.ts +17 -0
  176. package/plugins/weppy-roblox-mcp/dist/dist/utils/validation.d.ts.map +1 -0
  177. package/plugins/weppy-roblox-mcp/dist/dist/utils/validation.js +1 -0
  178. package/plugins/weppy-roblox-mcp/dist/http-bridge.d.ts +45 -0
  179. package/plugins/weppy-roblox-mcp/dist/http-bridge.d.ts.map +1 -0
  180. package/plugins/weppy-roblox-mcp/dist/http-bridge.js +434 -0
  181. package/plugins/weppy-roblox-mcp/dist/http-bridge.js.map +1 -0
  182. package/plugins/weppy-roblox-mcp/dist/index.d.ts +3 -0
  183. package/plugins/weppy-roblox-mcp/dist/index.d.ts.map +1 -0
  184. package/plugins/weppy-roblox-mcp/dist/index.js +59 -0
  185. package/plugins/weppy-roblox-mcp/dist/index.js.map +1 -0
  186. package/plugins/weppy-roblox-mcp/dist/server.d.ts +13 -0
  187. package/plugins/weppy-roblox-mcp/dist/server.d.ts.map +1 -0
  188. package/plugins/weppy-roblox-mcp/dist/server.js +260 -0
  189. package/plugins/weppy-roblox-mcp/dist/server.js.map +1 -0
  190. package/plugins/weppy-roblox-mcp/dist/tools/asset-tools.d.ts +10 -0
  191. package/plugins/weppy-roblox-mcp/dist/tools/asset-tools.d.ts.map +1 -0
  192. package/plugins/weppy-roblox-mcp/dist/tools/asset-tools.js +127 -0
  193. package/plugins/weppy-roblox-mcp/dist/tools/asset-tools.js.map +1 -0
  194. package/plugins/weppy-roblox-mcp/dist/tools/bulk-tools.d.ts +11 -0
  195. package/plugins/weppy-roblox-mcp/dist/tools/bulk-tools.d.ts.map +1 -0
  196. package/plugins/weppy-roblox-mcp/dist/tools/bulk-tools.js +225 -0
  197. package/plugins/weppy-roblox-mcp/dist/tools/bulk-tools.js.map +1 -0
  198. package/plugins/weppy-roblox-mcp/dist/tools/environment-tools.d.ts +8 -0
  199. package/plugins/weppy-roblox-mcp/dist/tools/environment-tools.d.ts.map +1 -0
  200. package/plugins/weppy-roblox-mcp/dist/tools/environment-tools.js +93 -0
  201. package/plugins/weppy-roblox-mcp/dist/tools/environment-tools.js.map +1 -0
  202. package/plugins/weppy-roblox-mcp/dist/tools/index.d.ts +18 -0
  203. package/plugins/weppy-roblox-mcp/dist/tools/index.d.ts.map +1 -0
  204. package/plugins/weppy-roblox-mcp/dist/tools/index.js +59 -0
  205. package/plugins/weppy-roblox-mcp/dist/tools/index.js.map +1 -0
  206. package/plugins/weppy-roblox-mcp/dist/tools/instance-tools.d.ts +15 -0
  207. package/plugins/weppy-roblox-mcp/dist/tools/instance-tools.d.ts.map +1 -0
  208. package/plugins/weppy-roblox-mcp/dist/tools/instance-tools.js +252 -0
  209. package/plugins/weppy-roblox-mcp/dist/tools/instance-tools.js.map +1 -0
  210. package/plugins/weppy-roblox-mcp/dist/tools/log-tools.d.ts +6 -0
  211. package/plugins/weppy-roblox-mcp/dist/tools/log-tools.d.ts.map +1 -0
  212. package/plugins/weppy-roblox-mcp/dist/tools/log-tools.js +53 -0
  213. package/plugins/weppy-roblox-mcp/dist/tools/log-tools.js.map +1 -0
  214. package/plugins/weppy-roblox-mcp/dist/tools/property-tools.d.ts +13 -0
  215. package/plugins/weppy-roblox-mcp/dist/tools/property-tools.d.ts.map +1 -0
  216. package/plugins/weppy-roblox-mcp/dist/tools/property-tools.js +213 -0
  217. package/plugins/weppy-roblox-mcp/dist/tools/property-tools.js.map +1 -0
  218. package/plugins/weppy-roblox-mcp/dist/tools/raycast-tools.d.ts +11 -0
  219. package/plugins/weppy-roblox-mcp/dist/tools/raycast-tools.d.ts.map +1 -0
  220. package/plugins/weppy-roblox-mcp/dist/tools/raycast-tools.js +420 -0
  221. package/plugins/weppy-roblox-mcp/dist/tools/raycast-tools.js.map +1 -0
  222. package/plugins/weppy-roblox-mcp/dist/tools/script-tools.d.ts +13 -0
  223. package/plugins/weppy-roblox-mcp/dist/tools/script-tools.d.ts.map +1 -0
  224. package/plugins/weppy-roblox-mcp/dist/tools/script-tools.js +229 -0
  225. package/plugins/weppy-roblox-mcp/dist/tools/script-tools.js.map +1 -0
  226. package/plugins/weppy-roblox-mcp/dist/tools/search-tools.d.ts +11 -0
  227. package/plugins/weppy-roblox-mcp/dist/tools/search-tools.d.ts.map +1 -0
  228. package/plugins/weppy-roblox-mcp/dist/tools/search-tools.js +196 -0
  229. package/plugins/weppy-roblox-mcp/dist/tools/search-tools.js.map +1 -0
  230. package/plugins/weppy-roblox-mcp/dist/tools/selection-tools.d.ts +16 -0
  231. package/plugins/weppy-roblox-mcp/dist/tools/selection-tools.d.ts.map +1 -0
  232. package/plugins/weppy-roblox-mcp/dist/tools/selection-tools.js +185 -0
  233. package/plugins/weppy-roblox-mcp/dist/tools/selection-tools.js.map +1 -0
  234. package/plugins/weppy-roblox-mcp/dist/tools/spatial-tools.d.ts +8 -0
  235. package/plugins/weppy-roblox-mcp/dist/tools/spatial-tools.d.ts.map +1 -0
  236. package/plugins/weppy-roblox-mcp/dist/tools/spatial-tools.js +155 -0
  237. package/plugins/weppy-roblox-mcp/dist/tools/spatial-tools.js.map +1 -0
  238. package/plugins/weppy-roblox-mcp/dist/tools/state-tools.d.ts +153 -0
  239. package/plugins/weppy-roblox-mcp/dist/tools/state-tools.d.ts.map +1 -0
  240. package/plugins/weppy-roblox-mcp/dist/tools/state-tools.js +481 -0
  241. package/plugins/weppy-roblox-mcp/dist/tools/state-tools.js.map +1 -0
  242. package/plugins/weppy-roblox-mcp/dist/tools/tag-tools.d.ts +8 -0
  243. package/plugins/weppy-roblox-mcp/dist/tools/tag-tools.d.ts.map +1 -0
  244. package/plugins/weppy-roblox-mcp/dist/tools/tag-tools.js +99 -0
  245. package/plugins/weppy-roblox-mcp/dist/tools/tag-tools.js.map +1 -0
  246. package/plugins/weppy-roblox-mcp/dist/tools/terrain-tools.d.ts +15 -0
  247. package/plugins/weppy-roblox-mcp/dist/tools/terrain-tools.d.ts.map +1 -0
  248. package/plugins/weppy-roblox-mcp/dist/tools/terrain-tools.js +549 -0
  249. package/plugins/weppy-roblox-mcp/dist/tools/terrain-tools.js.map +1 -0
  250. package/plugins/weppy-roblox-mcp/dist/types/index.d.ts +111 -0
  251. package/plugins/weppy-roblox-mcp/dist/types/index.d.ts.map +1 -0
  252. package/plugins/weppy-roblox-mcp/dist/types/index.js +8 -0
  253. package/plugins/weppy-roblox-mcp/dist/types/index.js.map +1 -0
  254. package/plugins/weppy-roblox-mcp/dist/utils/logger.d.ts +16 -0
  255. package/plugins/weppy-roblox-mcp/dist/utils/logger.d.ts.map +1 -0
  256. package/plugins/weppy-roblox-mcp/dist/utils/logger.js +87 -0
  257. package/plugins/weppy-roblox-mcp/dist/utils/logger.js.map +1 -0
  258. package/plugins/weppy-roblox-mcp/dist/utils/type-converter.d.ts +33 -0
  259. package/plugins/weppy-roblox-mcp/dist/utils/type-converter.d.ts.map +1 -0
  260. package/plugins/weppy-roblox-mcp/dist/utils/type-converter.js +203 -0
  261. package/plugins/weppy-roblox-mcp/dist/utils/type-converter.js.map +1 -0
  262. package/plugins/weppy-roblox-mcp/dist/utils/validation.d.ts +17 -0
  263. package/plugins/weppy-roblox-mcp/dist/utils/validation.d.ts.map +1 -0
  264. package/plugins/weppy-roblox-mcp/dist/utils/validation.js +26 -0
  265. package/plugins/weppy-roblox-mcp/dist/utils/validation.js.map +1 -0
  266. package/plugins/weppy-roblox-mcp/package.json +43 -0
  267. package/plugins/weppy-roblox-mcp/skills/roblox-game-dev/SKILL.md +548 -0
  268. package/plugins/weppy-roblox-mcp/skills/roblox-mcp-guide/SKILL.md +680 -0
  269. package/plugins/weppy-roblox-mcp/skills/roblox-mcp-guide/scripts/check-mcp.sh +86 -0
  270. package/plugins/weppy-roblox-mcp/skills/roblox-planner/SKILL.md +588 -0
  271. package/plugins/weppy-roblox-mcp/skills/roblox-planner/scripts/verify-plan.sh +134 -0
  272. package/plugins/weppy-roblox-mcp/skills/roblox-sync/SKILL.md +389 -0
  273. package/plugins/weppy-roblox-mcp/skills/roblox-sync/scripts/post-verify.sh +160 -0
  274. package/plugins/weppy-roblox-mcp/skills/roblox-sync/scripts/pre-check.sh +304 -0
  275. package/plugins/weppy-roblox-mcp/skills/roblox-sync/scripts/update-metadata.sh +27 -0
  276. package/plugins/weppy-roblox-mcp/skills/roblox-task-tracker/SKILL.md +349 -0
  277. package/plugins/weppy-roblox-mcp/skills/roblox-task-tracker/scripts/validate.sh +28 -0
  278. package/plugins/weppy-roblox-mcp/skills/roblox-templates/SKILL.md +244 -0
  279. package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/effects.json +118 -0
  280. package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/items.json +169 -0
  281. package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/maps/maps.json +763 -0
  282. package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/maps/sources/decorations.json +137 -0
  283. package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/maps/sources/standalone-maps.json +331 -0
  284. package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/maps/sources/terrain-presets.json +272 -0
  285. package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/monsters.json +132 -0
  286. package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/npcs.json +50 -0
  287. package/plugins/weppy-roblox-mcp/skills/roblox-templates/assets/weapons.json +140 -0
  288. package/plugins/weppy-roblox-mcp/skills/roblox-templates/references/animations.json +40 -0
  289. package/plugins/weppy-roblox-mcp/skills/roblox-templates/references/rpg-balance.json +236 -0
  290. package/plugins/weppy-roblox-mcp/skills/roblox-templates/references/rpg.md +304 -0
  291. package/plugins/weppy-roblox-mcp/skills/roblox-templates/references/terrain-generation.json +192 -0
  292. package/plugins/weppy-roblox-mcp/skills/roblox-templates/samples/SpawnConfig.luau +152 -0
  293. 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
+ ```