BetterStructures FAQ
初回の Nightbreak リンク、パッケージのダウンロード、手動インポートに関する質問であれば、まず共通の Global ページをご覧ください。この FAQ には BetterStructures 固有の回答のみを掲載しています。
構造物が現れないのはなぜですか?
最も多い原因は、BetterStructures を導入する前にすでに探索済みだった地形でテストしていることです。
BetterStructures は未探索の地形に生成されるよう設計されているため、古いチャンクを遡って埋めることはありません。自然生成をすぐに確認したい場合は、
- 未探索のチャンクへ飛んでいく
- 新しいテストワールドを生成する
- あるいは自然生成を待つ代わりに設置・セットアップ用コマンドを使う
リロード後にBetterStructuresが自分自身を無効化したのはなぜですか?
/bs reload は、ワーカースレッドが再構築を行う前に、すべてのコンテンツレジストリをクリアします。その再構築が例外をスローした場合、そのまま続行すると、有効に見えるのにコンテンツが不完全または空のプラグインが残ってしまいます。そのためBetterStructuresは意図的にフェイルクローズし、自身を無効化します。
実際のエラーは、無効化の直前にコンソールへ出力されます。そこで示された設定やスキマティックを修正してから、サーバーを再起動してください。
リロード中にコマンドが拒否されるのはなぜですか?
/bs place、/bs lootify、/bs pregenerate、/bs generateModules はいずれも、リロードのワーカーが保持しているコンテンツレジストリを読み書きするため、その間は「content is reloading」のメッセージとともに拒否されます。この間、新しく生成されたチャンクもスキップされます。リロードの成功が報告されるのを待ってから、再度実行してください。
リロード中にもう一度 /bs reload を実行しても失敗はしません — リクエストはキューに入り、最初のリロードが終わった後にもう1回完全なリロードが走るため、リロード中に加えたファイルの変更もきちんと拾われます。
新しい構造物についての管理者向け警告を止めるには?
BetterStructures は config.yml に warnAdminsAboutNewBuildings トグルを持っており、/betterstructures silent でその値を切り替えられます。
事前生成や、その他の管理者向けの集中的なテスト中など、警告がうるさくなる場面で便利です。
setupDone とは何ですか?
setupDone は、BetterStructures の初回セットアップフローが完了したかどうかを記録します。
falseはセットアップフローがまだ未完了とみなされていることを意味しますtrueはセットアップフローがすでに完了していることを意味します
意図的にセットアップをやり直したい場合は、setupDone: false に設定してプラグインをリロードし、再度 /bs initialize を実行してください。
BetterStructures には WorldEdit が必要ですか?
はい。WorldEdit は plugin.yml 上のハード依存関係であるため、BetterStructures は WorldEdit なしでは動作しない想定です。
WorldGuard 連携はどのように機能しますか?
WorldGuard と EliteMobs の両方がインストールされている場合、BetterStructures は保護エリア用に betterstructures-protect フラグを登録して使用します。WorldGuard による保護が有効になるには、両方のプラグインが存在している必要があります。
関連する設定トグルは次のとおりです。
protectEliteMobsRegions: true
対応コンテンツに対する BetterStructures 管理下の WorldGuard 保護が不要な場合は false に設定してください。
保護エリア内でブロックの破壊・設置を試みたプレイヤーに表示されるメッセージも設定可能です。
regionProtectedMessage: "&8[BetterStructures] &cDefeat the zone's bosses to edit blocks!"
BetterStructures のトレジャーにカスタムアイテムを追加できますか?
はい。BetterStructures には次のコマンドがあります。
/betterstructures lootify <generator> <rarity> <minAmount> <maxAmount> <weight>
登録したいアイテムを手に持った状態で実行してください。このコマンドは、手に持っているアイテムを選択したトレジャージェネレーターのエントリーに書き込みます。
コマンドの実装における現在のバリデーションルールは次のとおりです。
- トレジャージェネレーターが存在していること
- そのレアリティがトレジャー設定内にすでに存在していること
minAmountは最低でも1であることmaxAmountは最大でも64であること- 手に持っているアイテムが空気でないこと
BetterStructures は MMOItems のトレジャーエントリーに対応していますか?
はい。BetterStructures はプロジェクト内で MMOItems をサポートしており、既存のトレジャーのワークフローはサードパーティ製アイテムに対応しています。MMOItems 固有の構文については、古い FAQ のスニペットに頼らず、トレジャーファイル内の設定例を現在のトレジャーページのドキュメントに合わせて維持してください。
EliteMobs と BetterStructures はどのように連携しますか?
BetterStructures は EliteMobs とソフト連携しています。
大まかに言うと、
- BetterStructures は生成した構造物の内部に EliteMobs のコンテンツマーカーを設置できます
- 連携が有効な場合、BetterStructures は EliteMobs によるコンテンツにとって重要な保護エリアも管理できます
共通のセットアップフロー、トークンのリンク、公式パッケージのライフサイクルについては、この FAQ を一次情報として扱うのではなく、Global ドキュメントと BetterStructures のセットアップ/コンテンツページを参照してください。
ワールドをより安全に事前生成できますか?
はい。BetterStructures は config.yml にパフォーマンス重視の事前生成設定を用意しています。たとえば、
percentageOfTickUsedForPregeneration(デフォルト:0.1)- 各サーバーティックのうちチャンク事前生成に使う割合pregenerationTPSPauseThreshold(デフォルト:12.0)- 事前生成を一時停止する TPS のしきい値pregenerationTPSResumeThreshold(デフォルト:14.0)- 事前生成を再開する TPS のしきい値
通常の構造物の貼り付けについては、主なペース調整の設定は次のとおりです。
percentageOfTickUsedForPasting: 0.2
値を小さくするとティックあたりの負荷は下がりますが、構造物の貼り付けは遅くなります。
構造物の位置はどのように決まりますか?
BetterStructures は、構造物タイプごとの間隔とランダムオフセットの制御を config.yml に保持しています。完全なリファレンスは設定を参照してください。
各構造物タイプは、それぞれ専用のシード付きダイヤモンドグリッド上に配置されます。distance と offset の値はブロックではなくチャンク単位で計測されます — distanceSurface が 27 であれば、おおよそ27チャンクごとに1つの地表構造物、つまり約432ブロックごとということになります。
主な距離の設定は次のとおりです。
distanceSurface(デフォルト:27)distanceShallow(デフォルト:22)distanceDeep(デフォルト:22)distanceSky(デフォルト:90)distanceLiquid(デフォルト:60)distanceDungeonV2(デフォルト:80)
関連するオフセットの設定は次のとおりです。
maxOffsetSurface(デフォルト:5)maxOffsetShallow(デフォルト:5)maxOffsetDeep(デフォルト:5)maxOffsetSky(デフォルト:5)maxOffsetLiquid(デフォルト:5)maxOffsetDungeonV2(デフォルト:18)
距離は最低でも 1 である必要があります。オフセットは 0 から 1073741823(配置のランダマイザーが安全に扱える最大値)の間でなければなりません。値が有効範囲外の場合、BetterStructures は警告をログに出し、そのキーのデフォルト値を config.yml に書き戻し、生成を失敗させる代わりにデフォルト値で続行します。
実際のところ、これは生成が再起動のたびにランダムに入れ替わるのではなく、シードと設定に基づいて決まることを意味します。
modularChunkPastingSpeed は何をしますか?
現時点では何もしません。modularChunkPastingSpeed(デフォルト: 10)は今も config.yml に書き出されますが、プラグイン内のどこからも読み取られていないため、変更しても効果はありません。貼り付けのペースは代わりに percentageOfTickUsedForPasting によって決まります。BetterStructures が各ティックのどれだけをブロック配置に費やすかを調整したい場合は、そちらのキーを使用してください。
spawnProtectionRadius は何をしますか?
spawnProtectionRadius(デフォルト: 100)は、ワールド座標 0, 0 からの最小距離(ブロック単位)を定義し、その範囲内には構造物が設置されません。これはすべてのワールドに適用されます。スポーン保護を無効にするには 0 に設定します。
特定のワールドで構造物を無効にするには?
BetterStructures は、どのワールドが構造物生成の対象になるかを制御する ValidWorlds.yml 設定ファイルを保持しています。各ワールドは真偽値のトグルとともに列挙されます。
New worlds spawn structures: true
Valid worlds:
world: true
world_nether: true
world_the_end: true
ワールドを false に設定すると、BetterStructures はそのワールドに構造物を一切設置しなくなります。New worlds spawn structures の設定は、新しく検出されたワールドが構造物生成用に自動で有効化されるかどうかを制御します。
知っておく価値のある挙動が2つあります。
- EliteMobs が管理するワールドはデフォルトで除外されます。 EliteMobs が所有するワールド(冒険者ギルドハブとインスタンス化ダンジョンのコピー)は、
New worlds spawn structuresがtrueであってもfalseとして登録されます。これらの未建築の void チャンクは新しいチャンクとして数えられ、以前は BetterStructures がダンジョンハブを装飾してしまっていました。既存のem_エントリは一度きりの移行によってfalseに反転されており、ファイル内のEliteMobs worlds excluded by defaultマーカーキーがこの処理が実行済みであることを記録しています。そのため、em_ワールドを意図的にtrueに戻した場合、その選択は再起動をまたいで維持されます。 - 削除されたワールドのエントリは整理されます。 起動時と、ワールドがアンロードされてからおよそ10秒後に、BetterStructures は読み込まれておらずディスク上にも存在しないワールドの
Valid worldsエントリを削除するため、ファイルに不要なエントリが溜まることはありません。
破損したり一部削除されたコンテンツパックを修復するには?
/bs forcereinstallcontent <package|all> を使用してください。通常のダウンロードはバージョンを比較して、すでに最新のものをスキップします。ディスク上のファイルが破損している場合、これはまさに望ましくない挙動です。強制再インストールは、バージョンにかかわらず、そのパッケージを同じ認証済みのダウンロード、インポート、リロードのパイプラインに通し直します。
all は、BetterStructures が現在ダウンロード済み・インストール済み・古い状態のいずれかとして認識しているすべてのパッケージを対象とします。パッケージのファイルが完全に失われている場合、BetterStructures はもうそれを認識できないため、代わりにスラッグを直接指定してください。タブ補完には既知のすべてのスラッグが一覧表示されます。