Currently, to play a SP/offline mission/Campaign, the user has to
- Find out which mods are Required for said mission.
- Manually download those mods
- Create a profile with a third-party launcher (or manually as a batch file) to launch ArmA with those mods enabled.
Then, if the user wants to play a different mission, he has to exit the game and do this all over again. On those occasions where I've done the above and started playing a mission, only to find it's bugged or I just don't like it, I'm too fed up by then to bother going through it all again and as a result I've barely played any of the many missions I've downloaded.
I would like to see ArmA3 automate this process, by it being able to determine, from meta-data in the mission or even an accompanying text file, which mods are Required for said mission/campaign and to automatically enable them (and download them if necessary). I think meta-data in the mission/campaign file would be best for missions designed for ArmA3 but obviously ArmA2 missions aren't all going to be updated in this way, so for those an accompanying text file with the same name and a specific extension (i.e. mission.amp, which could stand for ArmA Mod Profile), containing a list of Required mods would be a good compromise and players could manually create these and share them with each other on a forum thread or some other repository, so that we don't have to ask the mission creators to do the work and nor is all the work put on one person.
For standardisation, I think missions would have to use the mod-naming scheme used by Six Networks and I imagine that ArmA could download the Required mods that aren't already available locally from Six, whether by calling some part of PwS or Amarize silently in the background, both of which can download the mods from Six, or with completely fresh code to do the job but whichever method is used, ArmA should stay in focus and no other programs should pop-up. It should show which mods are already available and which require downloading and how big they are, to give the user the option of proceeding with the download or choosing a different mission.
Players will often want to play with additional mods to those Required and to manage this, on the main menu, there should be a Mod Management button. This would open a full-screen interface listing all the locally available mods in a vertical list on the left in alphabetical order, with a search box above that would highlight the found mod when enter is pressed (and cycle through matching mods with repeated presses). To the right of this list would be another search box, which would search the Six Network for a mod and allow the user to download it, adding it to the local list. On the right of the screen would be a modset vertical list, which would show created modsets. This would be created by selecting mods (using the standard Windows methods of multiple selection using Ctrl+click and Shift+click) and then clicking an "Add to Modset" dropdown button above or to the right of the list, which would show already created modsets and a "New" option, which would allow the user to enter a name for the new modset.
Back at the mission selection screen, where it shows the Required mods, there would be a vertical list, with the modsets at the top and all locally installed mods below. Each would have a tickbox next to it, so the user can either tick a modset (or more than one) and/or individual mods which will be enabled for that mission. The users selections should be stored so that they are already enabled the next time that mission is selected.
The same automatic mod downloading should be available for online servers as well, but with the list of Required mods being obtained from querying the server.
I understand that the engine doesn't allow for mod enabling/disabling, so the initial part of the ArmA GUI, where the user will choose a mission/server should not load the engine, with this only being done once a mission/server is selected and launched (look at the DCS World interface, which uses this method). When the user wants to change mission/server and returns to the mission/server selection screen, the engine can remain loaded in case the next mission/server selected uses the same mods but if not, the engine will have to be unloaded and re-loaded with the required mods.