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

MegaBlock Survivors セットアップ

MegaBlock Survivors のセットアップフローは Nightbreak が管理するコンテンツパッケージを中心に構築されており、FreeMinecraftModels によるモデルサポートにも任意で対応します。

動作要件

  • Java 21
  • 1.21.4 API ラインに対応した Paper/Spigot 互換サーバー

任意の連携:

  • FreeMinecraftModels -- カスタムモブおよび武器モデル (ソフト依存)
  • LibsDisguises -- ビジュアル面の追加サポートを行うソフト依存

MegaBlock Survivors が作成するもの

起動時、MegaBlock Survivors は plugins/MegaBlockSurvivors/ 配下の以下のパスを初期化または使用します:

plugins/MegaBlockSurvivors/config.yml
plugins/MegaBlockSurvivors/translations.yml
plugins/MegaBlockSurvivors/content_packages/
plugins/MegaBlockSurvivors/imports/
plugins/MegaBlockSurvivors/worlds/
plugins/MegaBlockSurvivors/npcs/
plugins/MegaBlockSurvivors/leaderboard.yml
plugins/MegaBlockSurvivors/meta_progression.yml
plugins/MegaBlockSurvivors/stats-dump.log
plugins/MegaBlockSurvivors/version.txt

加えて、mbs_spawn という名前のオペレーター作成のロビーワールドがディスク上に存在する場合は自動的に読み込まれます。プラグインはこのワールドを 作成も変更もしません -- 読み込むだけです。プラグインのいくつかの機能は mbs_spawn が無い場合、無音で既定の挙動にフォールバックします:

  • リーダーボードホログラム (mbs_spawn 内の (4.5, 67, -14.5) に固定) はスポーンをスキップし、警告をログに出します。
  • 参加時のテレポート (SpawnLobbyListener) は参加プレイヤーを mbs_spawn 内の (0.5, 65, 0.5) (yaw 180 向き) へ送ります -- プレイヤーが試合中の場合は迂回されます。
  • 試合終了後のテアダウンでは、mbs_spawn が存在する場合プレイヤーをそこへ戻します。

設定

config.yml には以下が含まれます:

キー既定値説明
setupDonebooleanfalse初回セットアップガイダンスが完了したかどうかを追跡します

翻訳

ユーザーに表示されるすべての文字列 (チャット行、ダイアログタイトル、ボスバー、ホログラムテキスト、コマンド説明) は translations.yml から読み込まれます。サーバーオペレーターは jar に触れずに、あらゆる行をローカライズあるいはリスキンできます。サポートされている機能:

  • & プレフィックスのカラーコードおよび &#RRGGBB の HEX エスケープ。
  • <gradient:#FF0000:#00FF00>text</gradient> のような MagmaCore のグラデーションタグ。
  • プラグインが実行時に置換する {placeholder} トークン。
  • 未設定のキーは [translations: key.name] のマーカーとして表示されるため、ゲーム内で見落としを発見しやすくなっています。

このファイルは初回起動時およびプラグインのリロード時に既定エントリで再生成されるため、新たに追加された文字列が自動的に現れます。

プレイヤーデータの永続化

ファイル用途
leaderboard.ymlバケットごとのリーダーボードエントリ (ゲームモード 2 種 x 難易度 3 種で計 6 セクション)。各バケットは 100 エントリまで保持します。
meta_progression.ymlプレイヤーごとの Soul Echo 残高とアップグレードトラックレベル。プレイヤー UUID をキーとします。
stats-dump.log試合終了時に書き出される、完了したすべての試合の追記専用 JSON-Lines ログ。

初回セットアップ警告

setupDonefalse の場合、megablocksurvivors.* 権限を持つプレイヤーが参加すると、プラグインは初回セットアップ警告を表示します。ワーナーは (NightbreakFirstTimeSetupSpec 経由で) セットアップコマンドのみを持つように設定されているため、プレイヤーを初期化/ダウンロードのステップではなく /mbs setup (コンテンツブラウザ) へ案内します。/mbs initialize はこのビルドでは登録されていません。/mbs downloadall は登録されていますが、コンテンツパッケージが無効なためプラグイン jar のみを取得します (Commands ページを参照) -- 代わりに /mbs setup を使用してください。

推奨される初回フロー

  1. MegaBlock Survivors をインストールし、サーバーを一度起動します。翻訳ファイルと設定ファイルが初回起動時に書き出されます。
  2. /nightbreaklogin <token> で Nightbreak アカウントをリンクします。
  3. /mbs setup を実行して Nightbreak コンテンツブラウザを開き、必要なパッケージをインストール/有効化します。
  4. imports/ に手動でコンテンツを置いた場合、あるいは content_packages/ でパッケージを切り替えた後は /mbs reload を実行します。

/nightbreaklogin <token> は MegaBlock Survivors の plugin.yml ではなく、共有の Nightbreak/MagmaCore アカウントフローによって提供されます。

コンテンツパッケージ

コンテンツパッケージは content_packages/ フォルダー内の YAML ファイルで設定します。各パッケージは以下を定義できます:

フィールド説明
isEnabledbooleanパッケージが有効かどうか
namestringパッケージの表示名
descriptionstring list説明行
downloadLinkstring手動ダウンロード URL
versionintegerパッケージのバージョン番号
nightbreakSlugstring自動ダウンロード用の Nightbreak コンテンツスラッグ
schematicFilesstring listパッケージに含まれるスケマティックファイル
worldFoldersstring list含まれるワールドフォルダー
worldContainerFoldersstring list含まれるワールドコンテナフォルダー
modelFoldersstring listFreeMinecraftModels 用モデルフォルダー
markerFileNamestringパッケージがインストール済みかを判定するマーカーファイル
categoryenumFREE, PREMIUM, または RESOURCES
toggleablebooleanパッケージのオン/オフ切り替えが可能かどうか

NPC 設定

NPC (ロビーのクエスト発行者、商人) は npcs/ 内の YAML ファイルで設定します。NPC はチャンクロード時にリスポーンされるため、ロビーチャンクのアンロード/リロードサイクルを跨いでも生き残ります。NPC を右クリックすると、設定された interactionCommand が実行されます。

2 体の NPC がプラグインに同梱されており、mbs_spawn ワールドが読み込まれると自動的にスポーンします:

NPC既定の位置ディスガイズインタラクションコマンド
Match Startermbs_spawn, 0, 67, -15VILLAGERmbs start
Meta Progressionmbs_spawn, -9, 66, -13PIGLINmbs meta

どちらも npcs/ 内の対応する YAML を編集することで、無効化、移動、再バインドが可能です。ディスガイズの描画には LibsDisguises が必要です。これが無い場合でも、NPC は設定された位置にベースのエンティティとしてスポーンします。

NPC YAML フィールド

フィールド説明
isEnabledbooleanNPC をスポーンさせるかどうか
namestring内部名
locationstringworld,x,y,z,pitch,yaw 形式
disguisestringLibsDisguises のエンティティタイプ (任意)
interactionCommandstringプレイヤーが NPC を右クリックしたときに実行されるコマンド
nameTagstringNPC の頭上に浮かぶホログラム (カラーコード使用可)

バージョン更新通知

プラグインが (version.txt との比較で) バージョン変更を検知すると、コンソールおよびオンラインの全 OP に通知します。