1 MOD 競合とは?
2つ以上の MOD が同じ XML ファイルの同じ箇所を変更しようとすると「競合」が発生します。
致命的な競合
ゲームが起動しない、クラッシュする。同じアイテムを違う方法で再定義している場合。
部分的な競合
ゲームは動くが一部の機能が正しく動作しない。片方の変更が上書きされる。
競合なし
異なるファイルや異なる箇所を変更。問題なく共存できる。
2 7DTD の XML MOD の仕組み
7DTD の MOD(Modlet)は XPath を使ってバニラの XML を変更します。主な操作は 3 つです。
<append xpath="/items"> 追加(append): 新しいアイテムやレシピを追加。競合リスクは低い。
<set xpath="/items/item[@name='gunPistol']/property[@name='DamageEntity']/@value">50</set> 変更(set): 既存の値を書き換え。同じプロパティを変更する MOD があると競合。
<remove xpath="/items/item[@name='gunPistol']"> 削除(remove): 既存のアイテム等を削除。他の MOD がそのアイテムを参照していると問題。
3 よくある競合パターン
| 変更対象 XML | 競合しやすい MOD の例 | リスク |
|---|---|---|
| items.xml | 武器バランス MOD 同士、アイテムスタック変更 MOD 同士 | 高 |
| recipes.xml | レシピ変更 MOD 同士(同じアイテムのレシピを変更) | 中 |
| progression.xml | スキルポイント変更 MOD、パーク追加 MOD | 中 |
| blocks.xml | 電気系 MOD 同士、建築系 MOD 同士 | 中 |
| entityclasses.xml | ゾンビ変更 MOD 同士(HP、ドロップ変更) | 中 |
| XUi/windows.xml | UI MOD 同士(HUD 変更等) | 高 |
4 競合の確認方法
方法 1:ファイル名で判断(簡易)
2つの MOD の Config/ フォルダを見比べ、同じファイル名があれば競合の可能性がある。ただし append のみなら問題ない場合が多い。
方法 2:XPath を確認(確実)
各 XML ファイルを開き、xpath= の値を比較。同じパスに対する set や remove があれば競合。
# MOD A: items.xml
<set xpath="/items/item[@name='gunPistol']/property[@name='DamageEntity']/@value">50</set>
# MOD B: items.xml
<set xpath="/items/item[@name='gunPistol']/property[@name='DamageEntity']/@value">75</set>
→ 競合!同じプロパティを異なる値に変更。後から読まれた MOD の値が適用される。
方法 3:ログで確認
ゲーム起動時のログ(output_log)に XML パースエラーが出ていれば競合の可能性大。
5 競合の解決方法
- 読み込み順の調整: MOD フォルダ名の先頭に数字を付けて順序を制御(
0_BaseMod/→1_OverrideMod/)。後から読まれた方が優先。 - 片方を諦める: 同じ機能を持つ MOD は基本的にどちらか一方のみ使用。
- 手動マージ: XML を理解できるなら、両方の変更を1つのファイルにまとめる。
- MOD 作者に報告: 人気 MOD 同士の競合は作者が互換パッチを提供している場合がある。
6 安全に併用できる MOD の組み合わせ
以下のタイプの MOD 同士は比較的安全に併用できます。
各 MOD ページの「競合情報」セクションも参考にしてください。 サーバー MOD 構成テンプレートでは、 テスト済みの安全な組み合わせを紹介しています。