Skip to main content

A tool to decrypt .rpyc files

Project description

rpycdec

A tool for decompiling Ren'py compiled script files (.rpyc and .rpymc).

Features

  • Decompile .rpyc and .rpymc files 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)

Installation

Install with pip:

pip install rpycdec

Or install from source:

git clone https://github.com/cnfatal/rpycdec.git
cd rpycdec
pip install .

Usage

Command Line Interface

Decompile a single file:

rpycdec decompile script.rpyc

Decompile all files in a directory:

rpycdec decompile /path/to/game/

Extract RPA archive:

rpycdec unrpa archive.rpa

Extract Ren'Py game from Android APK:

rpycdec extract-game game.apk

Extract translations:

rpycdec extract-translate /path/to/game/ -l Chinese

Security Warning

This 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

Troubleshooting

  • Q: Pickle error ModuleNotFoundError: No module named '...'

    A: This means our fake renpy/store packages don't cover the class your file needs. Please open an issue with the Ren'Py version and the file that failed.

Contributing

Contributions are welcome! Please open an issue before submitting major changes so we can discuss the approach.

Community & Support

Alternative

  • unrpyc - The well-established and widely-used Ren'Py script decompiler

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rpycdec-0.1.12.tar.gz (37.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rpycdec-0.1.12-py3-none-any.whl (48.3 kB view details)

Uploaded Python 3

File details

Details for the file rpycdec-0.1.12.tar.gz.

File metadata

  • Download URL: rpycdec-0.1.12.tar.gz
  • Upload date:
  • Size: 37.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rpycdec-0.1.12.tar.gz
Algorithm Hash digest
SHA256 f7d72715c82131051e4c167dc550804a8f2d28c19832cf0be981fbc79f973d41
MD5 86b40943b6c9a4769b3090f8c3b5d074
BLAKE2b-256 ad47fcdebbca06a259a11b574889acd99ea8df1fc16cde87e184c1d9901a65cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rpycdec-0.1.12.tar.gz:

Publisher: python-publish.yml on cnfatal/rpycdec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rpycdec-0.1.12-py3-none-any.whl.

File metadata

  • Download URL: rpycdec-0.1.12-py3-none-any.whl
  • Upload date:
  • Size: 48.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rpycdec-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 b9bdb4df963fdcca8abd2a24fe5754fed94e7eb4f2cc6c13c27e4db858896b2b
MD5 057cbfe609c63437cbd13217fadd50aa
BLAKE2b-256 098a865c4eeb4d205061f6edcb5af2454ab3cfad4117b1e751a64655e0898890

See more details on using hashes here.

Provenance

The following attestation bundles were made for rpycdec-0.1.12-py3-none-any.whl:

Publisher: python-publish.yml on cnfatal/rpycdec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page