关于 create-all-cg-save
面向修改自有离线单人游戏存档的 Agent 技能与 Python 工具包,可定位存档并推断 CG 解锁标记。支持已知引擎解析和未知二进制差分,并提供备份、验证与回滚。
主要功能
- 01扫描并识别游戏存档
- 02解析已知引擎的解锁标记
- 03通过存档差分推断标记布局
- 04生成可读解锁计划
- 05备份、验证与回滚修改
适用场景
- 01解锁离线单人游戏的 CG 图库
- 02检查 RPG Maker 存档中的开关
- 03为未知格式存档推断标记位置
MCP 相关
通过 stdio 暴露存档扫描、引擎检查、计划生成、差分推断及应用等工具;应用操作支持试运行、验证和回滚。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
create-all-cg-save
创建全 CG 存档 — 解锁你自己的离线单人游戏存档中的所有 CG、画廊和回忆室。
一个 Agent 技能(加上一个小巧、零依赖的 Python 工具包),能将“我想解锁所有 CG” 转化为精确、可逆的字节补丁,而不是下载陌生人的存档文件。
中文说明见 README.zh-CN.md。
功能
- 扫描这台机器上常见的存档位置,并查找游戏的候选存档文件
- 识别游戏引擎(RPG Maker、Ren'Py、Kirikiri、Unity、Siglus、BGI 等)
- 对于可解析的格式(例如 RPG Maker 的 Ruby Marshal),计算每个解锁标志的精确字节偏移
- 对于不透明的私有二进制格式,通过比较“解锁前”和“解锁后”的存档还原解锁标志,拟合
start + stride数组,并推算整个画廊 - 生成易读的解锁计划,支持试运行、验证、自动备份和一键回滚
它绝不会下载游戏,不会触碰 CG 图片或游戏资源,也不会用别人的存档替换你的存档——它只会对你已有的存档进行最小化的精确修改。
两种方式
| 方式 | 适用情况 | 机制 |
|---|---|---|
| 引擎快速路径 | 存档格式已知且可解析 | 语义解析——直接定位到 switch[N] / variable[N] |
| 通用差异路径 | 私有二进制、结构未知 | 字节差异 → 拟合 start + stride 数组 → 推算 |
决策树位于 skills/create-all-cg-save/SKILL.md。
快速开始
# 1. Find the save file
python skills/create-all-cg-save/scripts/save_scout.py --game <game name>
# 2. RPG Maker VX / VX Ace / XP: inspect structure and current switch state
python skills/create-all-cg-save/scripts/engines/rgss_save.py inspect "Save01.rvdata2"
# 3. Build an unlock plan (flip the given switches ON)
python skills/create-all-cg-save/scripts/engines/rgss_save.py plan-switches \
"Save01.rvdata2" --ids 1,3,5-40 --out plan.json
# 4. Dry-run → apply → verify (apply backs up automatically)
python skills/create-all-cg-save/scripts/apply_plan.py plan.json --dry-run
python skills/create-all-cg-save/scripts/apply_plan.py plan.json
python skills/create-all-cg-save/scripts/apply_plan.py plan.json verify
# Roll back if anything looks wrong
python skills/create-all-cg-save/scripts/apply_plan.py plan.json rollback
不知道是什么引擎?请使用差异路径:
python skills/create-all-cg-save/scripts/save_diff.py A.save B.save --json ab.diff.json
python skills/create-all-cg-save/scripts/infer_plan.py ab.diff.json \
--target A.save --stride 4 --count 128 --out unlock-plan.json
--stride/--start很重要。只有一两个已观察到的标志位置时,拟合出的步长可能有歧义(步长为 4 的数组中,若解锁了槽位 0 和 5,GCD 会报告 20)。脚本会发出醒目警告;条件允许时,请明确指定布局。
已验证目标
RPG Maker VX Ace(RGSS3) — 例如 Save0X.rvdata2:
- 存档是 Ruby Marshal,包含两个串联的 Marshal 数据流(数据流 1 是用于读取菜单的
make_save_header,数据流 2 是包含 11 个键的make_save_contents哈希) :switches→@data是一个布尔数组;'T'/'F'/'0'(nil)各占一个字节,因此 补丁是等长替换——文件大小不会有一字节的变化- 结果:59 个开关槽位被切换为 ON,大小为 617,987 → 617,987 字节,重新解析后确认为
true, 且rollback逐字节恢复了文件
仓库结构
create-all-cg-save/ # repository
├── .claude-plugin/
│ └── marketplace.json plugin-marketplace manifest (`/plugin marketplace add`)
└── skills/
└── create-all-cg-save/ the skill itself (auto-indexed by skills.sh & friends)
├── SKILL.md skill entry point (the workflow an agent reads)
├── scripts/
│ ├── save_scout.py locate candidate saves + engine fingerprinting
│ ├── save_diff.py byte-level diff of two saves
│ ├── infer_plan.py infer the flag array → unlock plan
│ ├── apply_plan.py apply / verify / roll back
│ ├── common.py backup, atomic write, hashing
│ └── engines/
│ ├── ruby_marshal.py dependency-free Ruby Marshal parser + encoders
│ └── rgss_save.py RPG Maker RGSS save adapter
└── references/
├── engines.md per-engine save locations and formats
├── diff-method.md the full diff-method manual
├── unlock-plan-schema.md diff / plan JSON schemas
└── safety.md backup, integrity, and compliance red lines
安装为技能
直接从公开仓库安装(无需克隆):
npx skills add xixi048/create-all-cg-save # skills.sh / `npx skills` CLI
/plugin marketplace add xixi048/create-all-cg-save # Claude Code plugin marketplace
或者将文件夹复制到你的 Agent 技能目录:
将整个 skills/create-all-cg-save/ 目录放入你的 Agent 技能目录:
- 用户级:
~/.workbuddy/skills/create-all-cg-save/ - 项目级:
<repo>/.workbuddy/skills/create-all-cg-save/
目录名称必须与 SKILL.md frontmatter 中的 name 字段一致(create-all-cg-save)。
frontmatter 遵循标准的 Agent 技能结构:name、description(说明功能和适用场景,包含
中文和英文触发关键词)、license 和 metadata。
为什么多出一层
skills/?爬取 GitHub 的目录网站(skills.sh、SkillsMP、npx skills和 Claude Code 的插件市场)只会查找skills/<name>/SKILL.md。 位于仓库根目录的技能文件夹永远不会被发现,无论它有多好。
注意:
SKILL.md中的所有相对路径都相对于技能目录,而不是你的 工作目录。请先cd进入该目录,或者在命令前加上技能目录的绝对路径。
用作 MCP 服务
整个工具包也通过 MCP(stdio,无依赖)提供,因此任何支持 MCP 的 Agent 都可以使用它,而无需了解仓库布局:
{
"mcpServers": {
"create-all-cg-save": {
"command": "python",
"args": ["C:/path/to/create-all-cg-save/mcp/server.py"]
}
}
}
工具:save_scout · engine_inspect · plan_unlock_switches · diff_saves · infer_unlock_plan · apply_plan
(apply_plan 接受 action: dry_run | apply | verify | rollback;apply 始终会先备份。)
可供机器发现的索引:
https://xixi048.github.io/create-all-cg-save/.well-known/agent-skills/index.json
要求
Python 3.8+,零第三方依赖(仅使用标准库)。
在使用旧代码页的 Windows 控制台中,可能需要运行 chcp 65001(或设置 PYTHONIOENCODING=utf-8),才能正确显示中文进度信息。
安全模型
- 每次写入前都会先备份为
<save>.allcg-bak-<timestamp>——绝不直接覆盖原文件 - 修补前会验证
sha256_before;如果计划是针对其他存档生成的,则会拒绝执行 - 除非传入
--allow-resize,否则会拒绝会改变文件长度的修补 - 应用前务必先进行 dry-run,之后务必加载游戏进行确认
完整列表请参阅 references/safety.md。
已知限制
- RPG Maker XP / VX / VX Ace 支持完整自动化;当 MV / MZ 的存档为纯 JSON 时也很容易处理
- Ren'Py、Kirikiri、Unity、Siglus、BGI 等通常需要使用差异比较方法;有些存档采用端到端压缩或加密,无法直接进行差异比较
- 仅限云端的存档必须先同步到本地
- 解锁所有开关也可能触发剧情分支或游戏结束条件——请从已在游戏中验证过的 ID 开始
免责声明
此工具仅用于个人研究和修改您合法拥有的离线单人游戏。 请勿将其用于在线/多人游戏、排行榜,或任何可能影响他人的场景。您需自行承担存档发生的一切后果——不过每次写入都会先备份。
许可证
MIT——请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。