World Dimension Loader 1.2.2 - はじめての導入チュートリアル

このガイドは「外部ワールド1つを登録し、OverworldからGateで入り、元Gate付近へ戻る」までの最短手順です。

============================================================
1. 必要環境
============================================================
Minecraft 1.20.1 / Forge 47.4.22 / Java 17
WDLはシングルでもサーバーでもmodsへ導入します。
マルチプレイはサーバーとクライアント両方にWDLが必要です。
外部ワールドフォルダはサーバー側だけに置きます。

============================================================
2. Configを生成
============================================================
WDL JARをmodsへ入れ、Minecraftをタイトル画面まで起動します。
ワールドを開く前に不足Configが生成されます。

config/worlddimensionloader/common.toml
config/worlddimensionloader/dimensions.toml
config/worlddimensionloader/gates.toml

1.2.2の基本ルールは「初期値は省略」です。
生成Configには、全項目を確認するALL OPTIONS TEMPLATEと、初期値を省いた実用例があります。
通常はALL OPTIONSを全部コピーせず、変更したい設定だけ書いてください。

既存Configは上書きされません。

============================================================
3. 外部ワールドをコピー
============================================================
元ワールドをバックアップし、コピーを置きます。

.minecraft/WDL_custom_dimensions/my_world/level.dat
.minecraft/WDL_custom_dimensions/my_world/region/
...

NG例:
WDL_custom_dimensions/my_world/my_world/level.dat

============================================================
4. Dimension登録
============================================================
dimensions.tomlへ最小構成で追加:

[[dimensions]]
id = "my_world"
display_name = "My World"

省略時:
- folder = id
- enabled = true
- rarity = COMMON
- weight = rarity既定値
- respawn = INHERIT
- keep_loaded = false
- bed respawn = false
- Anchor = true
- Return Scroll = enabled + common XP
- Inventory/Travel Policy = 制限なし

RAREにしたい場合だけ:
rarity = "RARE"

のように、変更したい項目を追加します。

============================================================
5. 読込確認
============================================================
ワールドへ入り、OP権限2以上で:
/wdl scan
/wdl list
/wdl status

my_world がREADYなら次へ進みます。
READYでなければ、表示状態とWDL_TROUBLESHOOTING_JA_1.2.2.txtを確認してください。

============================================================
6. Gateを登録
============================================================
gates.tomlへ最小構成で追加:

[[gates]]
id = "my_world_gate"
display_name = "My World Gate"
corner_block = "minecraft:crying_obsidian"
max_inner_width = 8
max_inner_height = 8
selection_mode = "LIST"
dimensions = ["my_world"]

省略時:
- enabled = true
- frame_block = minecraft:obsidian
- min_inner_width / height = 2 / 3
- open_time_seconds = 10
- Costなし = 無料
- allowed_igniters省略 = 通常WDL Dimension Igniterを制限しない

Advancedだけに制限したい場合:
allowed_igniters = ["worlddimensionloader:advanced_dimension_igniter"]

現在の新規Gateではgate_typeは不要です。
ALL OPTIONS TEMPLATEは全項目の参照用です。通常のGate定義へ初期値を全部書き写す必要はありません。

============================================================
7. Gateを作る
============================================================
最小内部2 x 3の例:

◆■■◆
■  ■
■  ■
■  ■
◆■■◆

◆ = crying_obsidian
■ = obsidian
空白 = Gate内部

テスト用Igniter:
/give @s worlddimensionloader:basic_dimension_igniter

Igniterを持ってフレームへ使用します。

============================================================
8. Overworld行きGateを使う
============================================================
現在の新規生成gates.tomlには、すでに `overworld_gate_default` が1件入っています。
まずはこの定義をそのまま使用するか、必要に応じて編集してください。

初期定義:
- frame_block = minecraft:stone_bricks
- corner_block = minecraft:emerald_block
- inner size = 2x3 .. 32x32
- Basic / Advanced Dimension Igniter
- selection_mode = LIST
- dimensions = ["minecraft:overworld"]
- open_time_seconds = -1（常時開通）
- cost = emerald x1

同じStone Bricks + Emerald Block + 同じサイズ範囲 + 同じIgniter条件のOverworld Gateを
別IDで追加すると、同一フレームに複数定義が一致して曖昧となり、fail-closedで開通できません。
追加のOverworld Gateを作る場合は、frame/corner、サイズ範囲、Igniter条件などを明確に分けてください。

特殊RETURN Gateは新規仕様では使用しません。

============================================================
9. Gate Travel Historyを確認
============================================================
OverworldのA Gate -> my_world と正常転移した後、my_worldからOverworld行き通常Gateを使用します。

最新履歴が完全な逆経路なら、OverworldのA Gate付近が着地点候補になります。

注意:
- Historyが目的Dimensionを変えることはありません。
- Return Scrollを使うと履歴はクリアされます。
- /wdl tp、死亡、WDL Gate以外のDimension移動でも古い履歴をクリアします。
- A Gateフレームを壊した場合は通常のOverworld到着地点へfallbackします。

============================================================
10. Anchor
============================================================
/give @s worlddimensionloader:dimensional_anchor

WDL Dimension内で使用し、そのDimensionの優先到着地点を登録します。
Dimension設定でanchor.enabled=falseなら登録できません。
Anchorは死亡Respawn地点ではありません。

============================================================
11. Return Scroll
============================================================
/give @s worlddimensionloader:return_scroll

Return ScrollはGate Historyを逆走するアイテムではありません。使用可能なWDL DimensionからOverworldへ直接帰還する非常手段です。
Inventory Export、Travel Export、XPレベルコストが適用されます。
成功時にGate Historyをクリアします。

============================================================
12. Random Gateを試す
============================================================
複数WDL Dimensionを登録し:
selection_mode = "LIST"
dimensions = ["world_a", "world_b", "world_c"]

とすれば候補内からrarity/weightで抽選します。
ALLは全READY WDL Dimensionから抽選しますが、Overworldは自動追加しません。

============================================================
13. 専用サーバー
============================================================
編集するのはserver-root/config/worlddimensionloader/です。
外部ワールドはserver-root/WDL_custom_dimensions/へ置きます。
参加クライアント側にはWDL MODが必要ですが、外部ワールドコピーは不要です。

============================================================
14. 大型更新時
============================================================
1. サーバー/ゲーム停止
2. config/worlddimensionloader/バックアップ
3. 旧Config退避
4. 起動して新Config生成
5. 必要な値だけ移行
6. /wdl scan / list / status
7. Gate、Policy、Return Scroll、Anchorを確認

次に読むもの:
- WDL_CONFIG_GUIDE_JA_1.2.2.txt
- WDL_ITEMS_AND_RECIPES_JA_1.2.2.txt
- WDL_TROUBLESHOOTING_JA_1.2.2.txt
