夜海泛用模组管理器 NightOcean's Mods Manager

修改于04/0517 浏览综合
不绑定特定游戏 · 插件驱动
TapTap
TapTap
TapTap
介绍

目录

简介

夜海泛用模组管理器是一款 通用 Mod 管理工具,采用 插件驱动架构,不绑定任何特定游戏,而是通过游戏插件来支持各种游戏。

核心特点

  • 一管多游: 一个管理器管理多款游戏的 Mod
  • 社区扩展: 社区可为任意游戏开发支持插件
  • 功能扩展: 功能可通过插件不断扩展

功能范围

✅ 能做什么
本工具专注于 Mod 的管理与组织
  • 查看信息 - 查看 Mod 名称、版本、作者、依赖关系等信息(需插件正确解析元数据)
  • 问题检查 - 检测缺失依赖、加载顺序错误、重复 Mod 等问题
  • 排序调整 - 拖拽或智能排序来调整 Mod 加载顺序
  • 配置管理 - 保存多套 Mod 配置方案,随时切换
❌ 不能做什么
  • 不加载 Mod:Mod 的实际加载由游戏完成,本工具只生成配置文件;
  • 不提供下载:没有 Mod 下载功能,需通过 Steam 创意工坊等途径获取;
  • 深度功能有限:某些游戏的深度定制功能可能比不上专用管理器。

适用场景

适合的 Mod 类型
本工具适合管理 非侵入式 Mod
  • 独立目录:每个Mod 都有自己的目录,不直接覆盖游戏文件
  • 元数据文件:Mod 自带描述文件,包含名称、版本、依赖等信息
  • 唯一标识:可通过 ID 或文件夹名区分不同 Mod
典型示例:
  • 环世界 (RimWorld):About.xml
  • 骑马与砍杀II:霸主 (Bannerlord):SubModule.xml
  • 剑士 (Kenshi) : *.info文件
  ⚠️ 注意:对于直接覆盖游戏文件或者需要安装额外内容的"侵入式 Mod",本工具无法很好地管理。
我觉得这个工具的未来可期:未来如果能完善插件生态,对于那些独立小游戏,或是本身缺乏深度 Mod 管理支持的游戏来说,完全可以通过它快速实现外部的 Mod 顺序管理功能(当然他们得自己搞好Mod的支持和加载)

使用建议

单游戏场景:如果只管理一款游戏且该游戏已有专用管理器,专用管理器可能功能更全面
多游戏场景:如果同时玩多款 Mod 游戏,或喜欢的游戏还没有专用管理器,本工具是不错的选择(如果有人开发插件的话)

开发优势

本管理器最大的优势是 不绑定任何游戏。开发游戏插件非常简单:
  • 基础插件:400-500 行 | 基本的 Mod 元数据解析和管理
  • 进阶插件:~800 行 | 包含存档读取等高级功能
  💡 AI 友好开发:本项目与 AI 合作开发,插件开发也非常适合交给 AI 完成。只需告诉 AI 游戏的 Mod 结构,AI 就能生成可用的游戏插件。

核心特性

多游戏支持
通过游戏插件支持不同的游戏,示例如下:
⚠️  注意主程序本身不包含任何插件,插件只能交给社区来开发了,毕竟浩如烟海的游戏每一个的元数据解析方法都可能不同,只有群策群力才能应对。
  • 骑马与砍杀II:霸主:多人和单人插件分离实现
  • 环世界 (RimWorld):完整功能 - 额外包含存档mod顺序导入
  • 剑士 (Kenshi):仅支持基础功能
  💡 示例游戏插件可前往 示例插件仓库 获取。
想支持新游戏? 写个游戏插件就行,不用改主程序。
TapTap
游戏切换

界面设计

  • 双列表布局:左边未启用,右边已启用,一目了然
  • 拖拽排序:拖一拖就能调整加载顺序
  • 依赖关系可视化:通过详细信息、高亮、依赖线条显示 Mod 之间的依赖关系
  • 详细信息面板:查看 Mod 详细信息、标签、备注等
TapTap
拖动排序
TapTap
详细信息面板管理

管理功能

依赖关系管理
  • 可视化线条:多种颜色表示不同依赖类型,红色表示有问题
  • 简单排序:按 Mod 声明的依赖关系自动调整顺序(仅供参考)
  • 问题检查:一键检测缺失依赖、顺序错误等问题
TapTap
问题检测
TapTap
依赖线管理
配置方案管理
  • 多配置支持:保存不同的 Mod 组合,方便切换不同玩法
  • 导入/导出:分享和备份配置很方便
  • 从存档导入(需插件支持):部分游戏支持从存档恢复 Mod 配置
TapTap
mod配置管理
个性化标记
  • 标签系统:给 Mod 加标签,筛选更方便
  • 颜色标记:给 Mod 标颜色,一眼就能认出来
  • 备注功能:给 Mod 加备注,有时候还是昵称好记
TapTap
备注名
搜索筛选
  • 关键词搜索:快速找到想要的 Mod
  • 结构化搜索:用 @tag=标签名、@author=作者 这样的语法
  • 类型筛选:按本体、DLC、创意工坊、本地 Mod 筛选
TapTap
结构化搜索
主题与语言
  • 多主题:默认主题、深色主题等
  • 多语言:中文、英文等
  • 字体调整:可以调整界面字体大小
TapTap
主题切换

插件系统

插件系统是本工具的核心特色。

架构设计

传统的 Mod 管理器通常只支持一款游戏,功能也是固定的。而 NightOcean's Mods Manager 用插件驱动:
┌─────────────────────────────────────────────────────────┐
│                                                    NightOcean's Mods Manager                                                 │
│                                                                   (主程序核心)                                                             │
├─────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────┐               │
│  │ 游戏插件 A               │   │ 游戏插件 B               │  │   游戏插件 C                        │              │
│  └─────────────┘  └─────────────┘  └─────────────────┘               │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────┐               │
│  │ 功能插件 X                │  │ 功能插件 Y               │  │   功能插件 Z                        │               │
│  └─────────────┘  └─────────────┘  └─────────────────┘               │
└─────────────────────────────────────────────────────────┘

双插件体系

  • 游戏插件:为特定游戏提供 Mod 解析和启动功能 | 同一时间只能启用一个
  • 功能插件:扩展程序功能 | 可以同时启用多个

插件能力

游戏插件必须实现
  • 解析游戏元数据和 Mod 元数据
  • 提供游戏启动功能(本地启动、Steam 启动)
所有插件都可以实现
  • 添加菜单项:在菜单栏加自己的操作
  • 添加工具栏按钮:快速访问插件功能
  • 添加自定义面板:展示插件特有的界面
  • 订阅事件:响应 Mod 列表变化、游戏切换等事件
  • 自定义高亮规则:按条件高亮显示 Mod
  • 自定义过滤规则:实现复杂的筛选逻辑
  • 独立配置存储:保存插件自己的设置
  • 扩展错误检测:添加游戏特定的 Mod 问题检测
  • 扩展右键菜单:在 Mod 列表右键菜单添加操作
游戏插件还可选实现
  • 解析存档文件(从存档导入 Mod 配置)
  • 解析外部配置文件
  • 自定义拓扑排序逻辑

SDK 化开发

插件开发完全 SDK 化,开发者不需要拿到主程序源码。SDK 会随 Release 一并发布:
bash
pip install yh_mods_manager_sdk-x.x.x-py3-none-any.whl
简单功能插件示例:
```python
from yhmodsmanager_sdk import FeaturePlugin, PluginMenuItem
class MyPlugin(FeaturePlugin):
    PLUGINID = "myplugin"
    PLUGINNAME = "My Plugin"
    PLUGINVERSION = "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 环境。

运行程序

  1. 下载对应平台的可执行文件
  2. 双击运行即可

首次使用

  1. 安装游戏插件 - 程序启动后会提示安装游戏插件,选择你要管理的游戏对应的插件
  2. 设置路径 - 指定游戏安装目录和 Mod 目录(程序会尝试自动检测)
  3. 扫描 Mod - 程序自动扫描可用 Mod
  4. 开始管理 - 启用、排序、管理你的 Mod
TapTap
插件安装

开发者指南

项目结构

YHModsManager/
├── core/                    # 核心业务逻辑
├── ui/                      # 用户界面
├── plugin_system/           # 插件系统
├── utils/                   # 工具函数
├── config/                  # 配置文件
├── docs/                    # 文档
└── yh_mods_manager_sdk/     # 插件 SDK

核心架构

项目采用分层架构:
  • UI 层:界面展示与用户交互
  • 业务逻辑层:Mod 操作、依赖解析
  • 数据管理层:配置、元数据管理
  • 插件系统层:插件加载与调度
  • 基础设施层:日志、事件总线等

相关文档

插件开发指南 - 插件开发教程

参与贡献

欢迎参与开发、提问题或给建议!作者对开源项目管理经验有限,如有不足之处还请多多包涵。
问题和建议:通过 Issues 提交问题和功能建议
提交代码:欢迎提交 Pull Request

致谢

感谢所有贡献者和支持者!
(虽然现在只有我自己和GLM5)
(希望能尽快删掉这句话吧)

许可证

本项目采用 GNU Affero General Public License v3.0 (AGPLv3) 许可证。

许可证要点

  • ✅ 自由使用:可以自由使用、修改、分发
  • ⚠️ 开源要求:修改后的版本必须以相同许可证开源
  • ⚠️ 网络服务:网络服务使用也需要提供源代码
  • ⚠️ 版权声明:需要保留版权声明和许可证副本