Smart NPC Plugin [RPG Maker MZ]
Bring dynamic NPC conversations to your RPG Maker MZ project with NPC-GPT, the complete plugin + template combo that connects in-game events to AI-driven dialogue—no scripting required.
Easily prompt your players with fully customizable text-input windows, send their messages to your backend (REST-ready), and display rich, paginated responses using the built-in response window commands.
✅ Key Features
- 💬 Prompt players anywhere: fire the
userInputcommand from any event to gather text, limit word counts, and route the result into switches or variables. - 🎨 Totally skinnable UI: pick background style (window/dim/transparent), rows, width, position, face portraits, button labels, placeholder text, and more.
- 🧠 Ready for AI pipelines: ships with commands that package input/output into JSON, making it easy to hit your own server (or NPC-GPT cloud) and bring responses back into events.
- 🪄 Smart response windows: the new
displayResponsecommand shows multi-page replies, supports actor faces, name boxes, and shares the same styling controls as the input window. - ⚙️ Event-friendly flow: interpreter wait modes are handled for you—events resume only after players finish typing, confirm responses, or close the window.
- 🧱 Built for extension: exposes shared helper objects so you can hook in logging, analytics, cooldowns, or other custom systems with minimal effort.
📦 What’s Inside
- 🧪 A complete browser-playable template project (also downloadable) showcasing live input + response chains.
- 📁
NPC-GPT-Plugin.jsready to drop in your own projects. - 📑 Example events demonstrating prompt → fetch → response handling, variable storage, and branching control flow.
🛠 How to Use
- Download and extract the template project (try it online, then grab the files).
- Copy
js/plugins/NPC-GPT-Plugin.jsinto your project’sjs/plugins/folder. - Add any sample assets you want (faces, windowskins, etc.) to the standard
img/directories. - In the RPG Maker MZ editor:
- Open Plugin Manager → add
NPC-GPT-Plugin. - Review the default parameters (API key variable, response storage, etc.).
- Import the example common events or recreate your own using the plugin commands below.
- Open Plugin Manager → add
- Create a free account at gamertoolstudio.com and get an API key
- Add the API Key to its respective Plugin Parameter
- Playtest: trigger
userInput, hit your server, show thedisplayResponse, and continue your event logic once players confirm.
🧩 Plugin Parameters
| Parameter | Description |
|---|---|
| API Key | Your personal API KEY from gamertoolstudio.com |
| API Key | Game variable storing your API key (or fallback static key) |
| GPT Response Variable | Stores serialized chat history (JSON string) |
⚙️ Plugin Commands
userInput
prompt the player for text using a fully configurable input window. Supports background style, size, position, rows, placeholder, confirm/cancel labels, word caps, actor face/name boxes, and variable IDs for storing input.
| Argument | Description |
|---|---|
| windowPosition | Position of the window (top, middle, bottom). |
| windowWidth | Custom width in pixels; 0 = full width. |
| windowRows | Visible rows for the input field. |
| background | Background skin (window, dim, transparent). |
| placeholderText | Hint text shown when the input is empty. |
| inputVariable | Variable ID where the player’s input is stored. |
| maxInputWords | Maximum number of words the player can enter (0 = unlimited). |
| actorFaceImage | Face graphic (img/faces) to show beside the window. |
| actorFaceImageIndex | Face index (0–7) within the chosen face graphic. |
| actorName | Optional speaker name shown above the window. |
| closeEventButtons | yes/no to show confirm + cancel buttons. |
| confirmButtonText | Text label for the confirm button. |
| cancelButtonText | Text label for the cancel button. |
sendRequest
Shows how to package the user’s input, chat history, and character context into JSON and send it to your API endpoint.
| Argument | Description |
|---|---|
| historyVariableId | Variable ID containing chat history (JSON string). |
| contextVariableId | Variable ID storing the character context payload. |
| inputVariable | Variable ID holding the latest user input text. |
| responseStatusVariable | Variable ID updated to track success/failure. |
| maxOutputWords | Numeric hint you can forward to your backend (0 = ignore). |
characterContext
Stores character traits/background info in variables to seed requests (e.g. personality, knowledge, location).
| Argument | Description |
|---|---|
| name | Character name to store in context. |
| age | Character age. |
| traits | Personality traits string. |
| dialogueStyle | Suggested speaking style for the AI. |
| backgroundStory | Backstory text. |
| eventsKnowledge | JSON string describing what the character knows. |
| environment | JSON string describing the current environment. |
| interests | Interests string (comma-separated or JSON). |
| friendliness | enemy, low, regular, high, best friend. |
| contextVariableId | Variable ID where the compiled context will be stored. |
displayResponse
Render stored text in a matching response window. Shares styling controls with the input window, supports faces/name boxes, handles pagination (OK to advance, Cancel to exit), and resumes the calling event automatically.
| Argument | Description |
|---|---|
| eventId | Event to resume after the window closes (default: current event). |
| eventPageId | Page to resume when the window closes (default: 0). |
| actorImage | Face image (img/faces) displayed in the response window. |
| actorImageIndex | Index (0–7) within the face image. |
| actorName | Name label shown above the response window. |
| wrapTextLength | Hard wrap length (character count); 0 = wrap by width. |
| windowPosition | Position of the response window (top, middle, bottom). |
| windowRows | Visible rows per page before pagination. |
| windowWidth | Custom width; 0 = full width. |
| background | Response window skin (window, dim, transparent). |
| responseStatusVariable | Variable reset to 0 after the window closes. |
📥 Installation Recap
- Add
NPC-GPT-Plugin.jstojs/plugins/. - Configure plugin parameters (API/key variables, defaults, etc.).
- Use the template events—or build your own—to gather input, send it to your backend, store the response, and call
displayResponse. - Customize backgrounds, sizes, labels, and sounds in Plugin Parameters.
Compatibility
RPG Maker MZ
Terms of Use
- Usable in free and commercial games.
- Credit Gamer Tool Studio in your project.
- You may edit the plugin for your own use (do not rename the file).
- Redistribution of the plugin itself is not allowed.
- Do not extract code for your own released plugins.
Ready to give your NPCs real conversations? Drop in the plugin, hook up your AI backend, and let players chat their way through your world.
| Updated | 1 day ago |
| Status | Released |
| Category | Tool |
| Platforms | HTML5 |
| Rating | Rated 1.0 out of 5 stars (1 total ratings) |
| Author | Gamer Tool Studio |
| Genre | Interactive Fiction, Role Playing, Simulation, Visual Novel |
| Made with | RPG Maker |
| Tags | artificial-intelligence, Character Customization, Characters, Narrative, npc, RPG Maker |
Purchase
In order to download this tool you must purchase it at or above the minimum price of $3.99 USD. You will get access to the following files:
Development log
- [Update] Version 2.0 - Full UI Control, Smart Paging, and demo-project1 day ago
- [BUG FIXES and MINOR IMPROVEMENTS] Version 1.4.2.Dec 17, 2024
- [BUG FIXES and MINOR IMPROVEMENTS] Version 1.4.1.Nov 06, 2024
- [BUG FIX] Version 1.3.1. - Correctly handle empty inputsJun 21, 2024
- [UPDATE] Version 1.3.1. - Enable multiple character conversations in the same m...Jun 18, 2024
- [UPDATE] Version 1.2.2.Jun 14, 2024
- Updated version 1.20Mar 18, 2024
- Updated version - New plugin command to input text seamlesslyFeb 18, 2024



Comments
Log in with itch.io to leave a comment.
I can't log in or register on your website, and my plugin API key is invalid. What happened?
were you able to register for the first time and generate a new api key?
Hello, I’ve purchased your plugin, but I’m currently facing a major issue: I can’t input Chinese during conversations with NPCs. Do you have any solutions for this problem?
yes. Will upload a new version of the plugin with that feature
Fake
??? What’s fake?
I cannot delete my account on your website, and the tokens are being counted in a fake way, meaning it is not showing any text of any kind, the NPC just glitches. I am not on Discord.
you’re right. I still have to add the feature to delete accounts but the system is pay per use so we don’t charge anything unless you consume tokens.
regarding all the other issues, would be useful to check the implementation in your project. Discord is useful for that but you can also reach out through email and we can figure it out over there: gamertoolstudio@gmail.com
Hi, how is the update of the MV plugin?
MV version is now live: https://gamertoolstudio.itch.io/chat-gpt-plugin-rpg-maker-mv
Any update on the MV plugin? :)
Not yet unfortunately. We have been working on other plugins and our newest demo but we're seeing the demand increasing so we'll try to have it ready by the end of the year
sounds great!
MV version is now live: https://gamertoolstudio.itch.io/chat-gpt-plugin-rpg-maker-mv
Is the MV version still in development
Yes. MV version still in development but shouldn't take long to come out. Will update this page once it's live.
MV version is now live: https://gamertoolstudio.itch.io/chat-gpt-plugin-rpg-maker-mv
Could you please provide an example RPG MAKER MZ Project File that has the multiple pages setup for a template?
Sure will do that in an instant but you can check the pages setup in this page of our documentation as well: https://gamertoolstudio.gitbook.io/npc-gpt/plugin-user-guide/example-implementat...