@dynamicaaa/rpx
v1.1.0
Published
A comprehensive RenPy RPA Extractor library in JavaScript that handles Python pickle serialization formats
Downloads
9
Maintainers
Readme
Features Overview
Quick Start
Installation
npm install @dynamicaaa/rpx
npx @dynamicaaa/rpx --help
npm install -g @dynamicaaa/rpxCLI Usage
rpx extract -i game.rpa -o extracted/
rpx list -i game.rpa
rpx info -i game.rpa --verbose
rpx create -i dist/game -o dist/game.rpa --header ALT-1.0 --key 0x89ABCDEFProgrammatic Usage
import { RPX, extract, list, createArchive } from '@dynamicaaa/rpx';
const archive = new RPX('game.rpa');
await archive.readHeader();
await archive.parseIndex();
console.log('Files:', await archive.listFiles());
await extract('game.rpa', 'extracted');
await createArchive({ input: 'build/game', output: 'dist/game.rpa', version: 'ALT-1.0', key: '0x89ABCDEF' });Command Reference
Archive Creation Reference
Runtime Detection
RPX automatically infers Ren'Py runtime metadata:
- Detects Ren'Py 6.x / 7.x (Python 2) and Ren'Py 8.x (Python 3).
- Displays pickle protocol version and script metadata.
- Reports confidence levels and diagnostic notes.
Dependencies
RPX ships with a minimal set of runtime dependencies:
- @dynamicaaa/pyrunner - bootstraps a portable Python runtime used for decompilation.
- @dynamicaaa/unrpyc-js - JavaScript wrapper around CensoredUsername/unrpyc for
.rpycdecompilation. - @dynamicaaa/rpicklex - pure JavaScript pickle reader for archive indexes.
- CLI helpers: chalk, gradient-string, cli-progress, ora, yargs. The first invocation downloads Python via PyRunner into ~/.pyrunner; subsequent runs reuse the cached interpreter.
Documentation & Support
Project Overview | CLI Guide | API Reference | Examples | Troubleshooting
Contributing
We welcome contributions! Run tests, update docs, and describe edge cases. Open an issue for bugs or requests.
License
MIT (c) Dynamicaaa
Built with love for the Ren'Py developer community
