症状診断表:ウィッチャー3 スクリプトコンパイルエラーの原因と対策
ウィッチャー3 は Redscript(.ws ファイル)で動作しており、複数の MOD が同一のスクリプト(playerInput.ws 等)を書き換えると起動時にコンパイルエラーが発生します。
| エラーメッセージ | 原因 | 難易度 | 対処法 |
|---|---|---|---|
| unexpected symbol near... | マージ時の括弧閉じ忘れ・構文破壊 | 高 | KDiff3 で手動差分確認、括弧を修正 |
| Function redefined | 同一関数名の多重定義競合 | 中 | 重複する関数定義の一方をコメントアウト |
| Type mismatch / Class not recognized | 次世代版(v4.04)と旧版(v1.32)の混在 | 深刻 | MOD を適切なバージョンのものへ差し替え |
KDiff3 による三者マージの基本原則
- ペイン A: バニラ(未変更)のコード。
- ペイン B / C: 各 MOD による変更箇所。
- 変数定義の重複: 両方の MOD が追加した変数は、出力側に両方とも残す必要があります。
- スコープの確認: 関数の末尾にある
}の閉じ忘れがないか確認します。
// MergedFiles の存在確認スクリプト
$Path = "C:\Games\The Witcher 3 Wild Hunt\mods\mod0000_MergedFiles"
if (Test-Path $Path) { Write-Host "マージファイル確認" -ForegroundColor Green }
mods.settingsでmod0000_MergedFilesのPriority=1を指定します。- MOD の追加・削除時は、必ず古いマージを破棄して再マージを行ってください。