Clone
4
Home
Applevangelist edited this page 2021-10-02 10:14:42 +02:00

Context

MOOSE is a Mission Object Oriented Scripting Environment, and is meant for mission designers and mission hosters. It allows to quickly setup complex missions using pre-scripted scenarios using the available classes within the MOOSE Framework. MOOSE is currently still in alpha version, but will evolve over time. It has been updated to work with each version of DCS world.

You can find the source of MOOSE here on GITHUB. It is free for download: https://github.com/FlightControl-Master/MOOSE/

Goals

The goal of MOOSE is to allow mission designers to enhance their scripting with mission orchestration objects, which can be instantiated from defined classes within the framework. This will allow to write mission scripts with minimal code embedded. Of course, the richness of the framework will determine the richness of the misson scenarios. We can expect that MOOSE will evolve over time, as more missions will be designed within the framework.

MOOSE Directory Structure

  • Moose Development: Contains the collection of lua files that define the MOOSE classes. You can use this directory to build the dynamic luadoc documentation intellisense in your eclipse development environment.
  • Moose Mission Setup: Contains the Moose.lua file to be included in your scripts when using MOOSE classes (see below the point Mission Design with Moose).
  • Moose Test Missions: Contains a directory structure with Moose Test Missions and examples. In each directory, you will find a miz file and a lua file containing the main mission script.
  • Moose Training: Contains the documentation of Moose generated with luadoc from the Moose source code. The presentations used during the videos in my youtube channel, are also to be found here. [NOTE: Videos not updated since several years, take with a pinch of salt].

Mission Design with Moose

In order to create a mission using MOOSE, you'll have to include a file named Moose.lua:

  1. Create a new mission in the DCS World Mission Editor.
  2. In the mission editor, create a new ONCE trigger.
  3. Name the trigger Moose Load and add an action DO SCRIPT FILE after (TIME MORE) 3-5 seconds.
  4. In the action, browse to the Moose.lua file in the Moose Mission Setup directory, and include this file within your mission.
  5. Make sure that the "Moose Load" trigger is completely at the top of your mission.
  6. Do do same for every LUA mission file you want to load, space out 1-2 seconds.

Voila, MOOSE is now included in your mission. During the execution of this mission, all MOOSE classes will be loaded, and all MOOSE initializations will be exectuted before any other mission action is executed.

IMPORTANT NOTE: When a new version of MOOSE is released, you'll have to UPDATE the Moose.lua file in EACH OF YOUR MISSION.

MOOSE LUA Classes

The following classes are currently embedded within MOOSE and can be included within your mission scripts:

Please refer to the online manual

MOOSE Tutorials and Examples

You can download test missions to have examples and learn the syntax and usage of the MOOSE classes.

Credits

Note that the framework is based on code i've written myself, but some of it is also based on code that i've seen as great scripting code and ideas, and which i've revised. I see this framework evolving towards a broader public, and the ownership may dissapear (or parts of it). Consider this code public domain. Therefore a list of credits to all who have or are contributing (this list will increase over time): Grimes, Prof_Hilactic, xcom, the 476 virtual squadron team, ...

You'll notice that within this framework, there are functions used from mist. I've taken the liberty to copy those atomic mist functions that are very nice and useful, and used those.

  1. Prof_hilactic & others: SEAD Defenses. I've taken the script, and reworded it to fit within MOOSE. The script within MOOSE is hardly recognizable anymore from the original. Find here the posts: http://forums.eagle.ru/showpost.php?...59&postcount=1

  2. xcom His contribution is related to the eStatHandler. I've analyzed and studied his scripts, and reworked it a bit to use it also within the framework (I've also tweaked it a bit). Find his post here: http://forums.eagle.ru/showpost.php?...73&postcount=1

  3. The rest of the framework functions and class definitions were my own developments. Trust i've spent hours and hours investigating, trying and writing and documenting code building this framework.

Note that there is a vast amount of other scripts out there. I may contact you personally to ask for your contribution / permission if i can use your idea or script to tweak it to the framework. Parts of these scripts will have to be redesigned to fit it into an OO framework.

Hope you think the idea is great and useful.