基本的には
Factorio API Documents
を参考にLua Scriptを記述すればいい
参考になるのは
英語wikiのModのTutorial
サンプルとして、ゲーム開始時に任意のアイテムを所持するModを開発してみる -> ソース
ファイルの配置は
%AppData%\Factorio\mods\[Mod名のフォルダ]
に下記画像のようにinfo.json
とluaスクリプト
を配置すればよい
特定のイベント発生時にイベントハンドラが呼び出されるように設定する
例としてはゲーム開始時にプレイヤーが生成された時にイベントハンドラが呼び出されるように設定
event.lua
script.on_event(defines.events.on_player_created, on_player_created_event)
なお、イベント一覧に関しては
Eventsを参照
イベントハンドラ内で自作関数を呼び出すように設定する
例としては生成されたプレイヤーを引数として関数を呼び出すように設定
eventHandler.lua
local on_player_created_event = function(event)
local player = game.players[event.player_index]
add_items(player)
end
やりたいことを関数内に記述する
例としては引数として渡されたプレイヤーにロボット系のアイテムをいくつか所持するように設定
addItem.lua
local ITEMS_I_WANT = {
{"roboport", 25},
{"logistic-robot", 300},
{"construction-robot", 100},
{"logistic-chest-passive-provider", 200},
}
local add_items = function(player)
for _,item in pairs(ITEMS_I_WANT) do
if game.item_prototypes[item[1]] ~= nul then
player.insert{name=item[1], count=item[2]}
end
end
end
なお、アイテム一覧に関しては
Factorio wikiのData.rawあたりに綺麗に揃っているので参照