← ガイド一覧に戻る

MOD 競合の見分け方

MOD 同士が衝突する仕組みと、問題を特定・解決する方法を解説します。

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 同士(append のみ)
安全: UI MOD + ゲームプレイ MOD(変更ファイルが異なる)
安全: サーバーサイド MOD + クライアントサイド MOD
注意: 同カテゴリの武器バランス MOD 同士

各 MOD ページの「競合情報」セクションも参考にしてください。 サーバー MOD 構成テンプレートでは、 テスト済みの安全な組み合わせを紹介しています。