Jump to content

Scripting Usage


Recommended Posts

Moose for just about everything..

Persistence

A2A dispatching..

Airboss

tanker

Awacs

Scoring

Adding a wingmen to your group.

Escorting of tankers and awacs..

Mission Scheduling

Refreshing the mission as DCS will not run for more than 3 days with out a restart..Hanse the persistence script I use..

 

I do mist for the helo CSAR function it brings..

 

thats just quick breif.. I'll add more if needed..

Targs,

 

 

 

GTX 1080ti, Asus Hero XI, Intel 9900KF @4.2MHz, 32g DDR4@3200Mhz, 4x 1Tb SSD 1x 400g m.2mvme(boot), 28" Samsung 4k, Saitek X-56 Throttle/Warthog Stick and Saitek Pro Flight Pedals.

 

 

Moduls

 

 

All of the NATO jets, and all the choppers..

DEDi MP [62AW] The Blackbirds Brisbane

 

 

Link to comment
Share on other sites

For Georgia At War, TNN, and PGAW we use the following:

 

MIST

 

 

We use mist because it provides richer APIs than DCS core's. In addition it has good options for spawning units in various ways. Most of our spawning in our servers is done with mist. We also use it for the function scheduling, and event handlers.

 

 

 

CTLD

 

Gives players options for moving around troops and units. This is essential to providing a battlefield that feels alive, since airfields can change hands and have the players directly involved. It also allows players to make tactical decisions about ground units placements without dealing with path-finding in DCS multiplayer.

 

Server Scripts

 

Located here at github: https://gitlab.com/hoggit/developers/server_scripts

 

 

These are scripts that we have written in-house that we use to manage various things of our servers.

 

 

DCSServerPoison - GAMEGUI Hook

 

We've found that extended periods of the DCS executable can sometimes get unstable. To alleviate this we built this hook that can be customized to kill the whole DCS process after a certain number of mission start events. This hook, coupled with the ServerRestartScript below, mean that we get a clean DCS automatically every 4 cycles. This also allows us to facilitate updates to scripts that are loaded by DCS.

 

 

ServerRestartScript - Powershell script

 

A script that checks the health of all our other running services on the box. If DCS has died or become unresponsive, this script restarts it. It also watches SRS and a few other applications we want running on our servers. It's also configurable with a discord webhook to alert into our server monitoring channels.

 

 

SRSRequired - GAMEGUI Hook

 

We use this on PGAW to enforce SRS usage before being allowed to slot in. It's been pretty reliable. It reads in the clients list json that SRS will output, and it matches the player names with the ones in the file before allowing someone to slot in.

 

 

Whitelist - GAMEGUI Hook

 

We use this on our servers to guard the free slots. Before we had this we have a severe wave of trolls griefing on our servers who would just create new accounts each time they were banned. We added this whitelist which people need to be added to to use the free airplane slots on our servers.

 

 

Mission Time Splitter https://gitlab.com/hoggit/developers/dcs_mission_time_split

 

Written in python, we use this script to split out our missions from one miz into multiple, with different times of day. We also use this to inject weather into the DCS missions based off METAR from the web.

 

 

SLMod

 

This one is big for us. We use it for handling auto punishment for friendly fire incidents. We use it for kicking and banning since we can do it as players through chat, meaning that we can act quickly. We use it for sending messages to players from the server, as it can take out chat commands and provide an outText for the server to see. The stats tracking is a fairly large part of our investigation process when we get complaints about players on our server too. It tracks everything we need and does it really well.


Edited by Acidictadpole

Acidic

Hoggit Admin / Server Owner / Mission Maker

Discord: https://discord.gg/hoggit

GAW Website: https://atwar.online

 

Wiki: https://hoggitworld.com

Link to comment
Share on other sites

I want to second what the MOOSE, DDCS, MIST, etc. Developers have stated. Give more direct access to game api, and maintain changelog for it. If you can give these guys the tools and a more stable code to work on, they will make miracles happen. I hated the mission editor with a passion before I learned how to use MOOSE. Now I spend more time in the mission editor creating things than I do flying in the game. It is a blast to make missions and map features that people enjoy.

 

 

This is the most low hanging fruit for a game like this, because the users will generate a plethora of amazing content.

Link to comment
Share on other sites

This is a really nice initiative Nineline:

 

 

MOOSE/ Steggles EWRS scripting.

We use this combination to provide on-screen text-based RADAR reports that we customize to be more like a WW2 RADAR system. This also means that we are not reliant on modern voice audio or AWACS systems which come with DCS, but are not historically appropriate for WW2 missions.

 

 

SL-MOD:

This is used for complex statistical data gathering which populates the server statistics website. It's not 100% reliable but it does a decent job.

SoW has pages and pages of statistical information gathered via SL-MOD.

https://stormofwar.info/

 

 

 

Two other notes about things that are missing/ broken from mission editor:

1. Trains not being visible to clients in multiplayer

2. barrage balloons not being visible in multiplayer

On YouTube: https://www.youtube.com/philstylenz

Storm of War WW2 server website: https://stormofwar.net/

 

Link to comment
Share on other sites

BF servers

 

Used modules - lua socket, lua mysql and linked 3rd party applications.

 

Script Function: What you are adding to the mission -

Many very useful scripts, I believe ED already has them :)

 

Script Tool:

MIST - cause it's awesome and helps shorten scripting for DCS.

Basically when we started BF, MOOSE was not created yet, fightcontrol did a great job by the looks of it and it's probably very necessary for mission designers.

CTLD - also cause it's awesome, compliments to the necessary unit transport that is missing by ED.

 

Most of the scripts we use have been created to be able to make a persistent campaign, statistics and many features that were necessary to be able to run a campaign.

Note that some of the scripts are in place because we had to overcome issues with DCS stability, for example limiting CA control of units because of issues of the past with moving units and various crashes, or working around high load of units on the map.

The bottom line is that some of the stuff we got, is there to improve the current multiplayer experience, and I very much hope we can let it go soon with ED developing more towards multiplayer.

 

I really like EDs new approach to handling bugs and working further more with the server owners/admins, it's important for this precious community.

Link to comment
Share on other sites

I did not state this on r/hoggit. But...

 

 

What I want. What is most important to me is communication and a dedication to making the scripting engine better.

 

Communication in the sense of a back and forth in enhancing the scripting engine like it was back in 1.2.4 with Saint. The fact that most of what is in the scripting engine came out in 3 patches back then and what we have created with it is amazing and sad at the same time. Sad because all of that was 7 years ago! But also in terms of communicating new features. ED has completely abandoned their own wiki and the scripting engine wiki exists on hoggit, which I maintain. When features go live nobody tells me, I have to discover them and ask for documentation in order to create the wiki pages.

 

Dedication to making it amazing because again, majority of the scripting functions are from 2013. Look at what the community has created with that. Dynamic campaigns (note the plural), enhancements to non existent game behavior like ambient AI traffic, IADSs, CTLD, etc. This game wouldn't be what it is today without the scripting engine. We'd be doing the same stuff that we were in 2011.

 

 

Spend a week. Join the top played servers throughout that week. Count which use absolutely 0% scripting functionality. Report your results. Being extremely generous I give you 10% no scripts used. It is likely lower than that.

 

To answer your question. I use mist. But mostly for the utilities that are just useful. If I can, when I can I use the following: https://wiki.hoggitworld.com/view/Category:Functions

  • Like 1

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

MIST for CTLD and Skynet IADS.

Moose for A2A dispatch (GCI/CAP) and awacs/AAR tanker respawns.

 

Because its fast and easy and offers me something that would take forever to setup with triggers.

- Jack of many DCS modules, master of none.

- Personal wishlist: F-15A, F-4S Phantom II, JAS 39A Gripen, SAAB 35 Draken, F-104 Starfighter, Panavia Tornado IDS.

 

| Windows 11 | i5-12400 | 64Gb DDR4 | RTX 3080 | 2x M.2 | 27" 1440p | Rift CV1 | Thrustmaster Warthog HOTAS | MFG Crosswind pedals |

Link to comment
Share on other sites

Using MOOSE mostly too.....

Spawning, GCI, RAT, AIRBOSS....etc

 

 

Somtimes MIST for legacy scripts

My Rig: Windows 11 Pro, Intel i7-13700k@5.4GHz, 64GB DDR5 5200 RAM, Gigabyte Z790 AORUS Elite AX, 1TB Samsung EVO 970, RTX4080, Thrustmaster HOTAS WARTHOG + Saitek Pro Flight Pedals, LG 32" 4K 60FPS, ACER 30" 4K 60FPS GSync Display, HP Reverb G2 V2

Link to comment
Share on other sites

Hi guys

 

CTLD for Helo missions and logistic matters

 

Moose---- Long list

 

CAP (Create a REd Blue Cap scenario)

 

CAS

 

RAT (Air traffic)

 

CARGO (APC transport)

 

Capture ( Create land battles for missions enviroment)

 

REally long list

 

MIST + Skynet = Create amazing SAM Enviroment

 

Honestly Without the effor of thhis guys,, ED mission became boring, and itñs the only way when you want add more and more in the missions ..

 

In my squadron Our training field it´s under all of this scripts

KR

Link to comment
Share on other sites

Skynet IADS: Function - Drastically reduce the complexity and the time to create missions with more complex SAM AI behavior.

Notes - In the past I made use of unit AI on/off triggers and zones to try and accomplish this, but having to add a significant number for each and every SAM site is exhausting, especially when combined with the other sites and units/tasks in DCS. It was not uncommon to have hundreds of triggers just to make the SAM AI behave more believably as they had to be created for each and every unit, rather than having a task that could be selected. Having more complex SAM AI behavior in game either by default (essentially just making these actions a basic tenet of the AI rather than setting it up each and every time), or as a task selection, would help rectify this. In addition, being able to trigger an action (or have complex reactions by default) when a HARM or some sort of ARM has been detected incoming, would also serve to remove the need for external scripts such as these. Ideally we would be able to choose the level of "suppression" possible, either linked to or independently of the skill level. Independently would allow for things like SA-15s to stay "dark" when incoming ARMs are detected and they are not needed to protect other units, while still allowing them to be set "active" when using them as point defense for other systems or units.

 

MIST/CTLD: Function - Adds the ability to spawn, transport, and task AI infantry and units semi-dynamically, without requiring hours of setup in the mission editor (which often doesn't work, as AI infantry spawned in the ME will do things like spawn underneath FARP pads and be unable to board aircraft). Also used for the ability to call in artillery fire missions on detected units using nearby artillery assets, and specifying the number of rounds to be fired.

Notes - It adds a whole new level of depth to gameplay in helicopters in DCS. The communication menu F-7 "Airborne Troops" option seems promising, but with the lack of documentation and the issues that plague the current "standard" method of transporting infantry and other units, CTLD is absolutely necessary to accomplish these tasks. It also adds the ability to create/remove beacons in-mission for navigation purposes.

 

 

 

Scripting/mission building is an area where I believe DCS could learn a great deal from other products that have succeeded, such as Arma 3, which supports features such as "smart" spawning for AI units of any type, even basing the rate/type/loadouts off of client/player/unit counts, and potentially even loadouts. I am aware that people have written scripts to accomplish something roughly mimicking this, however they are unique, and often too complex for me to easily implement in my missions. A "standard" solution for this in which one can place a "module" in the mission editor, then select the type (hangar, ramp, runway, airborne), location (which airfield, potentially selecting specific or a range of parking spots to use when available), in addition to the previously mentioned options for spawning would be ideal.

 

BigNewy mentioned earlier today in discord that a lot of lag issues with modules such as Combined Arms can be avoided by reducing unit counts to ~600 units at most. This is not a large number by any means for a game where missions can span hundreds of miles with multiple objectives. However, if support were added for toggling on/off unit and/or group AI within a ZONE (and possibly a moving zone that could be attached to a player/client), rather than requiring individual triggers for each and every unit, this could cut down on mission building time and complexity, allow for reduced unit counts, and reduce the overall load on the server as fewer AI would need to be active at once.


Edited by Xoho
Link to comment
Share on other sites

Script Function: Administrative tools - Automatic kick / ban, mission change from within the simulation client side by registered admins, vote-to-change for non-admin clients to select a new mission, statistics.

 

Script Tool: SLMod

Notes: Not included with DCS, sort of a necessary set of tools for running a MP server.

My Rig:

 

 

CPU: i9-9900k - Corsair H150 Cooler. RAM: 32GB, 3200Mhz.

Mobo: Asus MAXIMUS Formula XI - Main Drive: 512GB NvME SSD

DCS Drive: 512GB NvME SSD - Graphics: GTX 1070 Ti. Display: 23" 1080p LG LCD.

Input: Razer Naga & Blackwidow Ultimate, TrackIR 5, HOTAS Warthog & MFDs (x4), Saitek Rudder Pedals, TurtleBeach PX22 Headset.

 

 

Link to comment
Share on other sites

pasted from Discord:

 

need

1. to be able clean up and remove from the game and memory dead / destroy unts.. example... I have dynamically respawning training range, but it fills up with dead carcasses quickly, need core ME feature that I can scipt to that removes dead units from the map..........

 

2 to be able to pick up troops from the ground, via transport unit (ship , helo, apc , truck , plane ) unload them at another zone, then give them orders such as move to frontlines, patrol in zone etc

 

[10:38] Thrud: 3. the editor needs alot of the static structures to move over into being UNITS though I believe quite a few need a "dead" state model

 

[10:46] Thrud: I use MOOSE to have AI and humans getting taskings, such CSAR, A2G, SEAD, BAI and A2A missions, I use the functional artillery to automate intelligently arty, I use Air to Air dispatchers for persistent randomised and sometime sneaky enemy CAPS, I use DETECTION and DESIGNATE often just to name a few... moose has so much excellent stuff ... ...honestly PIKEY is the man... lets not forget SKYNET IADS based on MIST... also excellent ! Moose has filled out my missions and breathed in life until dynamic campaigns arrive in the future and probably still will after they do

 

[10:50] Thrud: Unless the super carrier gets its extra radio channels anytime soon, a check box to disable either Marshall, Tower or LSO in the editor would be good on the DCS side so we can fill in the blanks with the excellent airboss script

 

[10:51] Thrud: Can an artist make a range circle bomb target and the suspended strafe target like in the 476th range group targets, so we dont need to add mods to the game as will as moose RANGE scripting to get the full effect

System: I7 7700K - Delidded. TT Cooler. 32GB 3000hz Ram, Gigabyte Aorus Ext 1080TI, SSD's, Corsair Gold 850W PSU, Philips 4K 40inch 60hz monitor, Dell 22inch Touch + Helios, Rift S, VKB MCG PRO, TM TPR pedals, TM Warthog throttle with slew mod and twist repair

Link to comment
Share on other sites

@nineline are you planning to only support the most popular scripts, this leaves out people like me that built an amazing system that just isn't opensourced(for the time being)

Just making sure we are focusing on the right things with this thread

 

And if there is a vote, I vote to support the API better directly. All of these scripts use it, kill all the birds with 1 stone with better support of the DCS Lua dedicated API, and I do feel we use pretty much every single endpoint in that API. its all important

Developer of DDCS MP Engine, dynamicdcs.com

https://forums.eagle.ru/showthread.php?t=208608

Link to comment
Share on other sites

  • ED Team
@nineline are you planning to only support the most popular scripts, this leaves out people like me that built an amazing system that just isn't opensourced(for the time being)

Just making sure we are focusing on the right things with this thread

 

And if there is a vote, I vote to support the API better directly. All of these scripts use it, kill all the birds with 1 stone with better support of the DCS Lua dedicated API, and I do feel we use pretty much every single endpoint in that API. its all important

 

Consider this the first steps towards better support. First we need to see what the most popular reasons are for scripting to add to DCS, and then decide what is the best approach.

64Sig.png
Forum RulesMy YouTube • My Discord - NineLine#0440• **How to Report a Bug**

1146563203_makefg(6).png.82dab0a01be3a361522f3fff75916ba4.png  80141746_makefg(1).png.6fa028f2fe35222644e87c786da1fabb.png  28661714_makefg(2).png.b3816386a8f83b0cceab6cb43ae2477e.png  389390805_makefg(3).png.bca83a238dd2aaf235ea3ce2873b55bc.png  216757889_makefg(4).png.35cb826069cdae5c1a164a94deaff377.png  1359338181_makefg(5).png.e6135dea01fa097e5d841ee5fb3c2dc5.png

Link to comment
Share on other sites

1. Script Function: Loading and unloading of troops + detecting when a helicopter lands on a zone.

Script Tool: mist+CTLD

Notes: Doing the same with DCS native scripts takes a lot of time, and errors are frequent. When I use CTLD, I test only one flight and I know the others will work just the same.

 

 

2. Script Function: Create more realistic SAM threats: they cut their radars when they don't need them, and they "talk" to each other.

Script Tool: Skynet IADS

Notes: SEAD missions are much more fun and rewarding with IADS.

Don't accept indie game testing requests from friends in Discord. Ever.

Link to comment
Share on other sites

We use the default scripting engine to build, at runtime, a complex dynamic MP scenario and then execute a wide variety of functionality over the course of the scenario: save the state to a file for reloading, manage AI aircraft assets, assign missions to players based on a loose ATO, run a more complex IADS environment, track lossed aircraft, etc.

 

We don't really see the need to use things like MIST, CTLD or what not, because they are primarily wrappers designed to make the use of the functions easier. Rather, we wrote an entire lightweight execution engine and management toolset to ensure that our scenario, basically a dynamic campaign, can run with a fixed amount of overhead and minimally impact the server performance.

 

We agree with most of the things Drexx from DDCS requested. Being able to repair airfields, update the warehouse data, etc would be invaluable. But on top of that, we think that we would like to see some more robust options for user I/O with the scripting engine. Right now we use a hackish kind of workaround which allows the players to enter alphanumeric data into the scripting engine. Boy, would it be convenient if there were a way to give the players a "terminal" style interface or a way to input something into the chat log so our code could read that data.

 

Other than that, our biggest complaints are actually more with the mission editor and DCS limitations. For example: why is it that in the Mission Editor a single ship group can only have the first digit of it's callsign number edited? In the actual .miz file lua, you can change that number to 2, 3, or 4 and the game still works and actually treats the single ship as, for example, Uzi13 or Uzi 14. Another great example is the datalink organization being based on groups for the F-18 and F-16. Having single ship player groups is actually incredibly convenient from a scripting standpoint, and a lot of MP servers rely on this constraint. But that breaks the way the datalink is organized for those jets. Can it be changed so that it can be adjusted in the game via the UFC/DED, or some other tool? The A-10C allows you to configure the datalink effectively in game, so it doesn't have this limitation.

 

 

My 2 cents,

 

Terrificfool of Virtual VMFA-169

Link to comment
Share on other sites

Our group ( VFA-88 ) is currently using script as follows:

 

MOOSE: Airboss (allow more advanced carrier ops), randomizing enemy groups, randomizing enemy bandits, repeating tankers/rescue helos/awacs, presence of civilian traffic commuting between airfields

 

CTLD: JTAC Autolazing and giving Helos something to do (unit generation, troop deployment, etc)

 

Skynet IADS: Increase realism of SAM networks and behavior

 

Pikey's Persistence Scripts: Allow persistent unit status across restarts during our campaigns


Edited by bainsy
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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