AutoBuild v1.2

User
Guide

DDLC mod localization toolkit. Developed by ROOTWIN PROJECT together with the TheOneTranslator localization team.

This guide is aimed at end users: translators, mod authors and content managers. It gathers everything you need to work with the program effectively.

We strongly recommend reading the guide in full before starting. Skipping even one technical detail or warning can lead to critical errors when building your projects.

Workspace overview

The window is split into three logical zones for controlling the decompilation and patching pipeline.

AutoBuild v1.2 — главное окно программы
AutoBuild v1.2 main window (Monika theme)
TOP_PANEL

Configuration — working directory selection (resources / target mod), localized project name input, engine architecture switches (Auto / 6-7 / 8).

CENTER_PANEL

Automation modules — toggle buttons for the four pipeline steps. Colored = active, grey = skipped. Hover a module for a tooltip.

BOTTOM_PANEL

Log console — a write-protected output window with emoji progress indicators in real time, auto-scrolling as the build progresses.

Modular build system

Four independent stages. Enable and disable any combination — just click the card.

01
RPA Extract
Unpack & decompile

Opens heavy archives (scripts.rpa, images.rpa, etc.), extracts content, finds .rpyc files and turns them into readable .rpy.

02
Font Remap
Font replacement

Scans the whole codebase, finds references to the original fonts and rewrites them to point at Cyrillic fonts from your resources folder. Fixes garbled text ("kraказябры") and empty boxes.

03
Text Assets
UI localization

Checks the rules.yaml dictionary and translates buttons like "New Game", "Settings", "Save", plus character names.

04
Clean Up
Build cleanup

Removes temporary index files, engine cache and leftover .rpyc files — leaves you with a spotless working folder.

Visual themes

Each theme changes the color palette and Discord Rich Presence — showing which heroine's patronage you're translating under.

AutoBuild — тема Sayori
Sayori
Sky-blue tones with coral accents
AutoBuild — тема Yuri
Yuri
Deep purple with muted neon accents
AutoBuild — тема Natsuki
Natsuki
Pastel pink with bright contrast accents
AutoBuild — тема Monika
Monika
Emerald green — an atmosphere of control and order

Two-level monitoring

Console

Mini console (on-the-fly)

🔍 [SCAN] The program is searching files or analyzing structure
[STATIC] The fallback decompilation method ran successfully
[ERROR] A critical error needing attention
[MAP] Stage complete, results saved
Disk

On-disk log file

Whenever something fails — a corrupted archive, an antivirus block — a session.log file is created in the program's working folder. It records absolutely every action, including OS-level traces.

Send it to the developer if you encounter system failures.

Output directories

untranslated/

Missing text

All interface, menu and popup strings found in the code that didn't match any rule in rules.yaml. Sorted into files with exact line references to the original code.

screens.txt options.txt
AutoBuild — example of an untranslated strings report
Example of an untranslated strings report
story_maps/

Story map

An audit of the novel's logic in two formats: a text timeline of scripts with jump / call transitions, and an interactive HTML graph with search, zoom and camera focus.

[Mod]_map.txt [Mod]_map.html
AutoBuild — interactive story graph
Interactive story graph (.html)
AutoBuild — text story map
Text story map (.txt)

Step-by-step workflow

01

Preparation

Launch the program. Put your Cyrillic font files and an up-to-date rules.yaml into your resources folder.

If the mod has no .exe — copy the mod files into a folder with a clean original DDLC, overwriting all files.
02

Path setup

Use the "Browse" buttons next to GAME and RESOURCES to pick the visual novel folder and the resources folder.

03

Naming

The "OK" button is smart: leave the field empty and press it — the program analyzes the mod path, detects the root folder name, strips extra characters and fills it in. Or type a name manually.

04

Theme & modules

Pick a theme (Sayori / Yuri / Natsuki / Monika). All 4 modules are on by default — click to disable the ones you don't need (they turn grey and stay untouched).

05

Engine selection

Ren'Py 8 → injector v2 + Python 3 (modern mods). Ren'Py 6/7 → injector v1 + Python 2.7 (classic DDLC). Leave unselected for auto-detection based on file structure.

Errors saying un.rpyc failed to load are normal for some mods — the file depends on the engine version. Always pick the matching Ren'Py version (6, 7 or 8).
06

Start & monitor

Click "Initiate Build". Watch the mini-console. Up to 3 automatic injection attempts per .exe — if .rpy files appear after the first attempt, the cycle ends instantly. Wait for the final completion message.

Once the game window opens — absolutely do not touch the mod: no clicking, minimizing, or closing manually. The program handles everything itself and closes the game via trigger. Manual interference will corrupt the file structure.
07

Results

Open the untranslated/ and story_maps/ folders to review the structure and finish any missing interface strings.

Safety and environment

Don't touch anything during the build

While the pipeline is running — don't move files, don't open them in editors, and don't launch the game. The program will finish all disk operations exclusively on its own.

🎮

Game window during injection

Once the tool opens the game window — absolutely do not click it or close it manually. The program will wait for script generation and close the game itself via a trigger.

🐍

Environment requirements

Strictly requires Python 3.13. Make sure to check Add Python to PATH during installation. If it was missed, do a clean reinstall.

Mod doesn't launch on the first try

This is normal. Under heavy load the OS can't release file handles instantly. Wait a few seconds and try again — it will launch on the second attempt, guaranteed.

Before the very first build, the program shows a security notice and asks you to confirm you understand the risks — this appears once per installation.

AutoBuild — startup security notice
Startup security notice

The software is meant to automate the build of DDLC game modifications. Running external tools (like rpatool.py) and processing resources means executing third-party code.

Always check the source and contents of any files and mods you use. ROOTWIN PROJECT is not responsible for system stability or data integrity when working with unverified content.

Program file structure

📁 AUTOBUILDER_RW
├── 📂 logs
│   └── 📄 session.log Detailed session log
├── 📂 setup
│   └── ⚙️ rules.yaml Replacement & patching rules database
├── 📂 story_maps
│   ├── 📄 [Mod]_map.txt Text timeline of the scenario
│   └── 🌐 [Mod]_map.html Interactive graph for the browser
├── 📂 untranslated
│   └── 📄 [Mod]_miss.txt Missing interface strings
├── 📂 Resources
│   ├── 🔤 fonts Cyrillic fonts (.ttf/.otf)
│   ├── 🧩 un.rpyc_v1 Decompiler for Ren'Py 7 (Python 2.7)
│   ├── 🧩 un.rpyc_v2 Decompiler for Ren'Py 8 (Python 3)
│   ├── 🐍 unrpyc.py Fallback decompilation script
│   └── 🖼️ TheOne.png TheOneTranslator logo
└── AutoBuilder_v1.2.exe Main executable

Filling in rules.yaml

The file setup/rules.yaml is the only place you edit between builds — no code changes needed. It stores three kinds of settings: interface translation strings, font replacements, and the localization team's links shown in the game's Help screen.

ui_replacements

Pairs of 'original string': 'translated string' — every menu label, button, and system message the template shows.

font_map

Pairs of "OriginalFont.ttf": "CyrillicFont.ttf" — which font file replaces which, so Cyrillic text renders correctly.

character_names

List of character variables with their en/ru names, used to rename characters defined via Character() or DynamicCharacter().

localization_team

Name and a free list of links for the localization team. The name field is substituted into the game's "About" screen (gui.about). links is a plain list of label / url pairs shown as buttons on the in-game Help screen — no fixed slots for any specific platform, add or remove entries freely (1 to 6 links, any order).

Example of the localization_team block — this is what feeds the "USEFUL LINKS" screen the tool inserts into screens.rpy. Copy one "- label / url" pair per link, in any order, up to 6:

# Конфигурация команды локализации и ссылок для экрана помощи (Help screen)
localization_team:
  # Название команды переводчиков (отображается в меню «Об игре» / gui.about)
  name: "TheOneTranslator"

  # Ссылки на ресурсы команды (отображаются кнопками на экране «Помощь» / «ПОЛЕЗНЫЕ ССЫЛКИ»)
  # Доступно от 1 до 6 ссылок в любом порядке.
  # label — название кнопки, отображаемое игроку в меню
  # url — полная ссылка на ресурс (сайт, канал, группа, чат, сервер и т.д.)
  links:
    - label: "Сайт TheOneTranslator"
      url: "https://sites.google.com/view/theonetranslator/home"
    # Ссылка на группу сообщества
    - label: "Группа в VK"
      url: "https://vk.com/theonetranslator"
    # Ссылка на новостной Telegram-канал команды
    - label: "Телеграм канал"
      url: "https://t.me/TheOneTranslator"
    # Ссылка на чат обсуждений / сервер сообщества
    - label: "Дискорд сервер"
      url: "https://discord.com/invite/EFVdYes"

To add a link, copy an existing "- label / url" pair and edit the values (quotes must stay, the words label and url must not change). To remove a link, delete its whole pair. The order in the file is the order buttons appear in-game — you can freely reorder them.

Feedback

Most errors can be resolved with AI without waiting for support — copy the problem text and session.log and ask an up-to-date AI model with internet access.
Case study

Why an error "suddenly" appears only after unpacking

A clear sign the issue is worth showing to an AI first: everything worked inside the archive, but crashes started after unpacking.

Before unpacking
mod_assets.rpa

The file autofocus.rpyc sits packed inside the archive. Ren'Py reads the ready bytecode without issue — it already went through the engine.

After unpacking
mod_assets/MPT/autofocus.rpy

The script now sits as source code. Ren'Py tries to recompile it and crashes on line 267.

The logic is simple: the unpacker itself worked correctly, but it exposed an old bug in the script that the engine used to silently ignore thanks to a ready-made cache. An AI can read the error log's context and suggest a fix faster than a developer could read your message.

Bug report

What to include in a bug report

  • logs/session.log — the file from the tool's root folder
  • Ren'Py errors — traceback.txt / log.txt if the engine produced them
  • Screenshot of the main window at the moment of the error, with the console expanded
  • Screenshot of the file structure — the program's folders and the mod's game/ directory