7 Days to Die v2.6(2026年4月時点)
7 Days to Die はアップデートにより Mod が動作しなくなる場合があります。制作・導入前に必ず対応バージョンを確認してください。
今回はいよいよゲームに存在しない新しいアイテムを追加するという、Mod 制作の醍醐味ともいえる実践に挑戦します。
完成イメージは「強化版ベースボールバット」です。バニラのベースボールバットをベースに、攻撃力・耐久値をカスタマイズした新しい武器を、レシピ付きで追加します。この手法を応用すれば、どんな新アイテムも作れるようになります。
新アイテム追加の仕組み:Extends(継承)
7 Days to Die では、新しいアイテムをゼロから定義するのではなく、既存アイテムをベースにして差分だけを書く「継承(Extends)」方式が推奨されています。
<item name="myCustomClub">
<property name="Extends" value="meleeWpnClubT1BaseballBat"/>
<property name="EconomicValue" value="500"/>
</item>
Extends を使うことで、書いていない属性はすべてベースアイテムのものが適用されます。アイコン・モデル・アニメーションも含めて引き継がれるため、見た目はそのままでパラメーターだけ変えた新アイテムを簡単に作れます。
攻撃力・耐久値などの能力値は property タグではなく、effect_group 内の passive_effect タグで管理されています。Extends で継承した場合、能力値の変更は set xpath で行います
Extends を使わずにすべての属性をゼロから書くことも可能ですが、アイテムの定義は数十〜数百行に及ぶため、初心者のうちは Extends を使うのが現実的です。
今回作るもの:強化版ベースボールバット
| 項目 | バニラのベースボールバット | 今回作る強化版 |
|---|---|---|
| アイテムID | meleeWpnClubT1BaseballBat | myBaseballBatPlus |
| 表示名 | Baseball Bat | 強化ベースボールバット |
| 攻撃力 | 20 | 40 |
| ブロックダメージ | 18 | 36 |
| 最大耐久値 | 800 | 1600 |
| 販売価格 | 200 | 400 |
| レシピ | 錬鉄×20・木材×10 など | 錬鉄×15・木材×8・ダクトテープ×2 |
上記の数値はバニラの Data/Config/items.xml および recipes.xml を実際に確認した実測値です(v2.6)。
フォルダ構成
Mods/
└── myBaseballBatPlus/ ← Modletフォルダ
├── ModInfo.xml ← Modlet情報(必須)
└── Config/
├── items.xml ← 新アイテムの定義
├── recipes.xml ← 作成レシピの追加
└── Localization.txt ← 日本語名の設定
今回は3ファイルを作成します。順番に作っていきます。
STEP 1:ModInfo.xml を作成する
v2.x の正しい形式(<ModInfo> タグなし・DisplayName 必須)で作成します。
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<Name value="myBaseballBatPlus" />
<DisplayName value="強化ベースボールバット" />
<Description value="強化版ベースボールバットを追加するModlet" />
<Author value="YourName" />
<Version value="1.0.0" />
<Website value="" />
</xml>
各プロパティの役割
| プロパティ | 内容 | 日本語 |
|---|---|---|
Name | 内部ID。フォルダ名と一致させる。英数字のみ | 不可 |
DisplayName | ゲーム内の Mod 一覧に表示される名前 | 可 |
Description | Mod の説明文 | 可 |
Author | 作者名 | 可 |
Version | バージョン番号 | – |
<ModInfo> タグで囲まないでください。 v2.x では <xml> 直下に各プロパティを直接書く形式が正しい書き方です。<ModInfo> タグで囲むとゲームに認識されません。
Name は英数字のみにしてください。DisplayName は日本語が使えますが、Name に日本語を入れるとゲームに認識されない場合があります。
STEP 2:新アイテムを定義する(items.xml)
Config フォルダの中に items.xml を作成します。
新アイテムの追加は 2段階 で行います。
appendで新しいアイテム定義を追加するsetで能力値を変更する
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<append xpath="/items">
<item name="myBaseballBatPlus">
<property name="Extends" value="meleeWpnClubT1BaseballBat"/>
<property name="EconomicValue" value="400"/>
</item>
</append>
<set xpath="/items/item[@name='myBaseballBatPlus']/effect_group/passive_effect[@name='EntityDamage'][@operation='base_set']/@value">40</set>
<set xpath="/items/item[@name='myBaseballBatPlus']/effect_group/passive_effect[@name='BlockDamage'][@operation='base_set']/@value">36</set>
<set xpath="/items/item[@name='myBaseballBatPlus']/effect_group/passive_effect[@name='DegradationMax'][@operation='base_set']/@value">1600</set>
</configs>
ポイント解説
<append xpath="/items">
/items タグの末尾に新しい item 要素を追加しています。set ではなく append を使うのは、新しい要素を追加する操作だからです。
<property name="Extends" value="meleeWpnClubT1BaseballBat"/>
この1行があることで、書いていないすべての属性(アイコン・サウンド・アニメーション・ダメージタイプなど)が meleeWpnClubT1BaseballBat から引き継がれます。
能力値は set xpath で変更する
v2.x の items.xml では、攻撃力・耐久値などの能力値は effect_group 内の passive_effect タグで管理されています。Extends で継承した後、set xpath で値を上書きします。[@operation='base_set'] を必ず付けることで確実に基本値を変更できます。
EconomicValue は property タグで変更できる
販売価格などの一部パラメーターは effect_group 構造ではなく、通常の property タグで管理されているため append 内で直接書けます。
STEP 3:レシピを追加する(recipes.xml)
新アイテムはデフォルトではゲーム内で入手できません。クラフトで作れるようにするためにレシピを追加します。
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<append xpath="/recipes">
<recipe name="myBaseballBatPlus" count="1" craft_time="25">
<ingredient name="resourceForgedIron" count="15"/>
<ingredient name="resourceWood" count="8"/>
<ingredient name="resourceDuctTape" count="2"/>
</recipe>
</append>
</configs>
レシピの各属性
| 属性 | 説明 |
|---|---|
name | クラフトで作られるアイテムのID(新アイテムIDと一致させる) |
count | 1回のクラフトで作れる個数 |
craft_time | 作成にかかる時間(秒) |
craft_area | 必要な作業台(省略するとどこでも作れる) |
主な craft_area の値(バニラ実測値)
workbench → ワークベンチ
forge → 鍛冶炉
chemistryStation → 化学ステーション
campfire → 焚き火
cementMixer → セメントミキサー
STEP 4:日本語名を設定する(Localization.txt)
このままだとゲーム内での表示名がアイテムID(myBaseballBatPlus)そのままになります。Localization.txt を追加して日本語名を設定します。
Key,File,Type,UsedInMainMenu,NoTranslate,english,Context,japanese
myBaseballBatPlus,items,Item,,,Enhanced Baseball Bat,,強化ベースボールバット
myBaseballBatPlusDesc,items,Item,,,A reinforced baseball bat with improved durability and power.,,耐久性と攻撃力を高めた強化版のベースボールバット。
各列の意味
| 列名 | 説明 |
|---|---|
Key | アイテムIDと一致させる(大文字・小文字も含む) |
File | アイテム名なら items |
Type | アイテムなら Item |
english | 英語での表示名 |
japanese | 日本語での表示名(この列が日本語版に表示される) |
STEP 5:動作確認する
フォルダ構成が以下のようになっていることを確認してからゲームを起動します。
7 Days to Die/
└── Mods/
└── myBaseballBatPlus/
├── ModInfo.xml
└── Config/
├── items.xml
├── recipes.xml
└── Localization.txt
確認手順
- ゲームを完全に終了して再起動する
- 新規ゲームを開始する(既存セーブには反映されないことがある)
- F1キーでコンソールを開いて以下のコマンドを入力する
giveself myBaseballBatPlus
- インベントリに「強化ベースボールバット」が追加されたことを確認する
- アイテムのステータス画面で攻撃力・耐久値が設定通りになっているか確認する
攻撃力の表示は品質や装備スキルによって変わります。品質1の状態でバニラ(20)の2倍(40)になっていれば正常です。
応用:他のカテゴリのアイテムも同じ手法で作れる
今回は近接武器でしたが、他のカテゴリも同じ Extends の仕組みで追加できます。
銃器の場合
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<append xpath="/items">
<item name="myPistolPlus">
<property name="Extends" value="gunHandgunT1Pistol"/>
<property name="EconomicValue" value="800"/>
</item>
</append>
<set xpath="/items/item[@name='myPistolPlus']/effect_group/passive_effect[@name='EntityDamage'][@operation='base_set']/@value">50</set>
<set xpath="/items/item[@name='myPistolPlus']/effect_group/passive_effect[@name='MagazineSize'][@operation='base_set']/@value">30</set>
</configs>
ツールの場合
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<append xpath="/items">
<item name="mySteelPickaxePlus">
<property name="Extends" value="meleeToolPickT2SteelPickaxe"/>
</item>
</append>
<set xpath="/items/item[@name='mySteelPickaxePlus']/effect_group/passive_effect[@name='BlockDamage'][@operation='base_set']/@value">170</set>
<set xpath="/items/item[@name='mySteelPickaxePlus']/effect_group/passive_effect[@name='DegradationMax'][@operation='base_set']/@value">2400</set>
</configs>
複数のアイテムを1つの Modlet にまとめる
<append xpath="/items"> の中に複数の item 要素を並べることで、1つの Modlet で複数のアイテムを一度に追加できます。
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<append xpath="/items">
<item name="myBaseballBatPlus">
<property name="Extends" value="meleeWpnClubT1BaseballBat"/>
</item>
<item name="mySteelClubPlus">
<property name="Extends" value="meleeWpnClubT3SteelClub"/>
</item>
</append>
<set xpath="/items/item[@name='myBaseballBatPlus']/effect_group/passive_effect[@name='EntityDamage'][@operation='base_set']/@value">40</set>
<set xpath="/items/item[@name='mySteelClubPlus']/effect_group/passive_effect[@name='EntityDamage'][@operation='base_set']/@value">65</set>
</configs>
まとめ
- 新アイテムは
Extendsで既存アイテムを継承して作るのが基本 <append xpath="/items">で新しいitem定義を追加する- v2.x の能力値(攻撃力・耐久値など)は
append後にset xpathで変更する set xpathには[@operation='base_set']を必ず付ける- レシピは
recipes.xmlに<append xpath="/recipes">で追加する craft_areaの正しい値はworkbench・forge・cementMixerなど(旧式のcement_mixer_playerは使わない)- 日本語名は
Localization.txtで設定する(UTF-8 BOMなしで保存) ModInfo.xmlは v2形式(<ModInfo>タグなし・DisplayName必須)で作成する