xml書き換え

Last-modified: 2023-10-09 (月) 10:24:57

ここではxmlを書き換える事について記載します。
'modによる改造-xmlを含む多数のファイルで構成される物'については
modページを見てください。→MOD

xmlとは

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

直接書き換えるかAlpha17から追加されたModletの仕様を使って書き換えます。
ただし記述ミスをした場合、赤エラーが連続で発生しゲームの運用は不可能になります。
また場合によってはパソコンそのものが起動しなくなるかもしれません。
当wikiや編集者は一切の責任を負いません。

注意

xmlファイルを書き換える際には定期的にバックアップ(複製)をとりましょう。
エラーが起きた時、復帰しやすくなります。

バージョンアップや整合性チェックではConfig内のファイル名が完全一致していなくても、
頭文字が一致していれば'作成したxml'が削除される場合があるのでConfig内に残す場合は頭に_(アンダーバー)などをつけて保存しましょう。

ゲーム中にエラーが発生した場合F1/F2で表示できるコンソール上に表示されるため確認が可能です。
延々とエラーが出続けて正常終了できなくなった場合は強制終了させるしか方法はありません(タスクマネージャなど)

なお文法チェックはタイトルメニューが表示されたタイミングで既に終了しているため7daystodie_data内に生成されたoutput_log.txtにあるERRから始まる文を確認することでゲームの開始を待たずにエラーの内容を確認できます。
一つずつ変更内容を戻しながら原因を探りましょう。
output_log.txt内のエラーログはゲーム内のそれよりいくらか詳しいので、困ったときは読んでみましょう。

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 name="clubWood">
    アイテムの名前を決定します。当然、名前が他と被ると正常に動作しなくなります。
    また、アイコンも名前と連動していて、既存のアイテム以外のアイテム名を入力した場合はアイコンが透明となります。
    新規で追加したアイテムにアイコンを設定したい場合、以下のように追記します。
    "<property name="CustomIcon" value="clubWood" />"
    これでvalueの値に入力したアイテムと同じアイコンが設定されます。
    また、設定したアイコンの色を変更することが可能です。
    "<property name="CustomIconTint" value="a0a0ff"/>"
    valueに入力した値でアイコンの色が変わります(上記はfireaxeSteelの青)。
    値の範囲は000000からFFFFFFまで。カラーコードで調べてみてください。
    ーAlpha19以前のどれかまでーーーー
    !Alpha19以前のバージョン(どれかまで)はIDも指定する必要が有ります。
    Alpha20でIDを記入した場合エラーとなります。

    item id="1" name="clubWood">
    ーーーーーー

    • <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にしないとおかしな事になります。
    スタック数の上限は65535です。
    上限を超えた数値は設定できますが上限値まで切り捨てされます。
  • <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フォルダ内item.xmlを書き換えます。
アイテム名の

property name="Stacknumber" value="1"/>
の1の部分を変更すればスタック数を変更出来ます。
上限は65535です。
上限を超えた数値は設定できますが上限値まで切り捨てされます。
ただし武器防具等のティアが設定されている物は
スタック数は増えません。

余談:自作の消耗品を作る際、スタック数を変更していれば
クラフトメニュー一覧から探し出しやすい。
~たとえば999とか~

書き換え例

Alpha18対応

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

解説

コメント

質問は「質問用掲示板」、雑談は「雑談用掲示板」へどうぞ。

  • いつの間にかHarmony APIが公式に取り入れられたんですね。もうこうなってくると最適かどうかはともかく、公式の方法を利用してできないことはなにもないですね。 -- 2023-02-14 (火) 22:40:11
  • レベルがカンストしてからの経験値がもったいない・・・最大値はprogressionで変えれるみたいだけど、どうせならライフとスタミナの最大値も200以上レベルに合わせて上がる様に出来ないかな。素人目に見てbuffsとentityclassesが怪しいんだけど・・・buffsの方にbuff Level Up Trackingてのがあるけどコレかなぁ?どれをいじればいいのかコレガワカラナイ ウーン -- 2023-03-02 (木) 00:06:53
    • 悩むくらいならイジったほうが知識になるかと。 -- 2023-03-02 (木) 07:41:20
      • 過去のVerだけどどうもこの手の改変はキャラを最初から作り直さないと反映されないってコメが過去コメにあったんだよね、今もそうか分からないけど新規キャラですぐレベルが上がる様にして1つ1つ変更しながら地道に調べるしかないかぁ。 -- 2023-03-02 (木) 19:06:54
    • (レベルがカンストしてからの経験値がもったいない・・・)への回答。buffs.xmlの<!-- Player HP / stamina per level --> にある100の数字を変更すればいいみたいです。 -- 町の本屋さん? 2023-07-15 (土) 14:14:05
  • 銃の反動や精度などってどこで変更できるかわかる人いませんか?ゾンビの出現数を増やしたら面白いけど対応ができなくなってしまった -- 2023-06-13 (火) 05:56:27
    • コンフィグのプログレッションの忍耐マシンガンナーのスキルレベルのところに反動を抑える内容のデータがあるのでそれをコピペしてショットガンに張り付けてます。

passive_effect name="KickDegreesVerticalMin" operation="perc_add" level="0,5" value="0,-.03" tags="perkMachineGunner"/>

passive_effect name="KickDegreesVerticalMax" operation="perc_add" level="0,5" value="0,-.15" tags="perkMachineGunner"/>

passive_effect name="KickDegreesHorizontalMin" operation="perc_add" level="0,5" value="0,-.03" tags="perkMachineGunner"/>

passive_effect name="KickDegreesHorizontalMax" operation="perc_add" level="0,5" value="0,-.15" tags="perkMachineGunner"/>

これが左右上下4つの反動に関するデータです。value="0,-.15"の部分を0,-1にすればスキルレベル5で無反動になります。
別の武器種に反映させるときはperkMachineGunnerの部分を各武器のスキルに変えてください。それで大丈夫です。
あとはアイテムのところにも同じようなデータがあるので同じように数字を変えればスキルレベル上げなくても最初から反動抑えたり無反動にもできます。 -- 2023-06-13 (火) 06:28:01

  • おお!ありがとうございます 帰ったら早速試してみます。レティクルの広さはどこを弄れば良いかわかりますか? -- 2023-06-13 (火) 09:40:36
    • 照準を小さくするならSpreadMultiplierAimingですね。これも同じようにお好みで数字を変えてください。 -- 2023-06-13 (火) 11:03:52
  • loot.xmlを<lootcontainer name="vehicleBicycle" count="0" size="9,2" に書き換えたけどストレージ容量が増えなかったのは、書き換えてから新しく手に入れた自転車からでないと適用されないって事?なんか間違った? -- 2023-06-21 (水) 19:26:25
  • 自己解決。一度アイテムとして手に取って再配置したら増えた。 -- 2023-06-24 (土) 14:02:52
  • a21でのスリーパーの、いわゆる強制発覚をなくしたいのですが、xmlの改変で可能でしょうか? 個人的に色々調べてみたところ、スリーパーの感知範囲、スキルのFrom the shadows、各サウンドのノイズ音量をいじるというところまでは行き着きました。たしかにこれらをいじると普通のスリーパーにはバレなくなったのですが、報酬部屋に大量に配置されているような強制発覚の集団は相変わらず動き出すので一番の主目的が果たせず困っております。ご存じの方がいらっしゃいましたら、どうかお知恵をお貸しください。 -- 2023-07-24 (月) 06:44:33
    • ん? 強制発覚 っても『プレハブエディタで建物に配置する時点で「寝たまま」「すでに起きてる」を設定する』はずなので、 強制発覚 とは違うんよね。 (「後沸き」も『そのように沸くよう』配置されてる場合が有る) で本題。  私は試す気が無いから推測ですが「配置時からすでに起きてる」ため、 動かないようにするのは無理だと思います。  -- 2023-07-24 (月) 08:53:37
    • 補足。建物は最初は無人で、プレイヤーが設定されたエリアに入った時、建物データで設定された状態~寝てる/起きてる~状態で配置される。  『建物データて'起きてる'のを寝てる状態で配置する』が出来るなら 全てのゾンビは寝た状態で配置される とは思う。 -- 2023-07-24 (月) 09:17:42
  • アドバイスありがとうございます。あれからさらに調べてみて、「すでに起きてる」というのがどういう意味かおおよそ理解できました。そこでPOIのxmlを開いてスリーパーの条件をいじってみたところ、すぐ起きるように指定されたゾンビも寝たままにすることができるようになりました。もちろん下手に騒音をあげると普通に目覚めて襲ってくるので、狙い通りのステルスプレイができそうです。強いて言えば、各POIのxmlを一つひとつチェックしなければならないので大変だ…というくらいでしょうか (^^; -- 2023-07-25 (火) 08:46:47
    • 申し訳ないです、上の枝につなげ損ねていました…。 -- 2023-07-25 (火) 08:47:56
      • 大丈夫よ~~。寝っぱなしに出来たんですね。おめでとう。 もしmodならNexus等に上げて配布したら使う人が居るかも? -- 2023-07-25 (火) 14:42:04
      • ありがとうございます。実は自分は今まで個人的にxmlをいじっていただけなので、プログラミングとかmod化したりとかの知識はないんです。でも、たしかにこのシステムに不満を抱いている人は少なくないでしょうし、これを機にmodとして人様にも出せるようになる勉強をしても良いかもしれないですね -- 2023-07-26 (水) 01:00:57
  • xml にて通常の自販機の缶詰の販売個数を(例 1個ではなく(3)とかに)増やせたりできるでしょうか? -- 2023-07-27 (木) 08:52:46
  • a21 b324でvehicles.xmlのvelocityMaxに調整が入ったっぽい?前と比べて数値が低い上にダッシュ時とほぼ同じ数字が当てられてる(value="通常時, 加速時" なのにどちらも9,9だったりする)そしてアプデ前の数値を入れると異様に早くなる。計算式が変わったのだろうか? -- 2023-07-28 (金) 03:46:10