xml書き換え

Last-modified: 2022-05-08 (日) 03:34:52

xmlとは

xmlファイルは7DaysToDie(以下7DTD)の様々な取り決めごとを記しているテキストファイルです。
7DTDで各種ゾンビが出現する条件、ゴミ袋等を探った時に手に入れられるアイテムの種類、街の規模やそこに建って
いる建造物の種類と数など、7DTDを構成するルールのほとんどはxmlファイルの内容に従っています。
xmlファイルの内容を書き換えることで7DTDのゲーム性を大なり小なり改変することが可能です。

直接書き換えるか、Alpha17から追加されたModletの仕様を使って書き換えます。

xmlの格納場所

Steamのライブラリから7DTDのプロパティを開いて、「ローカルファイル」タブの「ローカルファイルを閲覧」をクリックしてください。
エクスプローラーのウィンドウが開くと思いますので、フォルダ内の「Data」→「Config」と開くと各種xmlファイルが格納されています。
書き換えるためにはファイルを右クリックして編集を選びます。

各xmlの役割

  • archetypes
    プレイヤーのキャラメイクやNPC・UMAゾンビのデータが記されています。
    キャラデータの共有はもちろんですが、UMAゾンビの制限の中で全く新たなゾンビの外見を作れます。
  • biomes
    バイオームの内容と天候の法則が記されています。
    ブルーベリー等の植生を変えたり、バッグや鳥の巣の生成率、鉱石の生成などを変えられます。
    雨や霧、気温や風量をバイオームごとに調整できます。
  • blocks
    7DTDの世界を構成するブロック(種・地雷などの設置アイテム含む)の属性、見た目、破壊した際のドロップ品が記されています。
    ブロックを破壊時入手するアイテム量を変更したり、新たな植物や建材の追加など自由自在です。
  • buffs
    状態異常の効果が記されています。様々な状態異常を軽減、もしくは増幅したり、効果の持続時間を調整できたりします。
    一部の改造アイテムの効果、自販機で購入できるキャンディのバフなどもここで変更可能。
  • entityclasses
    プレイヤー自身や各種ゾンビ、動物、車両の属性や見た目等が記されています。
    ゾンビの体力、視角、重量、歩行時と走行時の速度などを増減できます。
    archetypesと一緒に書き換えることで全く新たなUMAゾンビを追加できます。
  • entitygroups
    entityclassesで設定したゾンビをグループ分けし、グループ内でゾンビの出現率を決めることができます。
    これを用いるspawningやgamestagesと一緒に確認することをおススメします。
  • gamestages
    散歩ホード建物などの局所的なスポーン、7日ごとの襲撃内容などが記されています。
    悪名高い犬ホードを消去したり、出現数をゲーム設定の限界を超えて変更できます。
  • items
    各アイテムの様々な仕様が記されています。
    現在存在しないPickAxeIronの特効を復元したり、ツールを振った際のスタミナの減少率を増減できます。
    ゾンビはここにあるHandZombieなどのアイテムを内部で装備して攻撃しています。これらのアイテムに指定されている数値を変更することで、受けるダメージの値や感染の確率などを変更できます。

具体的な編集の仕方
items.xmlファイルの先頭にも英語の解説が書いてあるので、編集する前にしっかり読むことを推奨します。
クラブを例に説明。

共通

  • <item id="1" name="clubWood">
    アイテムのIDと名前を決定します。当然、IDや名前が他と被ると正常に動作しなくなります。
    また、アイコンも名前と連動していて、既存のアイテム以外のアイテム名を入力した場合はアイコンが透明となります。
    新規で追加したアイテムにアイコンを設定したい場合、以下のように追記します。
    "<property name="CustomIcon" value="clubWood" />"
    これでvalueの値に入力したアイテムと同じアイコンが設定されます。
    また、設定したアイコンの色を変更することが可能です。
    "<property name="CustomIconTint" value="a0a0ff"/>"
    valueに入力した値でアイコンの色が変わります(上記はfireaxeSteelの青)。
    値の範囲は000000からFFFFFFまで。カラーコードで調べてみてください。
  • <property name="Extends" value="clubMaster"/>
    valueの値のアイテム記述を適用します。記載は必須ではありません。
    この場合、"clubMaster"というアイテムの記述が全てコピーされます。
    これ以降に変更点のみを記載することでその部分だけ追加、上書きすることができます。
    似ているアイテムに対し、何度も同じ記述をしないためのものです。
  • <property name="Meshfile" value="Items/Weapons/Melee/Club_Wood_BranchPrefab" />
    アイテムの3Dモデルを設定します。
  • <property name="Material" value="wood" />
    アイテムの素材を設定します。ブロック攻撃時の騒音に影響がありますが、その他の影響は分かりません。
  • <property name="HoldType" value="2" />
    アイテムの持ち方を設定します。
    使用時のモーションにも影響します。
    上記のMeshfileと合わせないと高確率でアイテムが透明化します。
  • <property name="Stacknumber" value="1" />
    1スタック当たりの数を設定します。
    近接武器など、品質や耐久度があるアイテムはここを1にしないとおかしな事になります。
  • <property name="RepairTools" value="stick" />
    修理に必要なアイテムです。
    ここで設定できるのはアイテムの種類だけであり、それを使って回復する耐久度の量はここでなく修理アイテムの側で設定します。
  • <property name="Degradation" value="125" param1="true" />
    耐久度を設定します。
    ただし、品質が存在する場合は後述のDegradationMaxによる値が優先されます。
  • <property name="SoundDestroy" value="wooddestroy1" />
    耐久度が0で壊れた時の音を設定します。
  • <property name="FuelValue" value="24" />
    燃料として用いた時の燃焼時間(秒)を設定します。
  • <property name="EconomicValue" value="5"/>
    アイテムの価値を設定します。トレーダーでの売却価格に影響します。
  • <property name="EconomicBundleSize" value="1"/>
    アイテムの最低購入数/最低売却数を設定します。1の場合は1つずつ売り買いできます。
  • <property name="SellableToTrader" value="false"/>
    アイテムのトレーダー売却可否を設定します。記載がない場合はtrue(売却可)となります。
  • </item>
    最後にちゃんとこれを記述しないと全てが狂います。
    後述のAction、Attributesよりも後に記述する事。

アイテム使用時のアクション

  • <property class="Action0">
    左クリックしたときのアクションを設定します。
    Action1の場合は右クリック時のアクションを設定します。
  • <property name="Class" value="Melee" />
    攻撃の方法を設定します。
    Meleeは近接攻撃です。
  • <property name="Delay" value="1.33" />
    攻撃一回にかかる時間を設定します。
    ただしモーションの速さは変わらず、HoldTypeの値によって一定です。
    この値がモーションより早くなると、正常に連続攻撃が出来なくなります。
  • <property name="Range" value="2.2" />
    射程を設定します。
    参考に、素手の攻撃は2.5です。
  • <property name="Sphere" value="0.2" />
    攻撃の範囲(面の広さ)を設定するようですが、よく分かりません。
  • <property name="DamageEntity" value="8" />
    生物に対する威力を設定します。
    ただし、品質が存在する場合は後述のEntityDamageの値が優先されます。
  • <property name="DamageBlock" value="0.9" />
    ブロックに対する威力を設定します。
    ただし、品質が存在する場合は後述のBlockDamageの値が優先されます。
  • <property name="Sound_start" value="swoosh" />
    攻撃時の音を設定します。
  • <property name="Stamina_usage" value="8" />
    攻撃時に消費するスタミナを設定します。
  • <property name="Buff" value="criticalBlunt" />
    特殊効果を設定します。
  • <property name="Buff_chance" value=".1" />
    特殊効果を与える確率を設定します。
  • <property name="DamageBonus.head" value="4" />
    特定の場所攻撃時のダメージ倍率を設定します。
    headは生き物の頭部
    glassはガラス(草(grass)ではありません)
    earthは土など
    stoneは石など
    metalは鉱石や金属製品
    woodは木や木材製品
    1より小さい値にする事も可能です。
  • </property>
    これを記述したところまでがアクションの設定となります。

品質

  • <property class="Attributes">
    これを記述するとアイテムに品質が存在するようになります。
    どの項目も基本的に値の範囲を設定し、その範囲で品質に応じて値が変動します。
    value="8,14"のように記述し、左が品質最低の値、右が品質最大の値となります。
  • <property name="EntityDamage" value="8,14" />
    生物へのダメージの範囲を設定します。
    この場合、品質1の時のダメージが8、品質600の時のダメージが14となります。
    また、前述のDamageEntityよりこちらが優先されます。つまりこれを記述した場合DamageEntityの値は無意味となります。
  • <property name="BlockDamage" value="0.7,1.2" />
    ブロックへのダメージの範囲を設定します。
    また、前述のDamageBlockよりこちらが優先されます。
  • <property name="DegradationMax" value="100,600" />
    耐久度の範囲を設定します。
    また、前述のDegradationよりこちらが優先されます。
  • <property name="DegradationRate" value="3,1" />
    一度の使用で消費する耐久度の範囲を設定します。
  • </property>
    これを記述したところまでが品質の設定となります。
  • item_modifiers
    アイテムに取り付ける改造パーツ(Modifier)のデータが記されています。
    改造パーツ(Modifier)の性能や数値を調整・変更する事が出来ます。
    一部アイテムの効果などはbuffsに記載されており、そちらを変更する必要があります(弾帯MODのリロード速度など)
  • loot
    ゴミ袋やゾンビの死骸などを調べたときに取得できるアイテムの種類と個数が記されています。また、各種収納のコンテナ数を変更可能です。
    lootgroup name="~"の項目でアイテムを指定し、lootcontainer id~の項目で、lootgroupで指定したアイテムのスポーン数とコンテナの容量を変更できます。直接アイテムを追加する事も可能。
    これにより、本棚からレシピ本が出る確率を上げたり、特定のコンテナを調べたときのアイテムの種類や数を増やしたり、特定のコンテナから特定の物だけ必ず出るようにする、等の調整・改造が出来ます。
    α12現在、自分のレベルに応じてルート品の数と品質が変化しますが、これは"lootprobtemplates"以下の値で数(というか獲得率)を、lootqualitytemplatesで品質を変更することが出来ます。
  • materials
    ブロック・アイテムの性質がグループごとにまとめて記されています。
    ブロックについては耐久や質量最大荷重、最適なツール、接触音などをまとめて設定でき、アイテムについてはスクラップ時還元されるアイテムのカテゴリを決めることができます。
    ここで設定したMaterialはitemsとblocksで呼び出します。
  • misc
    まとめて設定した方が見やすいが、書くのに適したxmlがないものがまとめておいてあります。(各Alphaで内容がかわるので気をつけて)
    itemsで"..."としたアイテムの使用時のアニメーションと当たり判定、持ち替えにかかる時間などを設定できます。
    匂いの伝わるスピードや有効範囲、それによるHEAT値上昇などを設定できます。
  • npc
    NPCの陣営および会話の態度を記しています。
    トレーダーならその取り扱うアイテムのグループをtradersでのidを用いて指定できます。
    今は飾りです。
  • physicsbodies
    ゾンビや動物、プレイヤーなどのあたり判定やモデルの設定が記されています。
    普通、触りません。
  • progression
    プレイヤーのレベル・スキルについて各パラメータや効果が記されています。
    レベルのあがりやすさやスキルポイント入手量を変更したり、各スキルの効果をレベル帯ごとに設定できます。
    ここで設定したスキルを使えるように割り当てるのはitemsやblocksです。
  • qualityinfo
    アイテムの品質に割り当てられる色を設定します。
    こだわりがあるなら変更することもあるでしょう。
  • quests
    クエストやチャレンジの内容について記されています。
    クリア条件やスキルポイント・経験値・トークンなどの報酬の他に、チュートリアルクエストのようなクリア時のTipsなども設定できます。
    クエストの発動条件は、クエストメモを読むか他クエストの終了時のみ設定できます。
  • recipes
    各レシピの必要アイテムや一回での作成数などが記されています。
    レシピを追加する方法でレシピ追加方法が説明されています。既存レシピの変更も可能です。
  • rwgmixer
    ランダムワールド生成のルールが記されています。
    洞窟の生成数を上げたり、各建造物の建つ確率を増減できます。
    地形生成やバイオーム生成規則を設定できます。
    Alpha20時点では建物の生成確率変更は不可能になっていますが、生成する街の数などは変更できます。
  • sounds
    効果音の設定が記されています。
    音量やグループ分け以外に音が発するHEAT値なども設定できます。
    PVPなどを遊びやすくするためには調整が必要なところでしょう。
  • spawning
    バイオームのゾンビ・動物のスポーンが記されています。
    出現数のバランスや再出現までの時間を設定できます。
  • traders
    トレーダーが扱うアイテム・ブロック、品質による価格の変動が記されています。
    items、blocksで追加したアイテムをグループ分けし、トレーダーの仕入れを調整できます。
  • vehicles
    搭乗できる車両の属性やステータス等が記されています。速度などの各種パラメーターを設定可能。
    効果音や各パーツがバイクの発進に不可欠かどうかなどの設定ができます。
    乗り物の収納コンテナの変更はlootで設定できます。
  • weathersurvival
    ワールドが温度に与える影響が記されています。
    天候や標高が外気温に与える影響や、風量や濡れ、運動が体感温度に与える影響を設定できます。
    さらにbiomesでバイオームによる影響が設定できます。
  • xui
    windowsで記述した様々なUIを意味のあるグループに分けています。
    anchorはこちらでも指定可能です。
  • XUi/controls
    windowsで呼び出せるカスタムエレメントが記されています。
    rectやpanelなど、複数の小要素を持つエレメントを短いエレメントにまとめることでwindowsの可読性を上げ、複数回呼び出されるようなエレメントの種々のパラメータを一カ所でコントロールすることができます。
  • XUi/styles
    windowsで使うパラメータがstylesとしてジャンル分けして記されています。
    globalとそれを含むstyles部に分かれており、前者では[と]で囲まれたカスタムエントリーを定義し、後者ではglobalの他にwindowsで呼ばれる各styleのデフォルト値を指定できます。
  • XUi/windows
    種々の意味のあるUIの部品を定義します。

長いのでたたんでいます。
後日、必要に応じて項目にリンク先を作って詳しく解説します。

注意

xmlファイルを書き換える際には定期的にバックアップをとることをおススメします。
また、バージョンアップや整合性チェックではConfig内はファイル名が完全一致していなくても、頭文字が一致している場合作成したxmlが削除される場合があるので、Config内に残す場合は頭に_(アンダーバー)などをつけて保存しましょう。
ゲーム中にエラーが発生した場合F1/F2で表示できるコンソール上に表示されるため、確認が可能です。(延々とエラーが出続けて正常終了できなくなった場合は強制終了させる他ありません。:タスクマネージャなど)
なお、文法チェックはタイトルメニューが表示されたタイミングで既に終了しているため、7daystodie_data内に生成されたoutput_log.txtにあるERRから始まる文を確認することでゲームの開始を待たずにエラーの内容を確認できます。一つずつ変更内容を戻しながら原因を探りましょう。
output_log.txt内のエラーログはゲーム内のそれよりいくらか詳しいので、困ったときは読んでみましょう。

書き換え例

Alpha18対応

'xml書き換え/Alpha18/' には、下位層のページがありません。

解説

コメント

このページ編集に関する掲示板です。
質問は「質問用掲示板」、雑談は「雑談用掲示板」へどうぞ。

  • ティア5クエストを回収のみにしたいんですけどどうすればいいですかね -- 2021-08-13 (金) 19:02:43
  • ブロック破壊したときにスキルポイントを獲得する、といったことはxmlの書き換えで実現可能でしょうか? -- zombye? 2021-09-15 (水) 10:37:31
  • xml書き換えで品質6のクラフトを可能にすることってできますか?progressionとかいじってみたけどうまくいかなくて -- 2021-10-02 (土) 18:15:23
  • なんか、ストック数増やしたら、アイテムおいた場所がバグで地形がおかしく(リセット)なった。 -- 2021-10-05 (火) 15:06:51
  • 解体の数を増やすことって出来ますか? -- 2021-11-02 (火) 21:51:58
    • 解体ツールの収穫量 -- 2021-11-21 (日) 22:16:32
  • 物作りでも経験値入るように出来たら面白いと思うんやけどなぁ。でもアイテム全てに経験値が入るようにコピペする前に何か賢い方法ありますかね? -- 2021-11-21 (日) 22:15:31
  • 武器とかを解体するときに取得できる素材料を増やすことって出来ますか? -- 2021-11-23 (火) 21:18:42
  • 1日の時間の長さを24時間(リアルタイム)にしたいんだけどxmlの設定場所分かる人居ますか? -- 2022-02-17 (木) 23:39:54
  • ゾンビを倒した後に漁れるようにしたい... -- 2022-03-21 (月) 22:46:30
    • entityclasses.xml を弄ればできますよ。<!-- Gameplay zombieTemplateMale --> をコピー→検索すると、通常ゾンビのステータスがそこに書いてあり、<property name="LootDropProb" value=".02"/>があり袋2%ドロップなのでvalue="1"にすれば100%袋出てきます(多分一番簡単な方法)、特殊ゾンビは下に<entity_class name="名前...で続くステータス欄にLootDropProbが設定されてます。体力やExpなどの他ステータス同様ここで設定されたものが優先される?ようで、上記テンプレートに所属していても「このゾンビだけドロップ率100%」にできたりします(実例として、特定行動でのみHEAT値を100%にして超体力・超経験値・オリジナル袋ドロップ100%のボス化貞子実装とかも出来ました)。袋のレアリティは低い順から黄色:EntityLootContainerRegular青色:EntityLootContainerStrong赤色:EntityLootContainerBossです。上記のボス貞子の例みたいに新しい袋の実装も出来ますが、entityclasses.xml以外にloot.xmlもいじらないといけない分ミスりやすく面倒です…
      動物のように剥ぎ取りたい場合は、まだやったことないですがゾンビの死体にも動物同様「死体ブロック」として1000HPあるようで(<property name="DeadBodyHitPoints" value="1000"/>)、動物の死体欄を見ながら実装したい剥ぎ取り素材を付けていけばいいはずです…多分恐らくきっと
      あと、いろんな所に変えてあるようにバックアップは忘れずに -- 2022-03-27 (日) 19:02:39
      • ルート袋とは別にしたくって、倒したゾンビのまま略奪できますでしょうか。ExcitusXtremeModとかみたいにしたいなと思って..。 -- 2022-05-08 (日) 03:34:50
  • マシンガンナーをLv100まで作ろうとしたのですが、Progression.xmlにあるperks min_levelを100にして<level_requirements level="100">も100まで作ったのですが一切変化がありません...何故でしょうか -- 2022-04-01 (金) 16:16:25
    • minではなくmax_level="100"でした。しかし、作動しません... -- 2022-04-01 (金) 16:18:57
    • マシンガンナー」はパークなので、解放条件に「忍耐特性のLvがあります。Lv5のを例に持ってきますね↓
      <level_requirements level="5"><requirement name="ProgressionLevel" progression_name="attFortitude" operation="GTE" value="10" desc_key="reqFortitudeLevel10"/></level_requirements>
      このprogression_nameが条件の特性(この場合「忍耐」であるattFortitude)
      valueが条件レベルなので、「忍耐」の最大値を10のままにしているのなら「value="10"」のままにしてください。
      desc_keyは説明文を意味しますが、このままでも説明文が「マシンガンナーLv5」のままってだけでLv6以降も実装出来てるはずです。
      念の為新しく「xmlテスト用」としてNewGameを選択(チートモード有り)→デバックモード→レベル上げてスキル一覧を見る→最大レベルが多いと複数ページに分けられるので(私は特性の最大を10→12にしたところ、8以降が2ページ目に出現しました。)、ページの何処かにある▷ボタンを押すかマウススクロールすると次のページにいけるので、そこで追加されてないか確認してください。
      ※ちなみに…特性やパークの最大レベルについて、バニラにあった最大レベル分までは「W」キーを押すだけで取得できたのですが、改造で追加したそれ以降のレベルは「取得したいレベルが書いてあるページ」を開いてないとWキー反応しない+取得したら勝手に1ページ目に戻されるので注意です(例:特性11Lvを取りたい→1ページ目はLv1~8まで、2ページ目はLv10~11まで表示されてる→Lv11が表示されてない1ページ目でWキー押しても反応ナシ→2ページ目で押すと取得できた、しかし勝手に1ページ目に戻された)。直し方はまだ分かりません -- 2022-04-03 (日) 12:33:05

同じ話題について返信や追記をしたい時は、左側の〇をクリックしてからコメントしましょう。