: Mafkers Docs

Ren'Py Engine Support

Guide to translating Ren'Py visual novels with Mafkers.

Supported Versions

VersionStatusNotes
Ren’Py 6.x❌ Not supportedDeprecated
Ren’Py 7.x✅ SupportedPython 2 based
Ren’Py 8.x✅ SupportedPython 3 based

How Mafkers Detects Ren’Py

  1. game/ folder exists
  2. .rpa archives or .rpy scripts 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:

game/script.rpy python
# 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 .rpa archives
  • Native Python parser for .rpy files (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.

Was this page helpful?