A tool for decompiling Ren'py compiled script files (.rpyc and .rpymc).
- Decompile
.rpycand.rpymcfiles to readable Ren'Py script code - Extract RPA archives
- Extract and edit Ren'Py save files (
.save→ JSON →.save) - Extract Ren'Py games from Android APK files
- Extract translations from compiled scripts to
tl/{language}/directories - Support for multiple Ren'Py versions (7.x, 8.x)
Install with pip:
pip install rpycdecOr install from source:
git clone https://github.com/cnfatal/rpycdec.git
cd rpycdec
pip install .Decompile a single file:
rpycdec decompile script.rpycDecompile all files in a directory:
rpycdec decompile /path/to/game/Extract RPA archive:
rpycdec unrpa archive.rpaExtract Ren'Py game from Android APK:
rpycdec extract-game game.apkExtract translations:
rpycdec extract-translate /path/to/game/ -l ChineseThis tool processes .rpyc, .rpymc, .rpa, and .save files which use Python's pickle format internally. rpycdec uses restricted unpicklers with whitelist-based class loading to mitigate arbitrary code execution risks, but no pickle safeguard is perfect. Only process files from sources you trust.
Set RPYCDEC_NO_WARNING=1 to suppress the CLI security warning.
See also: Python pickle security warning
-
Q: Pickle error
ModuleNotFoundError: No module named '...'A: This means our fake
renpy/storepackages don't cover the class your file needs. Please open an issue with the Ren'Py version and the file that failed.
Contributions are welcome! Please open an issue before submitting major changes so we can discuss the approach.
- GitHub Issues — Bug reports and feature requests
- Telegram Group — Community discussion and support
- unrpyc - The well-established and widely-used Ren'Py script decompiler