.RPA

RPA File

Ren'Py Archive
Ask a question
QUICK ANSWER

An RPA file is a Ren'Py Archive - the package that bundles a visual-novel game's images, audio, video, and compiled scripts into one file. To play the game, just run its launcher; you never need to touch the .rpa yourself. To look inside for modding or translation, use UnRen or rpatool - 7-Zip and WinRAR cannot open it because it is not a standard archive format.

Developer: Tom Rothamel / the Ren'Py project Category: Game Files Open standard MIME: application/octet-stream
OPENS ON Windows macOS Linux
Related: .OBB · .PAK · .ROFL · .PACKAGE

On this page

19k+ extensions indexed
Last reviewed Sep 6, 2026

Not sure what your file is?

Drop any file into our identifier - we read just the first bytes to name the format.

Identify a file

What is the RPA file format?

The .rpa file is a Ren'Py Archive - a binary container format used by the Ren'Py visual-novel engine to bundle a game's compiled scripts and assets into a single distributable package. Built Ren'Py games typically ship with one or more .rpa files (commonly named archive.rpa, images.rpa, or scripts.rpa) inside the game/ folder.

The format opens with an ASCII header line declaring the version - either RPA-2.0 or the current RPA-3.0 - followed by a hex offset to the file index and, in RPA-3.0, a hex XOR-obfuscation key. The index is stored as a zlib-compressed, pickled Python dictionary that maps internal paths to offset/length pairs within the archive. RPA-3.0 lightly obfuscates those offsets with the key from the header, but this is not real encryption and is trivially reversible.

Contained files - compiled .rpyc scripts, images, audio, and video - are stored raw without re-compression, since each asset type is typically already compressed. The archive replaces the human-readable .rpy source scripts, which are not included in release builds.

.rpa files are not standard ZIP or RAR archives and cannot be opened by general-purpose tools such as 7-Zip or WinRAR. Extraction requires a Ren'Py-aware utility such as rpatool or UnRen.

Security & safety

RISK: MEDIUM

The archive container itself is inert data, but a Ren'Py game packed in a .rpa contains compiled scripts (.rpyc) that are executable logic for the Ren'Py engine and can include full Python - so RUNNING an untrusted Ren'Py game (or installing a mod whose .rpa you didn't inspect) can execute arbitrary code on your machine. Get games and mods from reputable sources, and if you extract a .rpa to mod it, review any decompiled scripts before running. The "obfuscation" in RPA-3.0 is not encryption and offers no security; never rely on it to protect secrets. Extracting an archive is safe; running its code is the part to be careful with.

Format details

in a nutshell
FULL NAMERen'Py Archiveaka RenPy archive, Ren'Py packed archive
DEVELOPERTom Rothamel / the Ren'Py projectsince Ren'Py engine archive format; RPA-3.0 is the long-standing version used by modern Ren'Py
CATEGORYGame Files
MIME TYPEapplication/octet-stream
TYPEBinary archive container - bundles a visual-novel game's compiled scripts and assets into one file
STANDARDOpen · royalty-free
This extension is also used by…
  • RIB iTWO Project Archive - Construction/BIM software RIB iTWO saves project archives as .rpa - opened only with RIB iTWO; a small minority of .rpa files (~9%) versus the dominant Ren'Py meaning.
  • RoboHelp / generic 'project archive' - A few legacy tools have used .rpa for unrelated packaged-project data; rare today.
MAGIC BYTES · FILE SIGNATURE
OFFSET
00010203040506
HEX
5250412D332E30
ASCII
RPA-3.0
A Ren'Py archive begins with an ASCII header line such as "RPA-3.0 " followed by a hex offset to the file index and a hex deobfuscation key, terminated by a newline. The index is a zlib-compressed, pickled directory of the contained files; in RPA-3.0 each file's offset/length is XOR-obfuscated with the key from the header (light obfuscation, not encryption).

Programs that open RPA files

Windows3 apps
Ren'Py SDK Open-source The engine that uses .rpa. To PLAY a game, run its launcher. To inspect, add the project in the SDK; for modding use a dedicated extractor below.
UnRen (Ren'Py mod/extract tool) Open-source Drop the .bat into the game folder and run it to extract .rpa archives and decompile .rpyc - the popular one-click modding tool.
rpatool Open-source Command-line: 'rpatool -x archive.rpa' extracts; '-c' creates. Cross-platform Python tool for unpacking/repacking Ren'Py archives.
macOS2 apps
rpatool Open-source Run with Python: 'python rpatool -x archive.rpa' to extract the archive's contents.
Ren'Py SDK Open-source Launch the SDK to run/build the game; .rpa is the engine's own packed format.
Linux2 apps
rpatool Open-source 'python rpatool -x archive.rpa' extracts; works anywhere Python runs.
Ren'Py SDK Open-source Run the SDK to launch/build the game.

Technical details

deep spec
File signature (magic bytes)ASCII header starting with `RPA-3.0 ` (hex `52 50 41 2D 33 2E 30 20`) at offset 0; `RPA-2.0 ` for the legacy variant
Header structureSingle ASCII text line containing: version tag, hex offset to the index, and (RPA-3.0 only) a hex XOR obfuscation key, terminated by a newline character
Index encodingzlib-compressed Python `pickle` dictionary mapping internal file paths to (offset, length, prefix) tuples
Index obfuscationRPA-3.0 XOR-obfuscates each entry's stored offset and length with the key declared in the header line; trivially reversible, not true encryption
Contained file storageFiles are concatenated raw after the header with no additional compression applied; assets (PNG, OGG, WEBM, RPYC) are already compressed at the source
Supported asset typesCompiled scripts (`.rpyc`, `.rpymc`), images (PNG, JPEG, WEBP), audio (OGG, MP3), video (WEBM), and arbitrary game data files
Index entry limitNo fixed limit; the index is a pickled Python `dict` whose size is bounded only by available memory
Integrity checkingNo per-file checksum is stored; format relies on the inherent integrity of the contained asset files
Version declarationFormat version is self-declared in the plaintext header line (`RPA-2.0` or `RPA-3.0`); tools detect the variant at parse time without a separate manifest
Typical archive sizeA few MB to several GB depending on the volume of images, audio, and video bundled in the game
Target platformsWindows, macOS, Linux, Android, iOS - all platforms officially supported by the Ren'Py engine
Typical filenames`archive.rpa`, `images.rpa`, `scripts.rpa` - found inside the `game/` directory of a built Ren'Py title
Container compatibilityNot a ZIP, TAR, or RAR variant; general-purpose archivers (7-Zip, WinRAR) cannot open `.rpa` files
Developer / maintainerTom Rothamel and the Ren'Py open-source project; format evolved with the engine (first released 2004)
ReleasedRen'Py engine archive format; RPA-3.0 is the long-standing version used by modern Ren'Py
Latest versionRPA-3.0 (current); legacy RPA-2.0 exists; format header line declares the version
Open standardYes · royalty-free
Specificationwww.renpy.org

RPA conversions

Community Q&A

asked by users
Ask a quick question
Get help from people who work with RPA files. Be specific - include your system and software version.
No account needed · answers usually within a day

No questions yet - be the first to ask about RPA files.

Frequently asked questions

What is an RPA file?
A Ren'Py archive - the package that bundles a visual-novel game's images, audio, video and compiled scripts into one file, used by games made with the Ren'Py engine. (A minority of .rpa files are instead RIB iTWO construction-project archives.)
How do I open a .rpa file?
To play the game, just run its launcher - you don't need to open the .rpa. To look inside (modding/translation), use a Ren'Py extractor like UnRen or rpatool. Regular 7-Zip/WinRAR can't open it.
Why can't 7-Zip or WinRAR open my .rpa?
Because a Ren'Py .rpa isn't a ZIP or RAR - it's a custom container with its own header and index. You need a Ren'Py-aware tool (rpatool, UnRen, rpaExtract) to unpack it.
How do I extract a Ren'Py .rpa archive?
Easiest on Windows: put UnRen in the game folder and run it. Cross-platform: 'python rpatool -x archive.rpa'. Both unpack the assets and compiled scripts; UnRen can also decompile .rpyc to readable .rpy.
Is a .rpa encrypted?
No. RPA-3.0 only lightly XOR-obfuscates the file index, which is trivially reversed by any extractor. It's meant to discourage casual snooping, not to encrypt or protect the contents.
My .rpa won't open in any Ren'Py tool - what is it?
It may be the other meaning of .rpa: a RIB iTWO construction/BIM project archive, which only the RIB iTWO software opens. Check where the file came from - a game folder means Ren'Py, construction software means iTWO.

References

1Ren'Py - Building Distributions (archives)www.renpy.org
2rpatool - Ren'Py archive unpacker/packergithub.com

Keep exploring

across the database

Top extensions this week

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.DATProgram Data File (generic)
5.BINCD/DVD Disc Image (BIN/CUE)
6.EXEWindows Executable (Portable Executable)
7.RPMSGRestricted Permission Message
8.NOMEDIAAndroid No-Media Marker File
9.MDMarkdown Document
10.TXTPlain Text File

Related extensions

.OBBAndroid Opaque Binary Blob (APK Expansion File)
.PAKGame Resource Package (PAK)
.ROFLLeague of Legends Replay
.PACKAGEThe Sims / Maxis DBPF Package (game content & mods) - dominant meaning
.XSBXACT Sound Bank
.SAVSaved Game File

Free file tools

An in-browser file identifier and image converter - everything runs on your device.

Open the toolbox

Browse file extensions A-Z