三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Scarab 排错指南:空洞骑士 Mod 装上就闪退,七步自查帮你从“秒退“到“秒进“

Scarab 排错指南:空洞骑士 Mod 装上就闪退,七步自查帮你从“秒退“到“秒进“

Scarab 排错指南:空洞骑士 Mod 装上就闪退,七步自查帮你从"秒退"到"秒进"

【免费下载链接】ScarabAn installer for Hollow Knight mods written with Avalonia.项目地址: https://gitcode.com/gh_mirrors/sc/Scarab

先讲一个"折腾一整晚"的故事:玩家小K周五晚上满怀期待地用 Scarab 装好了十几个热门 Mod,点下"开始游戏",屏幕黑了不到两秒,又弹回了桌面。他试了重装 Mod、重下 Scarab、关闭杀毒软件,折腾到凌晨两点,甚至一度怀疑自己该换电脑了。

第二天他在社区随口一问,被提醒了一句"你游戏版本对不上"。三分钟后,游戏跑起来了,Mod 全部生效。

这个故事想告诉你的第一件事是:Scarab 作为《空洞骑士》的 Mod 安装器,绝大多数时候是无辜的。闪退的真正根源,几乎都藏在"版本、依赖、路径"这三个容易被忽略的错位里。本文不打算堆砌原理,只给你一套能照着做的自查流程——从今天起,再遇到闪退,你可以在 15 分钟内定位并解决问题。

一句话结论:先看这张速查表

Mod 装完游戏崩溃,九成可以归为下面三种等级之一。请先对号入座,再翻到对应的章节动手:

故障等级典型表现主要嫌疑建议动作预计耗时
🟢 轻度能进主菜单,但部分 Mod 功能不生效依赖缺失、Mod 被禁用、更新没装检查依赖链与启停状态5 分钟
🟡 中度游戏能启动,但加载存档或特定场景闪退单个 Mod 冲突、Mod 版本过旧逐个启停、二分排查15 分钟
🔴 重度点了开始游戏就秒退,或连窗口都不出现版本错位、API 未装、核心文件损坏重装 API、核对版本、重建环境30 分钟

如果你急着先试一个动作,请直接跳到第三节的重度处理步骤——大多数"秒退"都栽在同一处。

第一步:对号入座——你的问题属于哪一类

症状是线索,先把症状认准,再谈修法。对照下面三张"症状卡",选出最贴近你的一条:

症状卡 A:点了启动就秒退,窗口都不给看

  • 点击"开始游戏"后,游戏进程闪现即消失
  • Steam 显示"正在运行",但桌面没有游戏窗口
  • 弹出错误框,内容含 "Assembly-CSharp" 字样

症状卡 B:能进主菜单,但 Mod 像没装一样

  • 标题界面左下角看不到任何 Mod 入口
  • Scarab 里明明显示"已安装",游戏却毫无反应
  • 某些 Mod 的选项菜单空白或点了没响应

症状卡 C:进得去,但玩着玩着就崩

  • 加载特定存档、特定地图时闪退
  • 只在开了某个新 Mod 之后才出现
  • 帧数骤降、贴图异常,随后崩溃

记下你勾中的卡号。接下来第二部分解释"为什么会这样",第三部分则按等级教你动手。

小结:症状是表象,等级是关键。秒退(C 卡之外的重度场景)和"功能不生效"是两种完全不同的病,别混着治。

第二座"看不见的山":多数崩溃其实与工具无关

根因可以浓缩成三句话,每句都配一个生活化的比喻:

版本错位:钥匙和锁不是一套的

Mod 是写给"某个版本的游戏"的,就像钥匙是照着"某一把锁"配的。游戏大版本更新后,内存布局和内部函数地址都会变,旧版 Mod 拿旧钥匙开新锁,自然插不进去。Scarab 在安装时也会记录游戏与 API 的版本匹配情况,如果版本对不上,界面上的依赖与状态标记会明显异常——而很多玩家选择"无视提示强行装",这正是闪退的第一来源。

依赖错位:一屋子人抢同一台遥控器

很多 Mod 之间是"搭积木"关系:基础框架(API)是地基,其他 Mod 是墙体。地基没装,墙当然立不住。反过来,两个 Mod 同时接管同一个功能,就像两个人同时按遥控器,画面必然乱套。Scarab 在卸载时其实内置了"反向依赖检查"(见Scarab/Services/ReverseDependencySearch.cs)——它会在你移除某个 Mod 前,先找出所有依赖它的其他 Mod 并提醒你。但如果你绕过工具、直接去删游戏目录里的 Mod 文件夹,这道保护就形同虚设了。

路径与权限错位:快递员找不到门牌

游戏装在了中文或带特殊字符的路径下、杀毒软件把 Mod 文件当病毒隔离、游戏目录没有写入权限——这些都会让 Mod 装了等于没装。Scarab 本身会按主流平台(Steam、GOG、Xbox)的常见目录自动查找游戏位置(相关逻辑见Scarab/Settings.cs),但如果你的游戏位置特殊,就需要手动指定,而这一步很多新手会跳过。

错误做法 ❌正确做法 ✅
无视版本不匹配提示,强行安装先把游戏和 API 更新到互相匹配的版本
直接拖文件进游戏目录"手动安装"让 Scarab 管理,保留依赖检查与状态记录
杀毒软件全程开着,隔离了也不管把游戏与 Mod 目录加入白名单
装了十几个 Mod 再统一测试装一个测一个,出问题立刻能定位

小结:三个"错位"里,版本错位最致命、依赖错位最常见、路径与权限最隐蔽。接下来按等级动手时,你会依次看到它们被逐一排除。

按故障分级动手:从最轻的开始

🟢 轻度:先做一次"全面体检"

  1. 刷新并核对状态:在 Scarab 中刷新 Mod 列表,确认每个 Mod 的"已安装/已启用"状态与你预期一致。工具会读取InstalledMods.json中的记录来还原状态,如果你手动挪动过文件,状态很可能已经"失真"。
  2. 检查更新标记:列表里出现"有更新"字样的 Mod,优先点更新。老版本 Mod 在游戏更新后常常是静默失效的元凶。
  3. 检查依赖链:展开每个 Mod 的依赖信息,确认它依赖的框架 Mod 均已安装且处于启用状态。缺一个,整个功能都可能不工作。
  4. 逐个启停验证:先全部禁用,确认游戏能正常跑;再逐个启用,每启用一个就进游戏看一次功能。五分钟内就能圈定"哪块积木是坏的"。

🟡 中度:给可疑 Mod 做"隔离审讯"

如果游戏能进、但特定场景闪退,说明骨架没问题,问题在某个具体 Mod 上:

  1. 先停用最近安装的那一批,从嫌疑最大的开始(比如刚更新过的、或功能重叠的两个 Mod)。
  2. 利用排除法折半查找:一次只禁用一半 Mod,进游戏测试;没问题就把另一半也禁用,逐步缩小范围。
  3. 检查冲突对:如果两个 Mod 都有"同屏人数调整"之类功能,先只保留一个。互斥功能同时开,就是"一屋子人抢遥控器"的现场版。
  4. 回退版本:把嫌疑 Mod 更新到更早或更新的稳定版本,再测试。

💡 小技巧:Scarab 的"禁用"是移花接木式的——它会把 Mod 文件夹整个移动到禁用目录,不会删任何文件(安装 API 时还会把原版程序集备份成Assembly-CSharp.dll.v)。所以放心大胆地启停、切换,随时可以反悔。

🔴 重度:重建环境的"三步急救"

面对"秒退"级别的故障,别慌,按顺序做:

急救第 1 步:核对游戏与 API 版本是否匹配

  • 在 Steam/GOG 中确认《空洞骑士》已更新到当前最新版本,并做一次"验证文件完整性"。
  • 打开 Scarab,查看 API 的安装状态与版本。API 与游戏版本不配套是"秒退"的头号原因。

急救第 2 步:彻底重建 API 与核心文件

  • 在 Scarab 中先"禁用 API",再"重新安装 API"(安装时选择强制重装)。
  • 这样会重新写入 Mod 核心程序集,并把游戏核心文件恢复/备份到正确状态。
  • 如果安装时报"校验失败(SHA256 不匹配)",说明下载的文件损坏——重试一次,必要时检查网络代理设置。

急救第 3 步:重置目录与权限,再逐批恢复

  • 确认游戏目录和 Mod 目录的写入权限完整;把两者加入杀毒软件白名单。
  • 在 Scarab 的设置中核对"游戏路径(Managed 目录)"是否正确指向游戏本体。
  • 全部禁用后启动一次游戏确认"裸机可玩",再按前面"装一个测一个"的节奏分批恢复。

小结:轻度靠体检,中度靠隔离,重度靠重建。无论哪一级,最后都要回到"装一个测一个"这条铁律上。

让问题不再回来的"养护手册"

修好只是开始,下面这张清单能帮你把闪退挡在门外:

每次安装前(30 秒)

  • 游戏版本已是最新,且与 API 版本匹配
  • 杀毒软件已将游戏目录加入白名单
  • 磁盘剩余空间 ≥ 2GB
  • 提前备份Mods目录与游戏存档

日常使用(养成习惯)

  • 优先用 Scarab 的"更新"按钮升级 Mod,而不是手动覆盖文件
  • 新 Mod 装完立刻进游戏验证,不攒批
  • 遇到"有更新"标记就处理,别让版本越拖越旧
  • 卸载 Mod 用工具内的卸载入口,别直接删文件夹(否则会绕过反向依赖检查)

出问题之后(复盘)

  • 记录是哪一次操作后开始异常的
  • 记下闪退前最后一次安装/启用的 Mod 名称
  • 需要求助时,附上游戏版本、API 版本与操作步骤——这是社区排错最快的方式

小结:养护的核心只有一句——让 Scarab 替你管理,让"装一个测一个"成为肌肉记忆。

常见疑问快答

Q1:游戏更新后,所有 Mod 一夜之间全失效了?正常现象。游戏大版本更新会破坏旧 Mod 的兼容性。此时别急着强装,先把 API 更新到与新版游戏匹配的版本,再逐个更新 Mod,等作者适配即可。

Q2:Scarab 明明显示"安装成功",游戏里却没有 Mod?按这个顺序查:游戏路径是否指错 → Mod 是否处于启用状态 → 是否被依赖缺失拖累 → 杀毒软件是否隔离了文件 → 最后重装一遍 API。

Q3:如何判断是哪个 Mod 在捣乱?排除法:全部禁用 → 游戏正常 → 逐个启用并进游戏测试 → 出现闪退的那个就是嫌疑人。一半一半地折半查找能更快。

Q4:安装时报文件校验失败,是怎么回事?Scarab 会校验下载文件的 SHA256 值(见Scarab/Services/Installer.cs中的HashMismatchException),校验不过就拒绝安装——这是防坏文件的保护机制,不是故障。清一下网络缓存、换个网络环境再重试即可。

Q5:Scarab 自己打不开/闪退了,怎么办?先删除残留配置文件(HKInstallerSettings.jsonInstalledMods.json所在的应用数据目录),再重新解压运行最新版。注意配置删除后安装状态会重置,建议先备份Mods文件夹。

Q6:换个电脑/平台(比如从 Windows 换到 Linux)后问题不断?Scarab 检测到平台变化后,会自动重新安装 API 和带平台专用资源的 Mod(相关逻辑在Scarab/Services/Installer.csHandlePlatformChange中)。如果异常,直接手动执行一次"强制重装 API"即可。

想刨根问底?源码里藏着的"体检报告"

如果你对"为什么"感兴趣,Scarab 的源码结构非常清晰,按图索骥即可:

  • 安装与 API 管理核心:Scarab/Services/Installer.cs(含 SHA256 校验、原版程序集备份、API 启停)
  • 卸载前的依赖保护:Scarab/Services/ReverseDependencySearch.cs
  • 安装状态记录与自愈:Scarab/Services/InstalledMods.cs(JSON 损坏时会尝试自动恢复已装 Mod)
  • 游戏目录自动探测:Scarab/Settings.cs(覆盖 Steam/GOG/Xbox 及三大平台常见路径)
  • 版本与状态显示逻辑:Scarab/Models/ModState.cs、Scarab/Converters/ModStateConverters.cs

阅读时你多半会发现:很多"防呆设计"(版本检查、哈希校验、依赖保护)一直都在,只是平时被忽略了。

最后:现在就去动手

回到开头那个故事——小K的教训其实只有一条:动手排查前,先确认"版本这套钥匙和锁"是对得上的

现在,请打开 Scarab 并对照这张"收官清单":

  • 游戏与 API 版本匹配
  • 所有 Mod 均通过工具安装,未手动改过目录
  • 杀毒白名单已配置,目录权限正常
  • 新装的 Mod 已逐个验证过游戏可运行
  • 关键文件(存档、Mods 目录)已备份

花十分钟走完这套流程,你大概率能找回那个"装完就能玩"的 Scarab 初体验。如果你在排查中遇到了清单外的奇怪现象——欢迎在评论区聊聊你的经历,或者带上"游戏版本 + API 版本 + 操作步骤"到项目仓库提 issue。一个好问题,往往就是下一篇排错指南的开头。

【免费下载链接】ScarabAn installer for Hollow Knight mods written with Avalonia.项目地址: https://gitcode.com/gh_mirrors/sc/Scarab

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表