不绑定特定游戏 · 插件驱动
夜海泛用模组管理器是一款 插件化的泛用 Mod 管理工具,不绑定任何特定游戏,而是以插件为核心,通过游戏插件来支持各种游戏。
| 特点 | 说明 |
|---|---|
| 一管多游 | 一个管理器管理多款游戏的 Mod |
| 社区扩展 | 社区可为任意游戏开发支持插件 |
| 功能扩展 | 功能可通过插件不断扩展 |
本工具专注于 Mod 的管理与组织:
| 局限 | 说明 |
|---|---|
| 不加载 Mod | Mod 的实际加载由游戏完成,本工具只生成配置文件 |
| 不提供下载 | 没有 Mod 下载功能,需通过 Steam 创意工坊等途径获取 |
| 深度功能有限 | 某些游戏的深度定制功能可能比不上专用管理器 |
本工具适合管理 非侵入式 Mod:
| 特征 | 说明 |
|---|---|
| 独立目录 | 每个 Mod 都有自己的目录,不直接覆盖游戏文件 |
| 元数据文件 | Mod 自带描述文件,包含名称、版本、依赖等信息 |
| 唯一标识 | 可通过 ID 或文件夹名区分不同 Mod |
典型示例:
| 游戏 | Mod 元数据文件 |
|---|---|
| 环世界 (RimWorld) | About.xml |
| 骑马与砍杀II:霸主 (Bannerlord) | SubModule.xml |
| 剑士 (Kenshi) | *.info 文件 |
⚠️ 注意:对于直接覆盖游戏文件的”侵入式 Mod”,本工具无法很好地管理。
我觉得这个工具的未来可期:未来如果能完善插件生态,对于那些独立小游戏,或是本身缺乏深度 Mod 管理支持的游戏来说,完全可以通过它快速实现外部的 Mod 顺序管理功能(当然他们得自己搞好Mod的支持和加载)。
本管理器最大的优势是 不绑定任何游戏。开发游戏插件非常简单:
| 插件类型 | 代码量 | 功能范围 |
|---|---|---|
| 基础插件 | 400-500 行 | 基本的 Mod 元数据解析和管理 |
| 进阶插件 | ~800 行 | 包含存档读取等高级功能 |
💡 AI 友好开发:本项目与 AI 合作开发,插件开发也非常适合交给 AI 完成。只需告诉 AI 游戏的 Mod 结构,AI 就能生成可用的游戏插件。
通过游戏插件支持多种游戏,示例如下:
⚠️ 注意:主程序本身不包含任何插件,插件只能交给社区来开发了,毕竟浩如烟海的游戏每一个的元数据解析方法都可能不同,只有群策群力才能应对。
| 示例游戏 | Steam App ID | 备注 |
|---|---|---|
| 骑马与砍杀II:霸主 | 261550 | 多人和单人分离 |
| 环世界 (RimWorld) | 294100 | 包含存档mod顺序导入 |
| 剑士 (Kenshi) | 233860 | 仅支持基础功能 |
💡 示例游戏插件可前往 示例插件仓库 获取。
想支持新游戏? 写个游戏插件就行,不用改主程序。

| 特性 | 说明 |
|---|---|
| 双列表布局 | 左边未启用,右边已启用,一目了然 |
| 拖拽排序 | 拖一拖就能调整加载顺序 |
| 依赖关系可视化 | 通过详细信息、高亮、依赖线条多种方式展示 Mod 之间的依赖关系 |
| 信息面板 | 查看 Mod 详细信息、标签、备注等 |


| 功能 | 说明 |
|---|---|
| 依赖关系可视化 | 通过详细信息、高亮、依赖线条多种方式展示 Mod 之间的依赖关系 |
| 简单排序 | 可按 Mod 声明的依赖关系自动调整顺序(仅供参考) |
| 问题检查 | 一键检测缺失依赖、顺序错误等问题 |


| 功能 | 说明 |
|---|---|
| 多配置支持 | 保存不同的 Mod 组合,方便切换不同玩法 |
| 导入/导出 | 分享和备份配置很方便 |
| 从存档导入(需插件支持) | 部分游戏支持从存档恢复 Mod 配置 |

| 功能 | 说明 |
|---|---|
| 标签系统 | 给 Mod 加标签,筛选更方便 |
| 颜色标记 | 给 Mod 标颜色,一眼就能认出来 |
| 备注功能 | 给 Mod 加备注,有时候还是昵称好记 |

| 功能 | 说明 |
|---|---|
| 关键词搜索 | 快速找到想要的 Mod |
| 结构化搜索 | 用 @tag=标签名、@author=作者 这样的语法 |
| 类型筛选 | 按本体、DLC、创意工坊、本地 Mod 筛选 |

| 功能 | 说明 |
|---|---|
| 多主题 | 默认主题、深色主题等 |
| 多语言 | 中文、英文等 |
| 字体调整 | 可以调整界面字体大小 |

插件系统是本工具的核心特色。
传统的 Mod 管理器通常只支持一款游戏,功能也是固定的。而夜海泛用模组管理器使用插件驱动:
┌─────────────────────────────────────────────────────────┐
│ NightOcean's Mods Manager │
│ (主程序核心) │
├─────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ 游戏插件 A │ │ 游戏插件 B │ │ 游戏插件 C │ │
│ └─────────────┘ └─────────────┘ └─────────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ 功能插件 X │ │ 功能插件 Y │ │ 功能插件 Z │ │
│ └─────────────┘ └─────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────┘
| 插件类型 | 说明 | 互斥性 |
|---|---|---|
| 游戏插件 | 为特定游戏提供 Mod 解析和启动功能 | 同一时间只能启用一个 |
| 功能插件 | 扩展程序功能 | 可以同时启用多个 |
| 能力 | 说明 |
|---|---|
| 添加菜单项 | 在菜单栏加自己的操作 |
| 添加工具栏按钮 | 快速访问插件功能 |
| 添加自定义面板 | 展示插件特有的界面 |
| 订阅事件 | 响应 Mod 列表变化、游戏切换等事件 |
| 自定义高亮规则 | 按条件高亮显示 Mod |
| 自定义过滤规则 | 实现复杂的筛选逻辑 |
| 独立配置存储 | 保存插件自己的设置 |
| 扩展错误检测 | 添加游戏特定的 Mod 问题检测 |
| 扩展右键菜单 | 在 Mod 列表右键菜单添加操作 |
插件开发完全 SDK 化,开发者不需要拿到主程序源码。SDK 会随 Release 一并发布:
pip install yh_mods_manager_sdk-x.x.x-py3-none-any.whl
简单功能插件示例:
from yh_mods_manager_sdk import FeaturePlugin, PluginMenuItem
class MyPlugin(FeaturePlugin):
PLUGIN_ID = "my_plugin"
PLUGIN_NAME = "My Plugin"
PLUGIN_VERSION = "1.0.0"
def get_menu_items(self):
return [
PluginMenuItem(id="action", label="My Action", action_id="do_it")
]
def on_menu_action(self, action_id, manager_collection):
if action_id == "do_it":
print("Action triggered!")
📖 详细开发指南:插件开发文档 📦 示例插件仓库:YHModsManagerPlugins - 可前往查看借鉴
程序已打包为一键运行的独立可执行文件,无需配置 Python 环境。

YHModsManager/
├── core/ # 核心业务逻辑
├── ui/ # 用户界面
├── plugin_system/ # 插件系统
├── utils/ # 工具函数
├── config/ # 配置文件
├── docs/ # 文档
└── yh_mods_manager_sdk/ # 插件 SDK
项目采用分层架构:
| 层级 | 职责 |
|---|---|
| UI 层 | 界面展示与用户交互 |
| 业务逻辑层 | Mod 操作、依赖解析 |
| 数据管理层 | 配置、元数据管理 |
| 插件系统层 | 插件加载与调度 |
| 基础设施层 | 日志、事件总线等 |
本项目的使用权限严格分为以下两种模式,使用者需根据场景遵守对应规则:
个人学习研究、非盈利组织内部运维、开源社区技术交流、免费分享修改后的非商业版本,且使用过程中不产生任何直接/间接经济收益。
本项目不提供任何商业授权渠道,任何未经允许的商业使用行为,均视为侵犯本项目的知识产权,项目组保留追究其法律责任的权利。
欢迎参与开发、提问题或给建议!作者对开源项目管理经验有限,如有不足之处还请多多包涵。
所有向本项目提交 Pull Request 的代码贡献者,提交行为即视为同意以下条款:
感谢所有贡献者和支持者!