Skip to content

CrossCV/unrpyc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unrpyc is a script to decompile Ren'Py (http://www.renpy.org/) compiled .rpyc
script files. It will not extract files from .rpa archives. For that, use rpatool
(https://github.com/Shizmob/rpatool), or UnRPA (https://github.com/Lattyware/unrpa).

Unrpyc needs some internal Ren'Py structures to work. You can either use the -b 
argument to specify the directory in which renpy lies, place the renpy module
in your Python module search path, or copy the renpy folder to the directory where
the unrpyc script resides.

Usage options:

Options:
  --version      show program's version number and exit
  -h, --help     show this help message and exit
  -c, --clobber  overwrites existing output files
  -d, --dump     Instead of decompiling, pretty print the contents
                 of the AST in a human readable format.
  -b, --basedir  specify the directory in which the renpy folder 
                 resides. using this it is not necessary for the renpy 
                 directory to be in python's search path, or in the 
                 unrpyc directory.
  --no-screens   
                 Don't decompile screen language
  --python-screens
                 Don't decompile from python back to screen language
  --ast-screens
                 Only for dumping: Don't decompile the python ast of screens back
                 to python
  --single-line-screen-kwargs
                 Only for decompiling. Leave all arguments to a screen language
                 statement in the same line.
Usage: [python2] unrpyc.py [options] script1 script2 ...

You can give several .rpyc files on the command line. Each script will be
decompiled to a corresponding .rpy on the same directory. By default, the
program will not overwrite existing files, use -c to do that.

This script will try to disassemble all AST nodes. In the case it encounters an unknown 
node type, which may be caused by an update to Ren'Py somewhere in the future, a
warning will be printed and a placeholder inserted in the script when it finds a
node it doesn't know how to handle. If you encounter this, please open an issue 
to alert us of the problem.  

For the script to run correctly it is required for the unrpyc.py file to be in the same
directory as the modules directory.

You can also import the module from python. in this case you can first simply import the
unrpyc module, and after that you can use unrpyc.import_renpy() to import the necessary
renpy modules.

https://github.com/yuriks/unrpyc

About

A ren'py script decompiler

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published