Feathered Friend

Config

Feathered Friend には 2 つの構成レイヤーがあります。

  • クライアント構成 (featheredfriend-client.toml): UI とローカル設定の動作。
  • サーバー設定 (featheredfriend-server.toml): クライアントに同期されたゲームプレイ権限の値。

一般的な開発では次のように実行します。

  • neoforge/run/config/featheredfriend-client.toml
  • neoforge/run/config/featheredfriend-server.toml
フェザードフレンドの構成と設定画面
Feathered Friend in-game settings screen.
Authoritative model

サーバー設定は、ゲームプレイ ルールの信頼できる情報源です。クライアントは同期された値を受け取り、サーバーが編集を許可しない限り、それらを読み取り専用として扱う必要があります。


同期パイプライン

  1. クライアントは設定を要求します (RequestServerSettingsPayload)。
  2. サーバーは完全なスナップショット (ServerSettingsPayload) を送信します。
  3. サーバーはログイン時に設定もプッシュします。
  4. サーバー ティック ウォッチャーは、構成の変更と再ブロードキャストをチェックします。

したがって、TOML ホットリロードとゲーム内設定からの編集は両方とも、接続されているクライアントに伝播されます。


ホットリロードの動作

FFServerConfig のサーバー構成値は実行時の値です。

FFConfigSyncEvents は値を監視し、値が変更された場合は再ブロードキャストします。以下のものが含まれます。

  • 機能切り替え (enableSuspiciousFeatherenableSuspiciousChestenableRavenArmorenableMailbox)
  • 制限/クールダウン
  • チャットトグル

ravenLinkDurationSeconds はアクティブなセッション中に再読み取りされるため、現在のリンクは構成変更の直後に短縮/延長される可能性があります。

DEEP DIVE: dirty-flag + save

FFServerConfig の設定者は設定をダーティとしてマークし、SERVER_SPEC.save() を試行します。これにより、変更が迅速に同期され、ディスクに保存されます。


ゲーム内設定の権限

カスタム設定 GUI は、open_settings キーバインドを介して開きます (デフォルトではバインドされていません)。

サーバー側の編集は、両方が true の場合にのみ許可されます。

  • allowServerSettingsScreenEditing = true
  • プレイヤーはオペレーター権限レベル 4 を持っています

それ以外の場合、クライアントは同期された値を表示できますが、サーバー設定の編集を適用できません。


クライアント構成 (ローカルのみ)

クライアント構成は、以下を含むローカル UI/設定のみを制御します。

  • scrollUiFontMode (VANILLAJACQUARDALAGARD)
  • レイブンステータスバッジの位置/アンカー/ビジュアルモード
  • お気に入りの印鑑キー
  • raven ログの表示設定 (カテゴリの表示/色)

これらはサーバーのゲームプレイを変更しません。


サーバー設定 (ゲームプレイ権限)

settings セクション

デフォルト範囲目的
chatDisabledDefaultfalseブールグローバル プレーヤー チャットが無効になります (コマンドは影響を受けません)。
ravenChestsPerPlayer30..64最大はプレイヤーごとに疑わしいチェストを配置しました。
ravenLogRetentionMinutes100800..129600Raven ログの保持期間 (分)。
ravenLogMaxBytesPerPlayer2621440..4194304クリア前のプレイヤーごとの Raven ログの最大サイズ。
enderpackDepositCooldownSeconds6000..86400エンダーパック -> チェスト デポジット ワークフローの間のクールダウン。
scrollDeliveryCooldownSeconds6000..86400スクロールクーリエの発送間のクールダウン。
courierTimeoutRetrySeconds600..86400タイムアウトに失敗した宅配ジョブの自動再試行間隔。
brushRavenCooldownSeconds300..86400カラスをブラッシングする間のクールダウン。
ravenLinkDurationSeconds305..600Raven Link セッションの継続時間。
allowServerSettingsScreenEditingtrueブール設定画面でOP編集を許可/禁止します。
features.enableSuspiciousFeathertrueブールSuspicious Feather ロジックを有効にします。
features.enableSuspiciousChesttrueブールSuspicious Chest の特別なロジックを有効にします。
features.enableRavenArmortrueブールRaven Armor の装備/ステータス ロジックを有効にします。
features.enableMailboxtrueブールメールボックス スポッティング + 宅配便メールボックス ルーティングを有効にします。

spawning セクション

デフォルト範囲目的
wildRavensPerPlayer10..16オンラインの無観客プレイヤーごとのワイルド レイヴンの上限。

機能の切り替えがオフの場合

機能の切り替えにより、アイテム/ブロックの存在ではなく、ロジックが無効になります。

  • 既存のアイテム/ブロックは残ります
  • 在庫は引き続きアクセス可能です
  • 機能固有のランタイム システムはスキップされます

例:

  • enableMailbox=false: メールボックス ストレージはまだ開いていますが、スポッティング/ルーティングは無効になっています。
  • enableSuspiciousChest=false: チェストストレージは引き続き機能しますが、止まり木/預金ロジックは無効になっています。
  • enableSuspiciousFeather=false: Raven Link の開始/復活パスが無効になっています。
Do not confuse 'disabled' with 'deleted'

機能の無効化は動作の切り替えのみです。そのフィーチャの既存のワールド データは削除されません。

サーバーのスナップショットの例

JSON
{
  "settings": {
    "ravenChestsPerPlayer": 3,
    "enderpackDepositCooldownSeconds": 600,
    "scrollDeliveryCooldownSeconds": 600,
    "ravenLinkDurationSeconds": 30,
    "allowServerSettingsScreenEditing": true,
    "features": {
      "enableSuspiciousFeather": true,
      "enableSuspiciousChest": true,
      "enableRavenArmor": true,
      "enableMailbox": true
    }
  },
  "spawning": {
    "wildRavensPerPlayer": 1
  }
}

このプロジェクトを支援

このWikiとModが気に入りましたか?

ご支援いただくことで、機能開発、ドキュメント整備、アップデート継続の助けになります。

ページ上部へ