Ground of Aces Modding
Loading...
Searching...
No Matches
Mission locations

Every mission happens somewhere. A mission lists the places it can appear, and the game picks one when the mission is created. It draws one, and re-draws up to five more times if that spot is already used by a live mission; if every re-draw comes up taken it keeps the last one, so two live missions can end up sharing a location.

Distance is not decoration: the fuel a flight costs is worked out from the great-circle distance between the location and the loaded map's own coordinates, multiplied by FuelConsumptionPerKilometer from the Variables table, so a mission over Berlin is far more expensive to fly than one over the Channel.

If a mission lists no locations at all, the game falls back to a random one from the full list: the places below plus any that enabled mods add (see Adding locations with a mod).

Using a location

In the Mission Editor, open the Locations section, pick a place from the dropdown and add it. Add as many as you like; the same place cannot be added twice.

In a mission .json, each entry of _potentialLocations looks like this:

{
"_locationId": "dover",
"_locationName": "dover",
"_coordinates": { "x": 51.13512, "y": 1.312756 },
"_flags": 4
}
  • x is latitude, y is longitude.
  • _locationName is the only field the game reads at runtime. _locationId is informational - keep it identical to the name.
  • _flags must be a number (the file is read with Unity's JSON reader, so "Sea" is not accepted). See the next section for the flag names.

The name doubles as the identifier the game uses to tell whether a spot is already occupied, so the game avoids placing two live missions on the same name where it can (see the re-draw rule above).

A mission created from a script can be placed with missions_api.SetMissionLocation(mission_entity_id, location_name). It accepts only a name from the list below or one added by an enabled mod, never coordinates of your own; without a location a script-only mission sits at the map origin.

Location flags

Name Meaning
None none
Land over land
Sea over the sea
OwnTerritory over friendly territory
EnemyTerritory over enemy territory

A location can carry several at once. Sea + Enemy territory is the most common combination for a coastal target on the far side of the Channel.

The locations that ship with the game

82 places are predefined. Reuse them rather than inventing coordinates: they are positioned to line up with the war map, and the player will recognise them.

Latitude runs from 44.87 to 60.38, longitude from -9.00 to 14.55.

Name Latitude Longitude Flags
aarhus 56.1509 10.1799 Enemy
amiens 49.8980 2.3286 Enemy
amsterdam 52.3713 4.8995 Sea + Enemy
arras 50.2933 2.7758 Enemy
atlantic_ocean 56.5000 -9.0000 Sea
bergen 60.3829 5.3042 Sea + Enemy
berlin 52.5217 13.3958 Enemy
birmingham 52.4907 -1.8466 Own
bordeaux 44.8695 -0.5592 Sea + Enemy
boulogne-sur-mer 50.7246 1.6019 Sea + Enemy
bremen 53.0869 8.7973 Enemy
bremerhaven 53.5352 8.5838 Sea + Enemy
brest 48.3912 -4.4851 Sea + Enemy
bristol_channel 51.3681 -4.2301 Sea
brussels 50.8552 4.3559 Enemy
caen 49.1857 -0.3894 Sea + Enemy
calais 50.9587 1.8552 Sea + Enemy
cambridge 52.1925 0.1337 Own
canterbury 51.2733 1.0855 Own
cardigan_bay 52.5000 -4.6000 Sea
celtic_sea 50.8000 -7.5000 Sea
chelmsford 51.7352 0.4673 Own
cologne 50.9375 6.9517 Enemy
compiegne 49.3991 2.8277 Enemy
dedham_vale 51.9878 0.9096 Own
dieppe 49.9189 1.0747 Sea + Enemy
dogger_bank 54.9952 3.0143 Sea
dorchester 50.7106 -2.4410 Own
dover_strait 51.0598 1.5825 Sea
dover 51.1351 1.3128 Own
dunkirk_bay 51.3082 2.1831 Sea
dunkirk 51.0370 2.3788 Sea + Enemy
eastbourne_bay 50.6432 0.4435 Sea
eindhoven 51.4497 5.3770 Enemy
english_channel 50.1660 -1.7013 Sea
essen 51.4535 7.0060 Enemy
frankfurt 50.1028 8.6791 Enemy
great_yarmouth_bay 52.5492 2.2980 Sea
guernsey 49.4438 -2.5571 Sea
hamburg 53.5381 9.9669 Sea + Enemy
hanover 52.3736 9.7400 Enemy
hardangervidda 60.0327 7.4297 Enemy
high_weald 51.0563 0.4398 Own
ipswich 52.0524 1.1532 Own
irish_sea 53.5000 -4.8000 Sea
kassel 51.3127 9.4948 Enemy
krefeld 51.3394 6.5521 Enemy
kristiansand 58.1581 7.9766 Sea + Enemy
la_rochelle 46.1597 -1.1592 Sea + Enemy
lannion 48.7372 -3.4625 Sea + Enemy
le_havre 49.5003 0.1352 Sea + Enemy
leeuwarden 53.2037 5.7917 Sea + Enemy
liege 50.6413 5.5752 Enemy
lille 50.6252 3.0551 Enemy
london 51.5090 -0.1280 Own
maastricht 50.8474 5.6870 Enemy
maidstone 51.2707 0.5203 Own
malvern_hills 52.1034 -2.3512 Own
metz 48.9610 6.1310 Enemy
munster 51.9645 7.6099 Enemy
nancy 48.6921 6.1844 Enemy
nantes 47.2216 -1.5501 Enemy
north_channel 55.1000 -5.6000 Sea
north_sea 56.5000 3.5000 Sea
north_wessex 51.4482 -1.4938 Own
outer_silver_pit 54.0262 2.0864 Sea
paris 48.8535 2.3188 Enemy
raf_duxford 52.0933 0.1311 Own
raf_filton 51.5218 -2.5746 Own
raf_manston 51.3461 1.3490 Own
raf_tangmere 50.8464 -0.7095 Own
reims 49.2570 4.0438 Enemy
rotterdam_bay 51.9939 3.1666 Sea
rotterdam 51.9302 4.4752 Sea + Enemy
rouen 49.4381 1.0937 Enemy
seine_bay 49.7154 -0.6720 Sea
south_downs 50.9450 -0.6643 Own
st_georges_channel 52.0000 -5.8000 Sea
stettin 53.4282 14.5511 Sea + Enemy
telemark 59.3766 8.3060 Enemy
the_wash 52.9159 0.2530 Sea
tours 47.3933 0.6825 Enemy

Adding locations with a mod

A mod can add places to the list, so its missions (and anyone else's) can use them by name. Put one or more .json files in the mod's Missions/Locations/ folder. Only files directly inside that folder are read.

{
"Locations": [
{
"_locationId": "scapa_flow",
"_locationName": "scapa_flow",
"_coordinates": { "x": 58.9, "y": -3.1 },
"_flags": 2
}
]
}

Each entry has the same fields as an entry in a mission file (see above), and _flags must be a number here too. The Locations key holds the list and may contain as many entries as you like.

  • A mod's locations are on the list while the mod is enabled and leave it when the mod is disabled or removed. Toggling a mod or reloading mods updates the list without a restart.
  • Once on the list, a place behaves like a shipped one: it is offered in the Mission Editor dropdown, it works with SetMissionLocation, it can be drawn for a mission that lists no locations, and its flags are what quest location conditions see.
  • _locationName is the lookup key, so it has to be unique. Shipped names always win. If two mods add the same name the game uses one of them and does not warn you, so give your names a prefix that is unlikely to clash with another mod.
  • The player sees _locationName exactly as written. Shipped places have translations; a place from a mod has none unless a localization term named mission_location/<name> exists for it.
  • A file that cannot be read or parsed is skipped with a warning in the log. The other files still load.
  • Keep the coordinates inside the war map, as described below.

Using your own coordinates

Nothing stops a mission from naming a place that is not on the list. The coordinates live in the mission's own file, not in a shared table, so you can put a mission anywhere. Coordinates and name are yours; the flags a quest condition sees are not - they come from the location list by name (the shipped places and any added by a mod), so a place that exists only in a mission's own file matches every location condition. To give a place flags, add it to the list as described above.

The war map shows latitude 40.75 to 61.25 and longitude -11.75 to 21.64 (a Mercator projection). The range of the shipped places above is simply where they happen to be, not the map's limit. A location outside the map's box still works - distance and fuel are just maths - but its marker is clamped to the nearest edge of the map, so the player sees it at the border rather than where it really is. It stays clickable.