World Dimension Loader 1.4.0 - 初心者向けチュートリアル

============================================================
1. 導入とConfig生成
============================================================
サーバーと接続クライアントへWDLを導入します。Minecraft 1.20.1 / Forge 47.4.x / Java 17を使用します。

一度起動すると次が生成されます。
config/worlddimensionloader/common.toml
config/worlddimensionloader/dimensions.toml
config/worlddimensionloader/gates.toml

既存ファイルは上書きされません。

============================================================
2. ワールドをコピー
============================================================
重要なワールドの唯一のデータを直接使わないでください。

例:
WDL_custom_dimensions/test_world_01/level.dat

二重フォルダにしないでください。
NG:
WDL_custom_dimensions/test_world_01/test_world_01/level.dat

============================================================
3. 最小Dimension設定
============================================================
dimensions.tomlへ追加:

[[dimensions]]
id = "test_world_01"

インポート元フォルダ名が同じなら、これだけで十分です。

実行:
/wdl scan

確認:
/wdl list

元データが正常ならREADYになります。

============================================================
4. 最小Gate設定
============================================================
gates.tomlへ追加:

[[gates]]
id = "test_world_01_gate"
dimensions = ["test_world_01"]

dimensionsがありselection_modeを省略した場合、WDLはLISTとして扱います。

物理Gateの初期値:
- 黒曜石の枠/角
- 内側2x3～32x32
- 10秒開放
- 無料
- 通常WDL Dimension Igniterは制限なし

============================================================
5. 複数Gateを作る場合
============================================================
同じ物理条件のGate定義を複数作らないでください。

次が重複するとWDLは曖昧な定義を安全側で無効化します。
- frame block
- corner block
- size range
- 利用可能Igniter

2つ目は、例えば:
corner_block = "minecraft:crying_obsidian"

のように区別してください。サイズ範囲やIgniter制限で分けることもできます。

============================================================
6. ALL抽選
============================================================
READYなWDLインポートDimension全体から抽選する例:

[[gates]]
id = "random_gate"
selection_mode = "ALL"
corner_block = "minecraft:crying_obsidian"

ALLにOverworldは含まれません。

Overworldは:
selection_mode = "LIST"
dimensions = ["minecraft:overworld"]

OverworldとWDL IDを同じLISTに混在させないでください。

============================================================
7. Resetを使う前に
============================================================
Resetは初期状態では無効です。

1.4.0では、Resetを使わない新規/Pristine Runtimeは固定Physical ID
wdl:<id>
を使用し、timestampを付与しません。
既存timestamp RuntimeはReset OFFにしても自動で固定IDへ戻しません。
Runtimeフォルダを手動でリネーム/移動しないでください。

例:
[dimensions.runtime]
reset_on_empty = true
reset_delay_seconds = 30

Resetはインポート元コピーから次のRuntime世代を作り直します。そのため、Runtime Dimension内で行った建築や変更はResetで失われる場合があります。

WDL_custom_dimensions内のインポート元コピー自体は変更しません。

初期設定では旧世代を再起動まで保持します。再起動前にResetを繰り返すと、一時的に大きなディスク容量を使う場合があります。

common.tomlでゲーム中削除も選べますが非推奨です。Valkyrien Skies検知時は安全側の再起動時削除を強制します。

============================================================
8. /wdl scanと再起動
============================================================
通常のDimension/Gate編集後は /wdl scan を使えます。

STARTUP ONLY設定は完全な再起動が必要です。cleanup/retired-generation方式やAdvanced Dimension Igniter耐久値などは、/wdl scanだけでは実行中プロセスへ反映されません。

アップデート後に最新Configコメントを確認する場合:
1) config/worlddimensionloader/をバックアップ
2) 旧ファイルを退避
3) 一度起動
4) 必要な上書き値だけ移す

============================================================
9. 設定例 / 遊び方
============================================================
最小構成が動いたら、WDL_EXAMPLES_AND_PLAY_IDEAS_JA_1.4.0.txt を参照してください。

基本の1ワールドGate、LIST/ALLランダム、レアリティ抽選、時間制限、周回Reset、Inventory/Travel Policy、複数Gateハブまで、10個のコピペ可能な例を掲載しています。

============================================================
10. 最初の診断
============================================================
/wdl scan
/wdl list
/wdl status
/wdl loaded

Gateが動かない場合:
- 対象がREADYか
- Gate定義が物理的に重複していないか
- LISTの行先が正しいか
- 枠/角/サイズが一致するか
- Policy/Timed Session/Resetが入場を止めていないか

詳細は WDL_TROUBLESHOOTING_JA_1.4.0.txt を参照してください。
