← ガイド一覧に戻る

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= の値を比較。同じパスに対する setremove があれば競合。

# 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 構成テンプレートでは、 テスト済みの安全な組み合わせを紹介しています。