Jump to content

DML - Mission Creation Toolbox [no Lua required]


Recommended Posts

6 hours ago, TJTAS said:

I am also getting this Getflag / Setflag  error message trying to use unitZone with a linked unit.

Thank you @TJTAS - can I trouble you to try this with the newest version of unitZone (1.2.3) - I believe I had corrected that bug in one of the last releases. If you the issue isn't resolved by updating unitZone, please post the mission and I'll have a look.

Link to comment
Share on other sites

1 hour ago, cfrag said:

Thank you @TJTAS - can I trouble you to try this with the newest version of unitZone (1.2.3) - I believe I had corrected that bug in one of the last releases. If you the issue isn't resolved by updating unitZone, please post the mission and I'll have a look.

Is there a different site?.  the one at https://github.com/csofranz/DML/tree/main/modules  is 1.0.3 the one i have is 1.2.2 not sure where i got that from tbh

 

edit:- OH NM the github is wrong says the version 1.0.3 and hasn't been edited for a month but the file there is 1.2.3 will try it... Huge thanks!!


Edited by TJTAS
Link to comment
Share on other sites

9 minutes ago, TJTAS said:

github is wrong says the version 1.0.3

This can indeed be misleading. The 'Version' you are seeing next to an item is not the version of the code itself but the DML Release version that changed that file for the last time. Must be a GitHub thing. 

  • Like 1
Link to comment
Share on other sites

Version 1.1.3 - 20220818

Maintenance Update

"Street Sweep Tango", a mission based on something I initially thought of as a throw-away idea and that uses a minor cloner feature to great effect, turned out to be an incredibly fun and addictive mission. After receiving feedback and additional ideas, "Tango" is not only fun, but can serve as show case for how easily otherwise complex or difficult subjects can be achieved with DML: real-time feedback, requestable options, timer count-down, saving and loading data, fully randomized troop distribution over a large area.

image.png

If you are interested, download and take a look at how much we can achieve with just a couple of zones and attributes. 

Bringing load/save ability to that mission required me to add persistence to some other modules, further broadening DML's persistence foundation. Over all I'm quite happy with the approach chosen and automatic, transparent persistence support.
  
Bringing "Tango" up to release quality also alerted me to some minor shortcomings in some modules (for example that Messenger needed the option to start muted), and all the updates are folded into today's code drop.

Changes

Documentation
    - Main (updates for module changes)
    - Quick Reference (updates for module changes)
    
Modules
    - CloneZone 1.5.2 
      bug fixes (static object cloning, trackWith:)
    - delayFlag 1.3.0 
      pause/continue, remaining time 
      persistence
    - groupTracker 1.2.0
      filters double adds 
      new numUnits output 
      persistence 
    - Messenger 1.3.3
      new mute attribute to start 'off'
    - pulseFlag 1.3.0
      persistence 
 

Enjoy,

-ch

Stupid 'null' bug.


Edited by cfrag
Link to comment
Share on other sites

8 minutes ago, Hotdognz said:

Just grabbed this and downloaded it, but no notes or instructions tell you where to install it that I have read when reading the documentation.

Where does it live within DCS ??

There are extensive instructions in the download - an 80 page quick reference guide and a 500+ page manual. You don't install the DML download into DCS. It is a library of lua modules that you can use in missions via the DO SCRIPT command. The modules integrate within the mission editor to expand the use of trigger zones.  I have just started to explore it over the last few days and the documentation explains all this very clearly.

It looks to be a very impressive piece of work but is quite complex and I think it is going to take me some time to get used to it. The demo missions are a great way to start to understand the mechanics of the modules. Good luck with it!

  • Like 1

Ryzen 5900X, RTX 3080, 32GB Ram, Oculus Rift S, Thrustmaster Warthog Throttle and Stick.

Link to comment
Share on other sites

9 hours ago, Hotdognz said:

where to install it

As @Resection kindly pointed out, DML is more like a set of LEGO bricks: There are many "modules", and each module adds something fun to your mission. You choose those few modules that you want to add to your mission, then add them with a DOSCRIPT action on mission start. During mission design, you use Trigger Zones in ME to place and configure the functions, directly on the map.

I believe one of the first messages in this thread should have tutorial videos showing you how to both. And yeah, the audio is terrible, but you are treated to my fine 'Schwarzeneggeresque" accent (as some kind commenter called it) 🙂  

DML comes as an archive that contains all modules, many demos, and with a folder uninspiringly named 'Doc' -- that one contains a PDF manual - and a Quick Ref for memory-impaired people like me, who can't remember #§@!. The manual may look a bit overwhelming at first; a good approach to DML is to skim the table of contents, and look for the modules that may do what you want to to (e.g. movable NDB). Then look at that module's demo (most modules have their own demo). Read that demo's documentation (each demo has a corresponding chapter in the manual).

Some concepts of DML may appear strange at first (the way it uses flags to signal other modules to act, and using trigger zones attributes to control everything), but it'll soon become second nature, and it's greatest advantage is that you can use ME to set up the modules and don't have to mess with Lua. 

Most importantly, remember that it should be fun, so start slow, add a few fun elements to a mission (like player score, or civilian air traffic, or endlessly cloned targets) , and once you've gotten the feel for DML, expand by including more and more modules. 

Have fun,

-ch


Edited by cfrag
Link to comment
Share on other sites

Ok Cheers so it can live out side of DCS in my DCS Apps folder, that's good but how does it know where to grab the modules from when you type a name like he did in the intro video ?? as I did what he did in that video and it didn't work.

 


Edited by Hotdognz
Link to comment
Share on other sites

On 8/4/2022 at 12:43 PM, Sinclair_76 said:

You think that in a later state you would be able to overcome the formation dispersal? 

Indeed it was possible.

null (seriously???)

image.png

The biggest issue was to make this accessible in a good, rounded and understandable way. I've come up with a new attribute 'centerOnly' which now applies as a modifier to the following other attributes:

  • rndLoc - randomizes the location of unit 1 of the group, and keeps all other vehicles in formation relative to that group. In fact, it only randomizes the group's position, not individual units
  • onRoad - now only the first unit is placed on the center of a road, all other units remain in location
  • rndHeading - with centerOnly, all units rotate randomly around unit 1's location

The new function should be part of the next code drop, currently scheduled for next Thursday. If you can't wait, grab a demo below.

Cheers,

-ch

demo - Urban Random Rumble.miz


Edited by cfrag
  • Thanks 1
Link to comment
Share on other sites

On 8/2/2022 at 2:19 PM, cfrag said:
On 8/2/2022 at 1:43 PM, Sinclair_76 said:

Would you be able to script a module which would be able to facilitate continuous operations for AAR / AEW.

Wouldn't a cloner that automatically respawn the original tanker be able to do that? Re-spawn the tanker when the one active right now is destroyed, or exits the zone. Does that solve the issue?

I am a stickler regarding realism. The way I envision it is a tanker track active on mission start. When said tanker has 40% fuel left another tanker on the ground launches and replaces the airborne one. The recovering tanker lands and is reset to be launched when #2 reaches 40% fuel state. Rince and repeat for AEW and CAP, etc,

In the vanilla ME it's an absolute pain to setup. I would rather you absorb all the collective pain and design something better.  If at all possible of course.

 


 

On 8/2/2022 at 1:33 PM, cfrag said:

Will be in the next code drop

image.png

 

Would elevation be available in feet?

 

On 8/26/2022 at 2:40 PM, cfrag said:
On 8/4/2022 at 12:43 PM, Sinclair_76 said:

You think that in a later state you would be able to overcome the formation dispersal? 

Indeed it was possible.

And it is absolutely fabulous! Works like a charm. Even in urban terrain. 

  • Like 1
Link to comment
Share on other sites

8 hours ago, Sinclair_76 said:

I am a stickler regarding realism. The way I envision it is a tanker track active on mission start. When said tanker has 40% fuel left another tanker on the ground launches and replaces the airborne one. The recovering tanker lands and is reset to be launched when #2 reaches 40% fuel state. Rince and repeat for AEW and CAP, etc,

From how you define that, it should be doable: First, set up a tanker to do what you describe above: take off, go on-station, orbit, return when bingo. Note the return condition, because that will be use to trigger cloning of the next 'wave'. Test this set-up so you know it's working (tanker takes off correctly, gets on-station, returns when empty).

Then, place a clone zone over the tanker, and have the 'clone?' input be triggered by the bingo-condition (increment flag). This will create a new tanker clone when the previous one has reached bingo. Maybe also wire the 'empty!' output to 'clone?', so if the tanker was killed, a new one arrives some time later. Then set the onStart attribute to true (so the tanker cycle starts at mission begin), and it should work without hassles. The only thing I don't know is how you detect bingo state, and if you are able to increment a flag for that, but I'm sure we can figure that out (I'm now adding some simple methods to dcsCommon for that so we can do that with a single line in a PERFORM COMMAND waypoint action. If you simply rely on RTB on Bingo, we'll need some script help). With some luck, we have an elegant, permanent solution for rolling tanker replacements and similar patterns. 

9 hours ago, Sinclair_76 said:

Would elevation be available in feet?

The next update (scheduled for Thursday) adds 'imperialUnits' to reconMode (and the Messenger module, which has received massive improvements) - so people who drive on the wrong side of the road and those living in the colonies can feel right at home 🙂 

 

 

  • Like 2
Link to comment
Share on other sites

MOOSE does this with the Recovery Tanker script, exactly how Sinclair_76 mentions.

The tanker returns to base, shutsdown. A new tanker will spawn (on ramp, runway, on air start depending on set parameters). You can always use MOOSE instead of reinventing the wheel. I literally saved the script and copy/paste to my various missions, keeping the group/unit names the same.

 

I use DML when I need other functions.

 


Edited by crispy12
  • Like 2
Link to comment
Share on other sites

3 minutes ago, Sinclair_76 said:

Can you confirm clone zone (cloner) does not work correctly on ai aircraft parked on a parking position

I'm currently not tracking any bugs with cloneZone, but there is always the possibility that there's somethng wrong. Can you post the miz, and tell me what you expected to happen vs what you observed? 

That being said, if planes spawn on different parking positions than you set them, that can happen when DCS's airfield spawning methods deem the slot occupied, and they pick another one.

 

Link to comment
Share on other sites

12 minutes ago, cfrag said:

I'm currently not tracking any bugs with cloneZone, but there is always the possibility that there's somethng wrong. Can you post the miz, and tell me what you expected to happen vs what you observed? 

That being said, if planes spawn on different parking positions than you set them, that can happen when DCS's airfield spawning methods deem the slot occupied, and they pick another one.

 

cztest.miz

Center position of the ramp is player aircraft. Left (from player perspective) is clone template trigger zone and right is cloner trigger zone. Works with pretty much everything except ai aircraft on /(takeoff from) ramp.

Link to comment
Share on other sites

Thank you for that. I can confirm an issue with onStart, and can reproduce it. 

Please disregard. I can confirm that there is something wrong with template choice.

1 hour ago, Sinclair_76 said:

Works with pretty much everything except ai aircraft on /(takeoff from) ramp.

 


Edited by cfrag
Link to comment
Share on other sites

OK, I think I found the issue. It will only affect template-importing spawns taking off from parking positions other than the template. This is because the mission data contains a parking slot for the template, and this is not updated to the nearest slot available for the clone zone. 

I'll try and get this fixed in time for the next release on Thursday (may be close)

 

  • Thanks 1
Link to comment
Share on other sites

20 hours ago, Sinclair_76 said:

Center position of the ramp is player aircraft. Left (from player perspective) is clone template trigger zone and right is cloner trigger zone.

Now it works. Will be part of tomorrows release if I can complete regression testing in time. 

The mission below contains all new versions (cloner, common and MX - they all needed changes for this to work)

 

cztest.miz

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Version 1.1.4 - 20220901

Main Features: new Sequencer module, major updates to Messenger and Radio Menu

"It's the small things" - I've spent the last weeks on a significant overhaul of the Messenger and RadioMenu modules and then added a little utility mopule that should help you keeps things in order: the Sequencer. Here are the highlights:

image.png

Sequencer is a new module that simply generates a sequence of flag events in the order you want, when you want. That's it, basically. It's difficult to explain - once you've used it, you can't imagine never having used it before.

image.png

Because everything is a sequence, and now you have much better control. Assemble a dialog? Use a sequencer. Have vehicles start moving one after another? A sequencer will take care of that for you. Save and restart a server with appropriate advance warnings? Looks like a sequence to me. Need to ensure that your mission's stages happen in the correct order? Guess who you gonna call.

Messenger has taken a big step forward: it's now is less cumbersome, and has greatly enhanced capabilities: 

  • it can insert multiple different flag values directly into a message like this: "Kills: <v: killNum>" with 'killNum' being the name of the flag that holds the number of kills (so no longer messing around with a "messageValue?" attribute required)
  • it can directly insert lat, lon, elevation and mgrs of any zone or unit by referencing its name: "Eagle to is at <mgrs: Eagles-2>"
  • you can display flag values as time, with complete freedom of how the time value is to be formatted: "you have <t: countDown> seconds left"
  • you now can restrict messages to be received by coalition, group and unit.

And finally, the RadioMenu menu now is a full DML citizen, with versatility rivalling that of other top-tier modules:

image.png

- menu access can now be restricted to (player) groups
- menu access can now be restricted to type lists (e.g. UH-1H, A-10A) with support for entire type classes ("Helo": all helicopter types, "Plane": all fixed-wing types) *and* coalition support.   

Using this new ability you now can give sensitive commands like 'restart server' a minimum of protection), and install different menus for helicopters and planes. 

All Changes

Documentation
    - Main
        - Sequencer (new)
        - Messenger update 
        - Radio Menu Update 
        - Sequencer Fun (new)
        - Reinforcements a la Carte (update)
        - Zonal Countdown (update)
        - Attack of the CloneZ (update)
    - Quick Ref (update)
    
Demos
    - Sequencer Fun (new)
    - Reinforcements a la Carte (update)
    - Zonal Countdown (update)
    - Recon Mode - reloaded (update)
    - track this! (update)
    - Bottled Messages (update)
    - Attack of the CloneZ (update)
    
Modules
    - sequencer 1.0.0 (new)
    - cfxMX 1.2.3
        - additional cross reference MX data 
    - Recon Mode 2.1.2
        - elevation also in feet
        - <ele> wildcard for text message 
        - mgrs fix for groups 
    - clone zones - 1.5.4
        - groupOnly modifier for randomizer and onRoad
        - fixed parking spawner bug with incorrect parking slots for template-based spawns
    - dcsCommon 2.7.2
        - multiple new methods 
    - group Tracker - 1.2.1
        - fixed bug with allGone!
    - messenger 2.0.0 major update 
        - dynamc flag access
        - dynamic zone access 
        - dynamic location access
        - imperial and real units
        - dynamic time access
        - message to group 
        - message to unit 
    - radio Menu 2.0.0 - major update 
        - messages can now be sent to groups 
        - messages can now be sent to types 
        - generic types 'helicopter' and 'plane' 
        - coalition also applies to types 
    - rnd Flags - 1.4.1
        - a little less conversation
    
Enjoy,

-ch

 

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

So people kindly suggested that it would make sense for me to get with the flow, and create some video tutorials, since only old people nowadays read. 

I'm not an artist by any stretch of imagination, and creating videos is definitely an artist's turf.

Well, you have been warned. 

Here's where I'll post my DML tutorials whenever I finish them - creating them is a lot of effort (for me, because - no talent), so there will be delays between publications.

Cheers,

-ch

  • Thanks 2
Link to comment
Share on other sites

Imo those beginner videos are sufficient. Keep focusing on what you do best - your documentation and demo missions are already top notch. The videos are good enough to get someone a head start into how DML is meant to be used. I found it much easier to understand than MOOSE (which is also fantastic btw). Video tutorials also not a substitute for your quick reference PDF documentation.


Edited by crispy12
  • Like 2
Link to comment
Share on other sites

Hey cfrag,

 

Again, thank for all your hard work, this truly has made it easy to set up missions with the minimal amount of fuss.

 

I was wondering if you have a method for implementing the Draw Tool into DML? Like using the randomizer to mark an area filled with bad guys and once they are destroyed, removed that marker.

 

Thanks in advance!

Link to comment
Share on other sites

5 hours ago, Apothecary said:

Like using the randomizer to mark an area filled with bad guys and once they are destroyed, removed that marker.

well, the MapMarker module may do some of that. But you've given me an idea I'll investigate: filling zones with draw tool strokes and being able to switch then on/off or perhaps change color between red/blue/white on demand/flag.

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...