rpfd
io.github.molchalih由 GitHub 账号 molchalih 发布v0.3.1更新于 Oct 24, 2026
Read and write RAGE Package Format archives
概览
读取、编辑并重建 RAGE 包格式(RPF7)归档,例如 GTA V 与 FiveM/RAGE MP 的 dlc.rpf 文件,以 MCP 服务器形式提供。
- 可以做什么
- 递归列出归档内容,包括归档内嵌套的归档
- 读取条目,pso、rbf 和 meta 载荷可转为 XML 视图
- 就地写回编辑后的条目,或通过完整重建来创建、删除、移动条目和新建目录
- 把归档解包到文件夹、把文件夹打包成归档,并对照记录的校验和验证结果
- 从游戏可执行文件中提取并缓存解密密钥材料,并报告密钥缓存位置
- 适用场景
- 适合需要查看或修改 GTA V 或 FiveM/RAGE MP 的 RPF7 归档的场景,例如浏览 dlc.rpf、编辑元数据或 XML 条目、解包并重新打包模组归档。不适用于 RPF8、RPF6 及更早格式,这些会被拒绝。
- 运行要求
- 作为本地进程在桌面端运行;清单未声明任何环境变量或请求头。提供 macOS、Windows 和 Linux 的预编译二进制,也可用固定版本的 Rust 工具链从源码构建。加密归档需要从用户自己的游戏安装中提取密钥材料(GTA5.exe、Launcher.exe 或运行中游戏的内存镜像)。
安装
在 SourceWeft 中
- 打开 控制台中的 rpfd,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
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.
The editor extension installs from the store, so updates arrive by
themselves: molchalih.rpfd on the
VS Code Marketplace
and on Open VSX, or
code --install-extension molchalih.rpfd.
Asked to install this? An agent follows
the procedure in INSTALL.md:
the binary on PATH first, then rpf registered with every client the machine
has.
Formats
Pre-RPF7 attributions are read from other implementations, not measured here, and are recorded with their disagreements in the format notes. 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 the VS Code Marketplace or Open VSX, with
a .vsix as the fallback — how to register the MCP server with an editor or an
agent, and where to put the binary if that is all you want.
It ends with the procedure an agent follows to do all three on one machine.
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.
Clone the repository, then build from the root of the clone, wherever you put
it:
Encrypted archives need key material, extracted from your own installation:
No key material is bundled here, and none ever will be. Each source is cached
under the hash of its own bytes, under keys inside an rpf directory of the
platform's own configuration directory — $XDG_CONFIG_HOME or ~/.config on
Linux, ~/Library/Application Support on macOS, %APPDATA% on Windows. Every
command consults it without a flag, and rpf keys cache is what says where it
landed and how much is in it:
--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:
The second column says what an entry holds; pso, rbf and meta have an XML
view:
rpf put --as xml writes an edited document back in the entry's own encoding.
Ask what a write costs, then make it — the byte count is your edited.meta's,
not a constant, and --dry-run is how you learn it before anything is written:
put --create, rm, mv and mkdir move every offset after the header, so
they always rebuild and say so first. A rebuild is atomic: a scratch file beside
the archive replaces the original in one step.
Take an archive apart, build it back, check the result:
Every reporting command takes --json; rpf --help lists the rest.
clients/agent/README.md is the page for driving the tool from a program: the
JSON shapes, the failure object, and cat --out for a payload nobody is going
to read.
The daemon
rpf serve --stdio speaks JSON-RPC, one object per line. It answers everything
the binary does, holds edits until commit, and reports a long rebuild's
progress as cancellable notifications.
The editor extension
clients/vscode mounts an archive as a workspace folder: files open, edit and
save like any other, and a nested archive is a folder inside a folder. The
archive is written by one explicit act, previewed as patch or rebuild. See
clients/vscode/README.md.
Exit codes
Stable, so a caller can classify a failure without reading the message: 0 is
success, and every non-zero code names one class of failure. The daemon reports
the same numbers as a JSON-RPC error.code, with a symbolic
error.data.reason.
The table is in clients/agent/README.md, which owns it, along with what each
code tells a caller to do next.
Building and testing
Continuous integration runs these, on macOS, Linux and Windows for the first three; passing them locally is what makes a green run likely:
It also checks every commit message; git config core.hooksPath .githooks
runs the same check locally.
The suite needs no game data: what needs it is skipped. RPF_CORPUS,
RPF_GAME_EXE, RPF_GAME_IMAGE and RPF_METADATA point it at archives, game
executables, a memory image of the running game, and extracted metadata
payloads; the matching RPF_REQUIRE_* turns a skip into a failure.
Licence
MIT OR Apache-2.0, at your option. See LICENSE-MIT and LICENSE-APACHE.
来源:README.md,提交 f6e5673
工具
0版本历史
3- v0.3.1最新Oct 11, 2026
- v0.3.0Oct 10, 2026
- v0.2.2Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分