rpgmaker-mz-mcp 1.0.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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +425 -0
  3. package/dist/events/commandBuilders.d.ts +405 -0
  4. package/dist/events/commandBuilders.d.ts.map +1 -0
  5. package/dist/events/commandBuilders.js +554 -0
  6. package/dist/events/commandBuilders.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +105 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/registry.d.ts +81 -0
  12. package/dist/registry.d.ts.map +1 -0
  13. package/dist/registry.js +49 -0
  14. package/dist/registry.js.map +1 -0
  15. package/dist/tiles/autotile.d.ts +65 -0
  16. package/dist/tiles/autotile.d.ts.map +1 -0
  17. package/dist/tiles/autotile.js +201 -0
  18. package/dist/tiles/autotile.js.map +1 -0
  19. package/dist/tiles/catalog/dungeon.d.ts +16 -0
  20. package/dist/tiles/catalog/dungeon.d.ts.map +1 -0
  21. package/dist/tiles/catalog/dungeon.js +765 -0
  22. package/dist/tiles/catalog/dungeon.js.map +1 -0
  23. package/dist/tiles/catalog/index.d.ts +78 -0
  24. package/dist/tiles/catalog/index.d.ts.map +1 -0
  25. package/dist/tiles/catalog/index.js +115 -0
  26. package/dist/tiles/catalog/index.js.map +1 -0
  27. package/dist/tiles/catalog/inside.d.ts +16 -0
  28. package/dist/tiles/catalog/inside.d.ts.map +1 -0
  29. package/dist/tiles/catalog/inside.js +765 -0
  30. package/dist/tiles/catalog/inside.js.map +1 -0
  31. package/dist/tiles/catalog/outside.d.ts +16 -0
  32. package/dist/tiles/catalog/outside.d.ts.map +1 -0
  33. package/dist/tiles/catalog/outside.js +799 -0
  34. package/dist/tiles/catalog/outside.js.map +1 -0
  35. package/dist/tiles/catalog/overworld.d.ts +16 -0
  36. package/dist/tiles/catalog/overworld.d.ts.map +1 -0
  37. package/dist/tiles/catalog/overworld.js +585 -0
  38. package/dist/tiles/catalog/overworld.js.map +1 -0
  39. package/dist/tiles/catalog/sf.d.ts +16 -0
  40. package/dist/tiles/catalog/sf.d.ts.map +1 -0
  41. package/dist/tiles/catalog/sf.js +1313 -0
  42. package/dist/tiles/catalog/sf.js.map +1 -0
  43. package/dist/tiles/paint.d.ts +20 -0
  44. package/dist/tiles/paint.d.ts.map +1 -0
  45. package/dist/tiles/paint.js +65 -0
  46. package/dist/tiles/paint.js.map +1 -0
  47. package/dist/tiles/png.d.ts +11 -0
  48. package/dist/tiles/png.d.ts.map +1 -0
  49. package/dist/tiles/png.js +180 -0
  50. package/dist/tiles/png.js.map +1 -0
  51. package/dist/tiles/tileCodec.d.ts +95 -0
  52. package/dist/tiles/tileCodec.d.ts.map +1 -0
  53. package/dist/tiles/tileCodec.js +186 -0
  54. package/dist/tiles/tileCodec.js.map +1 -0
  55. package/dist/tiles/tileFlags.d.ts +98 -0
  56. package/dist/tiles/tileFlags.d.ts.map +1 -0
  57. package/dist/tiles/tileFlags.js +129 -0
  58. package/dist/tiles/tileFlags.js.map +1 -0
  59. package/dist/tiles/tilegeom.d.ts +29 -0
  60. package/dist/tiles/tilegeom.d.ts.map +1 -0
  61. package/dist/tiles/tilegeom.js +111 -0
  62. package/dist/tiles/tilegeom.js.map +1 -0
  63. package/dist/tiles/transparency.d.ts +22 -0
  64. package/dist/tiles/transparency.d.ts.map +1 -0
  65. package/dist/tiles/transparency.js +59 -0
  66. package/dist/tiles/transparency.js.map +1 -0
  67. package/dist/tools/actorTools.d.ts +48 -0
  68. package/dist/tools/actorTools.d.ts.map +1 -0
  69. package/dist/tools/actorTools.js +154 -0
  70. package/dist/tools/actorTools.js.map +1 -0
  71. package/dist/tools/allTools.d.ts +8 -0
  72. package/dist/tools/allTools.d.ts.map +1 -0
  73. package/dist/tools/allTools.js +56 -0
  74. package/dist/tools/allTools.js.map +1 -0
  75. package/dist/tools/assetTools.d.ts +113 -0
  76. package/dist/tools/assetTools.d.ts.map +1 -0
  77. package/dist/tools/assetTools.js +97 -0
  78. package/dist/tools/assetTools.js.map +1 -0
  79. package/dist/tools/batchTools.d.ts +3 -0
  80. package/dist/tools/batchTools.d.ts.map +1 -0
  81. package/dist/tools/batchTools.js +138 -0
  82. package/dist/tools/batchTools.js.map +1 -0
  83. package/dist/tools/battleTools.d.ts +72 -0
  84. package/dist/tools/battleTools.d.ts.map +1 -0
  85. package/dist/tools/battleTools.js +322 -0
  86. package/dist/tools/battleTools.js.map +1 -0
  87. package/dist/tools/catalogTools.d.ts +3 -0
  88. package/dist/tools/catalogTools.d.ts.map +1 -0
  89. package/dist/tools/catalogTools.js +134 -0
  90. package/dist/tools/catalogTools.js.map +1 -0
  91. package/dist/tools/classTools.d.ts +85 -0
  92. package/dist/tools/classTools.d.ts.map +1 -0
  93. package/dist/tools/classTools.js +279 -0
  94. package/dist/tools/classTools.js.map +1 -0
  95. package/dist/tools/commonEventTools.d.ts +32 -0
  96. package/dist/tools/commonEventTools.d.ts.map +1 -0
  97. package/dist/tools/commonEventTools.js +150 -0
  98. package/dist/tools/commonEventTools.js.map +1 -0
  99. package/dist/tools/eventCommandTools.d.ts +37 -0
  100. package/dist/tools/eventCommandTools.d.ts.map +1 -0
  101. package/dist/tools/eventCommandTools.js +893 -0
  102. package/dist/tools/eventCommandTools.js.map +1 -0
  103. package/dist/tools/eventPageTools.d.ts +112 -0
  104. package/dist/tools/eventPageTools.d.ts.map +1 -0
  105. package/dist/tools/eventPageTools.js +597 -0
  106. package/dist/tools/eventPageTools.js.map +1 -0
  107. package/dist/tools/itemTools.d.ts +82 -0
  108. package/dist/tools/itemTools.d.ts.map +1 -0
  109. package/dist/tools/itemTools.js +380 -0
  110. package/dist/tools/itemTools.js.map +1 -0
  111. package/dist/tools/listTools.d.ts +58 -0
  112. package/dist/tools/listTools.d.ts.map +1 -0
  113. package/dist/tools/listTools.js +99 -0
  114. package/dist/tools/listTools.js.map +1 -0
  115. package/dist/tools/mapTools.d.ts +270 -0
  116. package/dist/tools/mapTools.d.ts.map +1 -0
  117. package/dist/tools/mapTools.js +1066 -0
  118. package/dist/tools/mapTools.js.map +1 -0
  119. package/dist/tools/moveTools.d.ts +43 -0
  120. package/dist/tools/moveTools.d.ts.map +1 -0
  121. package/dist/tools/moveTools.js +240 -0
  122. package/dist/tools/moveTools.js.map +1 -0
  123. package/dist/tools/objectTools.d.ts +12 -0
  124. package/dist/tools/objectTools.d.ts.map +1 -0
  125. package/dist/tools/objectTools.js +221 -0
  126. package/dist/tools/objectTools.js.map +1 -0
  127. package/dist/tools/paintTools.d.ts +3 -0
  128. package/dist/tools/paintTools.d.ts.map +1 -0
  129. package/dist/tools/paintTools.js +134 -0
  130. package/dist/tools/paintTools.js.map +1 -0
  131. package/dist/tools/pluginScanTools.d.ts +22 -0
  132. package/dist/tools/pluginScanTools.d.ts.map +1 -0
  133. package/dist/tools/pluginScanTools.js +119 -0
  134. package/dist/tools/pluginScanTools.js.map +1 -0
  135. package/dist/tools/pluginTools.d.ts +11 -0
  136. package/dist/tools/pluginTools.d.ts.map +1 -0
  137. package/dist/tools/pluginTools.js +63 -0
  138. package/dist/tools/pluginTools.js.map +1 -0
  139. package/dist/tools/projectTools.d.ts +11 -0
  140. package/dist/tools/projectTools.d.ts.map +1 -0
  141. package/dist/tools/projectTools.js +74 -0
  142. package/dist/tools/projectTools.js.map +1 -0
  143. package/dist/tools/skillTools.d.ts +83 -0
  144. package/dist/tools/skillTools.d.ts.map +1 -0
  145. package/dist/tools/skillTools.js +369 -0
  146. package/dist/tools/skillTools.js.map +1 -0
  147. package/dist/tools/stateTools.d.ts +28 -0
  148. package/dist/tools/stateTools.d.ts.map +1 -0
  149. package/dist/tools/stateTools.js +161 -0
  150. package/dist/tools/stateTools.js.map +1 -0
  151. package/dist/tools/systemTools.d.ts +86 -0
  152. package/dist/tools/systemTools.d.ts.map +1 -0
  153. package/dist/tools/systemTools.js +342 -0
  154. package/dist/tools/systemTools.js.map +1 -0
  155. package/dist/tools/tileTools.d.ts +9 -0
  156. package/dist/tools/tileTools.d.ts.map +1 -0
  157. package/dist/tools/tileTools.js +34 -0
  158. package/dist/tools/tileTools.js.map +1 -0
  159. package/dist/tools/tileTransparency.d.ts +40 -0
  160. package/dist/tools/tileTransparency.d.ts.map +1 -0
  161. package/dist/tools/tileTransparency.js +156 -0
  162. package/dist/tools/tileTransparency.js.map +1 -0
  163. package/dist/tools/tilesetTools.d.ts +23 -0
  164. package/dist/tools/tilesetTools.d.ts.map +1 -0
  165. package/dist/tools/tilesetTools.js +209 -0
  166. package/dist/tools/tilesetTools.js.map +1 -0
  167. package/dist/tools/validationTools.d.ts +50 -0
  168. package/dist/tools/validationTools.d.ts.map +1 -0
  169. package/dist/tools/validationTools.js +229 -0
  170. package/dist/tools/validationTools.js.map +1 -0
  171. package/dist/utils/commit.d.ts +62 -0
  172. package/dist/utils/commit.d.ts.map +1 -0
  173. package/dist/utils/commit.js +119 -0
  174. package/dist/utils/commit.js.map +1 -0
  175. package/dist/utils/fileHandler.d.ts +49 -0
  176. package/dist/utils/fileHandler.d.ts.map +1 -0
  177. package/dist/utils/fileHandler.js +137 -0
  178. package/dist/utils/fileHandler.js.map +1 -0
  179. package/dist/utils/records.d.ts +8 -0
  180. package/dist/utils/records.d.ts.map +1 -0
  181. package/dist/utils/records.js +10 -0
  182. package/dist/utils/records.js.map +1 -0
  183. package/dist/utils/types.d.ts +465 -0
  184. package/dist/utils/types.d.ts.map +1 -0
  185. package/dist/utils/types.js +5 -0
  186. package/dist/utils/types.js.map +1 -0
  187. package/dist/validation/assets.d.ts +53 -0
  188. package/dist/validation/assets.d.ts.map +1 -0
  189. package/dist/validation/assets.js +198 -0
  190. package/dist/validation/assets.js.map +1 -0
  191. package/dist/validation/createRefs.d.ts +37 -0
  192. package/dist/validation/createRefs.d.ts.map +1 -0
  193. package/dist/validation/createRefs.js +89 -0
  194. package/dist/validation/createRefs.js.map +1 -0
  195. package/dist/validation/eventCommands.d.ts +70 -0
  196. package/dist/validation/eventCommands.d.ts.map +1 -0
  197. package/dist/validation/eventCommands.js +273 -0
  198. package/dist/validation/eventCommands.js.map +1 -0
  199. package/dist/validation/gate.d.ts +56 -0
  200. package/dist/validation/gate.d.ts.map +1 -0
  201. package/dist/validation/gate.js +50 -0
  202. package/dist/validation/gate.js.map +1 -0
  203. package/dist/validation/moveCommands.d.ts +31 -0
  204. package/dist/validation/moveCommands.d.ts.map +1 -0
  205. package/dist/validation/moveCommands.js +123 -0
  206. package/dist/validation/moveCommands.js.map +1 -0
  207. package/dist/validation/pluginCommands.d.ts +83 -0
  208. package/dist/validation/pluginCommands.d.ts.map +1 -0
  209. package/dist/validation/pluginCommands.js +134 -0
  210. package/dist/validation/pluginCommands.js.map +1 -0
  211. package/dist/validation/pluginManifest.d.ts +67 -0
  212. package/dist/validation/pluginManifest.d.ts.map +1 -0
  213. package/dist/validation/pluginManifest.js +199 -0
  214. package/dist/validation/pluginManifest.js.map +1 -0
  215. package/dist/validation/references.d.ts +57 -0
  216. package/dist/validation/references.d.ts.map +1 -0
  217. package/dist/validation/references.js +314 -0
  218. package/dist/validation/references.js.map +1 -0
  219. package/package.json +67 -0
@@ -0,0 +1,314 @@
1
+ // Game_Action effect codes (rmmz_objects.js) that carry a data-id reference.
2
+ const EFFECT_ADD_STATE = 21;
3
+ const EFFECT_REMOVE_STATE = 22;
4
+ const EFFECT_LEARN_SKILL = 43;
5
+ const EFFECT_COMMON_EVENT = 44;
6
+ // Event command codes that carry a cross-file data-id reference.
7
+ const CMD_TRANSFER_PLAYER = 201;
8
+ const CMD_COMMON_EVENT = 117;
9
+ /**
10
+ * Whether `id` names a live entry in a 1-indexed RPG Maker database array (slot
11
+ * 0 is `null`; id === array index). A `0`/negative id, an out-of-range id, or a
12
+ * nulled slot all count as "does not exist". An empty array (a file that failed
13
+ * to load) is treated as "can't verify" — never a match, but callers guard on
14
+ * array length so a failed load doesn't flag every reference.
15
+ */
16
+ export function refExists(arr, id) {
17
+ return id > 0 && id < arr.length && arr[id] != null;
18
+ }
19
+ /**
20
+ * Map-tree integrity: a non-root `parentId` must name an existing map, and no
21
+ * map may be its own transitive ancestor. Mirrors `assertNoTreeCycles` in
22
+ * mapTools but collects findings instead of throwing (this is a read-only audit).
23
+ */
24
+ function checkMapTree(mapInfos) {
25
+ const warnings = [];
26
+ for (const info of mapInfos) {
27
+ if (!info)
28
+ continue;
29
+ if (info.parentId !== 0 && !mapInfos[info.parentId]) {
30
+ warnings.push({
31
+ category: 'map-tree',
32
+ path: `MapInfos[${info.id}]`,
33
+ message: `parentId ${info.parentId} does not match any existing map`,
34
+ });
35
+ }
36
+ }
37
+ for (const start of mapInfos) {
38
+ if (!start)
39
+ continue;
40
+ const seen = new Set([start.id]);
41
+ let parentId = start.parentId;
42
+ while (parentId !== 0) {
43
+ if (seen.has(parentId)) {
44
+ warnings.push({
45
+ category: 'map-tree',
46
+ path: `MapInfos[${start.id}]`,
47
+ message: `map tree cycle: map ${start.id} is its own ancestor`,
48
+ });
49
+ break;
50
+ }
51
+ seen.add(parentId);
52
+ const parent = mapInfos[parentId];
53
+ if (!parent)
54
+ break; // dangling parent already reported above
55
+ parentId = parent.parentId;
56
+ }
57
+ }
58
+ return warnings;
59
+ }
60
+ /** Game-start references: the starting party actors and the start map. */
61
+ function checkStartup(data) {
62
+ const warnings = [];
63
+ const { system, actors, mapInfos } = data;
64
+ if (!system)
65
+ return warnings;
66
+ if (Array.isArray(system.partyMembers) && actors.length > 0) {
67
+ system.partyMembers.forEach((actorId, i) => {
68
+ if (!refExists(actors, actorId)) {
69
+ warnings.push({
70
+ category: 'startup',
71
+ path: `System.partyMembers[${i}]`,
72
+ message: `starting party member references actor ${actorId}, which does not exist`,
73
+ });
74
+ }
75
+ });
76
+ }
77
+ if (typeof system.startMapId === 'number' &&
78
+ system.startMapId > 0 &&
79
+ !mapInfos[system.startMapId]) {
80
+ warnings.push({
81
+ category: 'startup',
82
+ path: 'System.startMapId',
83
+ message: `starting position references map ${system.startMapId}, which does not exist`,
84
+ });
85
+ }
86
+ return warnings;
87
+ }
88
+ /**
89
+ * Skill/item effect references: Add/Remove State → an existing state, Learn
90
+ * Skill → an existing skill, Common Event → an existing common event; plus the
91
+ * item/skill `animationId` → an existing animation. Add-State with `dataId 0`
92
+ * (the "normal attack states" sentinel) and a non-positive `animationId` (0 none
93
+ * / -1 normal attack) are intentionally not flagged.
94
+ */
95
+ function checkEffects(effects, animationId, path, data) {
96
+ const warnings = [];
97
+ if (Array.isArray(effects)) {
98
+ effects.forEach((effect, i) => {
99
+ const at = `${path} / effect ${i}`;
100
+ if ((effect.code === EFFECT_ADD_STATE || effect.code === EFFECT_REMOVE_STATE) &&
101
+ effect.dataId !== 0 &&
102
+ data.states.length > 0 &&
103
+ !refExists(data.states, effect.dataId)) {
104
+ warnings.push({
105
+ category: 'effect',
106
+ path: at,
107
+ message: `effect references state ${effect.dataId}, which does not exist`,
108
+ });
109
+ }
110
+ if (effect.code === EFFECT_LEARN_SKILL &&
111
+ data.skills.length > 0 &&
112
+ !refExists(data.skills, effect.dataId)) {
113
+ warnings.push({
114
+ category: 'effect',
115
+ path: at,
116
+ message: `Learn Skill effect references skill ${effect.dataId}, which does not exist`,
117
+ });
118
+ }
119
+ if (effect.code === EFFECT_COMMON_EVENT &&
120
+ data.commonEvents.length > 0 &&
121
+ !refExists(data.commonEvents, effect.dataId)) {
122
+ warnings.push({
123
+ category: 'effect',
124
+ path: at,
125
+ message: `Common Event effect references common event ${effect.dataId}, which does not exist`,
126
+ });
127
+ }
128
+ });
129
+ }
130
+ if (data.animations &&
131
+ typeof animationId === 'number' &&
132
+ animationId > 0 &&
133
+ !refExists(data.animations, animationId)) {
134
+ warnings.push({
135
+ category: 'animation',
136
+ path: `${path} / animationId`,
137
+ message: `references animation ${animationId}, which does not exist`,
138
+ });
139
+ }
140
+ return warnings;
141
+ }
142
+ /** Skill and item effect/animation references. */
143
+ function checkSkillsAndItems(data) {
144
+ const warnings = [];
145
+ data.skills.forEach((skill) => {
146
+ if (skill)
147
+ warnings.push(...checkEffects(skill.effects, skill.animationId, `skill ${skill.id}`, data));
148
+ });
149
+ data.items.forEach((item) => {
150
+ if (item)
151
+ warnings.push(...checkEffects(item.effects, item.animationId, `item ${item.id}`, data));
152
+ });
153
+ return warnings;
154
+ }
155
+ /** Actor `classId` → class, class `learnings[].skillId` → skill. */
156
+ function checkActorsAndClasses(data) {
157
+ const warnings = [];
158
+ if (data.classes.length > 0) {
159
+ data.actors.forEach((actor) => {
160
+ if (actor && !refExists(data.classes, actor.classId)) {
161
+ warnings.push({
162
+ category: 'class',
163
+ path: `actor ${actor.id} / classId`,
164
+ message: `references class ${actor.classId}, which does not exist`,
165
+ });
166
+ }
167
+ });
168
+ }
169
+ if (data.skills.length > 0) {
170
+ data.classes.forEach((cls) => {
171
+ if (!cls || !Array.isArray(cls.learnings))
172
+ return;
173
+ cls.learnings.forEach((learning, i) => {
174
+ if (!refExists(data.skills, learning.skillId)) {
175
+ warnings.push({
176
+ category: 'skill',
177
+ path: `class ${cls.id} / learnings[${i}]`,
178
+ message: `learns skill ${learning.skillId}, which does not exist`,
179
+ });
180
+ }
181
+ });
182
+ });
183
+ }
184
+ return warnings;
185
+ }
186
+ /**
187
+ * Enemy `actions[].skillId` → skill and `dropItems` → item/weapon/armor, plus
188
+ * troop `members[].enemyId` → enemy.
189
+ */
190
+ function checkEnemiesAndTroops(data) {
191
+ const warnings = [];
192
+ data.enemies.forEach((enemy) => {
193
+ if (!enemy)
194
+ return;
195
+ if (Array.isArray(enemy.actions) && data.skills.length > 0) {
196
+ enemy.actions.forEach((action, i) => {
197
+ if (!refExists(data.skills, action.skillId)) {
198
+ warnings.push({
199
+ category: 'skill',
200
+ path: `enemy ${enemy.id} / actions[${i}]`,
201
+ message: `action uses skill ${action.skillId}, which does not exist`,
202
+ });
203
+ }
204
+ });
205
+ }
206
+ if (Array.isArray(enemy.dropItems)) {
207
+ enemy.dropItems.forEach((drop, i) => {
208
+ // kind 0 = no drop; 1 item, 2 weapon, 3 armor.
209
+ const target = drop.kind === 1
210
+ ? data.items
211
+ : drop.kind === 2
212
+ ? data.weapons
213
+ : drop.kind === 3
214
+ ? data.armors
215
+ : null;
216
+ if (target && target.length > 0 && !refExists(target, drop.dataId)) {
217
+ const label = drop.kind === 1 ? 'item' : drop.kind === 2 ? 'weapon' : 'armor';
218
+ warnings.push({
219
+ category: 'drop-item',
220
+ path: `enemy ${enemy.id} / dropItems[${i}]`,
221
+ message: `drops ${label} ${drop.dataId}, which does not exist`,
222
+ });
223
+ }
224
+ });
225
+ }
226
+ });
227
+ if (data.enemies.length > 0) {
228
+ data.troops.forEach((troop) => {
229
+ if (!troop || !Array.isArray(troop.members))
230
+ return;
231
+ troop.members.forEach((member, i) => {
232
+ if (!refExists(data.enemies, member.enemyId)) {
233
+ warnings.push({
234
+ category: 'troop-member',
235
+ path: `troop ${troop.id} / members[${i}]`,
236
+ message: `references enemy ${member.enemyId}, which does not exist`,
237
+ });
238
+ }
239
+ });
240
+ });
241
+ }
242
+ return warnings;
243
+ }
244
+ /**
245
+ * Cross-file references embedded in event command lists (map events, common
246
+ * events, troop pages): Transfer Player (201, direct designation) → an existing
247
+ * map, and Common Event (117) → an existing common event. Variable-designated
248
+ * transfers can't be resolved statically, so they're skipped.
249
+ */
250
+ function checkCommandRefs(data) {
251
+ const warnings = [];
252
+ const checkList = (list, path) => {
253
+ if (!Array.isArray(list))
254
+ return;
255
+ list.forEach((cmd, i) => {
256
+ if (!cmd || !Array.isArray(cmd.parameters))
257
+ return;
258
+ const at = `${path} / command ${i}`;
259
+ if (cmd.code === CMD_TRANSFER_PLAYER && cmd.parameters[0] === 0) {
260
+ const mapId = cmd.parameters[1];
261
+ if (typeof mapId === 'number' && mapId > 0 && !data.mapInfos[mapId]) {
262
+ warnings.push({
263
+ category: 'transfer',
264
+ path: at,
265
+ message: `Transfer Player targets map ${mapId}, which does not exist`,
266
+ });
267
+ }
268
+ }
269
+ if (cmd.code === CMD_COMMON_EVENT && data.commonEvents.length > 0) {
270
+ const ceId = cmd.parameters[0];
271
+ if (typeof ceId === 'number' && !refExists(data.commonEvents, ceId)) {
272
+ warnings.push({
273
+ category: 'common-event',
274
+ path: at,
275
+ message: `Common Event call references common event ${ceId}, which does not exist`,
276
+ });
277
+ }
278
+ }
279
+ });
280
+ };
281
+ for (const map of data.maps) {
282
+ for (const event of map.events) {
283
+ if (!event || !Array.isArray(event.pages))
284
+ continue;
285
+ event.pages.forEach((page, pi) => checkList(page?.list, `map ${map.id} / event ${event.id} / page ${pi}`));
286
+ }
287
+ }
288
+ data.commonEvents.forEach((ce) => {
289
+ if (ce)
290
+ checkList(ce.list, `common event ${ce.id}`);
291
+ });
292
+ data.troops.forEach((troop) => {
293
+ if (!troop || !Array.isArray(troop.pages))
294
+ return;
295
+ troop.pages.forEach((page, pi) => checkList(page?.list, `troop ${troop.id} / page ${pi}`));
296
+ });
297
+ return warnings;
298
+ }
299
+ /**
300
+ * Run every cross-file reference check over a loaded project snapshot. Pure and
301
+ * warn-by-default: returns an aggregated list of dangling/cyclic references,
302
+ * empty when everything resolves. See {@link ProjectData} for the input shape.
303
+ */
304
+ export function checkReferences(data) {
305
+ return [
306
+ ...checkMapTree(data.mapInfos),
307
+ ...checkStartup(data),
308
+ ...checkSkillsAndItems(data),
309
+ ...checkActorsAndClasses(data),
310
+ ...checkEnemiesAndTroops(data),
311
+ ...checkCommandRefs(data),
312
+ ];
313
+ }
314
+ //# sourceMappingURL=references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/validation/references.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "rpgmaker-mz-mcp",
3
+ "version": "1.0.0",
4
+ "description": "High-quality MCP server for RPG Maker MZ integration - manage game data, maps, events, and plugins",
5
+ "mcpName": "io.github.redseb/rpgmaker-mz-mcp",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "bin": {
9
+ "rpgmaker-mz-mcp": "./dist/index.js"
10
+ },
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "engines": {
15
+ "node": ">=18"
16
+ },
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "typecheck": "tsc --noEmit",
20
+ "dev": "tsc --watch",
21
+ "start": "node dist/index.js",
22
+ "lint": "eslint .",
23
+ "lint:fix": "eslint . --fix",
24
+ "format": "prettier --write .",
25
+ "format:check": "prettier --check .",
26
+ "test": "vitest run",
27
+ "test:watch": "vitest",
28
+ "sync:tools": "node scripts/sync-tool-count.mjs",
29
+ "sync:tools:check": "node scripts/sync-tool-count.mjs --check",
30
+ "sync:version": "node scripts/sync-version.mjs",
31
+ "sync:version:check": "node scripts/sync-version.mjs --check",
32
+ "bundle:mcpb": "node scripts/build-mcpb.mjs",
33
+ "prepare": "npm run build",
34
+ "prepublishOnly": "npm run lint && npm run typecheck && npm run sync:version:check && npm test"
35
+ },
36
+ "keywords": [
37
+ "mcp",
38
+ "rpgmaker",
39
+ "rpg-maker-mz",
40
+ "game-development",
41
+ "model-context-protocol"
42
+ ],
43
+ "author": "Mikolaj Zyzanski",
44
+ "license": "MIT",
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "git+https://github.com/Redseb/rpgmaker-mz-mcp.git"
48
+ },
49
+ "homepage": "https://github.com/Redseb/rpgmaker-mz-mcp#readme",
50
+ "bugs": {
51
+ "url": "https://github.com/Redseb/rpgmaker-mz-mcp/issues"
52
+ },
53
+ "dependencies": {
54
+ "@modelcontextprotocol/sdk": "^1.29.0",
55
+ "zod": "^4.4.3"
56
+ },
57
+ "devDependencies": {
58
+ "@eslint/js": "^9.39.4",
59
+ "@types/node": "^22.10.5",
60
+ "eslint": "^9.39.4",
61
+ "prettier": "^3.9.5",
62
+ "tsx": "^4.23.1",
63
+ "typescript": "^5.7.2",
64
+ "typescript-eslint": "^8.63.0",
65
+ "vitest": "^3.2.7"
66
+ }
67
+ }