--[[ dcsw server map: Export.lua by Sacha Ligthert on 2024-01-14 ---- Add the following lines to your Export.lua in your ...\Saved Games\DCS.openbeta\Scripts folder. If they functions already exist, you will need to do some editing yourselves. ]]-- function LuaExportStart() package.path = package.path..";"..lfs.currentdir().."/LuaSocket/?.lua" package.cpath = package.cpath..";"..lfs.currentdir().."/LuaSocket/?.dll" socket = require("socket") IPAddress = "192.168.1.2" Port = 12345 MySocket = socket.try(socket.connect(IPAddress, Port)) MySocket:setoption("tcp-nodelay",true) end function LuaExportBeforeNextFrame() end function LuaExportAfterNextFrame() end function LuaExportStop() -- Terminate TCP connection if MySocket then socket.try(MySocket:send("exit\n")) MySocket:close() end end function LuaExportActivityNextEvent(t) -- Required to function normal local tNext = t -- Grab objects. Create JSON. Send off to server local o = LoGetWorldObjects() local json = '{"units":[' for k,v in pairs(o) do print(v.Type) -- add this line for debugging purposes local objectType = "unknown" objectType = type(v.Type) json = json .. string.format('{"age_in_seconds":"%.1f", "unit_name":"%s", "group_name":"%s", "name":"%s", "latitude":%f, "longitude":%f, "altitude_in_feet":%f, "heading_in_rads":%f, "pitch_in_rads":%f, "bank_in_rads":%f, "coalition":"%s", "type":"%s"},', t, v.UnitName, v.GroupName, v.Name, v.LatLongAlt.Lat, v.LatLongAlt.Long, v.LatLongAlt.Alt, v.Heading, v.Pitch, v.Bank, v.Coalition, objectType ) end -- Remove trialing comma json = json:sub(1, -2) -- Wrap up JSON json = json .. "]}" -- Send it awaaaaay! socket.try(MySocket:send(json)) -- Come back in 10 seconds tNext = tNext + 10.0 return tNext end