セーブ時に確定でCTDするようになってしまいました。
本記事の不具合はFROST Plus 0.5.2で修正されました。
クラッシュの詳細
Buffout 4のクラッシュダンプに以下の内容がありました。
[RSP+80 ] 0x2CBED0ABB00 (TESLevItem*) File: "RedsFrostFixes.esp" Flags: 0x00000009 Form ID: 0x0006738B Form Type: 56
TESLevItemとあるのでLeveledItemのことだと思われます。
Form IDが0x0006738BとなっているのでFallout4.esmで定義されているLeveledItemのようです。
これは弾薬をルートアイテムに追加するためのLeveltedItemでした。
調べていくと、どうやらLeveledItemに大量のエントリが追加されてしまうと、セーブ時にCTDするようです。
なぜCTDするのか
CKでは一定以上のエントリを詰め込むと、プラグインを保存しても正常に保存されないようです。そもそもCKで許容範囲を超えるエントリを詰め込めるなら、初回のセーブ時からCTDするはずです。
スクリプトでもゲーム内で動的にLeveledItemにエントリを足していけるので、それでオーバーフローを起こしていると考えられます。
対策
Resaverで6738Bを検索して、これをプロパティに持つスクリプトを特定できました。FROST Plusのゲーム起動時に走るスクリプトの不具合で、本来であれば1度だけ実行するべき処理が、毎回走り続けてしまうというものでした。ですのでゲームをロードする回数がしきい値を超えるとCTDするようになる、ということです。
スクリプトを根本的に修正するのはもちろんのこと、当該LeveledItemは度重なるAddFormで追加されまくった状態なので、Revertを実行して初期化することで、正常にセーブできるようになります。