nobugs

版本 v1.0.0·更新於 2026-08-15

Removes bugs

模組介紹 作者原文

PEAK NoBugs

一個用於遊戲 PEAK 的 BepInEx 5 插件,移除關卡中所有的昆蟲(蜘蛛、蠍子、甲蟲、蜂羣、蟻獅),讓有昆蟲恐懼症的玩家可以安心遊玩。

只針對"昆蟲"生效。殭屍、渡鴉、雪人、水母等非昆蟲的環境 Hazard 不在本插件範圍內(遊戲本身已自帶對應開關)。

支持的昆蟲

| 昆蟲 | 默認 | 說明 |

|---|---|---|

| 蜘蛛 Spider | 移除 | 不再從天花板垂降並抓住玩家 |

| 蠍子 Scorpion | 移除 | 不再中毒 / 擊退 |

| 甲蟲 Beetle | 移除 | 不再把玩家頂飛 |

| 蜂羣 BeeSwarm | 移除 | 蜂巢不再孵化蜂羣(從源頭阻止生成) |

| 蟻獅 Antlion | 移除 | 沙坑不再吞噬玩家 |

| 青蛙舌 FrogTongue | 保留 | 兩棲類,不算昆蟲,默認不移除 |

每種昆蟲都能在配置文件裏單獨開關。

安裝

前置條件:遊戲目錄已安裝 BepInEx 5(本項目基於 5.4.23 編譯)。

  • 編譯本項目(見下方"構建"),得到 bin/Debug/netstandard2.1/nobugs.dll。
  • 將 nobugs.dll 複製到遊戲的插件目錄:

/steamapps/common/PEAK/BepInEx/plugins/nobugs.dll

  • 啓動遊戲,日誌中應出現:

[Info: nobugs] PEAK NoBugs v1.0.0 已加載,昆蟲清理已啓用。

配置

配置文件在 /BepInEx/config/nobugs.cfg,可隨時修改後重啓遊戲生效:

[Bugs]

是否移除蜘蛛

RemoveSpiders = true

是否移除蠍子

RemoveScorpions = true

是否移除甲蟲

RemoveBeetles = true

是否移除蜂羣

RemoveBees = true

是否移除蟻獅

RemoveAntlions = true

是否移除青蛙舌(非昆蟲,默認關閉)

RemoveFrogTongues = false

[General]

true = 直接銷燬蟲子對象(更徹底);false = 僅隱藏並禁用其行爲(聯機更安全)

DestroyObjects = true

實現原理

通過 Harmony 在昆蟲各自的生命週期入口打補丁。具體針對遊戲的反編譯分析(見 agent.md):

  • Spider.Start / Spider.Scan / SpiderTrigger.OnTriggerEnter

—— 阻止蜘蛛向 SpiderManager 註冊並阻斷垂降抓人;

  • Mob.Start(Postfix,運行時按類型判斷) —— 移除 Scorpion / Beetle / FrogTongue(三者都繼承 Mob,但並未重寫 Start);
  • Scorpion.InflictAttack / Beetle.InflictAttack —— 雙保險,即使對象殘留也不會造成傷害;
  • Beehive.Init —— 將 spawnBees 置爲 false,從源頭阻止聯網生成蜂羣(比事後銷燬更乾淨,避免多餘 Photon 網絡對象);
  • BeeSwarm.Start —— 移除已存在於場景 / 存檔中的蜂羣;
  • Antlion.Start —— 移除蟻獅。

每個目標都採用"阻止生成 + 阻斷傷害"的雙重保險,規避加載順序差異。

爲什麼不能只改遊戲自帶的 Hazard 開關

RunSettings 裏雖然定義了 Hazard_Spiders / Hazard_Beetles / Hazard_Scorpions / Hazard_Bees,但經逆向分析確認,這些枚舉值除了註冊默認值以外,從未被任何昆蟲代碼讀取;只有 Antlion 和 FrogTongue 真正自檢了開關。遊戲自帶的 "Bug Phobia"(昆蟲恐懼症)模式也只是把蟲子模型換成其他造型,行爲傷害依舊存在。因此必須用補丁才能真正移除。

聯機注意事項

蟲子的生成與狀態由房主(MasterClient)主導:

  • 若僅客戶端安裝本插件,本地蟲子會被銷燬,但可能與房主狀態不一致;
  • 建議房主也安裝,或把 DestroyObjects 設爲 false(改爲僅隱藏並禁用),以降低聯機不同步的風險。

構建

需要.NET SDK 與遊戲程序集(位於項目 lib/ 目錄,已從遊戲安裝目錄 PEAK_Data/Managed 提取):

dotnet build

輸出:bin/Debug/netstandard2.1/nobugs.dll

編譯期依賴的 BepInEx.dll / 0Harmony.dll / Photon*.dll / Assembly-CSharp.dll 均來自 lib/,以保證與遊戲運行時版本一致。

lib/、dnSpy/、obj/、bin/、decompiled/ 已在.gitignore 中排除,不會進入倉庫。

目錄說明

| 路徑 | 說明 |

|---|---|

| Plugin.cs | 插件全部實現(入口 + Harmony 補丁) |

| nobugs.csproj | 項目文件,目標框架 netstandard2.1 |

| lib/ | 編譯引用用的遊戲 / BepInEx 程序集(不提交) |

| dnSpy/ | dnSpy 反編譯工具 |

| decompiled/ | dnSpy 反編譯出的參考源碼(不提交,不參與編譯) |

| agent.md | 逆向分析結論與實現細節(供開發者參考) |

安裝與使用 安裝:BepInEx 外掛

  1. 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
  2. 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
  3. 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
  4. 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。

帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。

前置依賴

下面這些內容需要先安裝,否則該模組不會生效:

BepInEx-BepInExPack_PEAK

檔案與校驗

檔案名稱
nobugs-1.0.0.zip
檔案大小
14.9 KiB