# DazedMTLTool An AI-powered game translation tool with a GUI. Translate RPG Maker, Ren'Py, Tyrano, Wolf RPG, Kirikiri, and other game engines from Japanese to English using GPT or compatible AI models. ## Table of Contents - [Supported Engines](#supported-engines) - [Requirements](#requirements) - [Quick Start](#quick-start) - [Using the GUI](#using-the-gui) - [Vocab & Prompt](#vocab--prompt) - [Tips](#tips) - [Folder Structure](#folder-structure) - [RPG Maker Translation Workflow](#rpg-maker-translation-workflow) - [Using Copilot & VSCode](#using-copilot--vscode) - [Version Control with Git](#version-control-with-git) - [Troubleshooting](#troubleshooting) ## Supported Engines - RPG Maker (MV, MZ, Ace, and more) - Wolf RPG Editor - Ren'Py - TyranoBuilder / TyranoScript - Kirikiri - NScripter - CSV / Text files --- ## Requirements - **Python 3.12 – 3.14** — [Download here](https://www.python.org/downloads/). During installation, **check "Add Python to PATH"**. - **An AI API Key** — You'll need an API key from [OpenAI](https://platform.openai.com/settings/organization/api-keys), [Google Gemini](https://aistudio.google.com/apikey), or a compatible provider. > **Tip:** You can verify Python is installed by opening a terminal and running `python -V`. It should print something like `Python 3.13.x`. --- ## Quick Start ### 1. Download the Tool 1. Click the green **Code** button at the top of this page and select **Download ZIP**. 2. Extract the ZIP to a folder of your choice (e.g., `C:\DazedMTLTool`). ### 2. Set Up Your API Key 1. Inside the tool folder, find `.env.example` and make a copy of it named `.env`. 2. Open `.env` in any text editor (Notepad works fine) and fill in your API details: - `key` — Your API key. - `organization` — Your organization key (make something up if using a self-hosted or non-OpenAI API). - `API_PROVIDER` — Set to `openai` or `gemini` depending on your provider. 3. The rest of the settings (wordwrap, batch size, etc.) can be left as defaults for now. You can tweak them later. ### 3. Launch the GUI **Double-click `START.bat`**. It will: - Create a virtual environment automatically. - Install all dependencies. - Launch the GUI. That's it! From now on, just double-click `START.bat` to open the tool. --- ## Using the GUI The GUI has several tabs that handle different parts of the translation process: ### Config Tab This is where you configure your API settings, wordwrap widths, and other options. Most of these mirror what's in the `.env` file, but you can adjust them visually. ### Translation Tab The main tab for translating files. 1. **Add files** — Place the game files you want to translate into the `files` folder (inside the tool directory). 2. **Select a module** — Pick the engine that matches your game (e.g., RPG Maker MV/MZ, Wolf RPG, Ren'Py, etc.). 3. **Click Translate** — The tool will process each file and output translated versions to the `translated` folder. 4. **Copy the results** — Move the translated files from `translated` back into your game's data folder. ### Engine Config Tab Engine-specific settings. For example, RPG Maker lets you toggle which event codes to translate (dialogue, choices, variables, etc.). The defaults cover the most common text (~95% of a game), so you usually don't need to change these. ### RPG Maker / Wolf / CSV Tabs Specialized tabs with extra options for those specific engines. --- ## Vocab & Prompt ### vocab.txt This file gives the AI context about your game — character names, genders, recurring terms, etc. The better your vocab file, the more consistent the translation. Open `vocab.txt` (or copy `vocab.txt.example` to `vocab.txt` if it doesn't exist) and add entries like: ```plaintext # Game Characters 水無月 士乃 (Minazuki Shino) - Female 暗黒斎 (Dark Kokusai) - Male フトシ (Futoshi) - Male ``` Format: Japanese name, English name in parentheses, then gender. > **Note:** A very large vocab file can increase API costs and potentially reduce quality. Focus on the most important characters and terms. ### prompt.txt This is the system prompt sent to the AI. A default `prompt.txt` is included and works well for most games. You generally don't need to edit it unless you want to customize the translation style. --- ## Tips - **Check `log/translations.txt`** after a run to see what was translated. You can copy useful terms from it into `vocab.txt` for consistency in future runs. - **Start small** — Translate a few files first to make sure the output looks good before doing the whole game. - **Wordwrap** — If text overflows or looks awkward in-game, adjust the `width` setting in `.env` or the Config tab. `60` is a good default for most RPG Maker games. - **Version control** — Using [Git](https://git-scm.com/) with the game folder is highly recommended. It lets you track every change the translation makes, compare with original files, and roll back if needed. --- ## Folder Structure | Folder | Purpose | |---|---| | `files/` | Place game files here before translating | | `translated/` | Translated output appears here | | `log/` | Translation logs and cache | | `modules/` | Engine-specific translation scripts | | `gui/` | GUI source code | --- ## RPG Maker Translation Workflow Here's the recommended step-by-step process for translating an RPG Maker MV/MZ game. This is also shown inside the GUI's RPG Maker tab. | Step | Action | |------|--------| | **1** | **Parse speakers → vocab.txt** — Use the Parse Speakers feature to pull character names from the game files into `vocab.txt`. | | **2** | **Identify speaker genders** — Figure out which characters are male/female and update `vocab.txt` accordingly. This helps the AI use correct pronouns. | | **3** | **Translate Actors.json, MapInfos.json** — These are small files with character and map names. Good to do first. | | **4** | **Translate Items, System, Weapons, etc.** — All the data files that aren't maps or events. Place them in `files/`, translate, then copy results back. | | **5** | **Find speaker names** — Enable CODE 101 (Speakers), check for bracketed names, or use the "First Line = Speaker" option to capture speaker names properly. | | **6** | **Replace `\n[0-999]` variables** — Some games use variable codes like `\n[1]` for character names. Replace these with the actual actor names so the AI can translate around them. | | **7** | **Translate Maps & CommonEvents** — The bulk of the game's dialogue. Start with a small map to test, then do the rest. You can use **Estimate** in the GUI to check the cost before running. | | **8** | **Edit plugins for menus/text** — Some UI text lives in `plugins.js` or plugin parameters. You may need to manually translate these in a text editor. | | **9** | **Translate CODE 122 vars, 356 plugins as needed** — Enable these codes in the RPG Maker tab if the game stores dialogue in variables or plugin commands. | | **10** | **Playtest → find issues → fix → repeat** — Play through the game, screenshot any untranslated text, search for it in the game files, and re-translate as needed. | > **Note:** Some text (e.g., CODE 122 variables) may only update when starting a new save file. --- ## Using Copilot & VSCode [VSCode](https://code.visualstudio.com/) is a free code editor, and with [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) you get an AI assistant built right into it. This is incredibly useful for translation work — you can ask the AI to help modify game files or even tweak the tool's modules without needing to know how to code. ### Setup 1. Install [VSCode](https://code.visualstudio.com/). 2. Install the **GitHub Copilot** extension (`Ctrl+Shift+X` → search "GitHub Copilot"). 3. Sign in with your GitHub account (Copilot has a free tier). ### Editing Game Files with AI Open your game folder in VSCode (`Right Click` → `Open with Code`) and use Copilot Chat (`Ctrl+Shift+I`) to ask for changes. Examples: - *"Replace all `\n[1]` with `Shino` in this file"* - *"Translate all the Japanese menu text in this plugins.js file to English"* - *"This dialogue has broken line breaks — fix the formatting"* You can also select a block of text, right-click, and choose **Copilot → Fix / Explain / Modify** to work on just that selection. ### Modifying Tool Modules Open the DazedMTLTool folder in VSCode and ask Copilot to make changes to the translation modules. Examples: - *"Add a new regex pattern to skip lines that start with //"* - *"Change the wordwrap logic to break on full-width punctuation"* - *"Make this module also handle .yaml files"* - *"Explain what CODE 356 does in rpgmakermvmz.py"* Copilot can read the surrounding code and suggest context-aware edits — you just review and accept. This makes it easy to customize the tool for specific games without deep Python knowledge. ### Tips - Use **Ctrl+Shift+I** to open Copilot Chat and ask questions about any file you have open. - Use **Ctrl+I** for inline editing — select code, describe what you want changed, and Copilot will rewrite it in place. - Use [Git](https://git-scm.com/) with your game folder so you can always undo changes if something breaks. The [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) extension makes this even easier. --- ## Version Control with Git Git tracks every change you make to your game files, so you can compare translations against the originals and roll back mistakes. This is optional but **highly recommended** — it has saved countless hours of work. ### Install Git 1. Download and install [Git](https://git-scm.com/). The default settings during installation are fine. 2. Open a terminal and verify it's installed: `git -v` ### Set Up Git in Your Game Folder 1. Open your **game folder** (where `Game.exe` lives) in VSCode — right-click the folder → **Open with Code**. 2. Open the terminal in VSCode (`Ctrl+`` ` ``) and run: ``` git init ``` This creates a new Git repository in that folder. ### Create a .gitignore Not every file needs to be tracked. Create a file called `.gitignore` in the game folder with contents like this: ```plaintext # Ignore everything except text-based game files *.* # Allow these file types !*.json !*.txt !*.js !*.csv !*.ks !*.tjs !*.yaml !*.rb !*.rvdata2 # Other useful files !.gitignore ``` This tells Git to only track the file types that matter for translation. ### Save Your First Commit 1. Click the **Source Control** icon on the left sidebar (or press `Ctrl+Shift+G`). 2. You'll see all the game files listed. Type `Initial Commit` in the message box and click **Commit** → **Yes** (to stage all files). 3. Your original files are now saved. ### Create an "original" Branch This lets you always compare your translated files against the untouched originals. 1. Press `Ctrl+Shift+P` → type **Create Branch** → name it `original` → press Enter. 2. Press `Ctrl+Shift+P` → type **Checkout** → select `main` (or `master`). Now you're back on the main branch. Any translations you make here can be compared against the `original` branch at any time. ### Comparing Changes After translating and copying files back into the game folder: 1. Open **Source Control** — you'll see all modified files listed. 2. Click any file to see a side-by-side diff of what changed. 3. Commit your changes with a message like `Translated Items, Weapons, Actors`. To compare with the original untranslated files: - Right-click any file → **Open Changes** → **Open Changes with Branch** → select `original`. ### Recommended Extension Install [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) (`Ctrl+Shift+X` → search "GitLens") for a much richer Git experience — commit history, file annotations, branch comparisons, and more. --- ## Troubleshooting - **`START.bat` closes immediately** — Make sure Python 3.12–3.14 is installed and added to your PATH. Open a terminal and run `python -V` to check. - **API errors** — Double-check your API key and organization in `.env`. Make sure you have credits/quota with your provider. - **Missing dependencies** — Delete the `.venv` folder and run `START.bat` again. It will recreate the environment and reinstall everything.