Skip to content
Back to skills

Rpg Maker

ASecurity

Build RPG Maker MZ or MV JavaScript plugins, edit game data, and troubleshoot events or Pixi.js rendering.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 22, 2026
ai-agentsjavascriptgojavabashdebuggingdatabase

Works with

  • cursor

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 22, 2026

npx -y skills add alivirgo/Major-AI-Skills --skill rpg-maker --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Rpg Maker?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Rpg Maker
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alivirgo-rpg-maker/badge)](https://www.skillsdirectory.com/skills/alivirgo-rpg-maker)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: rpg-maker
description: "Build RPG Maker MZ or MV JavaScript plugins, edit game data, and troubleshoot events or Pixi.js rendering."
category: game-engines
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["rpg-maker", "rpgmaker-mz", "javascript-plugins", "pixijs", "gamedev", "event-scripting", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
---

# RPG Maker MZ/MV Game Development AI Skill Guide (Claude)

## Overview & Engine Architecture
RPG Maker MZ (and MV) is a 2D tile-based JRPG game creation engine powered by a modern JavaScript and **Pixi.js WebGL** rendering pipeline packaged inside the **NW.js (Chromium)** desktop runtime. The engine uses a pure JSON data model (**`data/*.json`**), an **Event Interpreter state machine**, and an object-oriented core architecture (**`rmmz_core.js`**, **`rmmz_managers.js`**, **`rmmz_objects.js`**, **`rmmz_scenes.js`**, **`rmmz_windows.js`**). Claude operates as a Principal JRPG Systems Architect and JavaScript Plugin Developer, specializing in **MZ/MV plugin architecture**, **Pixi.js rendering optimization**, **custom combat/quest system scripting**, and **save-game serialization (`DataManager`)**.

### RPG Maker MZ/MV Core Runtime & Plugin Architecture

```
┌─────────────────────────────────────────────────────────────┐
│                 RPG Maker MZ Runtime Engine                 │
│                                                             │
│  Presentation & WebGL Rendering Tier                        │
│  ├── NW.js Desktop Wrapper / Browser HTML5 Canvas           │
│  ├── Pixi.js v5 WebGL Render Pipeline (Sprites, Tilemaps)   │
│  └── Scene Flow Controller (`SceneManager`, `Scene_Base`)   │
│                                                             │
│  Game Data & Object Layer                                   │
│  ├── Game Singletons (`$gameParty`, `$gameActors`, `$gameMap`)│
│  ├── Event Command Interpreter (`Game_Interpreter`)         │
│  └── JSON Database Cache (`data/System.json`, `data/Map*.json`)│
│                                                             │
│  Extensibility & Plugin Engine                              │
│  ├── Plugin Manager (`PluginManager.registerCommand`)       │
│  └── Prototype Method Monkey-Patching Engine                │
└─────────────────────────────────────────────────────────────┘
```

---

## Operational Capabilities & Agent Directives

1. **RPG Maker MZ/MV Plugin Development**: Author clean, compliant JavaScript plugins with strict JSDoc/Plugin Header annotations (`/*:`, `@target MZ`, `@command`, `@param`), monkey-patching methods safely using aliased original references.
2. **Save Data Serialization**: Hook `DataManager.makeSaveContents` and `DataManager.extractSaveContents` to persist custom gameplay data across player saves without breaking save compatibility.
3. **Event Interpreter & Logic Triage**: Diagnose infinite loops, frozen parallel process events, unhandled conditional branches, and missing `Break Loop` commands.
4. **Asset & Path Sanitization**: Fix broken web/mobile deployments caused by non-ASCII characters, spaces in filenames, and missing `.ogg` / `.m4a` audio format fallbacks.

---

## Production JavaScript Plugin: Dynamic Quest Log System (RPG Maker MZ)

Save this script as `js/plugins/CustomQuestSystem.js` and register inside `js/plugins.js`:

```javascript
// ==============================================================================
// RPG Maker MZ Plugin: Dynamic Quest Log & Tracker
// Adds custom quest tracking with save persistence and Plugin Commands.
// ==============================================================================
/*:
 * @target MZ
 * @plugindesc v1.0.0 Adds an extensible Quest Tracking System with save data persistence.
 * @author AI Systems Engineering
 *
 * @command addQuest
 * @text Add Quest
 * @desc Adds a new quest to the player's active quest log.
 *
 * @arg questId
 * @text Quest ID
 * @type string
 * @desc Unique identifier for the quest.
 *
 * @arg questTitle
 * @text Quest Title
 * @type string
 * @desc Human-readable title of the quest.
 */

(() => {
  'use strict';

  const pluginName = 'CustomQuestSystem';

  // 1. Data Model Extension
  class QuestManager {
    constructor() {
      this._quests = {};
    }

    addQuest(id, title) {
      if (!this._quests[id]) {
        this._quests[id] = { id: id, title: title, completed: false };
        console.log(`[QuestSystem] Added Quest: ${title} (${id})`);
      }
    }

    completeQuest(id) {
      if (this._quests[id]) {
        this._quests[id].completed = true;
        console.log(`[QuestSystem] Completed Quest: ${id}`);
      }
    }

    getQuests() {
      return Object.values(this._quests);
    }
  }

  // 2. Global Instance and Save Data Serialization Hook
  const _DataManager_makeSaveContents = DataManager.makeSaveContents;
  DataManager.makeSaveContents = function() {
    const contents = _DataManager_makeSaveContents.call(this);
    contents.customQuestData = $gameSystem._questManager ? $gameSystem._questManager._quests : {};
    return contents;
  };

  const _DataManager_extractSaveContents = DataManager.extractSaveContents;
  DataManager.extractSaveContents = function(contents) {
    _DataManager_extractSaveContents.call(this, contents);
    if (!$gameSystem._questManager) {
      $gameSystem._questManager = new QuestManager();
    }
    if (contents.customQuestData) {
      $gameSystem._questManager._quests = contents.customQuestData;
    }
  };

  const _Game_System_initialize = Game_System.prototype.initialize;
  Game_System.prototype.initialize = function() {
    _Game_System_initialize.call(this);
    this._questManager = new QuestManager();
  };

  // 3. Register RPG Maker MZ Plugin Commands
  PluginManager.registerCommand(pluginName, 'addQuest', args => {
    if ($gameSystem._questManager) {
      $gameSystem._questManager.addQuest(args.questId, args.questTitle);
    }
  });
})();
```

---

## Technical Troubleshooting Matrix

| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **Game Freezes Indefinitely on Map Entry** | Parallel Process or Autorun event running without an exit condition, locking the `Game_Interpreter`. | 1. Press `F9` in Test Play to open the Variable/Switch debug menu.<br>2. Look for Autorun events missing a Self Switch `A=ON` to transition to an empty page.<br>3. Check loops for missing `Break Loop` commands. |
| **Browser Web Build Fails: `Failed to load resource (404/CORS)`** | Audio/image asset filenames contain spaces or uppercase letters that fail on case-sensitive web servers (Linux/Nginx). | 1. Rename all asset files in `audio/` and `img/` to strict lowercase with hyphens (e.g. `bgm-battle.ogg`).<br>2. Update references in `data/System.json`. |
| **TypeError: Cannot read property of undefined on Battle Start** | Plugin load order collision where a lower plugin overwrites `Scene_Battle.prototype.create` without calling the alias. | 1. In Plugin Manager, place core library plugins (e.g. VisuStella / Yanfly) at the top of the load order.<br>2. Ensure custom plugins preserve the prototype alias: `_alias.call(this)`. |
| **NW.js Memory Leak / Crashing After 30 Minutes of Play** | Pixi.js texture cache retaining uncached map assets during frequent transitions. | Periodically trigger `ImageManager.clear()` on chapter transitions or major world map loads. |

---

## Command Line Syntax & Debugging

```bash
# 1. Launch RPG Maker Project in Dedicated Test Play Debug Mode
"C:\Program Files\RPG Maker MZ\nwjs-win\nw.exe" "C:\GameProjects\MyRPG" --test --debug

# 2. Open Embedded Chromium Developer Tools Console in Game Window
# Press F8 or F12 during game execution
```

### Essential File Locations
- **Database Files**: `<ProjectRoot>/data/*.json`
- **Plugin Manifest**: `<ProjectRoot>/js/plugins.js`
- **Engine Core Code**: `<ProjectRoot>/js/rmmz_core.js`

---

## Agent Operational Directive
> **MANDATORY**: When monkey-patching engine methods in JavaScript plugins, always alias and invoke the original method (`const _alias = Class.prototype.func; Class.prototype.func = function() { _alias.call(this); ... }`) to ensure multi-plugin interoperability.

Files in this skill

  • SKILL.md8.4 KB
  • gemini.md7 KB
  • gpt.md6.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.