generated from AttODao/fabric-example-mod
Page:
Datapack Reload and Merge
Pages
Awkwardness
Body Attributes and Reach
Built in Instinct Values
Built in Movement Values
Built in Survival Values
Built in Vision Values
Client Config
Combat and Relations
Commands
Configuration Authority
Crafting and Interactions
Datapack Example
Datapack Overview
Datapack Reload and Merge
Equipment and Chests
Food and Exhaustion
Home
Initial Spawn
Instinct Behavior
Instinct Mode
Inventory
Item Tags
Jump Fall and Water
Morph JSON Combat and Attributes
Morph JSON Diet
Morph JSON Extras
Morph JSON Instinct Core
Morph JSON Instinct Hunting and Feeding
Morph JSON Inventory and Sleep
Morph JSON Movement
Morph JSON Vision
Movement and Turning
Persistence and Limits
Rendering Sounds and Vision
Server Config
Sleep and Abilities
Supported Forms
Synchronization and Reload
Variants and NBT
World Morph Lifecycle
No results
1
Datapack Reload and Merge
AttODao edited this page 2026-08-13 18:37:39 +09:00
Table of Contents
マージ・検証・再読込
読込対象
Mob Lifeはdata/mob_life/mob_life/morphs/<形態ID>.jsonのリソーススタックを、低優先度パックから高優先度パックの順に読みます。既知の形態IDと完全一致しないファイルは警告して無視します。
マージ規則
- JSONオブジェクトはキー単位で再帰的にマージします。
- 数値、文字列、真偽値は上位パックの値で置換します。
- 配列は連結せず、上位パックの配列で丸ごと置換します。
foods、predators、traits、preyなどの空配列は一覧を明示的に消します。abilitiesは例外で、要素がちょうど1個でなければ組み込み能力へ戻ります。- 未指定値は対象形態の組み込み値へフォールバックします。
- 未知のキーはゲーム動作に使われません。
例として、下位パックがmovement.rabbit_hop.enabled、上位パックがmovement.rabbit_hop.sprint_cooldownを指定した場合は両方が残ります。一方、双方がtraitsを書けば上位側の配列だけが残ります。
不正値の扱い
| 状態 | 結果 |
|---|---|
| JSON構文エラー、ルートがobjectでない | そのリソース全体を無視し、直前の有効なマージ結果を維持 |
| 数値が範囲外 | 定義済み範囲へクランプ |
| 数値キーへ文字列など型違い | そのフィールドを形態の組み込み値へ戻す |
| objectであるべきセクションが別型 | そのセクション内を形態の組み込み値へ戻す |
| 一覧内の不正要素 | 要素を無視できる一覧ではその要素だけ除外 |
| 未知の列挙値 | 対応する組み込み値へ戻す、または未知traitなら無視 |
型違いのフィールドはリソース全体の失敗にはなりません。上位パックの型違い値が下位パックの正常値を隠し、結果だけ組み込み値へ戻る点に注意してください。整数欄へ小数を指定した場合はJavaの整数変換で小数部を切り捨ててから範囲を適用します。
/reload時の反映
形態が確定済みのワールドで再読込に成功すると、サーバーは次を行います。
- 全形態の解決済み設定を置換する
- 現在のワールド形態に対応する設定を再取得する
- 本能状態、輪郭状態、近傍Entityキャッシュ、形態ごとの一時状態をクリアする
- 参加中プレイヤーへ形態属性と形態状態を再適用する
- 現在の形態JSONを各クライアントへ再同期する
データパック再読込自体が失敗した場合はこの再適用を行いません。ワールドに保存済みの形態IDやNBTは/reloadでは変更しません。
再読込されないもの
config/mob_life-server.jsonは/reload対象外です。config/mob_life-client.jsonはローカルのクライアント設定です。- Javaコードで固定された対応形態、キー操作、NBT制限はデータパックから追加・変更できません。
設定ごとの反映時点は同期と反映タイミングを参照してください。
Mob Life Wiki
第1章 基本仕様
第2章 ゲームプレイ仕様
第3章 データパック
- 概要
- movement
- diet
- vision
- combat / attributes
- inventory / sleep
- instinct 基本
- instinct 狩猟・採食
- outline / abilities / traits
- 食性タグ
- 最小例
- マージと再読込
第4章 Configと同期
第5章 資料