一份关于如何在 PC 上为 Risk of Rain 2 下载和安装模组的指南,内容涵盖 r2modman、手动安装方法,以及让大多数人栽跟头的依赖关系体系。
Risk of Rain 2 在 Thunderstore 上拥有最古老、组织最完善的模组生态之一。它同时也拥有最复杂的依赖关系体系之一,理解这套体系确实能决定你是顺利装好,还是折腾一个小时都摸不着头脑。
我们的示例是 Starstorm 2,一个添加了幸存者、物品和敌人的大型内容模组。它之所以是个好例子,正是因为它并不简单。
系统要求
- 运行 Windows 10 或更高版本,或 Linux 的 PC。
- Steam 或 Epic Games Store 上的 Risk of Rain 2。
- 需要几百 MB 的空闲空间。像 Starstorm 2 这种规模的内容模组会占用更多。
- 如果你打算手动安装,需要一个压缩工具,比如 7-Zip。
Risk of Rain 2 没有反作弊系统,给它装模组也没有封号风险。不过某些配置下模组会禁用 Steam 成就,如果你还在追成就,请留意这一点。
模组体系
Risk of Rain 2 的模组建立在两层基础之上,如果其中任何一层缺失或版本过旧,模组就无法加载。即便你用的是能自动处理这些的模组管理器,理解这一点仍然很有价值,因为它能解释你可能遇到的所有错误信息。
BepInEx
BepInExPack 是模组加载器。它在游戏启动时进行挂钩,并从 BepInEx/plugins 中加载插件。
Risk of Rain 2 的这个包并非纯净版 BepInEx。它内置了多个社区补丁,包括 RoR2BepInExPack、FixPluginTypesSerialization 和 BepInEx_GUI。这些补丁的存在是为了应对这款游戏特有的各种问题,这也是你应该使用这个包而不是官方 BepInEx 的原因。
R2API
R2API 是一个介于 BepInEx 和各个模组之间的模组 API。它为模组作者提供了一种稳定、共用的方式来添加幸存者、物品、精英怪、增益效果等等,避免每个模组都重复造轮子并相互冲突。
R2API 在之前被拆分成了多个子模块,这也是让人感到困惑的地方。现在不再是一个庞大的 R2API.dll,而是分成了诸如 R2API_Prefab、R2API_Networking 和 R2API_Difficulty 这样的独立包。一个模组只依赖它实际用到的那些子模块。Starstorm 2 就引入了大约十几个这样的子模块。
这些东西你几乎不需要手动安装,交给模组管理器处理就行。
模组本身
有了这两层基础之后,模组本身就是 BepInEx/plugins 里的一个 .dll 文件,和其他 BepInEx 插件一样。
注意 - 在这款游戏里,版本问题比大多数游戏都更重要。基于 R2API 5.0.5 构建的模组,在更旧版本的 R2API 上可能无法加载。模组管理器会安装模组所声明的具体版本,这也是为什么手动安装在这款游戏里出错概率比其他游戏更高的主要原因。
使用 r2modman 安装
r2modman 是这款游戏的标准工具,最初就是为它而写的。Thunderstore Mod Manager 基于同一套代码构建,如果你更喜欢它,用起来效果完全一样;Gale 是一个更轻量的替代方案,同样支持这款游戏。
建立配置文件
- 从 Thunderstore 页面 或 GitHub 下载 r2modman。
- 启动它并选择 Risk of Rain 2。
- 选择你购买游戏所用的平台,Steam 或 Epic。r2modman 会据此找到安装目录。
- 你会进入配置文件(profile)界面。不要使用 Default,新建一个配置文件,并根据用途给它命名,比如
starstorm。
配置文件是值得好好学习的功能。每个配置文件都有自己独立的模组列表、配置和存档相关状态,切换它们是瞬间完成的,也不会重新下载任何东西。为每次游玩或每个朋友圈子单独建一个配置文件,比手动逐个启用禁用模组要省心得多。
安装 Starstorm 2
- 选中你的配置文件后,点击左侧栏中的 Online。
- 搜索 Starstorm2,打开由 TeamMoonstorm 发布的结果。
- 点击 Download,在弹出提示时选择 Download with dependencies。
- 让它运行完成。它会拉取 BepInExPack、MoonstormSharedUtils 以及 Starstorm 2 所需的 R2API 子模块,这个列表相当长。
- 切换到 Installed,确认所有内容都正常显示,没有警告图标。
启动模组化游戏
点击 r2modman 窗口顶部的 Start modded。
不要从 Steam 或 Epic 启动游戏,那样启动的是原版游戏。r2modman 是通过配置文件在启动时注入 BepInEx 来工作的,所以必须通过 r2modman 启动,模组才能生效。
提示 - 如果你想要一个能以模组化方式启动的 Steam 快捷方式,r2modman 可以在 Settings 下的 Browse profile folder 里为你生成启动参数。不过大多数人发现,直接开着 r2modman 更省事。
手动安装
可以做到,也值得了解,但由于 R2API 子模块的情况,这款游戏的手动安装确实比大多数游戏更繁琐。
先找到你的游戏文件夹。在 Steam 中,右键点击 Risk of Rain 2,选择 Manage,再选择 Browse local files:
C:\Program Files (x86)\Steam\steamapps\common\Risk of Rain 2
然后:
- 使用Manual Download下载 BepInExPack,解压后将
BepInExPack文件夹里的内容复制到游戏目录中。完成后你应该会在Risk of Rain 2.exe旁边看到BepInEx、doorstop_config.ini和winhttp.dll。 - 启动一次游戏,让 BepInEx 生成自己的文件夹,然后退出。
- 下载 R2API 以及该 mod 列出的每个子模块,解压后把它们的
.dll文件复制到BepInEx/plugins中。 - 下载 Starstorm 2,同样把它的内容复制到
BepInEx/plugins中。
第 3 步才是难点。要做对这一步,你需要在 Thunderstore 上阅读该 mod 的Dependencies(依赖)列表,按列出的确切版本获取每一项,然后对这些依赖项自身的依赖再重复这个过程。对 Starstorm 2 来说,这意味着要下载十几个文件。
警告 - 如果你手动安装,不要混用不同版本。当 mod 要求旧版本时却下载了最新的 R2API 子模块,这是导致 mod 悄无声息加载失败的最常见原因。
使用 TMC App 安装
还有一个值得一提的管理器,那就是我们自己开发的。The TMC App 支持一键安装 mod、沙盒(每个游戏可命名的独立配置,各自拥有自己的加载顺序和部署方式,切换时无需重新下载任何东西)、带实时延迟图的服务器浏览器,以及 RCON。
Risk of Rain 2 目前还不在其支持的游戏列表中。 我们希望能加入它,而添加一个游戏只需要四个 JSON 文件,无需写代码。
不过在你去找之前要知道:这个应用还处于非常早期的开发阶段,它自己也是这么说的。大部分功能只经过部分测试。对于这种依赖关系如此复杂的游戏,r2modman 仍然是值得信赖的工具,TMC App 更适合拿来搭配它一起试用,而不是取而代之。如果有人愿意尝试并反馈使用体验,那对我们来说真的帮了大忙。
它是基于 GPL-3.0 协议的开源项目,地址在 github.com/modcommunity/tmc-app。问题反馈和功能请求请提交到追踪器,欢迎提交 pull request,仓库中也说明了各游戏的配置格式,如果你想自己添加对 Risk of Rain 2 的支持也可以参考。
安装方法:
- Linux:一行命令,无需 root,也无需包管理器。
curl -fsSL https://raw.githubusercontent.com/modcommunity/tmc-app/main/scripts/install.sh | sh
- Windows:从发布页面下载
setup.exe或setup.msi。也有便携版,不过它不会注册启动器入口或tmc://链接处理程序。 - macOS:从同一个发布页面下载
.dmg。
多人游戏与 Mod 同步
Risk of Rain 2 的多人游戏要求所有玩家运行兼容的 mod。添加物品或幸存者的内容型 mod 必须在整个游戏大厅中保持一致,不匹配通常会表现为加入时被踢出,或者在游玩过程中物品出现不同步。
实际的解决办法是共享配置文件。在 r2modman 中打开你的配置文件,点击Export,选择Export as file或Export as code。你的朋友使用Import导入该文件或代码,就能得到完全一致的 mod 列表。
注意 - 纯视觉类 mod 以及一些便利性 mod 是客户端本地的,不需要匹配。mod 的 Thunderstore 页面通常会说明这一点。如果没有说明,就假设它需要匹配。
主机平台
Risk of Rain 2 也登陆了 PlayStation、Xbox 和 Nintendo Switch,但这些版本都不支持 mod。本指南中的所有内容仅适用于 PC。没有变通办法,任何声称能给主机版本装 mod 的东西都不该下载。
管理你的 Mod
r2modman 会在 Thunderstore 上有新版本的已安装 mod 旁显示更新图标,Update all 可以一次性更新全部。由于 R2API 子模块是独立版本控制的,更新一个 mod 有时会顺带拉取更新后的子模块,从而可能破坏另一个依赖旧版本的 mod。这正是配置文件(profile)存在的意义:克隆一份配置文件,更新克隆版本,在确认没问题之前保留原来能用的那一份。
禁用某个 mod 只是在Installed列表中切换开关,文件仍会保留在原处。卸载则会删除文件。
要完全回到原版,删除游戏目录中的 BepInEx、doorstop_config.ini 和 winhttp.dll。通过 Steam 验证文件不会删除它们,因为 Steam 不会追踪它没有安装的文件。
故障排查
运行了 Modded 模式,却没有 mod。 你是从 Steam 或 Epic 启动的,而不是从 r2modman 启动的。
安装了 mod 但一直不加载。 检查 BepInEx 控制台,看是否有提到该 mod 名字的记录。如果控制台提到缺少某个类型或方法,说明与 R2API 版本不匹配。请通过管理器重新安装该 mod 及其依赖。
游戏卡在启动画面。 通常是某个 mod 是为旧版本游戏构建的。Risk of Rain 2 的更新经常会破坏 mod,解决方法通常是等待作者更新。
加入好友时被踢出。 mod 列表不匹配。导入他们导出的配置文件即可。
成就不再解锁。 安装某些 mod 后这是正常现象。如果想继续解锁成就,请使用单独的原版配置文件。
Linux 与 Proton。 将 Steam 启动选项设置为 WINEDLLOVERRIDES="winhttp=n,b" %command%,以便 BepInEx 能被加载。通过 r2modman 启动时它会自动处理这个设置。
结语
由于 R2API 子模块的存在,Risk of Rain 2 的 mod 安装从外表看起来令人望而生畏,但实际上有了 mod 管理器,整个过程只需两次点击。安装 r2modman,创建一个配置文件,选择带依赖下载,然后以 modded 模式启动即可。
真正值得记住的两件事:通过管理器启动,而不是通过 Steam;并且要为一起游玩的朋友导出你的配置文件。
如果你有时间,TMC App 是开源的,还处于早期开发阶段,我们非常欢迎对它的反馈。
另请参阅
- Thunderstore 上的 Risk of Rain 2
- Risk of Rain 2 Modding Discord
- R2Wiki - 社区模组维基,也是模组作者最好的参考资料。
- GitHub 上的 R2API
- TMC App
我们会尽力让本指南保持最新,但游戏本体、BepInEx 和 R2API 都各自按自己的节奏更新。如果本文中的内容与你实际看到的情况不符,请告诉我们,或者在本指南的 GitHub 仓库中提交一个 pull request。
如果你有任何问题,或想在模组相关的任何事情上寻求帮助,欢迎加入我们的 Discord 服务器!

