The waypoint object
Section titled “The waypoint object”A waypoint belongs to one race and one system. The game keeps every waypoint of every race in one shared list, keyed by waypoint ID. Every value of a waypoint is set either by the get-or-create rule below or when a saved game loads.
| Item | FCT_Waypoint column |
Meaning |
|---|---|---|
| System | SystemID |
The system the waypoint lies in |
| Orbit body | OrbitBodyID |
Optional body the waypoint follows, 0 when none |
| Jump point | JumpPointID |
Optional jump point, set only by the transit POI creators, 0 when none |
| Race | RaceID |
The owning race |
| Type | WaypointType |
One of the eleven types below, stored as a number |
| ID | WaypointID |
Unique waypoint ID, an integer |
| Fleet | FleetID |
Owning fleet for a fleet waypoint, otherwise 0 |
| Number | Number |
Per-race, per-system sequence number |
| Creation time | CreationTime |
Game seconds at creation or last reuse, a decimal value |
| Coordinates | Xcor, Ycor |
System coordinates in km |
| Name | Name |
Optional name, empty for most automatic waypoints |
The waypoint record also holds one further true-or-false value. No rule in play reads or sets it, and the game does not save it.
The game issues waypoint IDs from a counter that rises by one for each new waypoint. When a game loads, the counter starts from the largest WayPointID in FCT_WayPoint. IDs are therefore not reused within a session. After a reload the counter restarts from the largest saved ID in the table. A waypoint without a jump point saves JumpPointID 0.
Waypoint types
Section titled “Waypoint types”A waypoint has one of eleven types, stored in WaypointType as 0 to 10. Four of them never describe a lasting waypoint. Named and Deep Space Location are only tactical map input modes. Marked for deletion is a passing state that lasts until the end of the increment. Nothing in play creates a Fleet Training waypoint.
WaypointType |
Type | Meaning | Creators | Consumed on arrival | Age limit |
|---|---|---|---|---|---|
| 0 | Normal | Plain marker | Tactical map Normal Waypoint and Named Waypoint buttons | No | None |
| 1 | Point of Interest (POI) | Point of interest | Tactical map, NPR contact rules, lost tracks, environmental contacts, | Yes | 7,776,000 s |
| 2 | Urgent POI | Urgent point of interest | Tactical map, NPR hostile contacts, hostile lost tracks, population signatures, diplomatic contact origins | Yes | 31,536,000 s |
| 3 | Transit POI | Jump point a hostile race used or could use | NPR transit detection and hostile lost tracks | No | 63,072,000 s |
| 4 | Marked for deletion | Pending removal at the end of the increment | Fleet arrival and missile salvo arrival | Not applicable | Not applicable |
| 5 | Fleet Training | Training waypoint | None in play | Yes | None |
| 6 | Rendezvous | Named rendezvous point | Tactical map Rendezvous button | No | None |
| 7 | Named | Input mode only, stored as Normal with a name | Never stored | Not applicable | Not applicable |
| 8 | Temporary | Short-lived point | Tactical map, fuel return points, NPR manoeuvre and escape points | Yes | 7,776,000 s |
| 9 | Deep Space Location | Input mode for a deep space population, no waypoint | Never stored | Not applicable | Not applicable |
| 10 | Fleet Waypoint | One per fleet, carries the fleet’s ID | The fleet waypoint rule, the tactical map Set Fleet WP button | By the owning fleet only | None |
A fleet’s arrival consumes the types marked Yes. A missile salvo’s arrival consumes only a Temporary waypoint. The age limits are three months (7,776,000 s) for POI and Temporary, one year (31,536,000 s) for Urgent POI and two years (63,072,000 s) for Transit POI. A Named request is stored as type 0 with its name. The Deep Space Location mode creates a population, not a waypoint. The creation sections below expand the creator column.
Get or create rule
Section titled “Get or create rule”Every waypoint that appears during play comes from one shared get-or-create rule. Loading a saved game is the only other way a waypoint enters the game. The rule takes a system, an optional body, an optional jump point, a type, coordinates, a name and a fleet ID, and applies four steps in order.
- It looks for a waypoint of the same race, system and type whose coordinates both differ from the requested ones by less than 1 km. A match refreshes the creation time to the current game time and returns that waypoint. The test is a square of side 2 km around the requested point, because each axis is compared on its own.
- For an NPR race and a POI or Urgent POI request only, it repeats the search with a tolerance of 5,000,000 km on each axis. A match again refreshes the creation time and returns the existing waypoint. The tolerance is a square, not a circle. Both the x difference and the y difference must be below 5,000,000 km.
- With a fleet ID above 0, it removes the first waypoint in the game that carries that fleet ID, whatever its race, system or type. The removal is immediate, not a mark.
- It builds a new waypoint with the next ID, the current time, the given race, system, type, name, fleet ID and jump point, and a number from the rule below. A given body replaces the requested coordinates with the body’s coordinates and records that body as the orbit body. Without a body the requested coordinates are stored and
OrbitBodyIDis 0. The new waypoint then joins the game’s waypoint list.
A reused waypoint keeps its old name, number, body, jump point and fleet ID. Only the creation time changes. Steps 1 and 2 do not compare fleet IDs. A fleet waypoint request at the spot of another fleet’s fleet waypoint therefore returns the other fleet’s waypoint and creates nothing. Step 3 does not run in that case, so any earlier fleet waypoint of the requesting fleet survives, and that fleet’s “MV: Fleet Waypoint” standing order still finds the earlier one.
Step 1 compares against the requested coordinates, but step 4 stores the body’s coordinates when a body is given. The tactical map pass the body’s own coordinates. The fleet waypoint rule passes the fleet’s coordinates together with the fleet’s orbit body. Its match test therefore uses the fleet position, while a new waypoint stores the body position.
Numbers and display names
Section titled “Numbers and display names”Step 4 numbers the new waypoint 1 when the race has no waypoint in that system. Otherwise the number is one more than the highest Number among the race’s waypoints in that system, whatever their type. Waypoints marked for deletion still count until they are purged. Numbers therefore climb within a system and restart only when every waypoint of the race there is gone. Deleting the highest-numbered waypoint lets the next creation reuse its number.
A waypoint’s display name is its Name when that is not empty. Otherwise the game builds a prefix from the type and appends the number.
| Type | Prefix |
|---|---|
| POI | Point of Interest # |
| Urgent POI | Urgent POI # |
| Transit POI | Transit POI # |
| Fleet Training | Training Waypoint # |
| Rendezvous | Rendezvous Waypoint # |
| Temporary | Temporary # |
| Normal, Marked for deletion, Named, Deep Space Location, Fleet Waypoint | Waypoint # |
The full form of the display name adds the orbit body when one is set. It appends two spaces and the body’s name as the owning race knows it, in parentheses. A move destination uses the full form, and the map label does not. The body suffix applies only to unnamed waypoints, because a non-empty name is returned as it stands.
The automatic creators pass an empty name, with two exceptions. The fleet-named points carry the fleet name followed by “ Waypoint”, “ Return Point”, “ Manoeuvre Point” or “ Escape Point”. The Rendezvous and Named tactical map modes prompt “Enter Waypoint Name” with the default “New Waypoint”.
Player creation, movement and deletion
Section titled “Player creation, movement and deletion”The tactical map Waypoints tab holds one button per mode. Each mode button sets the pending waypoint type, switches the cursor to a cross and clears any pending fleet, so the pending fleet ID is 0.
| Button | Pending type |
|---|---|
| Normal Waypoint | Normal |
| Named Waypoint | Named |
| Rendezvous | Rendezvous |
| Point of Interest | POI |
| Urgent POI | Urgent POI |
| Temp Waypoint | Temporary |
A click on the map acts only when it is a left click and the cursor is the cross. The map first looks for a body under the click. It takes the first map cluster that holds a body and lies within 5 pixels of the click on each axis, half the 10-pixel tactical map icon size. From that cluster it picks the first body by body class and then by largest radius. What happens next depends on the pending mode.
- Named and Rendezvous. The map prompts for a name. Cancelling resets the cursor and creates nothing. A Named request becomes type Normal before creation.
- Deep Space Location. The Create Deep Space Population button on the Miscellaneous tab sets this mode. The click creates a fixed asteroid body and a population, not a waypoint, and the click handling ends there.
- Every other type. With a body under the click, the get-or-create rule runs with that body and its coordinates. Without one, the click is converted to system coordinates and the rule runs with no body.
When the click handling does not end early, the map resets the cursor to the default, refreshes the waypoint list and the map clusters, and redraws. One click therefore creates one waypoint, and the next waypoint needs another button press. The click passes the pending fleet ID, which the mode buttons reset to 0, so a player-made POI or rendezvous waypoint has fleet ID 0.
The Move Waypoint button takes the waypoint selected in the list as the waypoint being moved. It retargets every missile salvo aimed at that waypoint to target ID 0 and target type none, then arms the cross cursor. The retarget leaves the salvo’s remembered waypoint in place. The next map click rewrites the waypoint’s body and coordinates. It snaps to a clicked body, or uses the clicked point with no body. The move leaves the creation time, number, name, type and system unchanged. The map takes the coordinates from the system it shows, so nothing in play prevents a move made while the map shows a different system from the waypoint’s own.
The Delete Waypoint button asks “Are you sure you want to delete” followed by the full display name, and on Yes removes the selected waypoint at once. The Delete All button asks once, “Are you sure you want to delete all waypoints in this system?”, and removes every waypoint shown in the list. The list holds the selected race’s waypoints in the selected system. Neither delete button touches missile salvos or move orders. A salvo keeps its remembered waypoint and keeps flying to the old coordinates until a reload drops it. A move order keeps the waypoint ID and fails at its next movement step, as described under move destinations.
Selecting a row in the list centres the map on that waypoint.
Fleet waypoints
Section titled “Fleet waypoints”A fleet waypoint marks a spot that one fleet returns to. The fleet waypoint rule calls the get-or-create rule with type Fleet Waypoint, the fleet name followed by “ Waypoint” as the name, and the fleet’s ID. At the fleet’s current position it uses the fleet’s system, orbit body and coordinates. The rule can also take an explicit system, body and point, but every trigger in play asks for the current position.
| Trigger | Effect |
|---|---|
| Naval Organization window Create Fleet WP button | Creates the waypoint for the selected fleet |
| Tactical map military tree Create Fleet WP button | Creates the waypoint for the selected fleet |
| Move action 236, Create Fleet Waypoint | The order executes and completes in the same step |
Conditional order with CreateFWP 1 |
Creates the waypoint when the conditional order fires |
The tactical map Set Fleet WP button is the only way to place a fleet waypoint away from the fleet. It sets the pending type to Fleet Waypoint, the pending name to the bare fleet name and the pending fleet ID to the fleet’s ID. The next map click passes these to the get-or-create rule. This path names the waypoint with the fleet name alone, without the “ Waypoint” suffix that the fleet waypoint rule adds.
Step 3 of the get-or-create rule removes the fleet’s previous waypoint, so a fleet holds at most one fleet waypoint at a time. Only the owning fleet consumes a fleet waypoint on arrival. The “MV: Fleet Waypoint” standing order searches by fleet ID, as its catalogue row states. The conditional order flag, CreateFWP in FCT_FleetConditionalOrder, and its Set FWP checkbox in the Naval Organization window are covered in conditional order evaluation.
Automatic and NPR creation paths
Section titled “Automatic and NPR creation paths”Every automatic POI, Urgent POI and Transit POI creator requires the detecting race to be an NPR. A player race’s points of interest therefore come only from the tactical map buttons. The automatic paths pass fleet ID 0, and all pass an empty name.
| Path | Type | Condition |
|---|---|---|
| New ship contact, commercial class | POI | Contact race is Hostile |
| New ship contact, military class | Urgent POI | Contact race is Hostile |
| New ship contact, military class | POI | Contact race is Neutral and the point lies outside the banned-body radius |
| New missile salvo contact | POI | Salvo speed 0 and the launching race is Hostile |
| New population signature contact | Urgent POI | Outside the banned-body radius, or the owner is Hostile |
| New mobile shipyard contact | POI | Outside the banned-body radius, or the owner is Hostile |
| New environmental contact | POI | Outside the banned-body radius |
| Alien diplomatic ship with no current track while a diplomacy mission bonus applies | Urgent POI | Outside the banned-body radius |
| Hostile transit detected | Transit POI | Transiting race is Hostile to the detector |
| Lost ship track | POI or Urgent POI, plus Transit POI | See below |
| POI | See below |
The contact paths run only when the contact record is new. An update of an existing contact makes no waypoint, and a player detecting race makes none either. The banned-body radius is 10,000,000 km. A point lies inside it when its straight-line distance to any of the race’s banned bodies in that system is strictly less than 10,000,000 km. NPR race generation owns how the banned-body list is built. An environmental contact, such as an explosion or an energy weapon impact, is created for every race with presence in the system, so each NPR present receives the POI. The diplomatic case applies while the diplomacy mission bonus is above 1, and the Urgent POI goes at the diplomatic ship’s position.
Lost ship tracks. The lost-track check runs at the end of each sensor check. A sensor check made for a fleet in transit ends before it. For each ship track of the previous update that has no current track of the same ship for the same observer, an NPR observer creates waypoints of one type. The type is Urgent POI when the track’s contact status is Hostile and POI otherwise. The reach is the ship class maximum speed (MaxSpeed in FCT_ShipClass, in km/s) times the seconds since the prior contact update. The check then works through four groups.
- Each jump point in the track’s system whose straight-line distance from the last position is less than the reach, and for which the observer has a survey record. A charted point gets a waypoint of the type at its coordinates. In the hostile case it also gets a Transit POI that carries the jump point.
- An explored point among those also gets a waypoint of the type at the linked jump point in the neighbouring system.
- When any Lagrange point of the system lies closer than the reach, every Lagrange point of the system gets a waypoint of the type.
- The track’s last position gets a waypoint of the type when it lies outside the banned-body radius, and always in the hostile case.
When a current track of the same ship exists for the same observer, the check instead redirects contact move orders from the lost track to the current one and creates no waypoint, as intelligence mechanics describes.
Each planet of the system whose apoapsis (orbital distance times one plus eccentricity) is below 20 AU, gas giants included, gets a POI on the body named “POI - “ plus the body’s name. A planet of a companion star also needs the star itself to be within 20 AU, either by the star’s own apoapsis or through Lagrange points it shares with planets of the primary star that are within 20 AU. A planet is skipped when a POI of the race in that system already sits on that body. When no planet qualifies, each survey location numbered below 7 gets a POI named “POI #” plus the location number on a d3 roll of 3, unless a POI already sits at its exact coordinates. The 5,000,000 km NPR tolerance in step 2 applies to these requests as well, so a planet within that square of an existing POI reuses it.
Temporary points. Three paths create Temporary waypoints with a fleet name.
- The “LG: Transfer Fuel and Return” standing order sends the fleet to the nearest colony in its own system that has refuelling capacity, and does nothing when there is none. When no body sits at exactly the fleet’s coordinates, it creates the fleet name followed by “ Return Point” at the fleet’s position and queues a Move to Location to it after the fuel transfer. When a body sits there, the return order goes to that body instead.
- NPR avoidance creates the fleet name followed by “ Manoeuvre Point”.
- NPR retreat creates the fleet name followed by “ Escape Point”.
Temporary waypoints share step 1 of the get-or-create rule. Two fleets at the same coordinates that create a return point therefore receive the same waypoint, with the first fleet’s name.
Arrival consumption and expiry
Section titled “Arrival consumption and expiry”The arrival check runs when a fleet’s move order to a waypoint covers the remaining distance in a sub-pulse. A POI, Urgent POI, Fleet Training or Temporary waypoint changes type to Marked for deletion, WaypointType 4. So does a Fleet Waypoint whose FleetID is the arriving fleet’s. A waypoint with an orbit body also sets the fleet’s orbit body to that body. The arrival applies to any move action aimed at the waypoint, not only Move to Location. Normal, Rendezvous and Transit POI waypoints survive arrival, and so does another fleet’s fleet waypoint.
A missile salvo marks its target in the same way. The salvo reaches its target when its movement in a sub-pulse covers the remaining distance to the target position. When that target is a Temporary waypoint, the waypoint becomes Marked for deletion.
After the sub-pulses of each increment, the end-of-increment step rebuilds the waypoint list without the marked waypoints. A marked waypoint still exists and still gives its position for the rest of that increment. Other fleets heading to it lose their destination at the first movement step after the purge. Game time and state refresh places this step in the end-of-increment order.
Expiry runs once per construction cycle, as part of the construction cycle’s strategic updates. It first collects the destination IDs of every move order of every fleet whose destination type is waypoint, DestinationType 5 in FCT_MoveOrders. It then removes each waypoint that no such order targets and whose age is strictly greater than its limit. The age is the current game time minus the waypoint’s creation time.
| Type | Limit | Period |
|---|---|---|
| POI, Temporary | 7,776,000 s | Three months |
| Urgent POI | 31,536,000 s | One year |
| Transit POI | 63,072,000 s | One year times 2 |
Every other type has no age limit. The get-or-create rule refreshes the creation time on reuse, so a point that NPR detection keeps hitting stays alive. Moving a waypoint on the map does not refresh it.
Two further paths remove waypoints. Deleting a system removes every waypoint in it, as listed in system deletion. The fleet ID replacement in step 3 of the get-or-create rule removes the previous fleet waypoint.
Waypoints as move destinations
Section titled “Waypoints as move destinations”A waypoint move destination carries the waypoint’s full display name, including the body suffix. The destination is the waypoint, identified by its ID, together with the system the order starts from. It carries no jump point, survey, population or gas giant setting. Queuing a waypoint order adds the requested action with no quantities and with the fleet’s own setting for including Lagrange points in its route.
In the Naval Organization window, the Waypoints checkbox of the destination list adds every waypoint of the fleet’s race in the system the fleet reaches after its queued orders, ordered by number. Waypoint rows are drawn in violet. The action list for a waypoint destination holds the move actions whose DIM_MoveAction.Waypoint flag is set, ordered by DisplayOrder. The game reads that flag from the database when a game loads. In the game database as shipped, the flag is set on 20 rows.
MoveActionID |
Description |
|---|---|
| 2 | Move to Location |
| 8 | Divide Fleet into Single Ships |
| 30 | Refuel from own Tankers |
| 69 | Activate Shields |
| 70 | Deactivate Shields |
| 95 | Detach Non-Survey Ships |
| 99 | Deploy Escorts |
| 100 | Detach Tankers |
| 101 | Detach Colliers |
| 102 | Active Sensors On |
| 103 | Active Sensors Off |
| 112 | Send Message |
| 122 | Activate Transponder - Friendly |
| 123 | Deactivate Transponder |
| 128 | Resupply from own Supply Ships |
| 133 | Launch Ready Ordnance |
| 161 | Release Tractored Ships |
| 188 | Detach Supply Ships |
| 221 | Activate Transponder - All |
| 236 | Create Fleet Waypoint |
The move action catalogue owns the other availability filters. With the Default Actions checkbox on and no action selected, a waypoint destination gets Move to Location.
At each movement step, the game reads the waypoint’s current coordinates when the waypoint still exists, and leaves the position at 0,0 otherwise. Movement treats a position of exactly 0,0 as a missing destination. It logs “Destination of”, the fleet name and “cannot be found. Please issue new orders”. It then clears the fleet’s whole order queue and ends the fleet’s movement for the sub-pulse. A deleted, expired or purged waypoint therefore cancels every order of a fleet heading for it. The same test would also reject a live waypoint placed at exactly 0,0. On arrival with Move to Location, the fleet’s assigned population is cleared and the fleet keeps the orbit body that the arrival check copied from the waypoint. Movement and logistics owns move order execution.
A waypoint with an orbit body follows that body. Each orbital position update copies the body’s coordinates into every such waypoint, as anchoring notes. A waypoint without a body stays fixed.
Waypoint destinations also feed the hostile encounter guard. The guard treats a current waypoint order as encounter-sensitive. It uses the waypoint as the encounter position when a fleet of another race that is Hostile to the moving fleet’s race sits in the same system at exactly the waypoint’s coordinates. The hostile encounter guard owns the shortening rule.
Spacemaster relocation. The Miscellaneous tab of the Naval Organization window lists the selected race’s Rendezvous waypoints from every system, ordered by name and displayed by name. The window fills this list when it refreshes the selected race. The Move Fleet button places the selected fleet directly at the chosen waypoint. It sets the fleet’s orbit body to the waypoint’s body, moves the fleet into the waypoint’s system, clears its assigned population and copies the coordinates. The button requires Spacemaster mode only for a fleet with ships, and otherwise shows “SM Mode required to move non-empty fleets”. An empty fleet moves without it. The relocation does not clear the fleet’s move orders. The Spacemaster page lists it with the other interventions.
Nearest waypoint search
Section titled “Nearest waypoint search”The nearest-waypoint search returns the nearest waypoint of one type, race and fleet ID in a system. For POI, Urgent POI and Transit POI types it first sets aside the waypoints that Move to Location orders of the race’s fleets already target (the reserved waypoints). Only orders whose start system is the searched system count. The candidates are the race’s waypoints of that type in the system whose FleetID equals the requested one, other than the reserved waypoints. They are ordered by the shortest travel distance from the origin, counting Lagrange point shortcuts, with no distance cap.
The reservation counts only Move to Location orders that start in this system. A fleet already heading for a POI with any other action does not reserve it. A Move to Location queued at the end of an auto-route carries the POI’s system as its start system, so it does reserve the POI. The searching fleet’s own existing orders count too, so it does not pick a POI it already targets. POI, Urgent POI and Rendezvous searches pass fleet ID 0, which every waypoint of those types carries.
| Search | Type and fleet ID | Origin |
|---|---|---|
| “MV: Point of Interest”, local | Urgent POI 0, then POI 0 | Fleet position |
| “MV: Rendezvous Point”, local | Rendezvous 0 | Fleet position |
| “MV: Fleet Waypoint”, local | Fleet Waypoint and the fleet’s ID | Fleet position |
| Auto-route search per candidate system | Same types | Arrival jump point of the route |
The remote search runs for each candidate system of the auto-route search. Its origin is the linked jump point of the last route step, where the fleet would arrive in that system. The standing order catalogue states the full order of local and remote attempts for each standing order. “MV: Fleet Waypoint” does nothing, before any search, when no waypoint in the game carries the fleet’s ID.
Missile fire-control targets
Section titled “Missile fire-control targets”A player assigns a waypoint as a missile target by dragging it in the Naval Organization window combat tree. The tree lists the ship’s race’s waypoints in the ship’s current system under a “Waypoints” node, sorted by full display name. Dropping a waypoint on a fire control is allowed only for a missile fire control. Otherwise the window shows “Waypoints may only be assigned to missile fire controls”. The assignment stores the waypoint ID as the target ID and the waypoint contact type, 22, as the target type.
At launch, the game looks up the target waypoint by ID. A missing ID logs a Targeting Problem event, the ship name followed by “cannot locate its designated waypoint target”, and skips that fire control. A found waypoint sets the target label to its full display name and the target speed to 0. A waypoint target gets no range calculation and no sensor range test. The range to the target is set to 0 once per firing ship, before its fire controls are worked through. The launch range test for a waypoint target therefore reads 0, or the value left by an earlier fire control of the same ship. The space combat page records the same observation.
The launched salvo looks up its waypoint by ID and remembers it. Salvo movement reads the waypoint’s live coordinates each sub-pulse. A second stage of speed 0 drops the waypoint target. A salvo that reaches a Temporary waypoint marks it for deletion, as described under arrival. The combat display shows a waypoint target by its display name.
NPR patrol routes
Section titled “NPR patrol routes”The NPR patrol step turns a system’s POI and Urgent POI waypoints into patrol routes. The system-level NPR behaviour chooses the patrol fleets, which are scouts or FAC hunters, and whether to exclude points near hostiles. Lone raiders and scouts patrol with the exclusion on. Raider squadrons and FAC hunters patrol with it off. Patrols, rescue and auxiliary tasks owns that choice. The waypoint rules run in this order.
- Gather the race’s POI and Urgent POI waypoints in this system. Stop when there are none.
- With the exclusion on and at least one current hostile ship fleet, drop each waypoint whose straight-line distance to any hostile fleet is below 100,000,000 km. Stop when none remain.
- Mark as assigned every remaining waypoint that a move order of any of the race’s fleets targets, when that order has a waypoint destination and starts in this system. Any action counts here, unlike the Move to Location reservation of the nearest-waypoint search.
- For each patrol fleet, the uncovered set is every remaining waypoint that is not assigned and has no assigned waypoint closer than 50,000,000 km. That distance is the shortest travel distance counting Lagrange point shortcuts, and a waypoint is not compared with itself.
- A non-empty uncovered set first tries an Urgent POI route and then a POI route.
The assigned list is built once, before the patrol fleets are handled, and new routes are not added to it. Every patrol fleet in one pass therefore sees the same uncovered set and receives the same stops, chained from its own position.
Route building keeps the candidates of the requested type, and the attempt fails when none match. Otherwise it clears the fleet’s move orders and builds a nearest-neighbour chain. Starting from the fleet’s coordinates, it picks the candidate with the smallest Lagrange-aware distance from the previous stop, queues a Move to Location to it and uses that waypoint as the start of the next pick. The route limit is 20 and the count of stops starts at 1, so a route holds at most 19 stops. The fleet is marked as redeployed and the attempt succeeds even when fewer stops existed.
Each patrol stop is a POI or Urgent POI, so each one is marked for deletion as the fleet reaches it. A route therefore consumes its points as it goes, and later passes see only the points still standing.
Strategic use of points of interest. The strategic scout assignment runs for every NPR . It collects the systems that hold any Urgent POI waypoint of the race, ordered by system value from highest and then by system ID. It sends one fleet per target system, choosing fleets with main function Scout and Mission Capable availability. It then does the same for systems with POI waypoints. The systems that hold Transit POI waypoints feed jump point defence. The strategic threatened-jump-point assignment and the local jump point coverage both read each Transit POI waypoint’s jump point as a point to cover. NPR strategic planning and jump point coverage own those allocations.
NPR avoidance and escape points
Section titled “NPR avoidance and escape points”NPR avoidance is the only NPR rule that creates a waypoint as a detour. It starts from the requested destination and turns the bearing in 10-degree steps while the path passes within 500,000 km of a hostile STO population, projecting each alternative 100,000,000 km from the fleet. When an alternative is clear, it creates or reuses a Temporary waypoint named with the fleet name followed by “ Manoeuvre Point” at that point. It then clears the fleet’s orders, queues a Move to Location to the waypoint, marks the fleet as redeployed and succeeds. When the direct path is already clear, or the 36th test is still blocked, avoidance fails and creates no waypoint. The geometry, the turn direction timer and the bearing details belong to avoidance waypoints.
Two situations request avoidance. An NPR fleet moving to engage asks for it with the projected engagement position when hostile STO populations exist. An NPR fleet retreating from a threatened system first computes an escape position. That position lies on the line from the nearest hostile fleet through the retreating fleet, ten times as far from the fleet as the hostile fleet is. When the nearest hostile fleet sits at the fleet’s own position, the escape position is 10,000,000 km away on a random bearing of 0 to 359 degrees. When hostile STO populations exist, the retreat asks for avoidance first. When avoidance succeeds, the retreat stops there, and the remaining fleets of that retreat get no escape order. Otherwise the fleet gets a Temporary waypoint named with the fleet name followed by “ Escape Point” at the escape position, a Move to Location to it, and the redeployed mark. Rally, retreat and system exit owns the retreat decision.
Both point types are Temporary, so the fleet consumes the point on arrival. An unreached point expires after three months unless an order still targets it.
Map and list display
Section titled “Map and list display”When the tactical map builds its clusters, it adds each waypoint of the selected system to the map cluster at its coordinates. Objects closer than 1 km on each axis share a cluster. The waypoints come from the race’s waypoints in the system ordered by number, all types included. Merging clusters carries their waypoint lists across.
The map draws a cluster’s waypoints after its lifepods and before its fleets. When the race’s Waypoints display checkbox is off, a waypoint draws nothing. Otherwise the map draws the display name without the body suffix, in violet. It fills a dot 8 pixels across only for label slot 0. Each label sits 5 pixels right of the marker’s right edge, starting 3 pixels above its top and rising 15 pixels per slot. The label slot advances for every waypoint even when the display checkbox is off, so hidden waypoints still push the following fleet labels upward.
The Waypoints display checkbox defaults to on for a new race. The tactical map checkbox sets it, and the game saves and restores it with the race as chkWaypoint in FCT_Race.
The tactical map waypoint list shows the selected system. It skips Transit POI waypoints unless the race is an NPR. Each row shows the number, the type and the name, or the orbit body’s name when the waypoint has no name. The type column reads Normal, Point of Interest, Urgent POI, Transit POI, Fleet Training, Rendezvous, Temporary or Fleet Waypoint. A waypoint marked for deletion shows its type as one run-together word. The list refreshes when the map changes system.
Worked examples
Section titled “Worked examples”These examples apply the rules on this page to constructed situations.
Numbering after deletions. A player race has waypoints numbered 1, 2 and 4 in a system, because number 3 was deleted. A new waypoint there gets number 5, the highest existing number plus 1. If the player deletes number 5 and creates another waypoint, the new one is number 5 again. If the player deletes all waypoints in the system, the next one is number 1. A POI shown as “Point of Interest #5” and a later Normal waypoint shown as “Waypoint #6” share the same sequence.
NPR point of interest merging. An NPR has a POI at (100,000,000, 0). A new hostile commercial ship contact appears at (103,000,000, 4,000,000). Step 1 fails, because both differences exceed 1 km. Step 2 succeeds, because 3,000,000 and 4,000,000 are both below 5,000,000. The existing POI keeps its coordinates and number, and its creation time moves to now. A contact at (106,000,000, 0) differs by 6,000,000 on the x axis and creates a new POI. A hostile military contact at the first position creates a separate Urgent POI, because the reuse search matches the type.
Lost hostile track. An NPR loses track of a hostile military ship whose class maximum speed is 2,000 km/s, 3,600 seconds after the prior update. The reach is 7,200,000 km. A charted, explored jump point 5,000,000 km from the last position yields an Urgent POI and a Transit POI at the point, and an Urgent POI at the linked point in the next system. A Lagrange point 6,000,000 km away lies within reach, so every Lagrange point of the system gets an Urgent POI. The last-position request runs even inside the banned-body radius, because the track is hostile. That request finds the jump point’s Urgent POI, which the jump point group created earlier in the same pass. The two points lie 5,000,000 km apart, so they differ by less than 5,000,000 km on each axis unless the offset lies exactly along an axis. The request therefore refreshes that waypoint instead of creating one. The Urgent POI requests pass through the 5,000,000 km tolerance, so points close to existing Urgent POIs refresh them instead. The Transit POI request uses only the 1 km match.
Expiry against an order. A Transit POI created at time 0 survives the construction cycle at 63,072,000 seconds, because the test is strictly greater. At the next cycle it is removed unless some fleet’s move order has it as a waypoint destination. Arrival never consumes a Transit POI. It leaves only through the age rule, system removal, or a tactical map delete while the map shows the NPR race, because the list shows Transit POIs only for an NPR.
Patrol route length. A scout patrol pass sees 25 uncovered POI waypoints and no Urgent POI. The Urgent POI attempt fails. The POI attempt clears the scout’s orders and queues 19 Move to Location orders in nearest-neighbour order, leaving 6 points unqueued. A second scout in the same pass receives a 19-stop nearest-neighbour chain over the same 25 points, starting from its own position and mostly visiting the same points, because the uncovered set is not updated during the pass. The first scout to reach each point marks it for deletion, and the purge at the end of that increment removes it. When the other scout’s current order names a consumed point, the order finds no position and that scout’s whole queue clears, as described under move destinations.
Fleet waypoint across a reload. A player fleet with “MV: Fleet Waypoint” creates its fleet waypoint, then leaves. The game is saved and reloaded. The saved row has FleetID equal to the fleet’s ID, but waypoints load before fleets, so the row is skipped. After the reload no waypoint carries the fleet’s ID, and the standing order does nothing.
Persistence and reload
Section titled “Persistence and reload”Saving a game writes the waypoints inside the save transaction. The save deletes the game’s FCT_Waypoint rows and inserts one row per waypoint in the game. Marked waypoints are purged at the end of each increment, so a save between increments normally finds none.
FCT_Waypoint column |
What is stored | On load |
|---|---|---|
WaypointID |
Waypoint ID | Restored |
GameID |
Game ID | Selects the game’s rows |
RaceID |
Owning race | Row skipped when the race is missing |
SystemID |
System | Row skipped when the system is missing |
OrbitBodyID |
Orbit body ID | Body restored when present, otherwise no body with the ID kept |
CreationTime |
Creation time | Restored, so ages continue |
Xcor, Ycor |
Coordinates | Restored |
Number |
Number | Restored |
WaypointType |
Type, 0 to 10 | Restored as the matching type |
Name |
Name | Restored |
JumpPointID |
Jump point ID, or 0 when none | Jump point restored when present, otherwise none |
FleetID |
Owning fleet | Row kept only when 0 or below, or when the fleet is loaded |
The unused flag is not saved.
When a game loads, every FCT_Waypoint row for the game is read. The waypoints load after the systems, bodies and jump points they refer to and before the fleets. Fleets exist only once the fleet load has run. On a load into a fresh session the fleet check therefore fails for every row with a positive FleetID, and all fleet waypoints are dropped. Move orders that targeted them clear their fleet’s queue at the next movement step.
Nothing about a waypoint is recomputed on load. The body-follow rule moves orbit-linked waypoints again at the next orbital update. Move orders store only the waypoint ID and resolve it at each movement step. A missile salvo restores its waypoint target from TargetID when TargetType is 22 and the ID exists, and stays without a target otherwise. The salvo save writes TargetID and TargetType unchanged, and its one waypoint-related check has no effect. Fire-control assignments keep a waypoint ID and resolve it at launch.
A Transit POI whose jump point did not load has no jump point, and the jump point coverage steps still pass it on as a target point. No check in play guards that case. Such a waypoint is expected to stop the allocation with an error. The game shows Function #41 for the strategic threatened-jump-point assignment or Function #42 for the local coverage, and that allocation step ends there.
The display checkbox persists with the race as chkWaypoint. The pending waypoint type, the pending fleet and the waypoint being moved belong to the open tactical map window and are not saved.
Concept map
Section titled “Concept map”- Waypoint types, the eleven stored types and which ones arrival and age remove.
- Get or create rule, the single creation path with the 1 km and 5,000,000 km reuse tests.
- Display names, per-system numbering and type prefixes shown on the map and in orders.
- Tactical map tools, the buttons that create, move and delete player waypoints.
- Fleet waypoints, one return point per fleet, lost on reload.
- NPR contact points, points of interest raised by new contacts, lost tracks and transits.
- Contact tracks, the contact records whose creation raises NPR points of interest.
- Banned bodies, the bodies whose 10,000,000 km radius suppresses many points.
- Arrival and purge, marking on arrival and removal at the end of the increment.
- End of increment, where the purge sits in the increment order.
- Expiry, the construction cycle age test against active orders.
- System deletion, which removes every waypoint of a deleted system.
- Move destinations, waypoint orders, the 0,0 missing-destination rule and orbit following.
- Standing orders and waypoints, the standing and conditional orders that read waypoints.
- Standing order catalogue, the local and remote search order of each waypoint standing order.
- Move action availability, the other filters on the 20 waypoint actions.
- Move order execution, how fleets travel to a waypoint destination.
- Movement order templates, the neighbouring page on reusable fleet order queues.
- Hostile encounter guard, which can treat a waypoint as the encounter position.
- Spacemaster relocation, moving a fleet straight to a rendezvous waypoint.
- Nearest waypoint search, the reserved-waypoint search used by waypoint standing orders.
- Lagrange-aware distance, the distance used to rank search candidates and patrol stops.
- Auto-route search, the route search that runs the remote waypoint search.
- Missile targets, waypoints assigned to missile fire controls.
- Missile launch, the launch rules that a waypoint target skips.
- NPR patrol routes, nearest-neighbour patrol chains over points of interest.
- NPR patrols, the doctrine that picks which NPR fleets patrol.
- NPR strategic allocation, scout assignment to systems with points of interest.
- Jump point coverage, the defence that reads Transit POI jump points.
- NPR avoidance and escape points, Temporary detour and retreat points.
- Avoidance waypoints, the geometry of the manoeuvre point search.
- Retreat, the retreat decision that creates escape points.
- Map and list display, map markers, labels and the waypoint list.
- Interrupt flags, the interrupt raised whenever a hostile race transits, which an NPR also answers with a Transit POI.
- Persistence and reload, the
FCT_Waypointcolumns and what a reload drops. - Saved references, the general rules for rebuilding saved references on load.
Resources
Section titled “Resources”Related community documentation and developer posts. These may describe a different game version.