You don't know where to fly? You need a motivation to climb into your cockpit and take off into the wild blue yonder? You yearn for a story to go with your flight simulator? Then the Mission Generator is for you! Select your favorite airplane, go to your favorite airport, and let the Mission Generator take you on an adventure!
The Mission Generator is a plugin for X-Plane 12 and 11 that creates missions, and rewards you for flying them. It prompts you to visit new places, and challenges your flying skill with bonus objectives.
After completing a mission, you are debriefed with an evaluation of your take-off and landing, and earn experience points. With enough experience, you can level up, and customize missions to your preferred mode of flying.
Missions are always tailored to your current aircraft and location, and take into account any add-on you installed. Beyond that, it includes a database of landmarks for sightseeing missions!
And it works beautifully in VR, too.
You can buy the plugin on the X-Plane.org store. The plugin works in X-Plane 12 and 11, on Windows, macOS, and Linux.
You will get a zip-file containing a single directory, which
must be installed in your
directory. Once installed, you will see a new menu "Mission
Generator" in your "Plugins" Menu, from which you can open the
Mission List and change preferences.
The Mission Generator is written in Lua with SASL, and its code is built to be understood and changed. If you don't like any aspect of the plugin, feel free to have a look at the source code, and change it to suit your needs!
Load an aircraft, select an airport, set your weather, then open the Mission List. Each mission is created for your current aircraft and the current airport, and tailored to the level ups you selected with your experience points.
Missions are generated deterministically once per day, so you can restart X-Plane without losing your current missions.
You can bind a keyboard shortcut to opening/closing the Mission List in Settings → Keyboard → Plugin Provided → missionGenerator.
Click a mission, and you get a Mission Briefing. Each briefing gives you a short description of what the mission is all about, where you need to go, and some information on the destination airport.
The mission text is randomly generated from a set of templates. If you would like to add your own templates, you can do so by editing one simple text file.
The Mission Generator reads the current weather and scenery to figure out whether the mission is VFR or IFR, whether the scenery around the airports is mountainous or coastal, and whether the runways are suitable for your current aircraft. All of these data will determine the amount of experience points you get for a mission.
You can bind a keyboard shortcut to opening/closing the current Mission Briefing in Settings → Keyboard → Plugin Provided → missionGenerator.
Some missions will have a Bonus Objective that gives bonus experience points, such as:
Once you complete your mission, you get a detailed Debriefing. This includes an evaluation of your take-off, your landing, the time you took to get to the destination, and any difficulties, like IFR conditions, severe wind, rain, bad runway conditions, and of course the mission objectives.
You will also get a slight experience point reduction for using the auto pilot or time compression, because flying by hand is just more fun and challenging than having the computer do it. But if you don't like this, that's ok, too, and you can either level up your Time Compression and Autopilot skills, or disable these features entirely in the preferences.
Of course, all your completed flights are saved in a logbook on your computer.
Once you have gathered enough experience points, it is time to go to your Pilot Profile, and level up!
You can put points in a variety of different mission categories, which makes these kinds of missions happen more frequently, and increases your rewards for doing them.
If you don't like the rewards for the level-ups, all of them are defined in a simple text file, so you can change them to your liking!
You can bind a keyboard shortcut to opening/closing the Pilot Profile in Settings → Keyboard → Plugin Provided → missionGenerator.
Finally, the Mission Generator includes a Preferences menu, from which you can select between metric and imperial units, disable the autopilot and time compression penalties, and select whether the debriefing appears shortly after touch down, or only once the parking brake has been engaged.
The Mission Generator generates plausible missions, that fit your current aircraft, weather, and airport. To do this, it reads X-Plane's datarefs, and figures out what kind of aircraft you are flying. Then, it probes the X-Plane scenery database for airports around the current location, that fit the current mission profile.
Since these operations rely on X-Plane's own scenery database and aircraft datarefs, they are always up-to-date with any add-on you have installed. However, the X-Plane plugin API does not provide all the information necessary for generating plausible missions. For example, it does not contain information on runways, mountains, or sightseeing destinations.
These data are then read from its own databases: The plugin has its own database of runways (derived from X-Plane's apt.dat), its own global elevation dataset, and a database of sightseeing landmarks.
With all this data available, the Mission Generator can create plausible missions that fit your current aircraft, and the level ups you put into your pilot profile. To keep it fresh, however, there always remains an element of randomness, and a bit of humor.
All the code that makes the Mission Generator work is written in simple text files that you can change to your liking. There is no hidden compiled code or encrypted secrets, everything is written in editable Lua scripts using the SASL library.
In particular, here are a few files you might find useful:
MissionGenerator\profile.luacontains your pilot profile and all the level ups you spent. If you want to undo a few levels, or experiment with different levels, edit this file.
missiongenerator_overrides.luain the aircraft's directory. Edit this file if you want to change the aircraft's cruise speed, maximum payload, or minimum landing distance for the Mission Generator.
MissionGenerator\data\modules\3rd-party\levels.luacontains the bonuses you get for level ups. If you like missions to give greater or lesser rewards, edit this file.
MissionGenerator\data\modules\3rd-party\settings.luacontains the internal constants, factors, and thresholds used for calculating just about everything within the Mission Generator. Change things in here to rebalance and change the inner workings of the plugin, but be aware that you might break things.
MissionGenerator\data\modules\3rd-party\templates.luacontains the template texts used to generate mission briefings. Edit this to create your own mission texts!
MissionGenerator\modules\3rd-party\mountains.csvcontain a list of all the cities and mountains for sightseeing missions. Add your own sightseeing destinations here if you like.
MissionGenerator\data\modules\3rd-party\bonusmissions.luacontains all bonus objectives. You need to know a bit of programming to add your own: Create a new sub-class of
BonusMission, and implement at least
finish, and append it to the list at the end of the file to add a new bonus mission type.
If you change something that others might find useful, please share it back to the community. Be aware that publishing your own versions of the whole plugin is software piracy, and not allowed. But, I hereby give you express permission to publish changed versions of the above files. Or better yet, email them to me at missiongenerator :at: mailbox :dot: org, and I might just include your changes in the next version of the Mission Generator!
Software is never perfect, and the Mission Generator is no different. Even though we conducted an extensive beta test, the plugin still might contain bugs. If you find a bug, or want to discuss an idea for a new feature, please open a new topic in our X-Plane.org forum, or contact me at missiongenerator :at: mailbox :dot: org.