World Dimension Loader 1.2.2 - Config詳細ガイド

1.2.2の自動生成Configと同梱example/templateのコメントは英語のみです。日本語の詳細説明はこのガイドを参照してください。既存Configは自動上書きされません。

Config場所:
config/worlddimensionloader/
  common.toml
  dimensions.toml
  gates.toml

不足ファイルはゲーム起動時に生成。既存ファイルは上書きしません。
大型更新時はバックアップ後の再生成を推奨します。

1.2.2の基本ルール:
「初期値のまま使う設定は省略し、変更したい項目だけ書く」

- ALL OPTIONS TEMPLATE = 全設定を確認できる、すべてコメントアウト済みの参照用テンプレート
- MINIMAL WORKING EXAMPLE / EXAMPLE OVERRIDES = 初期値と同じ項目を省いた実用例
- 既存Configに初期値が明示されていても、そのまま有効
- common.tomlは有効な設定行が0件でも正常
- .template.tomlは1.2.2から有効なコメントOnly TOML。未編集のままでもparse可能

主な省略時既定値:
Dimension:
- display_name -> id
- folder -> id
- enabled -> true
- rarity -> COMMON
- weight -> rarityの既定weight
- respawn.mode -> INHERIT
- runtime.keep_loaded -> false
- bed.allow_bed_respawn -> false
- anchor.enabled -> true
- return_scroll -> 有効 + common XP cost
- Inventory Policy省略 -> 制限なし
- Travel Policy省略 -> 制限なし

Gate:
- display_name -> id
- enabled -> true
- frame_block -> minecraft:obsidian
- corner_block -> frame_block
- サイズ -> commonの既定値
- allowed_igniters -> 通常WDL Igniter制限なし
- selection_mode -> ALL
- open_time_seconds -> common既定値
- Cost blockなし -> 無料

============================================================
A. common.toml
============================================================
[general]
strict_validation = true
元ワールドのLevelStem/WorldGenを安全にdecodeできない場合、推測せずMountを拒否します。
falseではhost Overworld generatorへfallbackし、新規チャンクが元ワールドと異なる可能性があります。
Gateの曖昧定義/不正定義はこの設定に関係なくfail-closedです。推奨true。

debug_logging = false
詳細診断ログ。通常false。

default_gate_open_time_seconds = 10
Gate側で省略した開通時間。

default_min_inner_width = 2
default_min_inner_height = 3
default_max_inner_width = 32
default_max_inner_height = 32
Gate側省略時の内部サイズ範囲。

[paths]
dimension_root_folder = "WDL_custom_dimensions"
外部ワールドコピーの親フォルダ。

[items]
advanced_dimension_igniter_durability = 100
Advanced Dimension Igniterの最大耐久値。範囲1..10000、初期値100。
Item登録時に固定されるため、変更後はゲーム/サーバーを完全再起動してください。/wdl scanでは反映されません。

[runtime]
storage_mode = "AUTO"
AUTO / IMPORT / DIRECT。AUTOは現在検証済みIMPORT経路。DIRECTは予約済み・利用不可です。AUTOまたはIMPORTを使用してください。

max_loaded_dimensions = 4
同時Live WDL ServerLevel数。登録可能Dimension総数ではありません。

auto_unload = false
unload_delay_seconds = 300
安全条件を満たす無人WDL Dimensionの遅延Unload。

vs_remount_cooldown_ticks = 100
Valkyrien Skies同一ID再mount安全待機。最小20tick。

[respawn]
mode = "OVERWORLD" または "VANILLA"
prefer_overworld_player_spawn = true
fallback_to_overworld_world_spawn = true

[return_scroll]
default_xp_level_cost = 5
0なら無料。

[gate_history]
max_entries = 3
1..10。プレイヤー別Gate Travel History保持数。

[rarity_weights]
COMMON = 100
UNCOMMON = 60
RARE = 25
EPIC = 10
LEGENDARY = 3
Dimension側の明示weightがあればそちらを優先。

============================================================
B. dimensions.toml
============================================================
1つの[[dimensions]] = 1つの外部ワールドコピー。

id
WDL内部ID。GateやPolicy参照に使用。

folder
WDL_custom_dimensions配下の実フォルダ。

display_name
表示名。

enabled
falseでカタログ無効。

rarity
COMMON / UNCOMMON / RARE / EPIC / LEGENDARY / CUSTOM

weight
任意の明示抽選weight。省略ならrarity_weights。0ならRandom抽選候補外。

[dimensions.destination]
prefer_anchor
prefer_world_spawn
fallback_x/y/z/yaw/pitch
基本到着優先順位:
1. Anchor
2. 元ワールドSpawn
3. fallback

[dimensions.respawn]
mode = INHERIT / OVERWORLD / VANILLA

[dimensions.runtime]
keep_loaded = true/false
省略/false = Lazy Mount通常運用。
true = 常駐。max_loaded_dimensions枠を消費しAuto-Unload対象外。

[dimensions.bed]
allow_bed_respawn = false
省略/false = 睡眠のみ。
true = WDL管理下の死亡Bed Respawnを許可。

[dimensions.return_scroll]
enabled = true
xp_level_cost = 5
xp_level_cost省略時はcommonのdefault。

[dimensions.anchor]
enabled = true
falseなら新規登録不可かつ保存済みAnchorも到着候補から除外。

[dimensions.inventory.import]
[dimensions.inventory.export]
mode = BLOCK_ALL / WHITELIST / BLACKLIST
items = ["namespace:item", ...]

import = このWDL Dimensionへ入るアイテム
export = このWDL Dimensionから出るアイテム
省略時は実質allow-allの安全な既定。

[dimensions.travel.import]
[dimensions.travel.export]
mode = ALLOW_ALL / WHITELIST / BLACKLIST
dimensions = ["hub", "minecraft:overworld", ...]

短縮ID "hub" は worlddimensionloader:hub として正規化。
Overworldは minecraft:overworld を使用。

Overworldには[[dimensions]] Policy blockが無いので:
Overworld -> WDL = 到着WDL import
WDL -> Overworld = 出発WDL export

Legacy [dimensions.return_gate]
enabled = false
は旧gate_type=RETURN aliasに対する互換ガードとしてのみ残ります。新しい通常Overworld Gateには適用されません。

============================================================
C. gates.toml
============================================================
現在の新規Configではgate_typeを書きません。
Gate目的地として対応するのはWDL取込Dimensionまたは minecraft:overworld です。
minecraft:the_nether / minecraft:the_end / 他MOD Dimensionは現在Gate Destinationとして未対応です。
LISTに minecraft:overworld とWDL取込IDを混在させる定義も無効です。

主要項目:
id / display_name / enabled
frame_block / corner_block
min_inner_width / min_inner_height
max_inner_width / max_inner_height
allowed_igniters
任意項目です。
- 省略: 通常WDL Dimension Igniterを制限しない
- []: 省略と同じ
- 非空リスト: 記載した通常Igniterだけに制限

例: Advancedのみ
allowed_igniters = ["worlddimensionloader:advanced_dimension_igniter"]

Creative Dimension Igniterは通常wildcardとは別の管理用Master Igniterです。通常はリストへ書く必要がありません。Creativeを明示するとsame-frame競合時の識別ヒントとして使えます。

同一フレーム競合の例:
- unrestricted + unrestricted -> 競合
- unrestricted + Advanced-only -> Advancedで重なるため競合
- Basic-only + Advanced-only -> 通常Igniterで分離可能
- unrestricted + Creative-only -> 通常Igniter競合ではない。Creative明示を識別ヒントに利用可能

省略/[]はMinecraftの全アイテムを許可する意味ではありません。Gate起動処理へ入るWDL Dimension Igniterだけが対象です。

============================================================
D. Gate Cost
============================================================
[[gates.costs]] を複数指定可能。

type:
ITEM / XP_LEVEL / XP_POINTS / HEALTH / HUNGER

ITEM FIXED:
[[gates.costs]]
type = "ITEM"
item = "minecraft:emerald"
amount_mode = "FIXED"
amount = 1

ITEM RANGE:
[[gates.costs]]
type = "ITEM"
item = "minecraft:ender_pearl"
amount_mode = "RANGE"
min = 1
max = 3

RANGEはmax個以上所持しないと開通チャレンジ開始不可。実消費はmin..maxを1回抽選。

Creative Dimension IgniterはGate Costを支払いません。

============================================================
E. Policy判定タイミング
============================================================
Travel Policy:
Gate経路そのものの制限。開通時と通過時に判定。

Inventory Policy:
Gate開通を妨げず、実プレイヤー通過時に判定。

Creative Dimension Igniterで開いたGate Session:
CostとInventory/Travel Policyをbypass。
ただし物理Gate検証、Destination validity、same-frame ambiguityはbypassしません。

============================================================
F. Gate Travel History
============================================================
[gate_history]はcommon.toml。
HistoryはDestinationを変更せずLandingだけ補助。
最新の完全逆経路だけ使用し、成功後POP。
古い一致履歴を自由検索しません。

============================================================
G. Config反映
============================================================
編集後:
/wdl scan
または再起動。

専用サーバーでは必ずサーバー側Configを編集してください。

============================================================
H. templateファイルについて
============================================================
config_samples/*.template.tomlは空欄placeholderを含むため、そのまま実Configへコピーすると無効です。
値を全て埋めるか、example.toml/自動生成Configを基準にしてください。
