Entry point for registering event handlers. It is accessible through the global object named script
.
on_init(f) | Register a callback to be run on mod init. |
on_load(f) | Register a function to be run on module load. |
on_configuration_changed(f) | Register a function to be run when mod configuration changes. |
on_event(event, f, filters) | Register a handler to run on event or events. |
on_nth_tick(tick, f) | Register a handler to run every nth tick(s). |
generate_event_name() → uint | Generate a new, unique event ID. |
get_event_handler(event) | Find the event handler for an event. |
raise_event(event, table) | Raise an event. |
get_event_order() | Gets the mod event order. |
set_event_filter(event, filters) | Sets the filters for the given event. |
get_event_filter(event) → table | Gets the filters for the given event. |
mod_name :: string [R] | The name of the mod from the environment this is used in. |
active_mods :: dictionary string → string [R] | The active mods versions. |
is_game_in_debug_mode [R] | Is the game compiled in a debug mode. |
object_name :: string [R] | This objects name. |
Register a callback to be run on mod init. This is called once when a new save game is created or once when a save file is loaded that previously didn't contain the mod. This is always called before other event handlers and is meant for setting up initial values that a mod will use for its lifetime.
Register a function to be run on module load. This is called every time a save file is loaded *except* for the instance when a mod is loaded into a save file that it previously wasn't part of. Additionally this is called when connecting to any other game in a multiplayer session and should never change the game state.
This is meant for 3 specific reasons and only 3:
In all other instances the LuaBootstrap::on_init, LuaBootstrap::on_configuration_changed or migration scripts should be used. Doing any other logic when loading a save file can break the replay and cause desync issues if the mod is used in multiplayer.
nil
will unregister the handler.Register a function to be run when mod configuration changes. This is called any time the game version changes, prototypes change, startup mod settings change, and any time mod versions change including adding or removing mods.
nil
will unregister the handler.Register a handler to run on event or events.
name
(of type defines.events) specifying the name
of the event it was called to handle, and tick
that specifies when the event was created. This table will
also contain other fields, depending on the type of the event. See
the list of Factorio events for a listing of these additional fields.mod_name
additionally to the above properties.Register a handler to run every nth tick(s). When the game is on tick 0 it will trigger all registered handlers.
nil
as the only parameter will unregister all nth-tick handlers.nil
will unregister the handler for the provided ticks.Generate a new, unique event ID.
Find the event handler for an event.
Raise an event.
Gets the mod event order. type(string)
Gets the filters for the given event.
nil
if none are defined.The name of the mod from the environment this is used in.
The active mods versions. The keys are mod names, the values are the versions.
for name, version in pairs(script.active_mods) do
p.print(name .. " version " .. version)
end
Is the game compiled in a debug mode. This will always return false in retail builds.
This objects name.