工具與模組
一名北歐工匠在工坊工作臺上,將發光的符文石裝入青銅機械裝置

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。主選單右下角會顯示「您正在遊玩模組版本的《Valheim》。」,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。

與其他人一起玩時,任何會修改世界的模組都需要伺服器和其他玩家使用相同版本,無論各自用什麼電腦。