ビーセイプレイヤーのみんなへ、ニッチなクリスマスプレゼント

これは Beat Saber Advent Calendar 2023 - 24日目の記事です。

また、今後追加されていく(であろう)プレゼントのおまとめ記事です。気付くとしれっと更新されているかもしれません。
これからもプレゼントをもらえる良い子でいてくださいね!

クリスマスプレゼント第一弾!

Beat Saber 1.29.1用 Mod「ConfigLimitFixer」

初版:2023年12月24日(日) 午前104時25分

Mod 入れスギィ!

ビーセイにMod入れすぎ同好会のみなさん、おはようございました!

たくさんの Mod をインストールした時、ビーセイやModが正常に動作しない、または、下記のようなエラーログを見かけることはありませんか?
僕はあります。とても悲しい。

[ERROR @ 07:17:06 | IPA/Config] System.NotSupportedException: The number of WaitHandles must be less than or equal to 64.
[ERROR @ 07:17:06 | IPA/Config]   at System.Threading.WaitHandle.WaitAny (System.Threading.WaitHandle[] waitHandles, System.Int32 millisecondsTimeout, System.Boolean exitContext) [0x00038] in <eae584ce26bc40229c1b1aa476bfa589>:0 
[ERROR @ 07:17:06 | IPA/Config]   at System.Threading.WaitHandle.WaitAny (System.Threading.WaitHandle[] waitHandles) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0 
[ERROR @ 07:17:06 | IPA/Config]   at IPA.Config.ConfigRuntime.SaveThread () [0x00065] in <85e5e5773585418d89fcc2712ee48bcc>:0 

話すと長くなってしまうのですが、Beat Saber の Mod 環境の基板となる BSIPA は実装上の都合により「BSIPA の提供する設定管理機能」を利用する Mod が64個を超えると、その設定管理機能が正常に動作しなくなってしまします。

これは何をするMod?

今回公開したこの Mod は、この制約をなくし、多量の Mod 導入による同問題を解決する物です。事実上、無尽蔵の Mod がイスントール されても同様のエラー及び事象が発生することはなくなります。たぶん。

補足

  •  Plugins フォルダ配下にある全てのアセンブリ (.dllファイル)・Mod がこの設定管理機能を利用しているわけではありません。

  • 作者は109個のアセンブリと、そのうち同設定管理機能を利用する 83 個の Mod 導入下で正常動作を確認しています。

ダウンロードはこちらからどうぞ。

導入方法

  1. 上記リンクから最新版の zip ファイルをダウンロードする

  2. ダウンロードした zip を解凍して、現れた ConfigLimitFixer.dll を Beat Saber の Plugins フォルダへコピーする

以上!!
それまで Mod 大杉不具合で利用できなかった量の Mod をインストールし、Beat Saber を起動して正常に動作するようになれば成功です。

諸注意

  • Readme 的なものはありません。設定画面も設定項目もありません。上記の通りこの Mod を導入しておくだけで上述の問題を解決する、もしくは今後 Mod が増える場合を考えれば予防的に働きます。

  • 公開前、既に手元で一年程度常用しています

    • なので多分大きなエラーはおきないはず…おきないで…

  • 不具合報告や機能の要望などはありがたく頂戴いたしますが、その修正が行われる保証はありません。

  • めっちゃ汚いコードだったのである程度直してからの公開を考えていましたが、予想以上にオーバーエンジニアリングしてしまいそうでしたので、最小限の変更とテストの追加のみを行って公開しました。

    • 今後のアップデートなどは、まずこのコード整理から行っていくことになるかと思います。

免責

  • ダウンロード・導入・およびその使用などは全て利用者の自己責任において行ってください。

  • 本プラグインを導入することで被ったいかなる不利益についても、その責任及び補償などの責務を一切負いません。本プラグインを導入することでこれに同意したと見なします。

    • Beat Saber のプレイ環境が壊れる、ゲームの動作不安定になる、などの事象が発生した場合なども同様です。


クリスマスプレゼント第二弾!(とそれ以降)

2023年12月 24日 午前150時までには書きたい。書きたい意思はあります。
あるんです。

この記事が気に入ったらサポートをしてみませんか?