Ren'Py Engine Support
Guide to translating Ren'Py visual novels with Mafkers.
Supported Versions
| Version | Status | Notes |
|---|---|---|
| Ren’Py 6.x | ❌ Not supported | Deprecated |
| Ren’Py 7.x | ✅ Supported | Python 2 based |
| Ren’Py 8.x | ✅ Supported | Python 3 based |
How Mafkers Detects Ren’Py
game/folder exists.rpaarchives or.rpyscripts present
Where Strings Are Stored
.rpy Script Files (PRIMARY)
Ren’Py uses .rpy text files for scripts. These are Python-like syntax and very AI-friendly:
# Example Ren'Py script
label start:
"Hello, player!"
character "Welcome to the game."
menu:
"What do you want to do?"
"Go to the park":
jump park
"Stay home":
jump home.rpa Archives
Ren’Py packages assets into .rpa archives. Mafkers extracts these using unrpa (GPL, called as subprocess).
.tl/ Translation Directory
Ren’Py has a native translation system with .tl/<lang>/ directories containing .rpy files with old/new translation pairs.
Tools Used
- unrpa (GPL, subprocess) - extract
.rpaarchives - Native Python parser for
.rpyfiles (text-based, no tool needed)
Tag Pattern
Ren’Py uses curly brace tags:
{b}...{/b}- bold{color=#fff}...{/color}- color{size=20}...{/size}- font size[player_name]- variable interpolation
Mafkers’ tag tokenizer handles all these patterns.
Common Issues
Encrypted .rpa Archives
Some Ren’Py games encrypt .rpa archives with custom keys. The key is usually in the game executable. unrpa handles most encryption schemes.
Python 2 vs Python 3
Ren’Py 7.x uses Python 2, 8.x uses Python 3. The .rpy format is the same, but some syntax differs. Mafkers handles both.