Prototype/MapSettings: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(0.17.59 comment update)
(Converted to SMW format)
Line 1: Line 1:
{{Prototype parent}}
{{Prototype parent}}
The default map settings. Only 1 instance of this prototype can exist.


== Basics ==
{{Prototype TOC|map-settings}}
Prototype type: '''map-settings'''
 
The default map settings. Only 1 instance of this prototype can exist.


== Mandatory properties ==
== Mandatory properties ==


=== type ===
{{Prototype property|type|[[Types/string|string]]}}
'''Type''': [[Types/string]]
 
Must be "map-settings".
Must be "map-settings".


=== name ===
{{Prototype property|name|[[Types/string|string]]}}
'''Type''': [[Types/string]]
 
Name of the map-settings. Must be "map-settings" since only one instances of this prototype can be defined.
Name of the map-settings. Must be "map-settings" since only one instances of this prototype can be defined.


=== pollution ===
{{Prototype property|pollution|[[Types/table|table]]}}
'''Type''': [[Types/table]]
 
The pollution settings, the values are for 60 ticks (1 second). Table with the following mandatory members:
The pollution settings, the values are for 60 ticks (1 second). Table with the following mandatory members:


* enabled - [[Types/bool]]
* enabled - [[Types/bool|bool]]
* diffusion_ratio - [[Types/double]] - Amount that is diffused to neighboring chunks
* diffusion_ratio - [[Types/double|double]] - Amount that is diffused to neighboring chunks
* min_to_diffuse - [[Types/double]] - This much pollution units must be on the chunk to start diffusing
* min_to_diffuse - [[Types/double|double]] - This much pollution units must be on the chunk to start diffusing
* ageing - [[Types/double]] - Constant modifier a percentage of 1; the pollution eaten by a chunks tiles
* ageing - [[Types/double|double]] - Constant modifier a percentage of 1; the pollution eaten by a chunks tiles
* expected_max_per_chunk - [[Types/double]] - Anything bigger than this is visualised as this value
* expected_max_per_chunk - [[Types/double|double]] - Anything bigger than this is visualised as this value
* min_to_show_per_chunk - [[Types/double]] - Anything lower than this (but > 0) is visualised as this value
* min_to_show_per_chunk - [[Types/double|double]] - Anything lower than this (but > 0) is visualised as this value
* min_pollution_to_damage_trees - [[Types/double]]
* min_pollution_to_damage_trees - [[Types/double|double]]
* pollution_with_max_forest_damage - [[Types/double]]
* pollution_with_max_forest_damage - [[Types/double|double]]
* pollution_restored_per_tree_damage - [[Types/double]]
* pollution_restored_per_tree_damage - [[Types/double|double]]
* pollution_per_tree_damage - [[Types/double]]
* pollution_per_tree_damage - [[Types/double|double]]
* max_pollution_to_restore_trees - [[Types/double]]
* max_pollution_to_restore_trees - [[Types/double|double]]
* enemy_attack_pollution_consumption_modifier - [[Types/double]]
* enemy_attack_pollution_consumption_modifier - [[Types/double|double]]
 
=== steering ===
'''Type''': [[Types/table]]


{{Prototype property|steering|[[Types/table|table]]}}
Table with the following mandatory members:
Table with the following mandatory members:


* default - [[Types/table]]
* default - [[Types/table|table]]
** radius - [[Types/double]] - Not including the radius of the unit
** radius - [[Types/double|double]] - Not including the radius of the unit
** separation_factor - [[Types/double]]
** separation_factor - [[Types/double|double]]
** separation_force - [[Types/double]]
** separation_force - [[Types/double|double]]
** force_unit_fuzzy_goto_behavior - [[Types/bool]]
** force_unit_fuzzy_goto_behavior - [[Types/bool|bool]]
* moving - [[Types/table]]
* moving - [[Types/table|table]]
** radius - [[Types/double]]
** radius - [[Types/double|double]]
** separation_factor - [[Types/double]]
** separation_factor - [[Types/double|double]]
** separation_force - [[Types/double]]
** separation_force - [[Types/double|double]]
** force_unit_fuzzy_goto_behavior - [[Types/bool]] - Used only for special "to look good" purposes (like in trailer)
** force_unit_fuzzy_goto_behavior - [[Types/bool|bool]] - Used only for special "to look good" purposes (like in trailer)
 
=== enemy_evolution ===
'''Type''': [[Types/table]]


{{Prototype property|enemy_evolution|[[Types/table|table]]}}
Table with the following mandatory members:
Table with the following mandatory members:
* enabled - [[Types/bool]]
* enabled - [[Types/bool|bool]]
* time_factor - [[Types/double]] - Percentual increase in the evolution factor for every second (60 ticks)
* time_factor - [[Types/double|double]] - Percentual increase in the evolution factor for every second (60 ticks)
* destroy_factor - [[Types/double]] - Percentual increase in the evolution factor for every destroyed spawner
* destroy_factor - [[Types/double|double]] - Percentual increase in the evolution factor for every destroyed spawner
* pollution_factor - [[Types/double]] - Percentual increase in the evolution factor for 1 pollution unit
* pollution_factor - [[Types/double|double]] - Percentual increase in the evolution factor for 1 pollution unit
 
=== enemy_expansion ===
'''Type''': [[Types/table]]


{{Prototype property|enemy_expansion|[[Types/table|table]]}}
Table with the following mandatory members:
Table with the following mandatory members:
* enabled - [[Types/bool]]
* enabled - [[Types/bool|bool]]
* max_expansion_distance - [[Types/uint32]] - Distance in chunks from the furthest base around. This prevents expansions from reaching too far into the player's territory.
* max_expansion_distance - [[Types/uint32|uint32]] - Distance in chunks from the furthest base around. This prevents expansions from reaching too far into the player's territory.
* friendly_base_influence_radius - [[Types/uint32]]
* friendly_base_influence_radius - [[Types/uint32|uint32]]
* enemy_building_influence_radius - [[Types/uint32]]
* enemy_building_influence_radius - [[Types/uint32|uint32]]
* building_coefficient - [[Types/double]]
* building_coefficient - [[Types/double|double]]
* other_base_coefficient - [[Types/double]]
* other_base_coefficient - [[Types/double|double]]
* neighbouring_chunk_coefficient - [[Types/double]]
* neighbouring_chunk_coefficient - [[Types/double|double]]
* neighbouring_base_chunk_coefficient - [[Types/double]]
* neighbouring_base_chunk_coefficient - [[Types/double|double]]
* max_colliding_tiles_coefficient - [[Types/double]] - A chunk has to have at most this much percent unbuildable tiles for it to be considered a candidate. This is to avoid chunks full of water to be marked as candidates.
* max_colliding_tiles_coefficient - [[Types/double|double]] - A chunk has to have at most this much percent unbuildable tiles for it to be considered a candidate. This is to avoid chunks full of water to be marked as candidates.
* settler_group_min_size - [[Types/uint32]] - Size of the group that goes to build new base (the game interpolates between min size and max size based on evolution factor).
* settler_group_min_size - [[Types/uint32|uint32]] - Size of the group that goes to build new base (the game interpolates between min size and max size based on evolution factor).
* settler_group_max_size - [[Types/uint32]]
* settler_group_max_size - [[Types/uint32|uint32]]
* min_expansion_cooldown - [[Types/uint32]] - Ticks to expand to a single position for a base is used. Cooldown is calculated as follows: <code>cooldown = lerp(max_expansion_cooldown, min_expansion_cooldown, -e^2 + 2 * e)</code> where lerp is the linear interpolation function, and e is the current evolution factor.
* min_expansion_cooldown - [[Types/uint32|uint32]] - Ticks to expand to a single position for a base is used. Cooldown is calculated as follows: <code>cooldown = lerp(max_expansion_cooldown, min_expansion_cooldown, -e^2 + 2 * e)</code> where lerp is the linear interpolation function, and e is the current evolution factor.
* max_expansion_cooldown - [[Types/uint32]]
* max_expansion_cooldown - [[Types/uint32|uint32]]
 
=== unit_group ===
'''Type''': [[Types/table]]


{{Prototype property|unit_group|[[Types/table|table]]}}
Table with the following mandatory members:
Table with the following mandatory members:
* min_group_gathering_time - [[Types/uint32]] - Pollution triggered group waiting time is a random time between min and max gathering time
* min_group_gathering_time - [[Types/uint32|uint32]] - Pollution triggered group waiting time is a random time between min and max gathering time
* max_group_gathering_time - [[Types/uint32]]
* max_group_gathering_time - [[Types/uint32|uint32]]
* max_wait_time_for_late_members - [[Types/uint32]] - After the gathering is finished the group can still wait for late members, but it doesn't accept new ones anymore.
* max_wait_time_for_late_members - [[Types/uint32|uint32]] - After the gathering is finished the group can still wait for late members, but it doesn't accept new ones anymore.
* max_group_radius - [[Types/double]] - Limits for group radius (calculated by number of numbers).
* max_group_radius - [[Types/double|double]] - Limits for group radius (calculated by number of numbers).
* min_group_radius - [[Types/double]]
* min_group_radius - [[Types/double|double]]
* max_member_speedup_when_behind - [[Types/double]] - When a member falls behind the group he can speedup up till this much of his regular speed.
* max_member_speedup_when_behind - [[Types/double|double]] - When a member falls behind the group he can speedup up till this much of his regular speed.
* max_member_slowdown_when_ahead - [[Types/double]] - When a member gets ahead of its group, it will slow down to at most this factor of its speed.
* max_member_slowdown_when_ahead - [[Types/double|double]] - When a member gets ahead of its group, it will slow down to at most this factor of its speed.
* max_group_slowdown_factor - [[Types/double]] - When members of a group are behind, the entire group will slow down to at most this factor of its max speed.
* max_group_slowdown_factor - [[Types/double|double]] - When members of a group are behind, the entire group will slow down to at most this factor of its max speed.
* max_group_member_fallback_factor - [[Types/double]] - If a member falls behind more than this times the group radius, the group will slow down to max_group_slowdown_factor.
* max_group_member_fallback_factor - [[Types/double|double]] - If a member falls behind more than this times the group radius, the group will slow down to max_group_slowdown_factor.
* member_disown_distance - [[Types/double]] - If a member falls behind more than this time the group radius, it will be removed from the group.
* member_disown_distance - [[Types/double|double]] - If a member falls behind more than this time the group radius, it will be removed from the group.
* tick_tolerance_when_member_arrives - [[Types/uint32]]
* tick_tolerance_when_member_arrives - [[Types/uint32|uint32]]
* max_gathering_unit_groups - [[Types/uint32]] - Maximum number of automatically created unit groups gathering for attack at any time.
* max_gathering_unit_groups - [[Types/uint32|uint32]] - Maximum number of automatically created unit groups gathering for attack at any time.
* max_unit_group_size - [[Types/uint32]] - Maximum size of an attack unit group. This only affects automatically-created unit groups; manual groups created through the API are unaffected.
* max_unit_group_size - [[Types/uint32|uint32]] - Maximum size of an attack unit group. This only affects automatically-created unit groups; manual groups created through the API are unaffected.
 
=== path_finder ===
'''Type''': [[Types/table]]


{{Prototype property|path_finder|[[Types/table|table]]}}
Table with the following mandatory members:
Table with the following mandatory members:
* fwd2bwd_ratio - [[Types/int32]] - Defines whether we prefer forward (>1) or backward (<-1) or symmetrical (1) search.
* fwd2bwd_ratio - [[Types/int32|int32]] - Defines whether we prefer forward (>1) or backward (<-1) or symmetrical (1) search.
* goal_pressure_ratio - [[Types/double]] - When comparing nodes in open which one to check next, heuristic value is multiplied by this ratio. The higher the number the more is the search directed directly towards the goal.
* goal_pressure_ratio - [[Types/double|double]] - When comparing nodes in open which one to check next, heuristic value is multiplied by this ratio. The higher the number the more is the search directed directly towards the goal.
* max_steps_worked_per_tick - [[Types/double]] - When this is exhausted no more requests are allowed, at the moment the first path to exhaust this will be finished (even if it is hundreds of steps).
* max_steps_worked_per_tick - [[Types/double|double]] - When this is exhausted no more requests are allowed, at the moment the first path to exhaust this will be finished (even if it is hundreds of steps).
* use_path_cache - [[Types/bool]]
* use_path_cache - [[Types/bool|bool]]
* short_cache_size - [[Types/uint32]] - Number of elements in the cache.
* short_cache_size - [[Types/uint32|uint32]] - Number of elements in the cache.
* long_cache_size - [[Types/uint32]]
* long_cache_size - [[Types/uint32|uint32]]
* short_cache_min_cacheable_distance - [[Types/double]] - Minimal distance to goal for path to be searched in short path cache.
* short_cache_min_cacheable_distance - [[Types/double|double]] - Minimal distance to goal for path to be searched in short path cache.
* short_cache_min_algo_steps_to_cache - [[Types/uint32]] - Minimal number of algorithm steps for path to be inserted into the short path cache.
* short_cache_min_algo_steps_to_cache - [[Types/uint32|uint32]] - Minimal number of algorithm steps for path to be inserted into the short path cache.
* long_cache_min_cacheable_distance - [[Types/double]] - Minimal distance to goal for path to be searched in long path cache.
* long_cache_min_cacheable_distance - [[Types/double|double]] - Minimal distance to goal for path to be searched in long path cache.
* cache_max_connect_to_cache_steps_multiplier - [[Types/uint32]] - When searching for connection to path cache path, search at most for this number of steps times the initial estimate.
* cache_max_connect_to_cache_steps_multiplier - [[Types/uint32|uint32]] - When searching for connection to path cache path, search at most for this number of steps times the initial estimate.
* cache_accept_path_start_distance_ratio - [[Types/double]] - When looking for path from cache make sure it doesn't start too far from requested start in relative distance terms.
* cache_accept_path_start_distance_ratio - [[Types/double|double]] - When looking for path from cache make sure it doesn't start too far from requested start in relative distance terms.
* cache_accept_path_end_distance_ratio - [[Types/double]] - When looking for path from cache make sure it doesn't end too far from requested end. This is typically higher than accept value for the start because the end target can be moving.
* cache_accept_path_end_distance_ratio - [[Types/double|double]] - When looking for path from cache make sure it doesn't end too far from requested end. This is typically higher than accept value for the start because the end target can be moving.
* negative_cache_accept_path_start_distance_ratio - [[Types/double]] - Same as cache_accept_path_start_distance_ratio, but used for negative cache queries.
* negative_cache_accept_path_start_distance_ratio - [[Types/double|double]] - Same as cache_accept_path_start_distance_ratio, but used for negative cache queries.
* negative_cache_accept_path_end_distance_ratio - [[Types/double]] - Same as cache_accept_path_end_distance_ratio, but used for negative cache queries.
* negative_cache_accept_path_end_distance_ratio - [[Types/double|double]] - Same as cache_accept_path_end_distance_ratio, but used for negative cache queries.
* cache_path_start_distance_rating_multiplier - [[Types/double]] - When assigning rating to the best path this * start distances is considered.
* cache_path_start_distance_rating_multiplier - [[Types/double|double]] - When assigning rating to the best path this * start distances is considered.
* cache_path_end_distance_rating_multiplier - [[Types/double]] - When assigning rating to the best path this * end distances is considered. This is typically higher than value for the start to achieve better path end quality.
* cache_path_end_distance_rating_multiplier - [[Types/double|double]] - When assigning rating to the best path this * end distances is considered. This is typically higher than value for the start to achieve better path end quality.
* stale_enemy_with_same_destination_collision_penalty - [[Types/double]] - Somewhere along the path is stuck enemy we need to avoid. This is mainly to handle situations when units have arrived and are attacking the target then units further in the back will use this and run around the target.
* stale_enemy_with_same_destination_collision_penalty - [[Types/double|double]] - Somewhere along the path is stuck enemy we need to avoid. This is mainly to handle situations when units have arrived and are attacking the target then units further in the back will use this and run around the target.
* ignore_moving_enemy_collision_distance - [[Types/double]] - If there is a moving unit further than this we don't really care.
* ignore_moving_enemy_collision_distance - [[Types/double|double]] - If there is a moving unit further than this we don't really care.
* enemy_with_different_destination_collision_penalty - [[Types/double]] - Enemy is not moving/or is too close and has different destination.
* enemy_with_different_destination_collision_penalty - [[Types/double|double]] - Enemy is not moving/or is too close and has different destination.
* general_entity_collision_penalty - [[Types/double]] - Simplification for now; collision with everything else is this.
* general_entity_collision_penalty - [[Types/double|double]] - Simplification for now; collision with everything else is this.
* general_entity_subsequent_collision_penalty - [[Types/double]] - Collision penalty for successors of positions that require destroy to reach.
* general_entity_subsequent_collision_penalty - [[Types/double|double]] - Collision penalty for successors of positions that require destroy to reach.
* max_clients_to_accept_any_new_request - [[Types/uint32]] - Up until this amount any client will be served by the path finder (no estimate on the path length).
* max_clients_to_accept_any_new_request - [[Types/uint32|uint32]] - Up until this amount any client will be served by the path finder (no estimate on the path length).
* max_clients_to_accept_short_new_request - [[Types/uint32]] - From max_clients_to_accept_any_new_request till this one only those that have a short estimate will be served.
* max_clients_to_accept_short_new_request - [[Types/uint32|uint32]] - From max_clients_to_accept_any_new_request till this one only those that have a short estimate will be served.
* direct_distance_to_consider_short_request - [[Types/uint32]] - This is the "threshold" to decide what is short and what is not.
* direct_distance_to_consider_short_request - [[Types/uint32|uint32]] - This is the "threshold" to decide what is short and what is not.
* short_request_max_steps - [[Types/uint32]] - If a short request takes more than this many steps, it will be rescheduled as a long request.
* short_request_max_steps - [[Types/uint32|uint32]] - If a short request takes more than this many steps, it will be rescheduled as a long request.
* short_request_ratio - [[Types/double]] - How many steps will be allocated to short requests each tick, as a ratio of all available steps per tick.
* short_request_ratio - [[Types/double|double]] - How many steps will be allocated to short requests each tick, as a ratio of all available steps per tick.
* min_steps_to_check_path_find_termination - [[Types/uint32]] - Absolute minimum of steps that will be performed for every path find request no matter what.
* min_steps_to_check_path_find_termination - [[Types/uint32|uint32]] - Absolute minimum of steps that will be performed for every path find request no matter what.
* start_to_goal_cost_multiplier_to_terminate_path_find - [[Types/double]] - If the current actual cost from start is higher than this times estimate of start to goal then path finding is terminated.
* start_to_goal_cost_multiplier_to_terminate_path_find - [[Types/double|double]] - If the current actual cost from start is higher than this times estimate of start to goal then path finding is terminated.
 
=== max_failed_behavior_count ===
'''Type''': [[Types/uint32]]


{{Prototype property|max_failed_behavior_count|[[Types/uint32|uint32]]}}
If a behavior fails this many times, the enemy (or enemy group) is destroyed. This solves biters stuck within their own base.
If a behavior fails this many times, the enemy (or enemy group) is destroyed. This solves biters stuck within their own base.


=== difficulty_settings ===
{{Prototype property|difficulty_settings|[[Types/table|table]]}}
'''Type''': [[Types/table]]
 
Table with the following mandatory members:
Table with the following mandatory members:
* recipe_difficulty - [[Types/uint8]] - A [https://lua-api.factorio.com/latest/defines.html#defines.difficulty_settings defines.difficulty_settings.recipe_difficulty].
* recipe_difficulty - [[Types/uint8|uint8]] - A [https://lua-api.factorio.com/latest/defines.html#defines.difficulty_settings defines.difficulty_settings.recipe_difficulty].
* technology_difficulty - [[Types/uint8]] - A [https://lua-api.factorio.com/latest/defines.html#defines.difficulty_settings defines.difficulty_settings.technology_difficulty].
* technology_difficulty - [[Types/uint8|uint8]] - A [https://lua-api.factorio.com/latest/defines.html#defines.difficulty_settings defines.difficulty_settings.technology_difficulty].
* technology_price_multiplier - [[Types/double]] - Must be >= 0.001 and <= 1000.
* technology_price_multiplier - [[Types/double|double]] - Must be >= 0.001 and <= 1000.
* research_queue_setting - [[Types/string]] - Either "always", "after-victory" or "never".
* research_queue_setting - [[Types/string|string]] - Either "always", "after-victory" or "never".

Revision as of 22:11, 27 July 2019

Prototype definitions » Prototype/MapSettings


The default map settings. Only 1 instance of this prototype can exist.


Prototype/MapSettings — map-settings
difficulty_settings::table
enemy_evolution::table
enemy_expansion::table
max_failed_behavior_count::uint32
name::string
path_finder::table
pollution::table
steering::table
type::string
unit_group::table

Mandatory properties

type

Type: string
Must be "map-settings".

name

Type: string
Name of the map-settings. Must be "map-settings" since only one instances of this prototype can be defined.

pollution

Type: table
The pollution settings, the values are for 60 ticks (1 second). Table with the following mandatory members:

  • enabled - bool
  • diffusion_ratio - double - Amount that is diffused to neighboring chunks
  • min_to_diffuse - double - This much pollution units must be on the chunk to start diffusing
  • ageing - double - Constant modifier a percentage of 1; the pollution eaten by a chunks tiles
  • expected_max_per_chunk - double - Anything bigger than this is visualised as this value
  • min_to_show_per_chunk - double - Anything lower than this (but > 0) is visualised as this value
  • min_pollution_to_damage_trees - double
  • pollution_with_max_forest_damage - double
  • pollution_restored_per_tree_damage - double
  • pollution_per_tree_damage - double
  • max_pollution_to_restore_trees - double
  • enemy_attack_pollution_consumption_modifier - double

steering

Type: table
Table with the following mandatory members:

  • default - table
    • radius - double - Not including the radius of the unit
    • separation_factor - double
    • separation_force - double
    • force_unit_fuzzy_goto_behavior - bool
  • moving - table
    • radius - double
    • separation_factor - double
    • separation_force - double
    • force_unit_fuzzy_goto_behavior - bool - Used only for special "to look good" purposes (like in trailer)

enemy_evolution

Type: table
Table with the following mandatory members:

  • enabled - bool
  • time_factor - double - Percentual increase in the evolution factor for every second (60 ticks)
  • destroy_factor - double - Percentual increase in the evolution factor for every destroyed spawner
  • pollution_factor - double - Percentual increase in the evolution factor for 1 pollution unit

enemy_expansion

Type: table
Table with the following mandatory members:

  • enabled - bool
  • max_expansion_distance - uint32 - Distance in chunks from the furthest base around. This prevents expansions from reaching too far into the player's territory.
  • friendly_base_influence_radius - uint32
  • enemy_building_influence_radius - uint32
  • building_coefficient - double
  • other_base_coefficient - double
  • neighbouring_chunk_coefficient - double
  • neighbouring_base_chunk_coefficient - double
  • max_colliding_tiles_coefficient - double - A chunk has to have at most this much percent unbuildable tiles for it to be considered a candidate. This is to avoid chunks full of water to be marked as candidates.
  • settler_group_min_size - uint32 - Size of the group that goes to build new base (the game interpolates between min size and max size based on evolution factor).
  • settler_group_max_size - uint32
  • min_expansion_cooldown - uint32 - Ticks to expand to a single position for a base is used. Cooldown is calculated as follows: cooldown = lerp(max_expansion_cooldown, min_expansion_cooldown, -e^2 + 2 * e) where lerp is the linear interpolation function, and e is the current evolution factor.
  • max_expansion_cooldown - uint32

unit_group

Type: table
Table with the following mandatory members:

  • min_group_gathering_time - uint32 - Pollution triggered group waiting time is a random time between min and max gathering time
  • max_group_gathering_time - uint32
  • max_wait_time_for_late_members - uint32 - After the gathering is finished the group can still wait for late members, but it doesn't accept new ones anymore.
  • max_group_radius - double - Limits for group radius (calculated by number of numbers).
  • min_group_radius - double
  • max_member_speedup_when_behind - double - When a member falls behind the group he can speedup up till this much of his regular speed.
  • max_member_slowdown_when_ahead - double - When a member gets ahead of its group, it will slow down to at most this factor of its speed.
  • max_group_slowdown_factor - double - When members of a group are behind, the entire group will slow down to at most this factor of its max speed.
  • max_group_member_fallback_factor - double - If a member falls behind more than this times the group radius, the group will slow down to max_group_slowdown_factor.
  • member_disown_distance - double - If a member falls behind more than this time the group radius, it will be removed from the group.
  • tick_tolerance_when_member_arrives - uint32
  • max_gathering_unit_groups - uint32 - Maximum number of automatically created unit groups gathering for attack at any time.
  • max_unit_group_size - uint32 - Maximum size of an attack unit group. This only affects automatically-created unit groups; manual groups created through the API are unaffected.

path_finder

Type: table
Table with the following mandatory members:

  • fwd2bwd_ratio - int32 - Defines whether we prefer forward (>1) or backward (<-1) or symmetrical (1) search.
  • goal_pressure_ratio - double - When comparing nodes in open which one to check next, heuristic value is multiplied by this ratio. The higher the number the more is the search directed directly towards the goal.
  • max_steps_worked_per_tick - double - When this is exhausted no more requests are allowed, at the moment the first path to exhaust this will be finished (even if it is hundreds of steps).
  • use_path_cache - bool
  • short_cache_size - uint32 - Number of elements in the cache.
  • long_cache_size - uint32
  • short_cache_min_cacheable_distance - double - Minimal distance to goal for path to be searched in short path cache.
  • short_cache_min_algo_steps_to_cache - uint32 - Minimal number of algorithm steps for path to be inserted into the short path cache.
  • long_cache_min_cacheable_distance - double - Minimal distance to goal for path to be searched in long path cache.
  • cache_max_connect_to_cache_steps_multiplier - uint32 - When searching for connection to path cache path, search at most for this number of steps times the initial estimate.
  • cache_accept_path_start_distance_ratio - double - When looking for path from cache make sure it doesn't start too far from requested start in relative distance terms.
  • cache_accept_path_end_distance_ratio - double - When looking for path from cache make sure it doesn't end too far from requested end. This is typically higher than accept value for the start because the end target can be moving.
  • negative_cache_accept_path_start_distance_ratio - double - Same as cache_accept_path_start_distance_ratio, but used for negative cache queries.
  • negative_cache_accept_path_end_distance_ratio - double - Same as cache_accept_path_end_distance_ratio, but used for negative cache queries.
  • cache_path_start_distance_rating_multiplier - double - When assigning rating to the best path this * start distances is considered.
  • cache_path_end_distance_rating_multiplier - double - When assigning rating to the best path this * end distances is considered. This is typically higher than value for the start to achieve better path end quality.
  • stale_enemy_with_same_destination_collision_penalty - double - Somewhere along the path is stuck enemy we need to avoid. This is mainly to handle situations when units have arrived and are attacking the target then units further in the back will use this and run around the target.
  • ignore_moving_enemy_collision_distance - double - If there is a moving unit further than this we don't really care.
  • enemy_with_different_destination_collision_penalty - double - Enemy is not moving/or is too close and has different destination.
  • general_entity_collision_penalty - double - Simplification for now; collision with everything else is this.
  • general_entity_subsequent_collision_penalty - double - Collision penalty for successors of positions that require destroy to reach.
  • max_clients_to_accept_any_new_request - uint32 - Up until this amount any client will be served by the path finder (no estimate on the path length).
  • max_clients_to_accept_short_new_request - uint32 - From max_clients_to_accept_any_new_request till this one only those that have a short estimate will be served.
  • direct_distance_to_consider_short_request - uint32 - This is the "threshold" to decide what is short and what is not.
  • short_request_max_steps - uint32 - If a short request takes more than this many steps, it will be rescheduled as a long request.
  • short_request_ratio - double - How many steps will be allocated to short requests each tick, as a ratio of all available steps per tick.
  • min_steps_to_check_path_find_termination - uint32 - Absolute minimum of steps that will be performed for every path find request no matter what.
  • start_to_goal_cost_multiplier_to_terminate_path_find - double - If the current actual cost from start is higher than this times estimate of start to goal then path finding is terminated.

max_failed_behavior_count

Type: uint32
If a behavior fails this many times, the enemy (or enemy group) is destroyed. This solves biters stuck within their own base.

difficulty_settings

Type: table
Table with the following mandatory members: