ftg DLL Mod Loader (crloader) 由 fame2gin 制作,用于加载 DLL 模组。
nlohmann/json(MIT 许可证),包含于 modsui.dll。
中文说明
在游戏“选项”里增加一个 模组 标签页,位于"界面"和下一页按键之间。支持本菜单的 MOD 会把设置列在这里,操作方式和其他选项页完全一样。
如果您是 MOD 制作者,想把您的 MOD 选项加入菜单,请阅读可选文件里的作者指南,谢谢!
注意:至少安装了一个支持本菜单的 MOD,选项里才会出现 MODS 页。 单独安装本 MOD 不会有任何变化,这是正常的,不是故障。请和把它列为前置的 MOD 一起安装。
外观和操作与原生选项页一致:Q/E 切换标签页、焦点、开关、滑条、单选、滚动、说明和音效。
支持键鼠和手柄。
自己调整 MOD 顺序(1.6.0 新增):默认按名字排序。想让某些 MOD 排在前面,就打开菜单文件夹(crmods\CRModMenu)里的 模组界面状态配置,在 [Order] 下面每行写一个:武器轮盘、2=口袋混音带……(数字小的在前,没写的按名字排在后面)。MOD ID 显示在 MODS 页里这个 MOD 标题的说明中。重启游戏后生效。
每个 MOD 一个可折叠分区,外观和游戏的子菜单一样:MOD 名称加粗,设置缩进显示在下面。MOD 里每个小标题下的一组设置也能同样展开和收起(1.4.0 新增)。默认都收起,菜单会记住你展开过哪些。
按键绑定选中按键行后按下新的键盘键或手柄键。游戏在该场景已经使用的键(包括你当前的游戏操作键位),或者其他已安装的 MOD 在同一场景使用的键,会弹出游戏自己的冲突提示,写明被哪个操作占用。
下拉框、分区小标题(1.3.0 新增)和一行多个下拉框(1.6.0 新增,外观同游戏“控制”页的改键行,左右键在框之间移动;1.6.1 起行里也可以放改键框,下拉框的选项可以显示手柄按键图标),方便设置多的 MOD 使用。
分区标题显示 MOD 的版本和是否在运行(需要该 MOD 声明)。
设置文件有错误的 MOD 会列在页面底部,并写明原因。
“恢复默认”只重置当前所在的 MOD,不影响其他 MOD 和游戏自己的设置。1.6.1 新增:在 MODS 页按 R(键盘)或 Y/△(手柄),只恢复光标所在的这一组、这一行或这一项。
设置立即保存到各 MOD 旁边的 INI 文件。
文字跟随游戏语言:简体中文、繁体中文,其他语言显示英文。
不修改任何游戏文件。
不需要额外安装任何运行库(VC++ 运行库、.NET 等),只用到 Windows 自带的系统 DLL。
改键:选中按键行,方框里出现“请按键…”后按下新的键,期间游戏保持暂停。任何单个键都能绑定(包括 PS 手柄的 Create),手柄键在松开时确定。Esc、鼠标点击或同时按手柄 LB+RB(L1+R1)取消;Shift+Delete 或按住 LB+RB 1 秒清除绑定。键已被占用时会弹出游戏的冲突提示,写明被哪个操作占用;视 MOD 而定,只能取消,或者可以选“仍然使用”。菜单不会改游戏自己的键位,选了“仍然使用”的话,游戏和 MOD 都会响应这个键。两个 MOD 在不同场景(例如一个在地图上、一个在游戏中)用同一个键不会提示。
要求:Steam 版。本 MOD 按特征码查找所需的游戏代码,游戏小更新后通常仍可使用;如果更新改动了相关代码,MODS 页会自动停用(不会崩溃),模组界面日志 会写明原因,等 MOD 更新即可。推荐配合 FTG DLL模组加载器(crloader) 使用,但不是必需。
安装(二选一,不要同时使用;能用方式 A 就用方式 A,这是测试过的方式,其他 MOD 也这样加载):
A. 使用 crloader(推荐):先装 crloader,再把压缩包解压到游戏目录(CONTROLResonant.exe 所在处),得到 crmods\CRModMenu\modsui.dll、模组界面运行时.js 和 crmodmenu.menu.json。
B. 不用加载器(仅在无法使用 crloader 时):把压缩包里 crmods\CRModMenu 下 modsui.dll、modsui.runtime.js 和 crmodmenu.menu.json 复制到游戏目录(CONTROLResonant.exe 旁边),再把 modsui.dll 改名 dwmapi.dll;模组界面运行时脚本 保持原名。方式 B 的已知限制:1.3.0 之前的版本在 Windows 11 23H2 及更早的系统(很可能包括 Windows 10)上启动即崩溃,1.3.0 已修复,但方式 B 只在最新的 Windows 11 上实测过,游戏启动不了请改用方式 A;dwmapi.dll 这个名字只能有一个,游戏目录里已经有其他 MOD 的 dwmapi.dll 时请用方式 A;Linux / Steam Deck(Proton)用户还需要在 Steam 启动选项里加上 WINEDLLOVERRIDES="dwmapi=n,b" %command%。
更新时直接替换文件即可,各 MOD 的设置、展开状态以及自己设置的顺序都会保留。 兼容性:已与 地图融合、游戏内拍照模式、武器轮盘、口袋混音带播放器、Better Camera、WeaponSwitch、CombatMultipliers、OptiScaler(dxgi.dll)一起测试。菜单会等待需要最先挂上界面的 MOD(例如 CombatMultipliers)装好后再接在它后面,所以不管加载顺序如何,这些 MOD 自己的选项页都能正常工作。使用按键选项的 MOD 需要菜单 1.2.0 或更新版本,使用分区小标题的需要 1.3.0 或更新版本,使用一行多个下拉框的需要 1.6.0 或更新版本,行里放改键框的需要 1.6.1 或更新版本;旧版菜单会跳过这类 MOD 的全部设置,MODS 页底部会写明原因。 卸载:方式 A 删除 模组菜单 文件夹;方式 B 删除游戏目录下的 dwmapi.dll、modsui.runtime.js、crmodmenu.menu.json、模组界面.log 和 模组界面状态初始化文件,以及 模组菜单配置 文件夹里的 crmodmenu.ini。 排查:没有 MODS 页时,先确认装了至少一个支持本菜单的 MOD,没有的话 MODS 页不会出现。然后查看 模组界面日志(方式 A 在 crmods\CRModMenu方式 B 在游戏目录);完全没有日志说明 DLL 没被加载。方式 A 还可以看游戏目录下的 crloader.log。某个 MOD 的分区不见了:看 MODS 页底部,有错误的设置文件会列在那里并写明原因。标题显示“未加载”:找到了该 MOD 的设置文件,但它的 DLL 没有运行,请检查该 MOD 的安装。游戏启动不了或马上关闭时,请发送 模组界面日志 和 crloader.log:日志的每一步都带时间,如果最后一行以“Fault ... inside CRModMenu”开头,说明是菜单崩溃;没有这一行,说明是别的原因让游戏停止了。