Rpfd

Read and write RAGE Package Format archives

LLM Mart 11 views 95 listing impressions
Transport
Not stated
Package
Registry id
io.github.molchalih/rpfd

No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.

mcp

A dependency-light Rust toolchain for reading, editing and rebuilding RPF7 archives — the dlc.rpf files RAGE Multiplayer and FiveM servers hand to their clients, and the archives Grand Theft Auto V ships. One command-line binary with no runtime prerequisite, and the same code behind a JSON-RPC daemon and a VS Code extension.

Formats

Version Variant Used by Support
RPF7 OPEN, unencrypted RAGE MP and FiveM server packs Read, write
RPF7 AES-256, 0x0FFFFFF9 GTA V, nested archives such as des_* and script_* Read, write — key from the game executable
RPF7 AES-256, 0x0FFFFFF7 Rockstar Games Launcher Read, write — key from Launcher.exe
RPF7 NG, 0x0FEFFFFF GTA V Legacy and Enhanced, every top-level archive Read, write — both need a memory image
RPF8 Red Dead Redemption 2 Not supported
RPF6 Red Dead Redemption, 2010 and 2023 Not supported
RPF4 Max Payne 3 Not supported
RPF3 GTA IV audio, Midnight Club: LA Not supported
RPF2 GTA IV, main archives Not supported
RPF0 Table Tennis Not supported

Pre-RPF7 attributions are read from other implementations, not measured here; docs/rpf-format.md records them and where they disagree. Every non-RPF7 version is recognised by its magic word and refused by number.

Encryption is per entry as well as per archive: the tag covers the table of contents and the names blob, and each entry's row says whether its payload is under the transform.

Installing

INSTALL.md is the page for this, and it answers three separate questions: how to install the editor extension from a .vsix, how to register the MCP server with an editor or an agent, and where to put the binary if that is all you want. Prebuilt binaries for macOS, Windows and Linux are attached to each release.

To build from source instead — the toolchain is pinned in rust-toolchain.toml:

git clone <this repository> && cd rpf
cargo build --release          # target/release/rpf

Encrypted archives need key material, extracted from your own installation:

$ rpf keys extract GTA5.exe         # the AES key and the hash lookup table
$ rpf keys extract Launcher.exe     # the second AES key, carried by no game executable
$ rpf keys extract <memory image>   # the NG expanded keys and decrypt tables

No key material is bundled here, and none ever will be. Each source is cached under the hash of its own bytes in ./keys, which every command consults without a flag; --cache-dir selects another cache, the one way to keep several installations apart, and rpf keys invalidate empties one. No command prints a key — only offsets, lengths, counts and paths. NG material stands in the clear only in a memory image of a running game, so that is the sole route to an NG archive; obtaining one is out of scope here. An archive whose material is absent fails rather than guessing.

Usage

List an archive, descending into the archives inside it:

$ rpf ls -R dlc.rpf
binary    xml          2199  content.xml
directory -               3  data
binary    xml          5100  data/vehicles.meta
directory -               2  x64
directory -               1  x64/vehiclemods
binary    -         2544128  x64/vehiclemods/meringls63amg24_mods.rpf
resource  -          262144  x64/vehiclemods/meringls63amg24_mods.rpf/meringls63amg24_brabus_diffuser_1.yft
...

The second column says what an entry holds; pso, rbf and meta have an XML view:

$ rpf cat --as xml des_hosp_ceil2.rpf des_hosp_ceil2.ytyp
<?xml version="1.0" encoding="UTF-8"?>
<hash_D98BB561 pso:struct="hash_D98BB561">
  <hash_018A3B1B pso:array="atarray">
    <pso:item pso:struct="hash_82D6FC83">
      <hash_BF74DFA7 pso:float="100.0"/>
      <hash_D9EF8236 pso:float3="-2.80584, -2.95097, 0.0"/>
...

rpf put --as xml writes an edited document back in the entry's own encoding. Ask what a write costs, then make it:

From the project's README.

Related servers

Read-only discovery for NeuralNg Angular components, APIs, packages, icons and theme recipes.

14 views

MCP server for Geargrafx PC Engine / TurboGrafx-16 emulator

14 views

Umami v3 MCP for Cloud or self-hosted analytics, with read-only, privacy-conscious defaults.

12 views

Plant phenotyping via PlantCV — returns traits plus the segmentation overlay they came from

12 views