Skip to content

veafNamedPoints — Named Map Positions

Module ID: NAMEDPOINTS | File: veafNamedPoints.lua


Purpose

Allows mission makers (and players with appropriate permissions) to define named positions on the map. Named points can be referenced by other systems (convoys, missions, smoke commands) and can optionally expose an ATC frequency or TACAN channel.


Dependencies

  • veafMarkers — for the _name point marker command
  • veafRadio — optional radio menu entry

Enable

veafNamedPoints.initialize()

Configuration (mission.yaml)

modules:
  NAMEDPOINTS:
    enabled: true          # default: true
    logLevel: info        # optional log level override
    custom_points:        # pre-defined named points
      - name: "Battle Area Alpha"    # point name (referenced in commands)
        lat: "41.123456"             # latitude as string (decimal degrees)
        lon: "44.987654"             # longitude as string (decimal degrees)
      - name: "FARP Bravo"
        lat: "41.200000"
        lon: "44.100000"
Field Type Default Required Description
enabled boolean true No Enable or disable the module
logLevel string (global) No Per-module log level override
custom_points object[] [] No Pre-defined named points
custom_points[].name string — Yes Point name — referenced in spawn commands and radio menus
custom_points[].lat string — Yes Latitude as a decimal string (e.g. "41.123456")
custom_points[].lon string — Yes Longitude as a decimal string (e.g. "44.987654")

Coordinates are geographic (WGS84). Use decimal degrees as strings.

Minimal example

modules:
  NAMEDPOINTS:
    enabled: true
    custom_points:
      - name: "BULLSEYE"
        lat: "41.100000"
        lon: "43.850000"

Key Constants

Constant Default Description
veafNamedPoints.Keyphrase "_name point" Marker command prefix
veafNamedPoints.RadioMenuName "NAMED POINTS" F10 submenu label

Pre-defining Points in mission-script.lua

Named points can be pre-defined programmatically. addPoint(name, point) takes a vec3 ({x=…, y=0, z=…}; y defaults to 0). ATC/TACAN/ILS/tower data is attached via addDataToPoint(point, data):

veafNamedPoints.initialize()

-- Add a static named point
local point = veafNamedPoints.addPoint("FARP Alpha", { x = 123456, y = 0, z = 654321 })

-- Attach ATC/TACAN/tower/ILS data to the point
veafNamedPoints.addDataToPoint(point, {
  atc   = true,
  tower = "V131, U260",
  tacan = "16X BTM",
  ils   = "110.30",
})

addAirbases() bulk-adds every airbase on the map (called automatically by initialize()); there is no per-airbase add function. addCities() likewise adds the theatre's cities, as hidden points: a city name then works as a convoy's destination, a shortcut's position or a transport mission's start, and the weather "at the closest point" knows them. The lists come from the game's files (see The theatres' cities); a theatre that has none yet (Kola, Iraq) says so in dcs.log at start.

A batch of points declared by a script

addPoint writes into the points table, which initialize() empties before filling it: a point added before initialize() is lost. A mission that builds its own points from its data (BFR, with its airfields' TACAN) declares them as a batch instead, before or after initialize():

veafNamedPoints.declarePoints({
  { name = "Kobuleti", point = veafNamedPoints.addDataToPoint(coord.LLtoLO(41.93, 41.86), { tacan = "67X KBL" }) },
  { name = "Senaki", point = { x = -281000, y = 0, z = 648000 } },
})

Each entry has the shape of initialize(customPoints); an entry without a name or a position is skipped, with a line in the log.


Player Marker Command

Players can create named points via map markers (if allowed by security):

_name point Alpha

Places a named point called "Alpha" at the marker position.


Referencing Named Points

Named points can be used as destinations in spawn commands:

_spawn convoy, dest Alpha, speed 40

A convoy accepts several dest and walks the points in the order written, so an itinerary can be composed out of named points:

_spawn convoy, dest Alpha, dest Bravo, dest Charlie, speed 40

See veafSpawn.


See Also