Prototype/MapSettings: Difference between revisions
(Set prototype parent) |
(1.1.49: fwd2bwd_ratio changed) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Prototype parent}} | {{Prototype parent}} | ||
The default map settings. Only 1 instance of this prototype can exist. | |||
{{Prototype TOC|map-settings}} | |||
Prototype | |||
== Mandatory properties == | == Mandatory properties == | ||
{{Prototype property|type|[[Types/string|string]]}} | |||
Must be "map-settings". | Must be "map-settings". | ||
{{Prototype property|name|[[Types/string|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. | ||
{{Prototype property|pollution|[[Types/table|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]] | ||
{{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) | ||
{{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 | ||
{{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 ( | * 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]] | ||
{{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. | ||
{{Prototype property|path_finder|[[Types/table|table]]}} | |||
Table with the following mandatory members: | Table with the following mandatory members: | ||
* fwd2bwd_ratio - [[Types/ | * fwd2bwd_ratio - [[Types/uint32|uint32]] - The pathfinder performs a step of the backward search every fwd2bwd_ratio'th step. The minimum allowed value is 2, which means symmetric 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). | * use_path_cache - [[Types/bool|bool]] | ||
* | * 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). | ||
* short_cache_size - [[Types/uint32]] - Number of elements in the cache. | * max_work_done_per_tick - [[Types/uint32|uint32]] | ||
* long_cache_size - [[Types/uint32]] | * short_cache_size - [[Types/uint32|uint32]] - Number of elements in the cache. | ||
* short_cache_min_cacheable_distance - [[Types/double]] - Minimal distance to goal for path to be searched in short path cache. | * long_cache_size - [[Types/uint32|uint32]] | ||
* 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_cacheable_distance - [[Types/double|double]] - Minimal distance to goal for path to be searched in short path cache. | ||
* long_cache_min_cacheable_distance - [[Types/double]] - Minimal distance to goal for path to be searched in long 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. | ||
* 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. | * long_cache_min_cacheable_distance - [[Types/double|double]] - Minimal distance to goal for path to be searched in long path cache. | ||
* 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_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_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_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. | ||
* negative_cache_accept_path_start_distance_ratio - [[Types/double]] - Same as cache_accept_path_start_distance_ratio, but used for negative cache queries. | * 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_end_distance_ratio - [[Types/double]] - Same as cache_accept_path_end_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. | ||
* cache_path_start_distance_rating_multiplier - [[Types/double]] - When assigning rating to the best path this * start distances is considered. | * 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_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_start_distance_rating_multiplier - [[Types/double|double]] - When assigning rating to the best path this * start distances is considered. | ||
* 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. | * 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. | ||
* ignore_moving_enemy_collision_distance - [[Types/double]] - If there is a moving unit further than this we don't really care. | * 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. | ||
* enemy_with_different_destination_collision_penalty - [[Types/double]] - Enemy is not moving/or is too close and has different destination. | * ignore_moving_enemy_collision_distance - [[Types/double|double]] - If there is a moving unit further than this we don't really care. | ||
* general_entity_collision_penalty - [[Types/double]] - Simplification for now; collision with everything else is this. | * enemy_with_different_destination_collision_penalty - [[Types/double|double]] - Enemy is not moving/or is too close and has different destination. | ||
* general_entity_subsequent_collision_penalty - [[Types/double]] - Collision penalty for successors of positions that require destroy to reach. | * general_entity_collision_penalty - [[Types/double|double]] - Simplification for now; collision with everything else is this. | ||
* 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). | * general_entity_subsequent_collision_penalty - [[Types/double|double]] - Collision penalty for successors of positions that require destroy to reach. | ||
* 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. | * extended_collision_penalty - [[Types/double|double]] - Collision penalty for collisions in the extended bounding box but outside the entity's actual bounding box. | ||
* direct_distance_to_consider_short_request - [[Types/uint32]] - This is the "threshold" to decide what is short and what is not. | * 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). | ||
* short_request_max_steps - [[Types/uint32]] - If a short request takes more than this many steps, it will be rescheduled as a long request. | * 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. | ||
* 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. | * direct_distance_to_consider_short_request - [[Types/uint32|uint32]] - This is the "threshold" to decide what is short and what is not. | ||
* 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. | * 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. | ||
* start_to_goal_cost_multiplier_to_terminate_path_find - [[Types/double]] - If the | * 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|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|double]] - If the current actual cost from start is higher than this times estimate of start to goal then path finding is terminated. | |||
* overload_levels - [[Types/table|table]] (array) of [[Types/uint32|uint32]] | |||
* overload_multipliers - [[Types/table|table]] (array) of [[Types/double|double]] | |||
{{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. | ||
{{Prototype property|difficulty_settings|[[Types/table|table]]}} | |||
Table with the following members: | |||
* recipe_difficulty - [[Types/uint8|uint8]] - Mandatory. - A [https://lua-api.factorio.com/latest/defines.html#defines.difficulty_settings defines.difficulty_settings.recipe_difficulty]. | |||
Table with the following | * technology_difficulty - [[Types/uint8|uint8]] - Mandatory. - A [https://lua-api.factorio.com/latest/defines.html#defines.difficulty_settings defines.difficulty_settings.technology_difficulty]. | ||
* recipe_difficulty - [[Types/uint8]] - A [https://lua-api.factorio.com/latest/defines.html#defines.difficulty_settings defines.difficulty_settings.recipe_difficulty]. | * technology_price_multiplier - [[Types/double|double]] - Optional, defaults to 1. - Must be >= 0.001 and <= 1000. | ||
* technology_difficulty - [[Types/uint8]] - A [https://lua-api.factorio.com/latest/defines.html#defines.difficulty_settings defines.difficulty_settings.technology_difficulty]. | * research_queue_setting - [[Types/string|string]] - Optional. - Either "always", "after-victory" or "never". | ||
* technology_price_multiplier - [[Types/double]] - Must be >= 0.001 and <= 1000. | |||
* research_queue_setting - [[Types/string]] - Either "always", "after-victory" or "never". |
Latest revision as of 12:45, 10 December 2021
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:
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 - uint32 - The pathfinder performs a step of the backward search every fwd2bwd_ratio'th step. The minimum allowed value is 2, which means symmetric 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.
- use_path_cache - bool
- 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).
- max_work_done_per_tick - uint32
- 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.
- extended_collision_penalty - double - Collision penalty for collisions in the extended bounding box but outside the entity's actual bounding box.
- 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.
- overload_levels - table (array) of uint32
- overload_multipliers - table (array) of double
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 members:
- recipe_difficulty - uint8 - Mandatory. - A defines.difficulty_settings.recipe_difficulty.
- technology_difficulty - uint8 - Mandatory. - A defines.difficulty_settings.technology_difficulty.
- technology_price_multiplier - double - Optional, defaults to 1. - Must be >= 0.001 and <= 1000.
- research_queue_setting - string - Optional. - Either "always", "after-victory" or "never".