MODの作り方/info.jsonの作り方

Last-modified: 2021-12-08 (水) 22:51:22

info.jsonの構造

info.jsonファイルでMODの名前、バージョン、その他必要事項を定義する。
最小限のinfo.jsonファイルはつぎのようになる。

  {
    "name": "test-mod",
    "version": "0.0.1",
    "title": "My best test mod",
    "author": "A very great tester",
    "factorio_version": "1.1",
    "dependencies": ["? optional-mod"]
  }

info.jsonファイルには以下の項目が書ける。

  • name 必須
    MODの内部名称。何でもよいが、MODポータルではアルファベットとダッシュとアンダースコアからなる名称のみ使用可能。長さは100文字まで。MODポータルでは4文字以上50文字未満が使える。
  • version 必須
    "X.Y.Z"の形式のみ可能。ただしX,Y,Zは0から65535までの数字。
    Xはメインバージョン、Yはメジャーバージョン、Zはマイナーバージョンを表す。
  • title 必須
    MODの表示名。100文字まで。localeフォルダのcfgファイルで翻訳可能。
  • author 必須
    MODの作者名。特に制限はなく、作者のリストでも良い。MODポータルではアップロードした人の名前が作者名として扱われる。
  • factorio_version ほぼ必須
    MODの動くFactorioのメジャーバージョンを一つだけ書く。書かない場合は"0.12"として扱われる。必須ではないが現在のFactorioのバージョンは1.1なのでほぼ必須。"1.1.48"のようにマイナーバージョンまで書いてはいけない。"1.1"のように書くこと。
    ちなみに"0.18"にするとMODポータルの検索では1.0として扱われる。
  • contact
    作者と連絡が取れる方法。メールアドレスなど。
  • homepage
    インターネット上でMODのある場所。ウェブサイトやフォーラムのスレッド、discordなど。ゲーム内のMODブラウザではこれに加えてMODポータルのリンクも表示される。
    "None"と書くとMODポータルの表示が汚くなるので、ない場合は空にしておくこと。
  • description
    MODの説明。ゲーム内でみんなが見れる。localeフォルダのcfgファイルで翻訳可能。
  • dependencies
    MODが依存する他のMODや同時に動かせないMODの情報を書く。デフォルトは["base"]。依存されるほうのMODは先に読み込まれていなければならない。

dependenciesの書き方

依存性を","で区切って並べる。

   "dependencies": ["mod-a", "? mod-b > 0.4.3", "! mod-c"]

依存性の書き方

依存性の表記は三つの部分からなる。
"<接頭辞> <MODの内部名称> <(不)等号 バージョン>"

"? some-mod-everyone-loves >= 4.2.0"

接頭辞の意味

接頭辞意味
なし必須
!併用不可
?併用可能
(?)併用可能、ただし明示しない
~依存するが読み込み順は問わない

(不)等号の意味

<, <=, =, >=, >が使用可能。依存するMODのバージョンを正確に書ける。
併用不可の場合は使えないため、バージョンに依らず併用不可になる。

注意事項

  1. 区切り部には「,」を使うこと
  2. UTF-8(≒日本語表記)を使用する場合は、BOM(Byte Order Mark)なしを指定し保存しましょう。
  3. この記述順番は{}内でなら入れ替わっても問題なく、description:を最後の行にすることもできます。
      記述時に改行はできませんが、\n記号を入れればゲーム内表記上は改行できます。
  4. 上記例の場合testmod_1.0という名前のフォルダを用意して、そこにinfo.jsonを入れます。(フォルダ名はname_versionで固定すること)
      name、version、フォルダ名のどれかを間違えると動作しませんがtitleは間違っていても動作します。