Configuration file

You can configure LotAtc Server within the config.lua file. It is located in your {UserHome}/Saved Games/DCS/mods/tech/lotatc/config.lua

Use Notepad++ or Sublime Text to modify this file, DO NOT USE Notepad, it will corrupt the file

2.x version

With LotAtc 2.x you can create a config.custom.lua file in same directory than the config.lua and put directly all values that you want to change from the original config.lua file.

For example, to setup a LotAtc server for a dedicated server, we can add in the config.custom.lua:

lotatc_inst.options =  {
  port = 11310,
  dedicated_mode = true,
  dedicated_profile = "realistic.lua",

This file will not be overwritten by future update. All others values not described in this file will take config.lua as default.


    lotatc_inst.options =  {
  --- You can copy this file to config.custom.lua file to make modifications
  --- config.custom.lua will not be overwrite on each install/update
  --- this one will be overwritten on each install/update of LotAtc
  -------------------- Options that cannot be added yet in DCS Options
  -- Enable LotAtc
  -- (default=true)
  use_atc       = true,
  -- LotAtc server port
  -- (default=10310)
  port        = 10310,

  -- Passwords
  -- Put "" disable password for red
  -- (default="red")
  red_password    = "red",
  -- Put "" disable password for blue
  -- (default="blue")
  blue_password   = "blue",

  -- Limitations
  -- -1 means no limit
  -- (default=-1)
  red_max_clients   = -1,
  -- (default=-1)
  blue_max_clients  = -1,

  -- All units with this name (or human pilot group) will be AWACS
  -- void text disables the feature
  -- (default="")
  virtual_awacs_name  = "",

  -- Radius detection range in kilometer for virtual AWACS ( must be > 5km )
  -- (default=400)
  virtual_awacs_range = 400,

  -- All units with name containing this string will never be part of radar coverage
  -- Works on any unit (plane, SAM, ship...)
  -- void text disables the feature
  -- (default="lotatc_ignore_")
  ignore_radar_name   = "lotatc_ignore_",

  -- Minimal detection range in meters to be considered as part of
  -- radar coverage by LotAtc.
  -- (default=5001), to avoid Shilka)
  minimal_detection_limit = 5001,

  -- interact with chat system
  -- (default=true)
  use_chat = true,

  -- Filter command starting with, use lua pattern
  -- (default={"^-.*"})
  chat_filter = {"^-.*"},

  -- Server will generate a log file, set false to disable logging
  -- (default=true)
  use_log = true,

  ---------------------- Dedicated mode only
  -- Dedicated mode enable
  -- Profile will be set to the dedicated_profile below
  -- (default=false)
  dedicated_mode = false,

  -- For dedicated mode enabled, this will set the profile
  -- (default="realistic.lua")
  dedicated_profile = "realistic.lua",
  ---------------------- Server auth
  -- Block connections that are already connected as DCS pilots
  -- Values are:
  --    "none" : No block
  --    "all"  : Everybody connected on DCS
  --    "pilots": Only blocks DCS pilots (spectator not blocked)
  -- (default="none")
  block_dcs_ip = "none",

  -- User/password list
  -- If a file is set, only user/password in this file could connect
  -- this file define also whitelist/blacklist
  -- For file path, path are relative to mods/LotAtc directoy
  -- but you can set absolute path also
  -- Format is JSON
  -- (default="")
  allowed_users_file = "",

  -- Server commands like pause/unpause from advanced client
  -- To enable admin commands you must:
  --  1/ use_admin_commands = true
  --  2/ add users in a json file specified by allowed_users_file
  --  3/ use advanced client license
  -- (default=false)
  use_admin_commands = false,
  ---------------------- Plugins
  -- Dump stats in JSON for external software
  -- (default=false)
  dump_json_stats = false,
  -- stats file path, path are relative to mods/LotAtc directoy
  -- but you can set absolute path also
  -- (default="stats.json")
  dump_json_filename = "stats.json",
  ---------------------- SRS options
  -- Enable SRS transponder function
  -- (default=true)
  srs_use_transponder = true,

  -- SRS transponder port
  -- (default=10712)
  srs_transponder_port = 10712,

  ---------------------- Optimisation flags, be careful with them
  -- Number of seconds between DCS data extraction
  -- (default=2), lower can reduce peformances)
  update_time     = 2,

  -- If enabled, search for new unit only on n seconds:
  -- (default=10)
  update_search_for_new = 10,

  -- Maximum number of units updated in each block of data
  -- (default=50)
  max_loop_unit = 50,
  -- Minimum frame update time in seconds
  -- (default=0.3)
  minimum_frame_update = 0.3,

  ---------------------- Next flags are for debug/test only (SHOULD BE FALSE)
  -- Enable verbose output in dcs.log, useful to report problems
  -- but big performances impact
  -- (default=false)
  enable_debug  = false,

  --Enable performances output, useful to report problems
  -- (default=false)
  perfs_test    = false,

Basic configuration


You can choose to activate or desactivate LotAtc using:

use_atc = true,
  • true: LotAtc will run if LotAtc is enabled in DCS options, otherwise it will not run
  • false: nothing will be done, LotAtc will be desactivated.


port = 10310,

Set the port used by LotAtc

This port must be different than DCS one or any other application.

If you host a LotAtc session, you must set your firewall to enable this port


red_password        = "red" ,
blue_password        = "blue",

Set the passwords used by LotAtc client to connect to the server. SHOULD NOT BE EMPTY


-- Limitations
-- -1 means no limit
red_max_clients		= -1,
blue_max_clients	= -1,

Limit the number of LotAtc client per coalition. Set -1 for unlimited, 0 desactivate the coalition (no controller slot will be available).

Virtual Awacs

Virtual Awacs can be used to use any unit as a AWACS for LotAtc. The unit become a radar and used to compute the picture for LotAtc users.

virtual_awacs_name 	= "",
  • If void: no virtual awacs will be used
  • If no void: all units with this name will be used

For example, if you set it to “myawacs”, the AI unit called “myawacsFromBatumi” will become a AWACS.

virtual_awacs_range = 400,

Specify the radius in kilometer of the Virtual awacs detection circle


This part is for advanced users only, it could degrade performances and cause trouble. If you are unsure, let values by default


This value defined the time desired between two DCS data extraction for each unit. By default, it is fixed to 2second.

update_time = 2,

This value is a consign, for large mission with thousands of units, LotAtc can increase automatically this value to avoid lag on server.

Search for new AI routine

As new group can be spawned by lua script in the mission, LotAtc search regularly for new unit in DCS realtime database. This action take some time. You can change the time between 2 checks.

update_search_for_new = 10,

Time between 2 check in seconds. By default, it is set to 10s.

max_loop_unit and minimum_frame_update

To optimise performances, LotAtc split all units in group of max_loop_unit units and update them group by group. For a mission of 500 units, 5 groups will be created and be updated each update_time / 5 seconds. This interval cannot be smaller than minimum_frame_update to avoid to much ccompute in DCS routines.

max_loop_unit = 50,
  • Increase the value reduces LotAtc access in server but increases LotAtc compute time
  • Decrease the value reduces LotAtc compute time but increases LotAtc access
minimum_frame_update = 0.3,
  • Increase the value decrease minimum interval between 2 group update
  • Decrease the value increase minimum interval between 2 group update


Set true to the following flags will reduce LotAtc server performances and can add lag for DCS client. Use them only for bug reporting or server optimisation.


enable_debug 	= false,
  • true: LotAtc will be verbose in DCS.log, usefull for bug reports
  • false: Only minimal output will be done in DCS.log


perfs_test 	= false,
  • true : will output performances timing in LotAtc_perfs.csv file each 20s. Useful for tweaking optimisation parameters like max_loop_units and minimum_frame_update.
  • false: no performances output