Jump to content

Recommended Posts

Posted

Dymamical spawning of aircraft has some serious issues since (at least) DCS 2.1 [1]

Unfortunately, this has now carried over to DCS 2.5.

 

Problem:

At each airport, only that many aircraft can be spawned dynamically as there are parking spots. If more aircraft are spawned, the spawning happens on the runway.

This effectively puts the runway the runway out of order and makes it unusable for takeoffs and landings.

 

Just as an example, here is a video showing the problem for Batumi:

 

 

Batumi has ten parking spots. These are used correctly for the first ten aircraft. But even after the aircraft taxied out and the parking spots are (in principle) available again, all subsequent aircraft are spawned on the runway.

 

Note that this erroneous behaviour is not present in DCS 1.5.8 (latest stable). There all aircraft are correctly spawned at parking spots at any time.

 

This (or a similar) bug has been reported in this forum here, here and here.

A warrior's mission is to foster the success of others.

i9-12900K | RTX 4090 | 128 GB Ram 3200 MHz DDR-4 | Quest 3

RAT - On the Range - Rescue Helo - Recovery Tanker - Warehouse - Airboss

Posted

What is worse is that at times instead of using up all the spots and then spawning onto the runway, if the planes don't leave their parking spots on time they will spawn on top of each other. Then you get a similar situation as on the runway with pilots ejecting all over the place and mostly making the parking area unusable and nothing taxi's any longer.

Posted

It has been reported. Can you attach the table of lua that is being sent to coalition.addGroup() for spawning the aircraft? I used mist and cloneGroup to replicate the bug. However the AI never spawned on the runway, it just repeatedly respawned on the same parkingId for each new spawn after it cycled through each parkingId.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Posted
It has been reported. Can you attach the table of lua that is being sent to coalition.addGroup() for spawning the aircraft?

Thanks a lot for looking into this, Grimes :thumbup: I'll attach the table once I get home.

 

I used mist and cloneGroup to replicate the bug. However the AI never spawned on the runway, it just repeatedly respawned on the same parkingId for each new spawn after it cycled through each parkingId.

That's very interesting. What you describe is exactly what I see, when I run the exact same script in 1.5.8. So it looks like something in my template table is different compared to what you do. Would be great if we could figure out what by comparing our methods/tables :)

A warrior's mission is to foster the success of others.

i9-12900K | RTX 4090 | 128 GB Ram 3200 MHz DDR-4 | Quest 3

RAT - On the Range - Rescue Helo - Recovery Tanker - Warehouse - Airboss

Posted
It has been reported. Can you attach the table of lua that is being sent to coalition.addGroup() for spawning the aircraft?

The table is too long ;) The line in the DCS.log file is cut off. Maybe you find the info you are interested in already. If not, I'll have to find a better way to print it.

So here you go for now.

 

2018-02-27 17:59:25.783 INFO    SCRIPTING:    420(   947)/E:            DATABASE00003.Spawn({[CountryID]=2,[lateActivation]=false,[tasks]={},[radioSet]=false,[CategoryID]=0,[task]=CAS,[uncontrolled]=false,[route]={[routeRelativeTOT]=true,[points]={[1]={[speed_locked]=true,[type]=TakeOffParkingHot,[action]=From Parking Area Hot,[alt_type]=RADIO,[properties]={[vnav]=1,[scale]=0,[angle]=0,[vangle]=0,[steer]=2,},[y]=618210.875,[x]=-356437.15625,[name]=Departure,[airdromeId]=22,[speed]=200,[ETA_locked]=false,[task]={[id]=ComboTask,[params]={[tasks]={[1]={[enabled]=true,[auto]=false,[id]=WrappedAction,[number]=1,[params]={[action]={[id]=Script,[params]={[command]=local MissionControllable = GROUP:FindByName("A-10C Batumi#001") local RATtemplateControllable = GROUP:FindByName("RAT_A10C") local Arguments = RATtemplateControllable:GetState(RATtemplateControllable, '_00000000A511AF90' ) RAT._WaypointFunction( MissionControllable, unpack( Arguments ) ),},},},},},},},[alt]=0,},[2]={[speed_locked]=true,[type]=Turning Point,[action]=Turning Point,[alt_type]=BARO,[properties]={[vnav]=1,[scale]=0,[angle]=0,[vangle]=0,[steer]=2,},[y]=646584.4178305,[x]=-327231.3720374,[name]=Climb,[speed]=200,[ETA_locked]=false,[task]={[id]=ComboTask,[params]={[tasks]={[1]={[enabled]=true,[auto]=false,[id]=WrappedAction,[number]=1,[params]={[action]={[id]=Script,[params]={[command]=local MissionControllable = GROUP:FindByName("A-10C Batumi#001") local RATtemplateControllable = GROUP:FindByName("RAT_A10C") local Arguments = RATtemplateControllable:GetState(RATtemplateControllable, '_00000000B721ECF0' ) RAT._WaypointFunction( MissionControllable, unpack( Arguments ) ),},},},},},},},[alt]=1563.5848110172,},[3]={[speed_locked]=true,[type]=Turning Point,[action]=Turning Point,[alt_type]=BARO,[properties]={[vnav]=1,[scale]=0,[angle]=0,[vangle]=0,[steer]=2,},[y]=674957.960661,[x]=-298025.5878248,[name]=Begin of Cruise,[speed]=180.54,[ETA_locked]=false,[task]={[id]=ComboTask,[params]={[tasks]={[1]={[enabled]=true,[auto]=false,[id]=WrappedAction,[number]=1,[params]={[action]={[id]=Script,[params]={[command]=local MissionControllable = GROUP:FindByName("A-10C Batumi#001") local RATtemplateControllable = GROUP:FindByName("RAT_A10C") local Arguments = RATtemplateControllable:GetState(RATtemplateControllable, '_00000000AFDCC930' ) RAT._WaypointFunction( MissionControllable, unpack( Arguments ) ),},},},},},},},[alt]=3117.1255842155,},[4]={[speed_locked]=true,[type]=Turning Point,[action]=Turning Point,[alt_type]=BARO,[properties]={[vnav]=1,[scale]=0,[angle]=0,[vangle]=0,[steer]=2,},[y]=679580.42982299,[x]=-293267.5342507,[name]=End of Cruise,[speed]=180.54,[ETA_locked]=false,[task]={[id]=ComboTask,[params]={[tasks]={[1]={[enabled]=true,[auto]=false,[id]=WrappedAction,[number]=1,[params]={[action]={[id]=Script,[params]={[command]=local MissionControllable = GROUP:FindByName("A-10C Batumi#001") local RATtemplateControllable = GROUP:FindByName("RAT_A10C") local Arguments = RATtemplateControllable:GetState(RATtemplateControllable, '_000000001FB2D900' ) RAT._WaypointFunction( MissionControllable, unpack( Arguments ) ),},},},},},},},[alt]=3117.1255842155,},[5]={[speed_locked]=true,[type]=Turning Point,[action]=Turning Point,[alt_type]=BARO,[properties]={[vnav]=1,[scale]=0,[angle]=0,[vangle]=0,[steer]=2,},[y]=689639.68560643,[x]=-282913.22440983,[name]=Descent,[speed]=140,[ETA_locked]=false,[task]={[id]=ComboTask,[params]={[tasks]={[1]={[enabled]=true,[auto]=false,[id]=WrappedAction,[number]=1,[params]={[action]={[id]=Script,[params]={[command]=local MissionControllable = GROUP:FindByName("A-10C Batumi#001") local RATtemplateControllable = GROUP:FindByName("RAT_A10C") local Arguments = RATtemplateControllable:GetState(RATtemplateControllable, '_000000005C8A96B0' ) RAT._WaypointFunction( MissionControllable, unpack( Arguments ) ),},},},},},},},[alt]=2208.8845160457,},[6]={[speed_locked]=true,[type]=Turning Point,[action]=Turning Point,[alt_type]=BARO,[properties]={[vnav]=1,[scale]=0,[angle]=0,[vangle]=0,[steer]=2,},[y]=699698.94138986,[x]=-272558.91456895,[name]=Holding Poin

 

Hope it helps :)

 

Could you send me the Mist script you used, where the spawning is happening correctly? Maybe I can find a difference on my side.

 

In any case, thanks for you effort!

A warrior's mission is to foster the success of others.

i9-12900K | RTX 4090 | 128 GB Ram 3200 MHz DDR-4 | Quest 3

RAT - On the Range - Rescue Helo - Recovery Tanker - Warehouse - Airboss

Posted

Side note, with mist.cloneGroup("plane",true) ten times at Batumi, yes nothing happens after the tenth spawn, but my FPS went from 160 to 1 after waiting a minute or two so there's clearly something going on under the hood that's causing more than just a parking spot issue.

I don't know why DCS should stop parking spot re-use, if it is clever enough to work out one is already occupied, it's already done the hard work in the code, it just needs to perform the same check again and release these hung spots.

mistspawn.miz

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Posted
Side note, with mist.cloneGroup("plane",true) ten times at Batumi, yes nothing happens after the tenth spawn, but my FPS went from 160 to 1 after waiting a minute or two so there's clearly something going on under the hood that's causing more than just a parking spot issue.

 

It is respawning on the same position which is likely the cause of the lag. Hit F2 a bunch of times to cycle through and you will notice it. Could also use something with swept wings or alternate aircraft types to make it obvious.

 

funky the mission Pikey posted is basically what I used. Only difference is I used triggers to call mist.cloneGroup() instead of using moose or mist to do it.

sweep_wings_spawn_multiple.thumb.jpg.dceb22c374620c804470e3bec50b11d4.jpg

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Posted

funky the mission Pikey posted is basically what I used. Only difference is I used triggers to call mist.cloneGroup() instead of using moose or mist to do it.

Grimes, I did a lot of testing and I think I found the reason why spawning sometimes happens on the runway.

 

I did build a small spawning script completely independent of MOOSE/MIST (attached in the spoiler below).

Firstly, I placed an aircraft on parking spot 09 on Batumi and extracted the necessary part of the template from the mission file in the miz.

Then I created a completely new and empty mission, i.e. with no units whatsoever. I spawned only from the extracted template fed into the coaliton.addGroup() function.

 

The good news:

If I run that script, spawning always happens on the runway. There are differences whether "parking_id" and "parking" are specified or not.

  • If "parking_id" and/or "parking" are specified, all spawns happen on parking spot 09. If the aircraft have enough time to taxi out before the next spawn happens everything is fine. If not, they spawn on top of each other.
  • If both "parking_id" and "parking" are not specified in the template, the first aircraft is spawned on parking spot 09, the following on 10, 8, 7,...,1. The eleventh aircraft and all subsequent are again spawned on parking slot 09 (again on top of each other if not enough time to taxi out).

The bad news:

Contrary to DCS 1.5.8 the spawning place is very dependent on (or sensitive to) the "correct" x and y coordinates of unit entry in the spawn template. If that location is closer to the runway than to the parking area, the spawning will happen on the runway.

And this is where a code like MOOSE gets in trouble. Because MOOSE uses (late activated) units located anywhere on the map and translates the position vector to where the unit should be spawned. Since the exact location of the parking spots is not known, MOOSE shifts the spawning position to that of the airport coordinates. That was working well in DCS 1.5.8 but not anymore since DCS 2.1.

 

There are also subtle differences whether or not "parking"/"parking_id" are specified:

  • If they are, the first aircraft is spawned on the given parking position. This is independent of the time between the spawns. So happens even if the first aircraft had enough time to taxi away from the fixed parking position.
  • If they are not, the first ten aircraft are spawned on different parking spots. All following aircraft are spawned on the runway.

 

In the spoiler is the code to reproduce the issue. It can be used with any "blank" Caucasus mission.

 

 

local A10C = 
{
   ["lateActivation"] = false,
   ["tasks"] = 
   {
   }, -- end of ["tasks"]
   ["radioSet"] = false,
   ["task"] = "CAS",
   ["uncontrolled"] = false,
   ["route"] = 
   {
       ["routeRelativeTOT"] = true,
       ["points"] = 
       {
           [1] = 
           {
               ["alt"] = 10,
               ["action"] = "From Parking Area Hot",
               ["alt_type"] = "BARO",
               ["properties"] = 
               {
                   ["vnav"] = 1,
                   ["scale"] = 0,
                   ["vangle"] = 0,
                   ["angle"] = 0,
                   ["steer"] = 2,
               }, -- end of ["properties"]
               ["speed"] = 138.88888888889,
               ["task"] = 
               {
                   ["id"] = "ComboTask",
                   ["params"] = 
                   {
                       ["tasks"] = 
                       {
                           [1] = 
                           {
                               ["number"] = 1,
                               ["key"] = "CAS",
                               ["id"] = "EngageTargets",
                               ["enabled"] = true,
                               ["auto"] = true,
                               ["params"] = 
                               {
                                   ["targetTypes"] = 
                                   {
                                       [1] = "Helicopters",
                                       [2] = "Ground Units",
                                       [3] = "Light armed ships",
                                   }, -- end of ["targetTypes"]
                                   ["priority"] = 0,
                               }, -- end of ["params"]
                           }, -- end of [1]
                           [2] = 
                           {
                               ["number"] = 2,
                               ["auto"] = true,
                               ["id"] = "WrappedAction",
                               ["enabled"] = true,
                               ["params"] = 
                               {
                                   ["action"] = 
                                   {
                                       ["id"] = "EPLRS",
                                       ["params"] = 
                                       {
                                           ["value"] = true,
                                           ["groupId"] = 1,
                                       }, -- end of ["params"]
                                   }, -- end of ["action"]
                               }, -- end of ["params"]
                           }, -- end of [2]
                       }, -- end of ["tasks"]
                   }, -- end of ["params"]
               }, -- end of ["task"]
               ["type"] = "TakeOffParkingHot",
               ["ETA"] = 0,
               ["ETA_locked"] = true,
               ["y"] = 618264.4375,
               ["x"] = -356142.96875,
               ["name"] = "DictKey_WptName_8",
               ["formation_template"] = "",
               ["airdromeId"] = 22,
               ["speed_locked"] = true,
           }, -- end of [1]
           [2] = 
           {
               ["alt"] = 21,
               ["action"] = "Landing",
               ["alt_type"] = "BARO",
               ["properties"] = 
               {
                   ["vnav"] = 1,
                   ["scale"] = 0,
                   ["vangle"] = 0,
                   ["angle"] = 0,
                   ["steer"] = 2,
               }, -- end of ["properties"]
               ["speed"] = 138.88888888889,
               ["task"] = 
               {
                   ["id"] = "ComboTask",
                   ["params"] = 
                   {
                       ["tasks"] = 
                       {
                       }, -- end of ["tasks"]
                   }, -- end of ["params"]
               }, -- end of ["task"]
               ["type"] = "Land",
               ["ETA"] = 1362.0124157857,
               ["ETA_locked"] = false,
               ["y"] = 516451.6875,
               ["x"] = -196710.085938,
               ["name"] = "DictKey_WptName_9",
               ["formation_template"] = "",
               ["airdromeId"] = 21,
               ["speed_locked"] = true,
           }, -- end of [2]
       }, -- end of ["points"]
   }, -- end of ["route"]
   ["groupId"] = 1,
   ["hidden"] = false,
   ["units"] = 
   {
       [1] = 
       {
           ["alt"] = 10,
           ["alt_type"] = "BARO",
           ["livery_id"] = "104th FS Maryland ANG, Baltimore (MD)",
           ["skill"] = "High",
           ["parking"] = 5,
           ["parking_id"] = "09",
           ["speed"] = 138.88888888889,
           ["type"] = "A-10C",
           ["unitId"] = 1,
           ["psi"] = 0.56831451846902,
           -- If x and y are too far away from the parking spots, spawning happens on runway
           ["x"] = -356142.96875,  -- exact x location of parking spot 9
           ["y"] =  618264.4375,   -- exact y location of parking spot 9
           ["name"] = "DictKey_UnitName_7",
           ["payload"] = 
           {
               ["pylons"] = 
               {
               }, -- end of ["pylons"]
               ["fuel"] = 5029,
               ["flare"] = 120,
               ["ammo_type"] = 1,
               ["chaff"] = 240,
               ["gun"] = 100,
           }, -- end of ["payload"]
           ["heading"] = -0.56831451846902,
           ["callsign"] = 
           {
               [1] = 1,
               [2] = 1,
               [3] = 1,
               ["name"] = "Enfield11",
           }, -- end of ["callsign"]
           ["onboard_num"] = "010",
       }, -- end of [1]
   }, -- end of ["units"]
   ["y"] = 618264.4375,
   ["x"] = -356142.96875,
   ["name"] = "A10 Group",
   ["communication"] = true,
   ["start_time"] = 0,
   ["modulation"] = 0,
   ["frequency"] = 251,
} -- end of [1]



-- Spawn function.
local function SpawnPlane(_Data, time)
 env.info("SpawnPlane, time = "..time)
 
 -- Increase counter.
 _Data.nspawns=_Data.nspawns+1
 
 -- Spawn max 15 planes.
 if _Data.nspawns <= 15 then
   env.info(string.format("Spawning new plane #%d", _Data.nspawns))
   coalition.addGroup(country.id.GERMANY, Group.Category.AIRPLANE, _Data.groupData )
   return time + 60
 else
   env.info("Done spawning.")
   return nil
 end
end

local _data={}
_data.nspawns=0
_data.groupData=A10C

-- Modify initial unit position and parking spot id.
_data.groupData.units[1].parking=5
_data.groupData.units[1].parking_id="09"
-- If these values are changed, spawning happens on the runway.
_data.groupData.units[1].x=-356142.96875 -1000
_data.groupData.units[1].y= 618264.43750 -100

-- Start spawning after 5 seconds.
timer.scheduleFunction(SpawnPlane, _data, timer.getTime() + 5)

 

 

You can easily go through the scenarios I described by changing the parameters from between line 197 and 202. The unmodified x,y coordinates correspond to the location of parking spot 09.

A warrior's mission is to foster the success of others.

i9-12900K | RTX 4090 | 128 GB Ram 3200 MHz DDR-4 | Quest 3

RAT - On the Range - Rescue Helo - Recovery Tanker - Warehouse - Airboss

Posted

Had to fiddle with it a tiny bit, but I got em to spawn on the runway. So I filed that as a new bug report since it is different enough from the other one.

 

Also put in a feature request for getting parking data on the airbase object. No promises on it, but its in the system. Who knows, they might surprise us like they did with the getting road path functions. Anyways here is a list of functions I requested:

 

Airbase.getParkingByType(typeName)

 

Given a string of an object typeName and returns a table indexed numerically of parking that can spawn the object type with the following data: {x coord, y coord, parking, parking_id}

 

Airbase.getParkingCoord(parking/parking_id)

 

returns a table of {x, y} for a given parking coordinate

 

Airbase.getNearestParking({x,y})

 

returns the nearest free parking to a given coordinate. {x coord, y coord, parking, parking_id}

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Posted

Nice, how about backward compatibility? In 1.5 you can basicly assign any parking or even no parking and the plane will spawn in a correct spot. Something automated would also be handy.

-

If man were meant to fly he'd be filled with helium.

Posted
Had to fiddle with it a tiny bit, but I got em to spawn on the runway. So I filed that as a new bug report since it is different enough from the other one.

Thanks Grimes! That's really good news (given the circumstances).

 

Also put in a feature request for getting parking data on the airbase object. No promises on it, but its in the system. Who knows, they might surprise us like they did with the getting road path functions. Anyways here is a list of functions I requested: [...]

These functions would be extremely handy. I hope ED hears you :)

 

For the problem at hand, I also second what Coug4r said. I might not see the whole picture but to me it seems clear that the dependency on x,y coordinates is redundant and causes only problems.

The situation is already fully determined by setting an aircraft to start from ramp (cold or hot) and specifying the airdrome ID.

If these two bits of information are present in the spawning template, the algorithm should always automatically put the aircraft on a parking spot if there is one available. If there is no free spot, spawning should happen in air.

(I mean, this is also essentially the case if you do it in the mission editor. As soon as you enable take of from ramp in the GUI, the aircraft is shifted to the nearest free parking spot.)

A warrior's mission is to foster the success of others.

i9-12900K | RTX 4090 | 128 GB Ram 3200 MHz DDR-4 | Quest 3

RAT - On the Range - Rescue Helo - Recovery Tanker - Warehouse - Airboss

  • 2 weeks later...
  • 1 month later...
Posted

A very needed request of Grimes, now that parkings spots aren't anymore searched for automatically when a new group spawns in. This is not good, this new feature of 2.5...

 

This really isn't good.

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Posted

However, each unit has a parking_id. You can specify the parking_id and it'll spawn on that exact parking spot.

 

So we need to build a database of all parking spots, and select the right one depending on the type of plane. And no guarantee that the one selected will be free ...

 

this is bad.

 

["units"] = 
                               {
                                   [1] = 
                                   {
                                       ["alt"] = 18,
                                       ["alt_type"] = "BARO",
                                       ["livery_id"] = "US Air Force",
                                       ["skill"] = "High",
                                       ["parking"] = 15,
                                       ["speed"] = 138.88888888889,
                                       ["type"] = "C-130",
                                       ["unitId"] = 83,
                                       ["psi"] = 1.7843802287377,
                                       ["parking_id"] = "30",
                                       ["x"] = -317688.125,
                                       ["name"] = "DictKey_UnitName_186",
                                       ["payload"] = 
                                       {
                                           ["pylons"] = 
                                           {
                                           }, -- end of ["pylons"]
                                           ["fuel"] = "20830",
                                           ["flare"] = 60,
                                           ["chaff"] = 120,
                                           ["gun"] = 100,
                                       }, -- end of ["payload"]
                                       ["y"] = 636897.0625,
                                       ["heading"] = 1.2738607139997,
                                       ["callsign"] = 
                                       {
                                           [1] = 1,
                                           [2] = 1,
                                           [3] = 1,
                                           ["name"] = "Enfield11",
                                       }, -- end of ["callsign"]
                                       ["onboard_num"] = "010",
                                   }, -- end of [1]
                               }, -- end of ["units"]

 

Anybody knows also what ["parking"] = 15, means?

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Posted

That's still from 1.5 and older, you can assign a parking spot and if it's clear and not used for a while the AC might spawn there.

 

I've been going through lua files etc but couldn't find any data on these parking spots for 2.5 so yes, we could seriously use a fix for this. AC spawn where you don't want them, on the runway, tankers and other big aircraft spawn in bunkers... it's a bit of a mess and no fun when you take off after prepping your plane for 10+ mins and an AC spawns in the middle of the runway...

-

If man were meant to fly he'd be filled with helium.

Posted
That's still from 1.5 and older, you can assign a parking spot and if it's clear and not used for a while the AC might spawn there.

 

I've been going through lua files etc but couldn't find any data on these parking spots for 2.5 so yes, we could seriously use a fix for this. AC spawn where you don't want them, on the runway, tankers and other big aircraft spawn in bunkers... it's a bit of a mess and no fun when you take off after prepping your plane for 10+ mins and an AC spawns in the middle of the runway...

 

I agree.

 

Actually, this is a question to ED.

 

@ED ...

 

Are we going to invest time in this to find ways to work around this problem. I estimate we need some time to make something work in a good way that solves this problem.

 

Or... Is ED going to implement a solution, and by when?

 

And I really mean the following, this is bug going to stay in the system for the coming 2 years?

 

 

Sven

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Posted

The fact that you can spawn a B-1 inside of a HAS through simply spawning to many aircraft and that in doing so breaks AI airbase operations certainly might help. Can't give a time estimate because I don't know.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

  • 2 weeks later...
Posted

I also hope that ED addresses this issue so that we can have the RAT AI traffic addon working for DCS 2.5 and above. This is a very much needed as it makes things much more immersive, and flying in the skies won't be as lonely anymore. I would love to see civilian planes such as Boeing 737, 777, 747, 787, Airbus's and such take off at airports.

 

Please fix this, so that the community can get this working.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...