メインコンテンツまでスキップ

BetterStructures

BetterStructuresは、ジオメトリとブロック特性に基づいてカスタム構造物の最適な配置位置を見つけるジェネレーター非依存のトポロジスキャナーです。プラグインはスキーマティクスをワールドに貼り付け、地形適応方法を使用してワールドの自然な見た目を保持します。

プラグインは高度なスキャンを使用して地形の互換性を測定し、構造物を既存のワールドにシームレスに適合させるように適応させます。ペデスタル、特殊ブロック、インテリジェントな貼り付けをサポートしており、あらゆる環境で構造物が自然に見えます。

入門

必要要件

必須:

  • WorldEdit または FastAsyncWorldEdit (どちらかをインストール必須)
  • Minecraft 1.14+ (Paper推奨)

オプション:

  • EliteMobs (構造物のボスエンカウント用)
  • WorldGuard (リージョン保護用)
  • カスタムワールドジェネレーター (Terralith、Iris、Terra、TerraformGenerator)

インストール

  1. サーバーにWorldEditまたはFastAsyncWorldEditをインストールします
  2. BetterStructuresをダウンロードし、pluginsフォルダに配置します
  3. 構造物パックをダウンロードします:
  4. ダウンロードした構造物ファイルを ~/plugins/BetterStructures/imports に抽出します
  5. サーバーを起動するか /betterstructures reload を実行します

プラグインはインポートされた構造物を自動的に処理し、生成可能にします。

クイックスタート

インストール後、構造物は設定に基づいてワールドに自動的にスポーンします。構造物の配置をテストするか、プラグインを管理するには、以下のコマンドを使用します。

コマンド

すべてのコマンドは /betterstructures ベースコマンドまたはエイリアス /bs を使用します。

コマンド説明パーミッション
/betterstructuresメインコマンドなし
/betterstructures reloadすべての設定をリロードbetterstructures.*
/betterstructures place <name> <type>あなたの位置で構造物の配置をテストbetterstructures.*
/betterstructures lootifyルートテーブルにカスタムアイテムを追加betterstructures.*
/betterstructures setupセットアッププロセスを実行betterstructures.setup
/betterstructures initializeプラグインを初期化betterstructures.initialize
/betterstructures generatemodulesモジュラーダンジョンを生成 (通常速度)betterstructures.generatemodules
/betterstructures generatemodules slowlyモジュラーダンジョンをゆっくり生成 (サーバー負荷低)betterstructures.generatemodules.slowly
/betterstructures generatemodules instantlyモジュラーダンジョンを即座に生成 (サーバー負荷高)betterstructures.generatemodules.instantly
/betterstructures teleport構造物の位置にテレポートbetterstructures.*
/betterstructures versionプラグインバージョンを表示なし
/betterstructures silentサイレントモードを切り替えbetterstructures.*

パーミッション

すべてのパーミッションは op (サーバーオペレーター)がデフォルトです。

パーミッション説明デフォルト
betterstructures.setupセットアップコマンドへのアクセスop
betterstructures.initialize初期化コマンドへのアクセスop
betterstructures.generatemodules標準モジュール生成へのアクセスop
betterstructures.generatemodules.slowlyスローモジュール生成へのアクセスop
betterstructures.generatemodules.instantlyインスタントモジュール生成へのアクセスop

構造物タイプ

BetterStructuresは6つの構造物タイプをサポートており、それぞれ異なる配置ルールとスポーン位置があります。

SURFACE

地面の表面に構造物をスポーンさせ、地形の高さに適応させます。プラグインは平坦または互換性のある領域をスキャンし、自動地形ブレンドで構造物を配置します。

デフォルト間隔: 構造物間31ブロック

SKY

構造物を高い高度の空中に浮かせます。

高度範囲:

  • オーバーワールド: 80-120ブロック
  • エンド: 80-120ブロック

デフォルト間隔: 構造物間95ブロック

UNDERGROUND_SHALLOW

表面近くの浅い地下領域に構造物を生成します。

Y レベル範囲 (オーバーワールド): 0~60

デフォルト間隔: 構造物間22ブロック

UNDERGROUND_DEEP

深い地下位置、深いケイブやキャバーンを含めて構造物を作成します。

Y レベル範囲 (オーバーワールド): -64~0

デフォルト間隔: 構造物間22ブロック

LIQUID_SURFACE

水またはラバの表面に構造物をスポーンさせ、オーシャンモニュメントや浮遊基地に最適です。

デフォルト間隔: 構造物間65ブロック

DUNGEON

Wave Function Collapseアルゴリズムを使用してモジュラー手続き型ダンジョンを生成します。これらの構造物は複数のモジュールを接続して複雑な地下システムを作成します。

デフォルト間隔: 構造物間80ブロック

設定

メイン設定 (config.yml)

メイン設定ファイルは、すべての構造物に適用されるグローバル設定を含みます。

Y レベル範囲

さまざまなディメンション内の構造物生成の高さ制限を制御します。

# オーバーワールド/カスタムワールド
lowestYNormalCustom: -60
highestYNormalCustom: 320

# ネザー
lowestYNether: 4
highestYNether: 120

# エンド
lowestYEnd: 0
highestYEnd: 320

空気建築高度

スカイベースの構造物の高度範囲を設定します。

# オーバーワールド/カスタムワールド
normalCustomAirBuildingMinAltitude: 80
normalCustomAirBuildingMaxAltitude: 120

# エンド
endAirBuildMinAltitude: 80
endAirBuildMaxAltitude: 120

構造物の間隔

各タイプの構造物間の最小距離を定義します。

distanceSurface: 31        # 地表構造物
distanceShallow: 22 # 浅い地下
distanceDeep: 22 # 深い地下
distanceSky: 95 # スカイ構造物
distanceLiquid: 65 # リキッド表面
distanceDungeon: 80 # ダンジョン

間隔のランダム化

構造物配置にランダムオフセットを追加して、グリッドパターンを防ぎます。

maxOffsetSurface: 5        # 地表±5ブロック
maxOffsetShallow: 5 # 浅い±5ブロック
maxOffsetDeep: 5 # 深い±5ブロック
maxOffsetSky: 5 # スカイ±5ブロック
maxOffsetLiquid: 5 # リキッド±5ブロック
maxOffsetDungeon: 18 # ダンジョン±18ブロック

管理者通知

warnAdminsAboutNewBuildings: true  # 構造物がスポーンするときに管理者に通知

スキーマティック設定

各スキーマティクスは ~/plugins/BetterStructures/schematics/ 内の設定ファイルを持ちます。

利用可能な設定:

  • isEnabled: このスキーマティクスを有効/無効にします (デフォルト: true)
  • weight: 複数のスキーマティクスが利用可能な場合の選択確率 (デフォルト: 1.0)
  • generatorConfigFilename: この構造物がスポーンする場所を制御するジェネレーター設定にリンク
  • pedestalMaterial: 構造物の下のペデスタルに使用されるブロックタイプ
  • treasureFile: この構造物のチェストのカスタムルートテーブル設定

ジェネレーター設定

ジェネレーター設定は構造物がスポーンする場所と時期を制御します。ファイルは ~/plugins/BetterStructures/generators/ に位置しています。

利用可能な設定:

  • structureType: 6つのタイプの1つ (SURFACE、SKY、UNDERGROUND_SHALLOW、UNDERGROUND_DEEP、LIQUID_SURFACE、DUNGEON)
  • lowestYLevel: 最小スポーン高さ (デフォルト: -59)
  • highestYLevel: 最大スポーン高さ (デフォルト: 320)
  • validWorlds: この構造物がスポーンできるワールド名のリスト (空=すべてのワールド)
  • validWorldEnvironments: 環境タイプでフィルター (NORMAL、NETHER、THE_END)
  • validBiomes: 構造物がスポーンできるバイオームのリスト (minecraft:plains のようなネームスペース形式をサポート)
  • treasureFilename: この構造物のチェストのルートテーブルリファレンス

宝物設定

宝物設定は構造物チェストのルートテーブルを定義します。ファイルは ~/plugins/BetterStructures/treasures/ に位置しています。

利用可能な設定:

  • mean: チェストあたりのアイテムの平均数 (デフォルト: 4.0)
  • standardDeviation: アイテム数のバリエーション (デフォルト: 3.0)
  • rawLoot: レアリティレベル別に整理されたアイテムプール
  • chestEntries: 数量範囲とスポーンチャンスを持つ特定のアイテム

エンチャント設定:

各マテリアルはエンチャントルールを持つことができます:

  • minLevel: 最小エンチャントレベル
  • maxLevel: 最大エンチャントレベル
  • chance: エンチャント適用の確率 (0.0~1.0)

特殊ブロック

BetterStructuresはスキーマティクス内の特殊ブロックを使用して、貼り付けの動作を制御し、機能を追加します。

バリアブロック

バリアブロックはプラグインにその場所での貼り付けをスキップするように指示し、元のワールド生成を保護します。

使用ケース:

  • 地形とブレンドする自然なエッジを作成
  • 既存のケイブまたは機能を保護
  • 風景に合わせるため構造物の角を丸くする

ベッドロックブロック

ベッドロックブロックは構造物の下に堅実な床を保証します。

動作:

  • その場所に堅実なブロックが存在する場合、変更しないままにする
  • ブロックが空気またはリキッドの場合、ペデスタルマテリアルで置き換える

使用ケース:

  • 天然地形をオーバーライドせずに定義されたパスウェイを作成
  • 構造物が安定した基礎を持つことを確保
  • 固体ブロックを必要とするマインカート線路またはブリッジなどの機能を追加

スポーン標識

スポーン標識はあなたの構造物の特定の場所でモブスポーンを作成します。構造物が貼り付けられるとき、標識は削除されます。

バニラモブ

[spawn]
ZOMBIE

形式:

  • 行 1: [spawn]
  • 行 2: エンティティタイプ (ZOMBIE、SKELETON、CREEPER のような Spigot API 名を使用)

EliteMobs 統合

[elitemobs]
boss_filename.yml

形式:

  • 行 1: [elitemobs]
  • 行 2 以降: ボス設定ファイル名

WorldGuard保護を備えたボスエンカウントを作成します。保護されたリージョンはプレイヤーがボスを倒すまで残ります。

MythicMobs 統合

[mythicmobs]
mob_identifier
5

形式:

  • 行 1: [mythicmobs]
  • 行 2: MythicMobs モブ ID
  • 行 3: モブレベル (オプション)

プラグイン統合

EliteMobs

BetterStructuresはEliteMobsと統合してボスアリーナとコンバットエンカウントを作成します。

機能:

  • スポーン標識を使用して構造物にEliteMobsボスをスポーン
  • ボス戦中の自動リージョン保護
  • ボスが倒されたときの保護の削除

設定:

protectEliteMobsRegions: true  # EliteMobs リージョン保護を有効化

WorldGuard

WorldGuard統合はリージョン保護と配置制御を提供します。

機能:

  • 構造物配置のカスタムフラグ
  • リージョン保護機能
  • WorldGuard保護エリアとの互換性

WorldEdit / FastAsyncWorldEdit

WorldEditまたはFastAsyncWorldEditはスキーマティク貼り付け操作に必要です。

要件:

  • これらのプラグインのいずれか1つをインストール (両方ではない)
  • バージョン互換性は重要です - サーバーに一致するバージョンを使用します
  • FastAsyncWorldEditは、忙しいサーバーの大きな構造物に推奨されます

ワールドジェネレーター

BetterStructuresはカスタムワールドジェネレーターで機能します:

サポートされているジェネレーター:

  • Terralith
  • Iris
  • Terra
  • TerraformGenerator

これらの統合により、カスタムバイオームと地形タイプで構造物生成が可能になります。

パフォーマンス調整

サーバーのパフォーマンスを最適化するために、config.yml でこれらの設定を調整します。

チャンク貼り付けスピード

modularChunkPastingSpeed: 10

モジュラー構造物が貼り付けられる速度を制御します。値が高いほど高速に貼り付けられますが、サーバーリソースを多く使用します。

推奨値:

  • 小規模サーバー (1-10 プレイヤー): 10-15
  • 中規模サーバー (10-50 プレイヤー): 5-10
  • 大規模サーバー (50+ プレイヤー): 3-5

ティック使用率パーセンテージ

percentageOfTickUsedForPasting: 0.2

貼り付け操作に使用される各サーバーティックのパーセンテージを制限します。デフォルトは 0.2 (ティック時間の 20%) です。

推奨値:

  • 高性能サーバー: 0.3-0.4 (30-40%)
  • 標準サーバー: 0.2 (20%)
  • TPS 問題のある忙しいサーバー: 0.1-0.15 (10-15%)

モジュール生成速度

/betterstructures generatemodules を使用するとき、3 つの速度オプションがあります:

通常: /betterstructures generatemodules バランスの取れた生成速度で、中程度のサーバー負荷。

ゆっくり: /betterstructures generatemodules slowly 最小のサーバー負荷、忙しいサーバーまたはピークアワーに最適。

即座: /betterstructures generatemodules instantly 最大速度、高いサーバー負荷。トラフィックが少ない期間中のみ使用。

デベロッパー API

BetterStructuresは、プラグイン開発者が構造物生成と対話するための2つのイベントを提供します。

BuildPlaceEvent

構造物がワールドに配置されるときに発火します。

パッケージ: com.magmaguy.betterstructures.api.BuildPlaceEvent

イベントタイプ: キャンセル可能

使用ケース:

  • 構造物配置を検証
  • カスタムパーミッション検査を実装
  • 特定の領域への配置を防止
  • 構造物生成をログに記録

重要: ビルドオブジェクト自体を変更しないでください。イベントはFitAnythingオブジェクトを公開しますが、ビルド全体を変更すると地形適応が不完全になる可能性があります。必要な場合のみ軽微な調整を行ってください。

ChestFillEvent

構造物内のチェストがルートで満たされるときに発火します。

パッケージ: com.magmaguy.betterstructures.api.ChestFillEvent

イベントタイプ: キャンセル可能

使用ケース:

  • 構造物ルートにカスタムアイテムを追加
  • 生成されたルートを変更または削除
  • カスタムルートロジックを実装
  • チェストコンテンツを追跡

使用法: スナップショットインベントリで addItem() メソッドと removeItem() メソッドを使用してルートを変更します。チェストコンテナを直接操作しないでください。

Maven 依存関係

BetterStructuresは現在、Maven リポジトリを持っていません。API を使用するには、プラグイン jar を手動でプロジェクトにインポートします。

<dependency>
<groupId>com.magmaguy</groupId>
<artifactId>BetterStructures</artifactId>
<version>2.0.3</version>
<scope>provided</scope>
</dependency>

プラグイン jar をプロジェクトのビルドパスに追加し、plugin.yml でそれを提供された依存関係としてマークします。

追加リソース

公式 GitHub Wiki: github.com/MagmaGuy/BetterStructures/wiki

構造物ダウンロード:

プラグインページ: spigotmc.org/resources/betterstructures.103241

サポート: 公式 GitHub リポジトリまたは SpigotMC リソースページにアクセスしてサポートとバグレポートを取得します。