MODの作り方/既存データ変更の仕方

Last-modified: 2022-04-12 (火) 16:28:33
Version0.17.35現在の情報です

ソース

data.raw["character"]["character"].running_speed=0.3
data.raw["technology"]["fencetech"].unit=
{
 count = 20,
 ingredients =
 {
   {"science-pack-1", 1}
 },
 time = 10
}

解説

data.raw["type"]["name"]
typeとnameを変更したいアイテム等に書かれているものと揃え
変更したい要素を抜き出し変更する
上はプレイヤーの移動速度の変更
下は他MOD(Technologyの作り方)の要素の変更

下記のページが参考になるかと思いまして、リンクだけ張りますね
https://wiki.factorio.com/index.php?title=Data.raw

データの変更なので基本はdata.luaに書けば問題ない。
がしかし、data-updates.luaやdata-final-fixes.luaで変更されているデータをさらに変更したいとなると、data.luaでは変更できない。
データの読み込みは、まず全てのdata.luaが読み込まれ、その後にdata-update.luaが、それが終わると最後にdata-final-fixes.luaが読み込まれる、という流れになっている。
この仕様上、別のmodのdata-updates.luaで変更されたデータはdata.luaで書き換えることができない。
これを解消するためには変更したいデータをdata-updates.luaやdata-final-fixes.luaに書く必要がある。