工具与模组
一名北欧工匠在工坊工作台上,将发光的符文石装入青铜机械装置

Valheim 1.0.16

如何在 Mac 安装 Valheim 模组:Apple Silicon 原生运行,无需 Rosetta

Valheim 可以在 Apple Silicon Mac 上原生运行,模组也可以。Windows 玩家使用的模组管理器无法在 macOS 上运行,因此在 Mac 上需要手动安装一次模组加载器,为 Valheim 设置一项 Steam 启动选项,然后把各模组放入文件夹。此后照常从 Steam 启动 Valheim,就会加载你添加的所有模组。

Mac 上已加载模组的 Valheim 主菜单,右下角显示正在游玩模组版本的提示

哪些模组管理器可以在 Mac 上使用?

常见的管理器都不支持。

模组管理器支持系统
r2modmanWindows、Linux
GaleWindows、Linux
Thunderstore Mod ManagerWindows
Vortex(Nexus Mods)Windows

模组本身在各系统上使用相同的文件,所以 Mac 可以使用 Windows 玩家下载的同一份文件。大多数 Valheim 模组发布在 Thunderstore,每个模组页面都有 Download 按钮,提供与管理器安装时相同的 zip。Nexus Mods 和 CurseForge 也有 Valheim 模组,它们的文件放进同样的文件夹。

为什么通常的 BepInEx 无法在 Apple Silicon 上工作?

Valheim 模组通过 BepInEx 模组加载器运行。每个模组管理器都会安装的 BepInEx Pack Valheim 只带有适用于 Intel 处理器的 Mac 库。官方 BepInEx 5.4.23.5 能在 M 系列 Mac 上加载,却会在加载任何模组之前停止:macOS 不允许它像 Windows 那样修改内存中的游戏代码。用 Rosetta 运行 Valheim 可以绕过问题,但会损失速度。

BepInEx 此后已在源代码和启动时使用的加载库中修复了问题,但这两项修复尚未进入常规发行版。下面的包由这些源代码构建,带有修复后的加载库,并已针对 Valheim 配置,可以在 Apple Silicon 上运行而无需 Rosetta。

如何在 Mac 上为 Valheim 安装 BepInEx?

  1. 退出 Valheim。
  2. 下载 BepInEx_macos_valheim_5.4.23.5-01fd4aa.zip。其 SHA-256 校验和列在 SHA256SUMS.txt 中。
  3. 打开终端,将它解压到 Valheim 文件夹:
cd "$HOME/Library/Application Support/Steam/steamapps/common/Valheim"
unzip -o ~/Downloads/BepInEx_macos_valheim_5.4.23.5-01fd4aa.zip
  1. 在同一终端窗口中输出适用于这台 Mac 的启动选项,并复制输出的那一行:
echo "\"$PWD/run_bepinex.sh\" %command%"
  1. 在 Steam 库中右键点击 Valheim,选择属性,将这一行粘贴到“通用”页的启动选项中。
  2. 从 Steam 启动 Valheim。主菜单右下角会显示“你正在mod版本下游玩英灵神殿。”,Valheim 文件夹中会出现加载器日志 BepInEx/LogOutput.log。
已加载模组的 Valheim 主菜单右下角,游戏版本 1.0.16 上方显示模组版本提示

如果 Steam 库在另一个驱动器上,请改为从 Steam 打开 Valheim 文件夹:右键点击 Valheim,然后依次选择管理、浏览本地文件。在打开的 Finder 窗口中按 ⌘↑ 返回上一级,再将 Valheim 文件夹拖到 Dock 中的终端图标上。终端会在该文件夹打开;从 unzip 那一行继续,不用执行 cd 那一行。

不用终端也可以:打开 zip,得到一个同名文件夹,再把其中的内容移入 Valheim 文件夹,放在 valheim.app 旁。然后自行输入启动选项:用双引号括起 run_bepinex.sh 的完整路径,后面加上 %command%。在默认 Steam 库中,路径以 /Users/ 和你的用户名开头;这里不能用 ~。

安装后,Valheim 文件夹中包含:

文件或文件夹用途
valheim.app游戏本体,未作修改
run_bepinex.sh带加载器启动 Valheim;Steam 通过启动选项运行它
libdoorstop.dylib脚本交给游戏的加载库
BepInEx/coreBepInEx 本体
BepInEx/plugins你的模组
BepInEx/configBepInEx 和各模组的设置,首次启动时写入

如何添加模组?

  1. 下载模组。在 Thunderstore 的模组页面点击 Download。
  2. 打开 zip。Thunderstore 的 zip 包含 manifest.json、README.md、icon.png 和模组自身的文件。
  3. 在 BepInEx/plugins 中为模组新建文件夹,例如 BepInEx/plugins/ValheimModding-Jotunn,然后将 zip 的内容移入。如果 zip 内有 plugins 文件夹,则移入该文件夹里面的内容。zip 中的 config 文件夹放入 BepInEx/config。
  4. 安装模组的依赖。Thunderstore 页面会列出其依赖的模组,按同样的方法逐一添加。跳过 BepInEx Pack Valheim:上面的包已替代它。
  5. 启动 Valheim。BepInEx/LogOutput.log 会列出每个已加载的模组,每个模组对应一行 Loading [...]。

以下模组已使用此包在 Apple Silicon Mac 上原生加载:Jotunn、VNEI、YamlDotNet、Zen.ModLib、ZenSign、PlantEasily、Valheim Configuration Manager、Runic Clock、Auto Stash、LiveExperienceTracker、Remember Server Password、Craft Me Once 和 Live Seed Map。

带模组启动过 Valheim 后,该模组的设置会保存在 BepInEx/config 中,以模组名称命名的 .cfg 文件内。

如何不使用模组游玩?

清空 Steam 启动选项,Valheim 就会在不加载 BepInEx 的情况下启动;文件仍留在原处,供下次使用。要移除一个模组,删除 BepInEx/plugins 中对应的文件夹即可。

示例:安装 Live Seed Map 模组

Live Seed Map会在种子地图上显示正在运行的游戏:你的位置、周围生物、标记和传送门,还能将地图上的任意地点标记到游戏中。

  1. 下载 LiveSeedMap-1.4.0.zip。
  2. 将其解压到 Valheim 文件夹。这个 zip 已按 BepInEx 的目录结构组织,所以模组会放入 BepInEx/plugins/LiveSeedMap:
cd "$HOME/Library/Application Support/Steam/steamapps/common/Valheim"
unzip -o ~/Downloads/LiveSeedMap-1.4.0.zip
  1. 从 Steam 启动 Valheim。BepInEx/LogOutput.log 中现在会有 Loading [Live Seed Map 1.4.0] 和 Listening on http://127.0.0.1:45892 两行。
  2. 加载世界或加入服务器。
  3. 在 Chrome 或 Edge 中打开种子地图,点击 连接游戏。浏览器询问页面是否可以访问此设备上的应用时,请允许。
  4. 如果地图显示不同的种子,点击 打开它的地图。
种子地图跟随玩家,周围生物以战利品图案显示在红色、蓝色和浅色圆圈上,并在“你的游戏”面板中按距离排列

模组的全部显示内容、功能与设置均见 Live Seed Map 指南。

模组没有加载怎么办?

  • 主菜单没有“模组版本”提示,也没有 LogOutput.log:检查启动选项。必须是用双引号括起的 run_bepinex.sh 完整路径,再加上 %command%。
  • run_bepinex.sh 旁或 valheim.app/Contents/MacOS 内出现名称为 preloader_ 加日期、以 .log 结尾的文件:BepInEx 在加载模组前就停止了。官方 5.4.23.5 和 BepInEx Pack Valheim 的 BepInEx 文件在 Apple Silicon 上会这样。再次用上面的包覆盖解压,并删除 valheim.app 内的日志:该应用带有签名,在内部添加文件会破坏签名。
  • LogOutput.log 中出现 Could not load [...] because it has missing dependencies:安装该行列出的模组。
  • 某个模组在游戏中表现异常:模组自己的消息在 BepInEx/LogOutput.log,游戏消息则在 ~/Library/Logs/IronGate/Valheim/Player.log。

与其他人一起玩时,任何会修改世界的模组都需要服务器和其他玩家使用相同版本,无论各自用什么电脑。