DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-gm-toolkit

k

dsh-gm-toolkit

Manifest valid

DSH Plugin: Single-Player Game Save / Assembly Modification Toolkit. Stays at zero tokens by default, mounting 9 tools only in "Save Modification" mode.

UI (client)hasBundlePatchMachine translated

dsh-gm-toolkit

给 DeepSeek Harness 用的单机游戏修改工具箱插件。

它把「看不懂的存档 / 打不开的开关」这类活拆成四步,并各给一个工具:探测格式 → 读写存档 → 反汇编定位 → 等长打补丁。模型可以直接调用,不需要你记命令行。

两种用法(默认零开销)

插件分「常驻部分」和「按需部分」,目的只有一个:平时不占你的上下文。

常驻(每个会话都在)按需(只在「存档修改」模式的会话里)
内容存档修改面板、/api/gm/* 路由、preset 声明9 个 gm_* 工具(≈1.5K tokens)、game-modding 技能(≈110 tokens)
怎么进来自动(客户端 UI 不占模型上下文)新建会话时在模式里选「存档修改」,或点面板上的「用「存档修改」模式新建会话」

模式在会话创建时就定了,之后不能换 —— 所以想改存档,从入口进,别在普通会话里现装。

它能干什么

工具用途
gm_doctor自检:Python 解释器、gmtool.py、依赖库是否齐全
gm_probe探测任意游戏文件:gzip/zlib/lz4/zstd、AES 头布局爆破、Unity LZ4BlockArray、最内层 MessagePack,或直接认出明文 JSON
gm_save_list列出存档全部字段(编号 / 名字 / 类型 / 当前值)
gm_save_get读单个字段,并告诉你它穿透了哪些封装层
gm_save_apply改存档(set / add / remove),自动备份 + 写完回读校验
gm_dll_types列出 .NET 程序集类型(正则过滤)
gm_dll_dis反汇编某类型 / 方法的 IL,token 自动解析成可读名
gm_dll_xref找出所有读写某字段、调用某方法的位置
gm_dll_patch等长 IL 打补丁,RVA→文件偏移自动换算,回读验证

图形面板:存档修改

装上插件后,左侧「全局面板」里会多一行 存档修改,点进去是一个可视化的存档编辑器,不依赖模型:

  • 运行环境:进页面自动体检(Python 解释器 + dnfile/dncil/msgpack/lz4/pycryptodome),缺什么就点「一键安装缺失」(走清华镜像)。
  • 找存档:点「扫描我的存档」,自动扫 LocalLow / Local / Roaming / My Games / Saved Games / Steam 云存档,按可信度排序,标出每个文件的格式(AES-CBC / EasySave3 / JSON / MessagePack …),点一行就填进路径框;备份副本默认折叠。
  • 存档文件:粘贴完整路径(或从扫描结果里点一行)→ 「探测格式」,认不出来会明确告诉你需要先在会话里分析。
  • 字段浏览:面包屑 + 逐层下钻 + 本层搜索;叶子字段点「改」就地编辑,容器字段点「展开」。
  • 待应用列表:改动先攒着,点「应用到存档」才真正写盘;写前自动备份,页面显示备份路径。
  • 引导:面板顶部「怎么用」写明了完整流程和「先退游戏再写档」这条硬规矩。

面板和模型工具共用同一份 gmtool.py,所以格式支持完全一致;区别只是面板不会替你猜字段含义,也不支持未识别的自定义格式。

安装

# 1. 装本插件
dsh plugin --profile desktop add dsh-gm-toolkit
# 本地开发时用 link:
dsh plugin --profile desktop add "link:D:/path/to/dsh-gm-toolkit"

# 2. 准备 Python 侧依赖(只有存档/反汇编需要,缺哪个对应功能就不能用)
python -m pip install dnfile dncil msgpack lz4 pycryptodome

装完重启 DSH(配置文件的热重载在部分安装上会失败,重启最稳),然后在插件列表里应能看到 dsh-gm-toolkit。

配置

- insert:
    - id: dsh-gm-toolkit
      name: dsh-gm-toolkit
      config:
        python: 'C:\Python312\python.exe'   # 可选,留空则自动探测
        gmtool: ''                          # 可选,换成你自己的脚本

解释器探测顺序:config.python → 环境变量 DSH_GM_PYTHON → PATH 上的 python3/python → 常见安装路径。

典型工作流

# 1. 这个文件是什么?
gm_probe  path=D:\game\save.dat

# 2. 里面有什么字段?
gm_save_list  path=D:\game\save.dat  target=Unlock

# 3. 改它
gm_save_apply  path=D:\game\save.dat  changes=["add 394=411", "set 635=True"]

# 4. 改不动?去代码里找开关
gm_dll_types  dll=D:\game\Managed\Assembly-CSharp.dll  pattern=demo|trial
gm_dll_xref   dll=...\Assembly-CSharp.dll  target=IsDemo
gm_dll_patch  dll=...  type=GameManager  method=get_IsDemo  mode=ret-false  out=patched.dll

环境依赖:dsh-ops 模式补丁

dsh-ops 的工具面按 preset id 查表发布,表里只有四个内置 id。自定义的 gm-toolkit 不在表里,于是「存档修改」模式一开始只有 3 个 ops_*(ops_bash / ops_discover_tools / ops_read_files), 缺 ops_glob / ops_grep / ops_inspect_local_file / ops_result。

补一行让它按标准模式处理:

node scripts/patch-dsh-ops.mjs --status   # 看状态
node scripts/patch-dsh-ops.mjs            # 打补丁(幂等)
node scripts/patch-dsh-ops.mjs --revert   # 撤销

升级 dsh-ops 后要重跑。细节见 patches/README.md。

设计取舍

  • 零 JS 依赖:只用 node: 内置模块。有些 DSH 安装里 @deepseek-ai/* 的软链是坏的,带 peerDependencies 的插件会加载失败 —— 本插件不受影响。
  • 逻辑放 Python:AES / LZ4 / MessagePack / .NET 元数据这些活,Python 生态比 JS 全得多(pycryptodome、python-lz4、msgpack、dnfile+dncil)。
  • 默认不破坏文件:gm_save_apply 先备份再写,写完回读校验;gm_dll_patch 必须给 out,只写副本。
  • 同宽度优先:改整数时优先用和原值一样宽的 MessagePack 编码,字节数不变,避免整段偏移移动;JSON 存档则只替换目标值那一段字节,缩进、键序、甚至残缺片段都原样留着。

安全边界

  • 读写只发生在你显式给出的路径上:gm_probe / gm_save_get / gm_save_apply / gm_dll_* 都只碰你传进来的那个文件。
  • 「扫描我的存档」会扫盘:/api/gm/scan(面板上的「扫描我的存档」按钮)会遍历 %USERPROFILE%\AppData\LocalLow、AppData\Local、AppData\Roaming、Documents 和 Steam 云存档目录, 只读取文件名/大小/前若干字节做格式判定,不写这些目录。不想被扫就不要点它,直接在输入框里填路径。
  • 「一键安装缺失」会联网:/api/gm/install 会调 pip install -i <镜像> 装 dnfile / dncil / msgpack / lz4 / pycryptodome。不点就不会联网,本插件自身没有任何出网代码。
  • HTTP 路由只对本机回环地址开放(127.0.0.1 / ::1),且只接受 POST + JSON body。
  • 打补丁一律写副本,不原地改程序集(原文件留给你自己核对)。
  • 改存档前请先退出游戏,否则游戏退出时会用内存里的旧数据覆盖你的改动。

License

MIT

Comments

Loading…

Similar plugins

dsh-plugin-dev-tools

by eighteentang

DSH 开发工具箱:按 Alt 悬浮查看界面元素归属、把踩过的坑记进随插件分发的经验库、开发模式下自动注入动手前的自检清单。

Terminal & ClientsManifest valid

★ 0

MIT

JavaScript

Nov 6, 2026

dsh plugin --profile web add dsh-plugin-dev-tools

by zlZayn

DSH 插件:在左侧栏底部显示 DeepSeek 账户余额(原生 UI),设置页提供连接、展示币种、预警阈值与刷新节奏的配置卡片。(原生嵌入“设置-插件-插件配置”)

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 2

↓ 362/wk

MIT

TypeScript

Sep 19, 2026

dsh plugin --profile web add dsh-ds-balance

by jean3690

DSH 本地工具箱插件:侧边栏独立页面 + /toolbox 命令 + 配置驱动的 agent 工具注册,35 个纯本地小工具(文本/编码/数据/安全/提取/转换/参考/效率),数据不出本机。

Tools & CapabilitiesManifest valid

★ 3

↓ 151/wk

TypeScript

Aug 21, 2026

dsh plugin --profile web add dsh-devtoolbox

by g1998815

DSH(DeepSeek Harness) 右侧原生工具侧边栏插件:文件系统浏览器 / Git 变更与 diff / 会话变更 采用·撤回 / PTY 控制台。Windows 直连 node-pty,跟随 DSH 主题,RPC fail-closed。

Manifest valid

★ 3

JavaScript

Aug 16, 2026

dsh plugin --profile web add dsh-workspace-tools

by AGImentu

DSH 插件:在「更多设置」里查看、修改并保存所有 agent 共用的全局系统提示词,保存后立即生效。

Development & InfrastructureTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

Oct 6, 2026

dsh plugin --profile web add dsh-prompt-editor

by zlZayn

DSH 插件:基于知乎开放平台官方 API 的站内搜索、全网索引搜索与直答三个工具,自带原生设置卡片,结果带可引用的来源。

Tools & CapabilitiesManifest valid

★ 11

↓ 618/wk

MIT

TypeScript

Oct 10, 2026

dsh plugin --profile web add dsh-zhihu-search