Jump to content
IL-2 Series Forum

IL2 Great Battles Easy Mission Generator


Recommended Posts

Posted (edited)

In this thread you can find information about my mission generator tool Easy Mission Generator or EMG.

What is it?

  • A utility that will let you generate single, cooperative and dogfight missions for the IL2 combat flight sim. It is similar to the Quick Mission Builder in the game, but more powerful. Missions can be customized using the detailed configuration parameters or they can be randomized. 

What is it not?

  • A dynamic (single player/MP) campaign generator. These have already been developed by others. The underlying generator will not track planes/pilots/resources etc over time, although it is possible to create multiple missions and run them in chronological order, with airfields and lines changing over time.

Known issues

  • I use a tool to make an .exe file from my Python scripts (so you don't need to install and maintain Python distribution). Unfortunately, most anti-virus programs will incorrectly flag or block this program. You will need to manually override this (if you trust it). 

Please find full details, installation instructions and downloads on this page:

IL2 Great Battles Easy Mission Generator

And for instructions:

https://sites.google.com/view/il2-great-battles-emg/tips-tricks?authuser=0

 

image.thumb.png.cde3393204e62445d4f230ff75818801.png

Edited by SYN_Vander
  • Like 5
  • Thanks 4
  • LukeFF pinned this topic
Posted

Hey @SYN_Vander, Apologies as you've probably seen thins 1,000 times already.  I'm new to the IL-2 system and am running a dedicated server.  I installed your latest copy of EMG and the server side of it, but I'm getting the following info, along with no missions being generated:

 

INFO:
-------Starting ServerGenerator--------

INFO:Using mission rotation config: mission_rotation.json
INFO:SDS file written to disk as: D:\IL-2_Sturmovik_Great_Battles\data\Multiplayer\NerdNavy_cooperative.sds

 

Below is my server config folder.


{
    "il2_path": "D:\\IL-2_Sturmovik_Great_Battles",
    "server_name": "Nerd Navy - Battle of Bodenplatte",
    "mission_prefix": "NerdNavy",
    "number_of_missions": 5,
    "start_date": "01.03.1942",
    "skip_days": 90,
    "start_time": "dawn",
    "missions_duration": 9000,
    "map_name": "The Channel",
    "front_name": "The Channel",
    "game_type": "cooperative",
    "flight_size": 4,
    "plane_start": "on the ramp",
    "target_distance": "close",
    "lockPayloads": 0,
    "objectives_amount": 4,
    "ai_planes_count": 11,
    "ai_density": "few",
    "historical": "True",
    "generate_missions": 5,
    "msbin": 1,
    "no_mission": 0,
    "mission_rotation": "mission_rotation.json",
    "mission_order": "default"
}

Posted
1 hour ago, Turbine said:

Hey @SYN_Vander, Apologies as you've probably seen thins 1,000 times already.  I'm new to the IL-2 system and am running a dedicated server.  I installed your latest copy of EMG and the server side of it, but I'm getting the following info, along with no missions being generated:

 

INFO:
-------Starting ServerGenerator--------

INFO:Using mission rotation config: mission_rotation.json
INFO:SDS file written to disk as: D:\IL-2_Sturmovik_Great_Battles\data\Multiplayer\NerdNavy_cooperative.sds

 

Below is my server config folder.


{
    "il2_path": "D:\\IL-2_Sturmovik_Great_Battles",
    "server_name": "Nerd Navy - Battle of Bodenplatte",
    "mission_prefix": "NerdNavy",
    "number_of_missions": 5,
    "start_date": "01.03.1942",
    "skip_days": 90,
    "start_time": "dawn",
    "missions_duration": 9000,
    "map_name": "The Channel",
    "front_name": "The Channel",
    "game_type": "cooperative",
    "flight_size": 4,
    "plane_start": "on the ramp",
    "target_distance": "close",
    "lockPayloads": 0,
    "objectives_amount": 4,
    "ai_planes_count": 11,
    "ai_density": "few",
    "historical": "True",
    "generate_missions": 5,
    "msbin": 1,
    "no_mission": 0,
    "mission_rotation": "mission_rotation.json",
    "mission_order": "default"
}

Well, I can recreate the issue...now to solve it! 🤔

Posted (edited)
1 hour ago, Turbine said:

Hey @SYN_Vander, Apologies as you've probably seen thins 1,000 times already.  I'm new to the IL-2 system and am running a dedicated server.  I installed your latest copy of EMG and the server side of it, but I'm getting the following info, along with no missions being generated:

 

INFO:
-------Starting ServerGenerator--------

INFO:Using mission rotation config: mission_rotation.json
INFO:SDS file written to disk as: D:\IL-2_Sturmovik_Great_Battles\data\Multiplayer\NerdNavy_cooperative.sds

 

Below is my server config folder.


{
    "il2_path": "D:\\IL-2_Sturmovik_Great_Battles",
    "server_name": "Nerd Navy - Battle of Bodenplatte",
    "mission_prefix": "NerdNavy",
    "number_of_missions": 5,
    "start_date": "01.03.1942",
    "skip_days": 90,
    "start_time": "dawn",
    "missions_duration": 9000,
    "map_name": "The Channel",
    "front_name": "The Channel",
    "game_type": "cooperative",
    "flight_size": 4,
    "plane_start": "on the ramp",
    "target_distance": "close",
    "lockPayloads": 0,
    "objectives_amount": 4,
    "ai_planes_count": 11,
    "ai_density": "few",
    "historical": "True",
    "generate_missions": 5,
    "msbin": 1,
    "no_mission": 0,
    "mission_rotation": "mission_rotation.json",
    "mission_order": "default"
}

Ah, found it. The entry "generate_missions" is a switch. value of 1 means to create missions and for any other value it will not. This is for test purposes and you should not change it. I think you (understandably) confused it with "number_of_mission" which defines the number of missions to generate ( but only if you do not use a mission rotation file).

 

have to warn you, the EMG server (batch) generator is totally unintuitive piece of software :). Just post any issues here and we'll get there.

Edited by SYN_Vander
  • Like 1
Posted
1 hour ago, SYN_Vander said:

Ah, found it. The entry "generate_missions" is a switch. value of 1 means to create missions and for any other value it will not. This is for test purposes and you should not change it. I think you (understandably) confused it with "number_of_mission" which defines the number of missions to generate ( but only if you do not use a mission rotation file).

 

have to warn you, the EMG server (batch) generator is totally unintuitive piece of software :). Just post any issues here and we'll get there.

Thank you so kindly sir.  As stated I'm new to the IL-2 system, and this is the best tool I've seen to get something quickly out onto a server with "minimal hassel".

Yes I did confuse it and will correct it.  I'm actually working on a python script to use with a special discord bot that will essentially generate these missions for me so I don't have to even log into the server to run it.  Much appreciative sir.

 

Posted (edited)
5 hours ago, SYN_Vander said:

Ah, found it. The entry "generate_missions" is a switch. value of 1 means to create missions and for any other value it will not. This is for test purposes and you should not change it. I think you (understandably) confused it with "number_of_mission" which defines the number of missions to generate ( but only if you do not use a mission rotation file).

 

have to warn you, the EMG server (batch) generator is totally unintuitive piece of software :). Just post any issues here and we'll get there.

[UPDATE] I think I found the problem.  The server name between the sds file and the config.json file were not the same.  Once I fixed that it started to work.  Do you have a help guide on doing a much more elaborate multi mission using the rotation file?


Ok, I made the corrections but I am still missing something.  I thought it'd generate 5 missions based on "number_of_missions", but it only looks like 2.  I also don't see that it updated the sds file so I can run it.


image.thumb.png.4b7a7ac283cca2d0098bad0500a5d3de.png

Edited by Turbine
Posted (edited)
12 hours ago, Turbine said:

[UPDATE] I think I found the problem.  The server name between the sds file and the config.json file were not the same.  Once I fixed that it started to work.  Do you have a help guide on doing a much more elaborate multi mission using the rotation file?


Ok, I made the corrections but I am still missing something.  I thought it'd generate 5 missions based on "number_of_missions", but it only looks like 2.  I also don't see that it updated the sds file so I can run it.


image.thumb.png.4b7a7ac283cca2d0098bad0500a5d3de.png

Okay, let me test this and I’ll report back.

It’s possible that there is a bug in current code or in one of the config files and that it stopped at the third mission because of this. For the new version I already included a number of bug fixes.

I’ll try to add some more useful log messages as well.

Once it all works I recommend setting no_mission to 1 so it will delete the .mission files as this will slow down connection time for clients ( it will download this file, which is much bigger than . Msbin)

 

Edited by SYN_Vander
Posted (edited)
On 11/27/2025 at 12:20 AM, Turbine said:

[UPDATE] I think I found the problem.  The server name between the sds file and the config.json file were not the same.  Once I fixed that it started to work.  Do you have a help guide on doing a much more elaborate multi mission using the rotation file?


Ok, I made the corrections but I am still missing something.  I thought it'd generate 5 missions based on "number_of_missions", but it only looks like 2.  I also don't see that it updated the sds file so I can run it.


image.thumb.png.4b7a7ac283cca2d0098bad0500a5d3de.png

I have found the problem. Looks like I included a new scenario type in latest release (air defence) in my code that is not supported yet. You can't select it through the UI, but when scenarios are randomly chosen (as the servergenerator does in your example) it can be picked as option and the process quits. Anyway, I'll remove this scenario for now and will upload new version.

 

Edited by SYN_Vander
  • Like 1
Posted
13 minutes ago, SYN_Vander said:

I have found the problem. Looks like I included a new scenario type in latest release (air defence) in my code that is not supported yet. You can't select it through the UI, but when scenarios are randomly chosen (as the servergenerator does in your example) it can be picked as option and the process quits. Anyway, I'll remove this scenario for now and will upload new version.

 

Much appreciated sir.  Thank you.

Last question and I'm done harassing you.  Is there a way for it to pick up an SDS file that is sitting somewhere other than Multiplayer folder?

Full context for my question.  As stated before I'm new to the IL-2 system.  I originally come from the DCS community, and we have a discord bot that allows us to manipulate the servers from our discord.  I'm writing a python plugin for that bot that will also allow me to control the IL-2 server(s) on the very same box.  However Id like the ability to have the sds files for each server sitting in a different folder from Multiplayer.  Unless I'm missing something, the EMG for the server expects the sds files to be sitting in the Multiplayer folder.

Posted (edited)

New version of EMG out!

Release notes:

Version 92
-Added Zeppelin missions: You can now select a Zeppelin Raid or Zeppelin Recon scenario. These are the same as Bombing and Reconaissance, but here you can choose the Zeppelin for the lead flight
-Fixed bug for Northern France and Champagne maps: New fronts were not not configured correctly so it was possible to choose targets that are not supported, resulting in crash.
-Fixed bug for Odessa map: unsupported objectives were not filtered out
-Extended front "Paris" on Champagne map to accomodate for Gotha missions to Paris
-Bug fix: Removed "Air defence" scenario that was not fully implemented yet

Remember if you use Servergenerator you als need to update EMG itself to latest version!

Download here: https://sites.google.com/view/il2-great-battles-emg/home

 

5 minutes ago, Turbine said:

Much appreciated sir.  Thank you.

Last question and I'm done harassing you.  Is there a way for it to pick up an SDS file that is sitting somewhere other than Multiplayer folder?

Full context for my question.  As stated before I'm new to the IL-2 system.  I originally come from the DCS community, and we have a discord bot that allows us to manipulate the servers from our discord.  I'm writing a python plugin for that bot that will also allow me to control the IL-2 server(s) on the very same box.  However Id like the ability to have the sds files for each server sitting in a different folder from Multiplayer.  Unless I'm missing something, the EMG for the server expects the sds files to be sitting in the Multiplayer folder.

Mmm, not something you can configure currently as I use the Multiplayer folder relative to what you specify in "il2_path". I could add it to the server_config.json in a new release maybe. Is there no other way? symbolic link or such?

Edited by SYN_Vander
  • Thanks 1
Posted
59 minutes ago, SYN_Vander said:

New version of EMG out!

Release notes:

Version 92
-Added Zeppelin missions: You can now select a Zeppelin Raid or Zeppelin Recon scenario. These are the same as Bombing and Reconaissance, but here you can choose the Zeppelin for the lead flight
-Fixed bug for Northern France and Champagne maps: New fronts were not not configured correctly so it was possible to choose targets that are not supported, resulting in crash.
-Fixed bug for Odessa map: unsupported objectives were not filtered out
-Extended front "Paris" on Champagne map to accomodate for Gotha missions to Paris
-Bug fix: Removed "Air defence" scenario that was not fully implemented yet

Remember if you use Servergenerator you als need to update EMG itself to latest version!

Download here: https://sites.google.com/view/il2-great-battles-emg/home

 

Mmm, not something you can configure currently as I use the Multiplayer folder relative to what you specify in "il2_path". I could add it to the server_config.json in a new release maybe. Is there no other way? symbolic link or such?

Thanks.  Again much appreciated.
 

In terms of what I am doing, keeping the sds files contained to the Multiplayer folder, which also houses the default template sds files with the game install, my script can't seem to parse those out when someone selects them.  Ideal is to have them placed somewhere else, but i hadn't considered doing a mklink junction.  I will give that a try.

  • 1 month later...
Posted (edited)

Some experiments, strongholds with additional infantry / artillery and with marching infantry defined in EMG as tank columns and armor, defending with rifle fire against strafing attacks (see last 20 seconds of the video, player is wounded by them)

 

Edited by kraut1
  • Like 1
SYN_Vander
Posted
1 hour ago, kraut1 said:

Some experiments, strongholds with additional infantry / artillery and with marching infantry defined in EMG as tank columns and armor, defending with rifle fire against strafing attacks (see last 20 seconds of the video, player is wounded by them)

 

Nice! The AAA on the train is modded though I think?

  • Like 1
Posted
8 hours ago, SYN_Vander said:

Nice! The AAA on the train is modded though I think?

Yes, this was done directly by @MajorMagee

Stonehouse
Posted

@SYN_Vander

Hi Vander,

Hoping you can provide some clues for me. I am working on a custom template and getting the following error when I try to use it with EMG. I know the error indicates that I likely have something like an embedded space or invalid char in a parameter. Guessing I have accidently hit a key while editing and the editor didn't have a validation to prevent the entry.

 

Anyway, can you advise what line 1706 in get_xz is retrieving from the Airfields table please? If you can tell me the parameters being converted then I might have a better chance of finding the problematic value.

Thanks

image.png.9ba2576532200d038824dda3a55049fd.png

Intel Ultra9 285K, ROG Strix Z890-A, 32 GB RAM, RTX 5070 Ti 16GBVRAM and driver 591.86, Win11 Pro, Saitek Pro Flight Combat pedals, Warthog HOTAS, TM Cougar MFDs

SYN_Vander
Posted
3 hours ago, Stonehouse said:

@SYN_Vander

Hi Vander,

Hoping you can provide some clues for me. I am working on a custom template and getting the following error when I try to use it with EMG. I know the error indicates that I likely have something like an embedded space or invalid char in a parameter. Guessing I have accidently hit a key while editing and the editor didn't have a validation to prevent the entry.

 

Anyway, can you advise what line 1706 in get_xz is retrieving from the Airfields table please? If you can tell me the parameters being converted then I might have a better chance of finding the problematic value.

Thanks

image.png.9ba2576532200d038824dda3a55049fd.png

So this line extracts the string between "XPos = " and ";" and converts it into a float. In below example 76730.864

  Block
  {
    Name = "Block";
    Index = 35880;
    LinkTrId = 0;
    XPos = 76730.864;
    YPos = 17.795;
    ZPos = 326721.233;
    XOri = 0.00;
    YOri = 307.84;
    ZOri = 0.00;
    Model = "graphics\blocks\static_spad7.mgm";
    Script = "LuaScripts\WorldObjects\Blocks\static_spad7.txt";
    Country = 0;
    Desc = "";
    Durability = 1000;
    DamageReport = 50;
    DamageThreshold = 1;
    DeleteAfterDeath = 1;
  }

The function is used in another function where the map GUI initialized. It is used to locate the coordinates of all airfield MCU's in the map.

It gets the list of airfield names from the configuration file maps.json. So I'm pretty sure there is a mismatch between which airfields are configured in maps.json (this part: 

        "airfields_allied": {
            "A": ["Deanland", "Ashford", "Horne", "Brenzett", "West Malling"],

and the ones in your template file.

Probably a typo, I have done it many times.

 

 

Stonehouse
Posted
12 hours ago, SYN_Vander said:

So this line extracts the string between "XPos = " and ";" and converts it into a float. In below example 76730.864

  Block
  {
    Name = "Block";
    Index = 35880;
    LinkTrId = 0;
    XPos = 76730.864;
    YPos = 17.795;
    ZPos = 326721.233;
    XOri = 0.00;
    YOri = 307.84;
    ZOri = 0.00;
    Model = "graphics\blocks\static_spad7.mgm";
    Script = "LuaScripts\WorldObjects\Blocks\static_spad7.txt";
    Country = 0;
    Desc = "";
    Durability = 1000;
    DamageReport = 50;
    DamageThreshold = 1;
    DeleteAfterDeath = 1;
  }

The function is used in another function where the map GUI initialized. It is used to locate the coordinates of all airfield MCU's in the map.

It gets the list of airfield names from the configuration file maps.json. So I'm pretty sure there is a mismatch between which airfields are configured in maps.json (this part: 

        "airfields_allied": {
            "A": ["Deanland", "Ashford", "Horne", "Brenzett", "West Malling"],

and the ones in your template file.

Probably a typo, I have done it many times.

 

 

Thank you! Very much appreciated.

Intel Ultra9 285K, ROG Strix Z890-A, 32 GB RAM, RTX 5070 Ti 16GBVRAM and driver 591.86, Win11 Pro, Saitek Pro Flight Combat pedals, Warthog HOTAS, TM Cougar MFDs

SYN_Vander
Posted (edited)

New version of EMG released, with focus on Flying Circus improvements:

Release Notes version 93
-Added La-7 and IL2-mod 1944
-Extended front "Moselle" on Lorainne map so it includes strategic targets and can be used for IAF bombing missions. 
-Extended front "Paris" on Champagne map to accomodate for Gotha missions to Paris
-Upated bitmap image of Western Front map with latest version and slightly increased resolution
-Renamed and improved all existing fronts in Northern France map to align with major battles and airfields used at that time
-Added new front "Battle of Cambrai" to Northern France map
-By default all buildings close to the front line will now be destroyed
-Added several scenery objects (lighthouse, castle, sea wall) to Dieppe area on Channel map
-Corrected name of Savy Berlette, Proville, Baizieux, Guesnain, Mouchain airfields (spelled incorrectly on gui map)
-Corrected introduction date of Sopwith Snipe
-Increased detection zones of AAA so they have more time to turn towards enemy aircraft
-Bug fix: In Reconnaissance scenario, mission succes would not be triggered correctly in singleplayer.
-Bug fix: Special objective "Channel Dash" now has British ships as well for German attack scenarios
-Bug fix: Coastal guns and drop zone targets would not be correctly selected near target zone for Channel/Normandy map
-Bug fix: Static aircraft type at airfield could be incorrect as it was not filtered on country but faction

Get the tool here:

https://sites.google.com/view/il2-great-battles-emg/home

Remember if you use Servergenerator you also need to update this along EMG itself to latest version!

Edited by SYN_Vander
  • Like 1
  • Thanks 4
Stonehouse
Posted

@SYN_Vander Please check your PM when you have a spare moment. Thank you.

Intel Ultra9 285K, ROG Strix Z890-A, 32 GB RAM, RTX 5070 Ti 16GBVRAM and driver 591.86, Win11 Pro, Saitek Pro Flight Combat pedals, Warthog HOTAS, TM Cougar MFDs

SYN_Vander
Posted
15 hours ago, SYN_Vander said:

New version of EMG released, with focus on Flying Circus improvements:

Release Notes version 93
-Added La-7 and IL2-mod 1944
-Extended front "Moselle" on Lorainne map so it includes strategic targets and can be used for IAF bombing missions. 
-Extended front "Paris" on Champagne map to accomodate for Gotha missions to Paris
-Upated bitmap image of Western Front map with latest version and slightly increased resolution
-Renamed and improved all existing fronts in Northern France map to align with major battles and airfields used at that time
-Added new front "Battle of Cambrai" to Northern France map
-By default all buildings close to the front line will now be destroyed
-Added several scenery objects (lighthouse, castle, sea wall) to Dieppe area on Channel map
-Corrected name of Savy Berlette, Proville, Baizieux, Guesnain, Mouchain airfields (spelled incorrectly on gui map)
-Corrected introduction date of Sopwith Snipe
-Increased detection zones of AAA so they have more time to turn towards enemy aircraft
-Bug fix: In Reconnaissance scenario, mission succes would not be triggered correctly in singleplayer.
-Bug fix: Special objective "Channel Dash" now has British ships as well for German attack scenarios
-Bug fix: Coastal guns and drop zone targets would not be correctly selected near target zone for Channel/Normandy map
-Bug fix: Static aircraft type at airfield could be incorrect as it was not filtered on country but faction

Get the tool here:

https://sites.google.com/view/il2-great-battles-emg/home

Remember if you use Servergenerator you also need to update this along EMG itself to latest version!

Sry, little mixup on my end. The item " -Increased detection zones of AAA so they have more time to turn towards enemy aircraft" was not included. I'll create a new version soon.

  • Like 1
SYN_Vander
Posted
5 hours ago, sandmarken said:

@SYN_Vander do you plan to add the Leningrad map to the EMG? 😁

Yeah, would be nice. Great map! Need to find some time.

  • Like 1
  • Thanks 1
Posted
17 hours ago, SYN_Vander said:

Yeah, would be nice. Great map! Need to find some time.

I know it is a huge work to implement a whole new map into EMG.
I am busy with many other tasks too.

But from my point of view for EMG the time frame between early 1942 to late 1943 with more or less static fronts could be interesting, and this will be not simulated in the pilot careers as far as I know. And due to the long coasts the land-fronts with the requirement to place many tactical close to front target objectives are comparable short.

image.png.8a2316a2f1829ca2744f3858e07a5bd5.png

  • Like 3
  • Thanks 2
Kapteeni45
Posted

This will be amazing. But it is a huge task. The map can be used from 1939 to 1944 scenarios. As a finn, this is a dream come through. I made many campaigns with Lowengrins DCG for Il2 1946. It was so much easier back the. We made also many mapmods  for IL 1946 with Agracier. Even Karelia with Leningrad. It took about a year. EMG is my favourite mission generator. Waiting patiently. 

  • Like 3

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...