Factorio.com|Forums|Wiki|Mod Portal|API Docs

# Factorio Prototype Docs Version 2.0.77

# PathFinderSettings - Prototype Docs

## PathFinderSettings :: struct

## Properties

- default
- sorted

fwd2bwd_ratio | :: uint32 | The pathfinder performs a step of the backward search every `fwd2bwd_ratio`'th step. [...]
The pathfinder performs a step of the backward search every `fwd2bwd_ratio`'th step. [...]
goal_pressure_ratio | :: double | When comparing nodes in open which one to check next, heuristic value is multiplied by this ratio. [...]
When comparing nodes in open which one to check next, heuristic value is multiplied by this ratio. [...]
use_path_cache | :: boolean |
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).
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.
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.
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.
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.
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.
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.
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. [...]
When looking for path from cache make sure it doesn't end too far from requested end. [...]
negative_cache_accept_path_start_distance_ratio | :: double | Same as cache_accept_path_start_distance_ratio, but used for negative cache queries.
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.
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.
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. [...]
When assigning rating to the best path this * end distances is considered. [...]
stale_enemy_with_same_destination_collision_penalty | :: double | Somewhere along the path is stuck enemy we need to avoid. [...]
Somewhere along the path is stuck enemy we need to avoid. [...]
ignore_moving_enemy_collision_distance | :: double | If there is a moving unit further than this we don't really care.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
If the current actual cost from start is higher than this times estimate of start to goal then path finding is terminated.
overload_levels | :: array[uint32] |
overload_multipliers | :: array[double] |
negative_path_cache_delay_interval | :: uint32 |

cache_accept_path_end_distance_ratio | :: double | When looking for path from cache make sure it doesn't end too far from requested end. [...]
When looking for path from cache make sure it doesn't end too far from requested end. [...]
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.
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 | :: uint32 | When searching for connection to path cache path, search at most for this number of steps times the initial estimate.
When searching for connection to path cache path, search at most for this number of steps times the initial estimate.
cache_path_end_distance_rating_multiplier | :: double | When assigning rating to the best path this * end distances is considered. [...]
When assigning rating to the best path this * end distances is considered. [...]
cache_path_start_distance_rating_multiplier | :: double | When assigning rating to the best path this * start distances is considered.
When assigning rating to the best path this * start distances is considered.
direct_distance_to_consider_short_request | :: uint32 | This is the "threshold" to decide what is short and what is not.
This is the "threshold" to decide what is short and what is not.
enemy_with_different_destination_collision_penalty | :: double | Enemy is not moving/or is too close and has different destination.
Enemy is not moving/or is too close and has different destination.
extended_collision_penalty | :: double | Collision penalty for collisions in the extended bounding box but outside the entity's actual bounding box.
Collision penalty for collisions in the extended bounding box but outside the entity's actual bounding box.
fwd2bwd_ratio | :: uint32 | The pathfinder performs a step of the backward search every `fwd2bwd_ratio`'th step. [...]
The pathfinder performs a step of the backward search every `fwd2bwd_ratio`'th step. [...]
general_entity_collision_penalty | :: double | Simplification for now; collision with everything else is this.
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.
Collision penalty for successors of positions that require destroy to reach.
goal_pressure_ratio | :: double | When comparing nodes in open which one to check next, heuristic value is multiplied by this ratio. [...]
When comparing nodes in open which one to check next, heuristic value is multiplied by this ratio. [...]
ignore_moving_enemy_collision_distance | :: double | If there is a moving unit further than this we don't really care.
If there is a moving unit further than this we don't really care.
long_cache_min_cacheable_distance | :: double | Minimal distance to goal for path to be searched in long path cache.
Minimal distance to goal for path to be searched in long path cache.
long_cache_size | :: uint32 |
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).
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.
From max_clients_to_accept_any_new_request till this one only those that have a short estimate will be served.
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).
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 |
min_steps_to_check_path_find_termination | :: uint32 | Absolute minimum of steps that will be performed for every path find request no matter what.
Absolute minimum of steps that will be performed for every path find request no matter what.
negative_cache_accept_path_end_distance_ratio | :: double | Same as cache_accept_path_end_distance_ratio, but used for negative cache queries.
Same as cache_accept_path_end_distance_ratio, but used for negative cache queries.
negative_cache_accept_path_start_distance_ratio | :: double | Same as cache_accept_path_start_distance_ratio, but used for negative cache queries.
Same as cache_accept_path_start_distance_ratio, but used for negative cache queries.
negative_path_cache_delay_interval | :: uint32 |
overload_levels | :: array[uint32] |
overload_multipliers | :: array[double] |
short_cache_min_algo_steps_to_cache | :: uint32 | Minimal number of algorithm steps for path to be inserted into the short path cache.
Minimal number of algorithm steps for path to be inserted into the short path cache.
short_cache_min_cacheable_distance | :: double | Minimal distance to goal for path to be searched in short path cache.
Minimal distance to goal for path to be searched in short path cache.
short_cache_size | :: uint32 | Number of elements in the cache.
Number of elements in the cache.
short_request_max_steps | :: uint32 | If a short request takes more than this many steps, it will be rescheduled as a long request.
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.
How many steps will be allocated to short requests each tick, as a ratio of all available steps per tick.
stale_enemy_with_same_destination_collision_penalty | :: double | Somewhere along the path is stuck enemy we need to avoid. [...]
Somewhere along the path is stuck enemy we need to avoid. [...]
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.
If the current actual cost from start is higher than this times estimate of start to goal then path finding is terminated.
use_path_cache | :: boolean |

## Properties

### 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 :: boolean

### 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 :: array[uint32]

### overload_multipliers :: array[double]

### negative_path_cache_delay_interval :: uint32

Type used in

- MapSettings::path_finder