|
本文为 其乐用户(UID:1577765) 发布的原创文章,转摘前请联系该用户获得许可
本帖最后由 1577765 于 2026-10-1 00:25 编辑
导致报错的真正原因可能在于创意工坊抽风(昨天我已经取消所有mod订阅,但是mod的创建时间在今天早上),游戏内的mod订阅被我宁杀错不放过,但若遇到兼容问题,也可以用下面的步骤
报错现象通过 REDprelauncher 勾选"激活 Mods"启动时弹窗:
Error game\player\playerwitcher.ws(2434): syntax error, unexpected TOKEN_SET, expecting ')', near 'set'
不勾选能进游戏,但主菜单的 Mods(跨平台 Mod)按钮是灰色的。
根本原因
决定性原因:Steam 创意工坊 mod "No Weight Limit"(modNoweightlimit,工坊 ID 3253023537)被 Steam 自动更新,新版本自带坏脚本。
它的覆盖版 playerWitcher.ws 第 2434 行写了:
public function SetCannotUseUndyingSkill(set : bool) // 参数名用了保留字 set!勾选"激活 Mods"时,游戏会连同工坊 mod 的脚本一起编译,这份文件直接导致编译失败。
次要因素:游戏内 mod.io 订阅过 2 个 mod(FastTravelPack、MoreMoneyForTraders,后者还带一个与游戏版本不匹配的预编译脚本包),已一并清理。
有效修复步骤(按此顺序执行)- Steam 创意工坊退订坏 mod:Steam 库 → 巫师 3 → 创意工坊 → 我的订阅 → 取消订阅 "No Weight Limit"(不退订的话 Steam 会自动重新下载,删了也白删)
- 删除工坊 mod 本地文件:E:\SteamLibrary\steamapps\workshop\content\292030\<坏mod的ID>\ 整个文件夹
- 退订 mod.io 订阅:mod.io 网站个人页(或游戏主菜单的跨平台 Mod 页面)
- 删除 mod.io 本地文件:C:\Users\Public\mod.io\8254\mods\ 下对应的 mod 文件夹(注意:mod.io 的文件装在系统"公用"文件夹,不在游戏目录里,所以之前找不到)
- 重置 mod 启用配置:把 文档\The Witcher 3\modioModsConfig.json 改名为 modioModsConfig.json.bak
- (可选)删除编译缓存:E:\...\The Witcher 3\content\content0\x64.final.redscripts,强制游戏下次启动重新编译全部脚本
- 启动游戏。第一次启动会重新编译脚本,比平时慢属正常现象
排查避坑指南(这次踩过的坑)
- 报错里的 game\player\playerwitcher.ws 不一定是游戏本体的同名文件。工坊 mod / mods 文件夹里的同名脚本会参与编译并覆盖,报错路径却显示一模一样。本体的 content0\scripts 再干净也没用。
- content\content0\x64.final.redscripts 是"激活 Mods"启动时生成的编译缓存。脚本坏掉的那次启动会把报错固化进包里,之后每次启动直接读取,删其他任何缓存都没用。
- content\content0\cookedfinal.redscripts 是 Steam 自带的原版脚本包,被删后会随 Steam 文件校验自动恢复,与 mod 编译报错无关,不用管它。
- 昨天还能玩、今天突然报错 → 先怀疑 Steam 创意工坊自动更新了某个 mod(本次案例:凌晨还正常,早上 8:26 工坊推送了坏更新)。
- 快速定位真凶的搜索顺序:
- ① 游戏本体 content0\scripts(排除本体)
- ② steamapps\workshop\content\292030\
- ③ C:\Users\你的用户名\mod.io\8254\mods\
- 在三处分别搜报错里的文件名,对照报错行号看哪份文件在那一行真的有语法错误。
- 脚本报错的弹窗只会显示一条,修完一个可能冒出下一个,按同样方法逐个处理即可。
最后美美启动游戏,steam跳过登录器方法:
①右键游戏
②点击属性
③高级选项输入--launcher-skip
|