Types/SimulationDefinition
The prototype docs have moved to a new website with an improved format. This documentation page can now be found here: https://lua-api.factorio.com/latest/types/SimulationDefinition.html
This wiki page is no longer updated and will be removed at some point in the future, so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback on the forums.
Used by Prototype/TipsAndTricksItem and by main menu simulations (Prototype/UtilityConstants#main_menu_simulations).
Optional properties
save
Type: Types/FileName
The save file that is used for this simulation. If not given and generate_map
is true, a map gets generated by the game.
init_file
Type: Types/FileName
This code is run as a (silent) console command inside the simulation when it is first initialized. Since this is run as a console command, the restrictions of console commands apply, e.g. require
is not available[1].
init
Type: Types/string
Default: ""
Only loaded if init_file
is not present.
This code is run as a (silent) console command inside the simulation when it is first initialized. Since this is run as a console command, the restrictions of console commands apply, e.g. require
is not available[2].
update_file
Type: Types/FileName
This code is run as a (silent) console command inside the simulation every time the simulation is updated. Since this is run as a console command, the restrictions of console commands apply, e.g. require
is not available[3].
update
Type: Types/string
Default: ""
Only loaded if update_file
is not present.
This code is run as a (silent) console command inside the simulation every time the simulation is updated. Since this is run as a console command, the restrictions of console commands apply, e.g. require
is not available[4].
init_update_count
Type: Types/uint32
Default: 0
Amount of ticks that this simulation should run for before the simulation is shown to the player. These updates happen after init/init_file has been run and at the highest possible rate (> 60 UPS).
length
Type: Types/uint32
Default: 0
How long this simulation takes. In the main menu simulations, another simulation will start after this simulation ends.
generate_map
Type: Types/bool
Default: false
If save
is not given and this is true, a map gets generated by the game for use in the simulation.
checkboard
Type: Types/bool
Default: true
If this is true, the map of the simulation is set to be a lab-tile checkerboard in the area of {{-20, -15},{20, 15}} when the scenario is first initialized (before init/init_file run).
volume_modifier
Type: Types/float
Multiplier for the simulation volume set by the player in the sound settings.
override_volume
Type: Types/bool
If true, overrides the simulation volume set by the player in the sound settings, simply setting the volume modifier to 1.
Addition API
Simulation-only APIs:
game.create_test_player{name=string}
game.activate_rail_planner{position=position,ghost_mode=bool}
game.deactivate_rail_planner()
game.move_cursor{position=position,speed=number} --[[should be called every tick. Returns true when target is reached]]
game.activate_selection()
game.finish_selection()
game.deactivate_selection()
game.scroll_clipboard_forwards()
game.scroll_clipboard_backwards()
game.camera_player_cursor_position [RW]
game.camera_position [RW]
game.camera_zoom [W]
game.camera_player [W]
game.camera_player_cursor_direction [W]
game.camera_alt_info [W]
game.smart_belt_building [W]
player.drag_start_position [W]
player.raw_build_from_cursor{ghost_mode=bool,created_by_moving=bool,position=position}
surface.create_entities_from_blueprint_string{string=string,position=position,force=force,direction=defines.direction,flip_horizonal=bool,flip_vertical=bool,by_player=player}