veafGrass — Grass Airstrip Configuration¶
Module ID: GRASS | File: veafGrass.lua
Purpose¶
Configures unprepared grass airstrips for use in DCS missions. Provides positioning data, radio frequencies, and landing aids for rough-field landing zones that are not standard DCS airbases.
Enable¶
veafGrass.initialize()
veafGrass.initialize() schedules veafGrass.buildFarpsUnits a few seconds after mission start (to let the other modules load) and registers a birth event handler. There is no builder class: everything is driven by the names you give to objects in the DCS Mission Editor.
How it works¶
At startup the module scans every unit in the mission and acts based on its name:
- Static objects whose name contains
GRASS_RUNWAY(case-insensitive) are used as the origin of a grass strip. - FARP-type units (
FARP,FARP_SINGLE_01,Invisible FARP,FARP_T,SINGLE_HELIPAD) whose unit name starts withFARP(FARP followed by a space) receive FARP scenery.
Grass Runways¶
To create a grass runway:
- Place a static object in the DCS Mission Editor at the right-hand end of the future strip, pointing down the runway axis.
- Name it so that its name contains
GRASS_RUNWAY(for exampleGRASS_RUNWAY_WHISKEY). - Call
veafGrass.initialize()at the module level.
At startup, veafGrass.buildGrassRunway(grassRunwayUnit, hiddenOnMFD) builds the strip scenery (rows of plots on each side, a tower) from that object's position and heading.
FARPs¶
To dress up a FARP:
- Place a FARP-type unit (
FARP,FARP_SINGLE_01,Invisible FARP,FARP_TorSINGLE_HELIPAD). - Name the unit so that it starts with
FARP(for exampleFARP Whiskey). - Call
veafGrass.initialize().
At startup, veafGrass.buildFarpsUnits(hiddenOnMFD) adds FARP scenery around each recognised unit (via veafGrass.buildFarpUnits).
Where the props are placed¶
The props (tents, depots, escort) are placed at a fixed distance from the FARP, along its heading. Since 6.15.11, if that spot is already taken by a unit or a static object, the module walks around the FARP until it finds clear ground — keeping the distance and changing the bearing, so the escort stays near the FARP it serves.
This is the common case rather than an edge one: you place a static FARP in the mission (that is what
unlocks spawning on it once the zone is captured), then run -farp on top of it. Before, the escort
came down on its pads — close enough that a helicopter landing there met a truck.
Four things worth knowing:
- A FARP with clear ground does not move. The original bearing is tried first, so a mission that works keeps its layout exactly.
- Forests are avoided too, on top of units, statics and pads. The module first asks DCS whether the planned spot is out of the trees, vehicle by vehicle; when it is and nothing occupies it, the escort stays exactly where it was planned. Otherwise it asks DCS for a list of tree-free spots and picks the nearest. Before this fix the escort was moved a few dozen metres even in open countryside.
- The whole group is checked, not just its first vehicle: the escort occupies a line some thirty metres long, and a clear spot whose tail overhangs would still block a pad.
- If the escort fits nowhere, the
-farpcommand is refused: nothing is created, and the message "FARP … refused: no clear ground for its escort" is shown. Place the marker a little further away. This is what happens in a dense wood, when no bearing at 150, 225 or 300 m is out of the trees (measured in game 2026-10-03); on open ground nothing moves. A FARP placed in the Mission Editor is never refused: nobody is there to read the message, so its layout is built anyway, at its original position.
The markers of an
Invisible FARPsit close to the centre on purpose, to show where the FARP is: they do not move.
Refilling warehouses¶
Since DCS 2.8, spawned FARPs come up with an empty warehouse. The module provides functions to refill them:
veafGrass.fillAllFarpWarehouses()— browses all valid FARPs and grass strips and fills their warehouses.veafGrass.fillFarpWarehouse(farp)— fills the warehouse of a given FARP.
The deposited content is defined by the veafGrass.WAREHOUSE_ITEMS table. The veafGrass.helicoptersOnFARPs table lists the helicopter types added to FARP warehouses so they are available to the dynamic slot mechanism.
Notes¶
- The grass strip's position and heading are read from the static object named
...GRASS_RUNWAY.... - The generated scenery units are hidden on MFDs to avoid cluttering the display.
See Also¶
- veafAssets — for managed tankers and AWACS at regular airbases
- Lua API Reference — full
veafGrassAPI