File mapping and backup rule engine for workshop mods
Project description
status: active concept: readme applicable-to: human update: 2026-05-20
The Knighthana's Mod Manager
This repository provides the full source tree, including the frontend and build tooling. For PyPI, the current release path is intentionally narrower: install the core package first, and use GitHub for the full web-enabled development experience.
简介
The Knighthana's Mod Manager(简称KMM)通过对"文件迁移过程"进行脱离具体环境的语义化定义和简单执行,实现对MOD->本体,MOD->MOD,还包括诸如MOD->MOD->MOD->本体这样嵌套方式的支持;
并且针对具体的替换规则,实现原文件的备份保护和按需还原;
作为“文件操作语义定义与管理”的雏形想法,这个项目初期在Steam游戏本体<->Steam创意工坊这样的环境上进行实践;
作为普通用户
如果你希望获得完整的 Web 界面和前端源码,请直接使用本仓库的 GitHub 版本。 如果你只是想先通过 PyPI 安装核心能力,目前发布物会优先保证 CLI / 后端逻辑可用。
如果要作为普通用户使用这个项目,请前往release页面,下载符合自己系统平台的分发文件,遵守指引安装;
待程序运行之后,请打开浏览器在KMM面板进行操作:
- 在“数据来源”点击“扫描Steam库”等待其完成,这步是为了创建游戏-MOD数据库;
- 在“设置面板”的“规则来源”下方,点击“➕ 添加来源”创建一个新的空行,将Modder交给你的kmmrule文件的路径填写在空行中,点击“保存”;
- 务必点击下方的“保存设置”按钮,对设定进行保存;
- 进入“工作区”页面,点击右上方的“新建工作区”,输入必要的信息来创建一个工作区,每个工作区各自保存了一种替换模式,尽可能为每类不同的任务创建不同的工作区;
- 在面板中点击工作区条目的“进入”来进入一个工作区;
- 在“发现的规则文件”勾选Modder提供给你的kmmrule文件前方的复选框,如果感兴趣可以点击右侧的“展开”以查看这个规则的详细信息;
- 点击“进入计算准备”,系统会自动将你导航到“计算准备”页面;
- 仅保留想要替换的库/游戏/MOD前方的复选框,之后点击“开始计算”或者“计算查看”;复选框用于确定实际影响的游戏/MOD,可见按钮仅仅用于调整视觉效果,不影响最终结果;
- 自行点击或等待系统导航进入“森林可视”界面,可以放大映射图,检查这些映射是不是你所想要的;
- 如果有必要,在“冲突裁决”页面进行手动裁决;
- 进入“文件操作”页面,如果这是首次操作,必须先点击“备份”,如果心存疑虑,务必打开"dry run"开关进行模拟;"dry run"不会进行任何实际的文件操作;
- “备份”完成后,可以点击“应用”进行文件替换,等待操作完成;
- 如果您的游戏/MOD需要分时间使用多个不同的规则,那么下次请在“备份”前先点击“恢复”,然后再“备份”和“应用”;
注意事项
本项目采用“懒备份”和“蠢还原”两个原则进行文件管理,它不会也不应该推测当前目录中文件的来源,备份时永远假定当前状态是需要被记录的快照,还原时只对比外部文件与备份文件之间的相似度,因此:
- 仅在文件目录处于“被Steam验证后”的“原始状态”时,才使用“备份”功能;
- 若当前文件已经是“应用”之后的样子,务必在下一次切换规则前,使用“恢复”功能使目录恢复原状,才能开始下一次“备份”和“替换”作业;
作为Modder
如果想要快速上手,请参考description/kmm_rule_RWR-khn_CT-castears-z2414_Replace.json.example撰写自己的kmmrule规则文件;
如果有一定的软件开发基础,或者对产出有更高的要求,更加建议参考repo_spec/中的schema文件,或者具体的代码实现,撰写更加安全和灵活的kmmrule规则文件;
在分发Mod时,建议同时分发kmmrule文件和本项目的链接,指引用户通过kmmrule进行规则化的MOD安装;
作为开发者
欢迎为本项目贡献代码;
目前项目已经确定的未来方向是:
- 迁移到Tauri2,提供更加定制化的GUI方便使用;
- 完善“规则制定”页面,方便kmmrule文件的制定;
- 进行内部资源传递优化方案,初步便于readme和preview的展示,之后还可灵活应用于其它外部资源;
- 将项目脱离SteamWorks场景使用,用于其他游戏MOD文件的管理;
- 实现对任意类型目录任意文件的管理,或是应用于嵌入式设备中进行资源敏感场合的文件管理;
- 脱离“文件系统”场景,允许后端接驳Redis等广泛意义上的“资源provider”;
欢迎提出更多的想法,比如“我想用它管理Minecraft模组”,或者“我想用它管理我的本地音乐收藏”,或者“我有一个嵌入式设备中需要这样的管理器对规则集合进行管理”;
项目还在成长,接受各种想法;
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file modmgr-0.0.1.tar.gz.
File metadata
- Download URL: modmgr-0.0.1.tar.gz
- Upload date:
- Size: 155.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48543334cb3909b7e44d2d73a7d20bbcfebbc40096cbe2d073b7fbf5fb096dda
|
|
| MD5 |
b6afeeebebc1bf299ac1575a35715793
|
|
| BLAKE2b-256 |
6fab8684658c27cf9d5a387992ff670d830e100a633d0bbde63bc55dd3db330b
|
File details
Details for the file modmgr-0.0.1-py3-none-any.whl.
File metadata
- Download URL: modmgr-0.0.1-py3-none-any.whl
- Upload date:
- Size: 106.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07f71770ed3e97c92fc7c1ebeea23df4a53b64031b290614de15b33fe1d46c72
|
|
| MD5 |
9ea1c06b10545cf693a6aab0bbcfa735
|
|
| BLAKE2b-256 |
9e8e3887964bb5960c3e29dc0cb106be22180785bbe342e05d5438062f143824
|