The ground_stations block defines the receiving network shared by every team.

Defining the network

"ground_stations": {
  "locations": [
    "Madrid",
    "Singapore"
  ],
  "min_elevation": 5,
  "max_range": 0,
  "scale": 100
}
FieldTypeMeaning
locationsstring arraySupported Studio location names
min_elevationdegreesMinimum angle above the local horizon
max_rangekilometersMaximum slant range; 0 means no explicit cap
scalenumberVisual station-marker scale

The loader default for scale is 1000. Many scenarios set 100 explicitly for a smaller marker.

Choosing locations

Use exact location names available in Studio. Unknown names produce a Console message and may be skipped or replaced with a default location.

The first valid station is important because Space Range attaches each team’s ground controller to the first station in the constructed list.

Example global network:

"locations": [
  "Madrid",
  "Dubai",
  "Singapore",
  "Auckland",
  "Easter Island",
  "Salvador",
  "Miami"
]

Include Amundsen-Scott when a polar mission needs high-latitude coverage.

Understanding availability

Stations are not owned by individual teams. All teams use the shared pool.

Actual contact depends on:

  • spacecraft orbit
  • minimum elevation
  • maximum range
  • antenna gain and communications hardware
  • current frequency and key

Test the intended passes. A station definition alone does not guarantee continuous communication.

Diagnosing station errors

If no team can communicate:

  • confirm locations is not empty
  • confirm the first location is valid
  • inspect the Console for an unrecognized location
  • confirm the spacecraft includes a Receiver and Transmitter
  • confirm the team frequency and key

For the normal Studio station entity and visualization cone, see Creating Ground Stations.

Next, define the spacecraft templates.