Jump to content

Integrated Air Defense Script


Grimes

Recommended Posts

iads_logo-2-01.png

 

The goal of this script is to enhance AI sam behavior as its one of the more obvious and useful features of the scripting engine. I've been working on it for a year now, and I'm sorry I've teased that I've been working on it for so long. Its taken way longer than it should have, but I guess that is what happens when your focus goes elsewhere whether it be mist, testing, or watching Star Trek on Netflix.

 

Documentation

Documentation for the script is available here: http://wiki.hoggit.us/view/IADScript_Documentation

More thorough documentation will be added in the coming days.

 

How to use:

Script requires Mist v4 or higher to be initialized first.

Use a trigger to either run script or script file.

 

Use either iads.add() or iads.addByPrefix() to add sam sites to the iads network.

Both functions have one required variable and 1 optional variable.

 

Script should run fine with DCS World 1.2.6 or greater.

 

I do not consider this script to be 100% complete and I will eventually add more capability to it. However I feel it is functional enough to put out there for you guys to play with and give feedback on, but I have other reasons.

 

1. I started working on the script on 12/23/12 (23/12/12 for most of the world) and dabbled on it for a while until putting many many hours into it over the summer. I came close to releasing it but I discovered it wasn't releasable, since August I have avoided working on it until recently when I realized it would soon be a year since I started, so I have pushed to release it before the end of the year.

 

2. The script is open source and I welcome anyone who wants to modify it to whatever extent they want to add more features. Documentation of what all of the existing functions do will be available here: http://wiki.hoggit.us/view/IADScript_Documentation

 

3. I want to focus more on mist and other projects.

 

Notes:

Attached are the script and a simple mission with lots of sams and 8 Su-25Ts with a SEAD payload. There is also a screenshot of what debug messages will look like. It is not recommended to leave turn that on for a normal game.

 

Tested in multiplayer in 1.2.6 with up to 110 sams and 100 AI targets and 2 clients. No noticeable synchronization issues occurred, but your mileage may vary with different mixes of clients and other AI within the mission.

 

Re-uploaded the sample mission to be updated for use in 1.5. Also updated the script due to a known scripting engine bug.

 

1/17/2019: Updated it to include SA-2 and Rapier information. Also removed debugging by default.

Screen_130725_042742.thumb.jpg.aa8c9682434732f575f91bd4ee574ee1.jpg

iads_sample.miz

script_iads_r1_1_rev37.lua


Edited by Grimes
HARM release
  • Like 7

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

Link to comment
Share on other sites

Sounds very interesting. Could you elaborate a bit more what the script does, tactics and procedures that are employed? Did you find a way to get better control over engagements of specific targets? That has been the number one reason why I didn't touch radar SAMs yet.

Link to comment
Share on other sites

Sounds very interesting. Could you elaborate a bit more what the script does, tactics and procedures that are employed? Did you find a way to get better control over engagements of specific targets? That has been the number one reason why I didn't touch radar SAMs yet.

 

The script ultimately manipulates the ROE and Alarm state of each sam group to get 3 different states: Off, search, and engage. When the script decides a sam can engage it changes the ROE and Alarm state as needed and then it is up to the normal sam AI to actually take the shot. Someday I hope the scripting engine gets control over more complex engagement rules, but for now I'm fine working around those limitations.

 

It all works by creating a sam network table for sams to be linked to and share data. There are currently 4 different settings for the AI, 1-4, that govern the types of actions that a sam may take, how soon a sam might try to lock a target, and randomization in terms of which sams search and which stay dark waiting. Sams check through the detected targets from their networks and make the decision whether or not to engage or perform a random action. Right now the tactics are pretty simple. There are a few actions aside from outright engaging that can take place and the level chosen has an impact on the initial choice for what each sam should do. Actions include hold (wait until target gets within X distance), blink (periodically toggle radar on/off, can cause ARM to miss), engageWithChild (tells a nearby sam to engage at the same time), and displace (sam moves to some other location if it is mobile). The initial choice to search or stay dark is dependent on the presence of EWR or larger sams, and how far away those sams are from one another. If you have 2 sets of sams on the same network that are to far away to share useful data, then the largest sam or EWR from each grouping will generally stay on to provide network data.

 

 

I want to add more AI tactics available to the network for "level 5" AI logic, but I've struggles with how exactly to go about doing so. Its open source, so if you want to have a go, feel free to. :)

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

Link to comment
Share on other sites

The script ultimately manipulates the ROE and Alarm state of each sam group to get 3 different states: Off, search, and engage. When the script decides a sam can engage it changes the ROE and Alarm state as needed and then it is up to the normal sam AI to actually take the shot. Someday I hope the scripting engine gets control over more complex engagement rules, but for now I'm fine working around those limitations.

[..]

 

is it correct, that i still need to setup the skill level of each SAM?

Playing: F-16C

Intel i7-13700KF, 64GB DDR5 @5600MHz, RTX 4080 ZOTAC Trinity, WIN 11 64Bit Prof.

Squadron "Serious Uglies" / Discord-Server: https://discord.gg/2WccwBh

Ghost0815

Link to comment
Share on other sites

Integrated Air Defense Script

 

Sorry for a shameless plug but I think this would work excellently with my GCI-script. It has been collecting dust for quite a while now and should be updated with the new functionalities in the scripting engine and mist, but last time I checked it performed pretty well. If you don't know what it is it is basically the same thing as this script only it will launch fighters instead of missiles against radar detected enemies.

http://forums.eagle.ru/showpost.php?p=1845129

 

Oh also, glad to see you finally released this! :) Will have a look once I get home next year.


Edited by RagnarDa

DCS AJS37 HACKERMAN

 

There will always be bugs. If everything is a priority nothing is.

Link to comment
Share on other sites

I'm working on a script to make ground units to go into hiding and as such I'm wondering if it would be possible to have access to the air picture generated by an IADS network to trigger the hiding. Necessary information would be location, speed, bearing, timestamp and some kind of information about the nature of the contact. Actually the air picture would make it easier to build other scripts based on IADS like GCI and such.

DCS Finland: Suomalainen DCS yhteisö -- Finnish DCS community

--------------------------------------------------

SF Squadron

Link to comment
Share on other sites

This is a much-needed area of development in DCS. The current SAM 'logic' (a generous description) is embarrassingly predictable.

 

Unfortunately, I suspect a lot of people will not see this thread, nor will they appreciate what it is and what it can do to improve this series. Please don't be disheartened.

 

We should all applaud your initiative. Seriously, seriously, good work.

Link to comment
Share on other sites

SAM radar as EWR

 

The IADS script hints at the possibility to use SAM radars as EWR. I just discored MIST 3.2 and exited about the possibilities!!

 

Relates to DCS World 1.2.6

MIST version 3.2

 

My idea;

* A (shortrange) radar-enabled sam system provide EWR duty. Initial state is radars are off.

 

EWR idea 1 -- announceToAll;

1. SAM Radar randomly blinks on/off (for approx 2 seconds).

2. SAM Radar broadcasts detections to allied flights.

 

EWR idea 2 -- announceOnrequest;

1. Player whishes tor receive air picture by F10 menu.

2. Player selects from F10 menu option ´Get picture´, then selects a SAM at which location he wants the air threat picture from.

3. The selected SAM Radar blinks on/off (for approx 2 seconds).

4. The sam sequentually returns list of detected enemy air units to the Player.

 

EWR idea 3 -- searchNetworkForAirthreats;

* same as idea 2, but requests all SAMs ( or a group) to search for airthreats.

 

Questions;

1. Does the IADS sciprt provide a sort-of API for enabling/disabling radars?

2. Can MIST return a list of detected units to a player?

3. is it possible store the detected units to a file, and retrieve for later usage?


Edited by pappavis

met vriendelijke groet,

Михель

 

"умный, спортсмен, комсомолетс"

 

[sIGPIC]159th_pappavis.jpg[/sIGPIC]

 

[TABLE]SPECS: i9-9900K 32gigs RAM, Geforce 2070RTX, Creative XFi Fata1ity, TIR5, Valve Index & HP Reverb, HOTAS Warthog, Logitech G933 Headset, 10Tb storage.[/TABLE]

Link to comment
Share on other sites

I'll be updating the documentation on the wiki so that all functions have a page. However I am slightly distracted by a shiny new video card I got and the need to try it in all of the games. :)

 

is it correct, that i still need to setup the skill level of each SAM?

 

The AI skill setting will impact how quickly the sam will be able to acquire and lock a target once the sam gets turned on by the IADScript. Aside from that the skill level has no impact on script.

 

I'm working on a script to make ground units to go into hiding and as such I'm wondering if it would be possible to have access to the air picture generated by an IADS network to trigger the hiding. Necessary information would be location, speed, bearing, timestamp and some kind of information about the nature of the contact. Actually the air picture would make it easier to build other scripts based on IADS like GCI and such.

 

Also RE: RagnarDA,

 

There is a local table called "iads_network" within the script file that will contain all of the networks and assorted data related to the network. Currently it has 3 values. Groups (name of all sams in the network), link (string name of the network, is the link that all sams must have to be in the network), and tracks (indexed by name, with a number value of the timestamp when the track was last detected). You can make iads_network a global variable to have access to the information or create a function within the same locality of the table to grab information from it. Currently the rest of the script cheats a little by using Unit.getPosition() when it checks if a sam is in range of the target. The plan is to incorporate the iads_network table and add more types of data to it to base most of the decisions off of that table.

 

 

The IADS script hints at the possibility to use SAM radars as EWR. I just discored MIST 3.2 and exited about the possibilities!!

 

Questions;

1. Does the IADS sciprt provide a sort-of API for enabling/disabling radars?

2. Can MIST return a list of detected units to a player?

3. is it possible store the detected units to a file, and retrieve for later usage?

 

1. It doesn't add anything new that you couldn't do before with the scripting engine. There are three global functions that are part of the script that will change both the Alarm State and ROE to result in a radar off, radar on but won't lock, and radar on will lock.

 

2. Mist is mainly used for the mist.DBs. For instance adding a group by prefix searches groups in game via mist and the targets are populated based on mist.DBs.aliveUnits. Aside from that I use mist messages for debugging and a few other functions, that could easily have been copied into the IADScript.

 

3. Thats sort of what it does already. It doesn't write text file or anything to your hard-drive, it just keeps it in memory and is referenced throughout the script.

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

Link to comment
Share on other sites

  • 2 weeks later...

Can't add rep.

 

This is something I certainly need to try out in future missions. Thanks for putting in the time.

 

Does the script work with AWACS as well?

Awaiting: DCS F-15C

Win 10 i5-9600KF 4.6 GHz 64 GB RAM RTX2080Ti 11GB -- Win 7 64 i5-6600K 3.6 GHz 32 GB RAM GTX970 4GB -- A-10C, F-5E, Su-27, F-15C, F-14B, F-16C missions in User Files

 

Link to comment
Share on other sites

  • 3 weeks later...

Hi Grimes,

 

may I add one remark and one question.

 

The command iads.addByPrefix() as refered to in your documentation should correctly be called iads.addAllByPrefix().

 

Is it possible to remove Groups from an IADS-Network?

I'v tried iads.destroy(), but have perhaps used the wrong syntax.

If this is the command to remove part of the network, could you kindly give me an example on how to use it correctly.

 

Thank you and best regards

 

Herby

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

  • 2 weeks later...

While testing this script out tonight I ran into a problem and I'm not sure if its me doing something wrong.

 

I made a mission with some red side Russian SAM's and some blue side USA SAM's. I turned on the debug option so I could see what was going on.

 

Flew around a bit and saw the red Russian SAM's blink on and off and it matched what was in the debug window but even thou the debug window was showing that some of the blue Hawk and Patriot sites should have been shut down the were still emitting, I continued to fly around for another 30 minutes and even did some fast forwarding but the blue SAM's never stopped emitting even thou the debug window was saying some of them should have.

 

If anyone can test this and let me know I would appreciate it.

 

Thanks

Eric

Link to comment
Share on other sites

Does the script work with AWACS as well?

 

Not currently. It is possible but there aren't really any code exceptions to deal with getting radar data from ships or awacs.

 

 

The command iads.addByPrefix() as refered to in your documentation should correctly be called iads.addAllByPrefix().

 

Is it possible to remove Groups from an IADS-Network?

I'v tried iads.destroy(), but have perhaps used the wrong syntax.

If this is the command to remove part of the network, could you kindly give me an example on how to use it correctly.

 

Corrected the wiki page thanks.

 

iads.getByName('groupname'):destroy() should remove it from the network.

 

While testing this script out tonight I ran into a problem and I'm not sure if its me doing something wrong.

 

There was a bug in the sim not long ago where AI radars ignored the orders to quit emitting. It occurred on the EWR objects I believe. Also some objects still have the radars animated and rotating even though the radar is shut down. I'll investigate to see if either of these issues are the case.

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

Link to comment
Share on other sites

  • Recently Browsing   0 members

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