Meta-SEOW Campaigning
meta-SEOW campaigning uses the same principles as conventional SEOW. The campaign proceeds with a sequence of multiplayer missions set according to the usual SEOW campaign timetable and intervals. In conventional SEOW, mission files and log files are set up in the IL-2 game folder. But in meta-SEOW we also need to pay attention to the Iron Front/Arma2 (IFA2) system.
Running meta-SEOW Campaigns
Running meta-SEOW campaigns is very similar to conventional SEOW procedures. The two substantive changes are that the DCS provides a drop-down selection for choosing the meta-SEOW campaign mode (see below)
and the DCS also requires the "DCS Web Script URL" on the Remote Functions tab to be filled in with the URL of the meta-map engine found in the MP4public/Scripts folder. For a DCS installed on the same machine as the database and Mission Planner, the URL might look something like
http://localhost/SEOW/MP4public/Scripts/MM-Engine.php
If all is working properly, this script should handle all the Iron Front mission generation and updating of action reports. The MM-Engine.php script calls two other scripts:
- MM-BuildMission.php - builds all required Iron Front missions for each campaign time slot using the order of battle in the database.
- MM-AnalyzeLog.php - scans the Iron Front logfile to assemble statistics from the mission and updates the database accordingly.
These two scripts require the location of the IFA2 logfile. By default, this file is located at
C:\\Users\\4S\\AppData\\Local\\ArmA 2 OA\\ArmA2OA.rpt
Make sure the two scripts have the correct location for your system defined properly in the $EVENTLOG variable (you may need to edit each script file to make sure the location is correct). For Windows operating systems use double backslashes "\\" as indicated.
Hosting meta-SEOW missions in IFA2
After the usual DCS Build operation, the MM-Engine.php script will execute the MM-BuildMission.php script. This will create a separate folder in MP4public/MM for each active Iron Front meta-map defined in the campaign. The names of the folders created are encoded with:
- the meta-map name
- the mission date and time, in the usual SEOW sequence number format
- the meta-map terrain identifier
For example, a mission folder named
Zapolyarniy-194410031200.ZAP_10km_139_169_s
refers to a meta-map entitled "Zapolyarniy" for the mission commencing at 1200 hours on 3 October 1944, using IFA2 terrain "ZAP_10km_139_169_s". This mission cannot be hosted unless the host and all players have previously downloaded and installed the "ZAP_10km_139_169_s" terrain file in IFA2 as a SEOW add-on.
The mission folders contain all information for each meta-mission, but written in single-player user-mission format. Before hosting as a multiplayer IFA2 mission, the host needs to copy each folder to the Arma2 missions folder (usually Documents/ArmA 2/missions) and then use IFA2 to convert the mission to a binary multiplayer mission format. This is quick and easy. Just follow these steps:
- start IFA2
- go to Single Player
- start Editor
- load the relevant terrain map, e.g. "ZAP_10km_139_169_s" in the example above
- click Missions on the right hand side of the window, and load the user mission of interest
- click Save on the right hand side of the window, and save the mission using the "Export to multiplayer mission"
You can now host your multiplayer mission for any players that have already installed the relevant terrain.
Saving the meta-SEOW logfile in IFA2
Unlike IL-2 which can be configured to save logging data automatically at the end of each coop mission, the host needs to issue a log command in IFA2 at the end of each meta-SEOW mission. Thankfully meta-SEOW missions are built with a pre-configured logging script enabled on the Alpha radio channel in game. The logging script is executed by the host hitting the number keys zero, zero, zero in sequence inside the IFA2 game while a meta-SEOW mission is running. This will enable a radio channel called "Save SEOW log file" which executes the SEOW log script. A dialog will appear on-screen (see below, visible to all players in the mission) and the host can click the save button. The save button will instantaneously write logging data to the Arma2OA.rpt file, and this information will be incorporated into the SEOW battlefield by the MM-AnalyzeLog.php script at DCS Analyze time. The IFA2 mission can then be terminated.
Below is a sample log entry for a meta-SEOW mission run from 19:00:00 to 19:21:51. The mission reports on a Finnish truck "Jalkavaki Kompannia, Prik 1, Rykm 4, Ptn 3" encountering Red Army units including a T-34 "1 Tank Division, Bgd 1, Polk 1, Btn1" and two rifle platoons belonging to the 104 Infantry Brigade. The mission ends badly for the truck! You will also note references to AxisHQ and AlliedHQ units - these are command units generated automatically by meta-SEOW to assist in commanding multiple units on each side during the action. The log file contains sections for EVENTS, ending LOCATIONS and SCORES. This data is used automatically to update the SEOW campaign order of battle with exact locations of all units in the IFA2 battle map, so that movement orders can be issued for the subsequent mission with proper reconnaissance intel and unit disposition information.
"****** SEOW log file for mission "Zapolyarniy-194410041900", created in ArmA2OA" "SEOW Mission starting at 9:21:8 on 9 Aug 2015" "[EVENTS]" "SEOW: 19:10:6 __ u_Jalkavaki_Kompannia_Prik_1_Rykm_4_Ptn_3 (Andreas Bosch) was killed by u_1_Tank_Division_Bgd_1_Polk_1_Btn_1 (4Shades) at location [5923.76,5412.26,27.7153]" "[LOCATIONS at 19:21:51]" "SEOW: Unit "u_AlliedHQ" is at location [6071.02,5771.54,335.24] with supply 1 and damage 0." "SEOW: Unit "u_1_Tank_Division_Bgd_1_Polk_1_Btn_1g" is at location [6081.78,5766.38,304.111] with supply 1 and damage 0." "SEOW: Unit "u_1_Tank_Division_Bgd_1_Polk_1_Btn_1g" is at location [6068.27,5746.13,0] with supply 1 and damage 0." "SEOW: Unit "u_1_Tank_Division_Bgd_1_Polk_1_Btn_1d" is at location [6068.27,5746.13,0] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c1" is at location [6067.99,5776.4,125.997] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c2" is at location [6061.43,5777.95,216.777] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c3" is at location [6069.84,5783.49,131.137] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c5" is at location [6054.97,5779.21,216.889] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c6" is at location [6071.88,5790.41,124.317] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c9" is at location [6047.77,5780.87,167.686] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c10" is at location [6073.67,5797.01,78.2195] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c11" is at location [6039.63,5781.74,72.5755] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c2" is at location [6086.51,5776.1,141.793] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c3" is at location [6079.86,5779.12,183.837] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c4" is at location [6089.94,5782.67,141.691] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c5" is at location [6073.77,5782.99,184.895] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c6" is at location [6093.96,5787.86,141.17] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c7" is at location [6067.74,5786.8,202.751] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c8" is at location [6097.57,5793.48,143.525] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c9" is at location [6061.88,5789.53,180.932] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c10" is at location [6101.29,5799.62,149.012] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c1" is at location [6062.65,5775.82,178.807] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c2" is at location [6056.09,5777.52,226.847] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c3" is at location [6064.69,5782.19,84.2677] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c4" is at location [6049.02,5779.27,220.935] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c5" is at location [6066.7,5788.5,80.496] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c6" is at location [6042.24,5780.94,225.587] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c7" is at location [6068.87,5794.84,81.4299] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c8" is at location [6035.4,5782.63,225.602] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c9" is at location [6070.51,5801.53,78.9806] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c10" is at location [6028.64,5784.37,224.378] with supply 1 and damage 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c11" is at location [6072.21,5808.5,111.915] with supply 1 and damage 0." "SEOW: Unit "u_AxisHQ" is at location [3547.01,2130.86,36] with supply 1 and damage 0." "SEOW: Unit "u_1_Tank_Division_Bgd_1_Polk_1_Btn_1" is at location [6068.27,5746.13,316.239] with supply 0.702964 and damage 0." "SEOW: Unit "u_Jalkavaki_Kompannia_Prik_1_Rykm_4_Ptn_3" is at location [5925.07,5414.79,27.4877] with supply 0 and damage 1." "SEOW: Unit "u_Jalkavaki_Kompannia_Prik_1_Rykm_4_Ptn_3" is at location [5925.07,5414.79,27.4877] with supply 0 and damage 1." "SEOW: Unit "u_Jalkavaki_Kompannia_Prik_1_Rykm_4_Ptn_3d" is at location [5925.25,5415.91,0] with supply 1 and damage 1." "[SCORES]" "SEOW: Unit "u_AlliedHQ" achieved score 0." "SEOW: Unit "u_1_Tank_Division_Bgd_1_Polk_1_Btn_1g" achieved score 3." "SEOW: Unit "u_1_Tank_Division_Bgd_1_Polk_1_Btn_1g" achieved score 0." "SEOW: Unit "u_1_Tank_Division_Bgd_1_Polk_1_Btn_1d" achieved score 0." "SEOW: Unit "O 1-1-B:4" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c1" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c2" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c3" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c5" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c6" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c9" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c10" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m1_c11" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c2" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c3" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c4" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c5" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c6" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c7" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c8" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c9" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_1_m2_c10" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c1" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c2" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c3" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c4" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c5" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c6" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c7" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c8" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c9" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c10" achieved score 0." "SEOW: Unit "u_104_Infantry_Bgd_1_Polk_1_Btn_2_m1_c11" achieved score 0." "SEOW: Unit "u_AxisHQ" achieved score 0." "SEOW: Unit "u_1_Tank_Division_Bgd_1_Polk_1_Btn_1" achieved score 0." "SEOW: Unit "u_Jalkavaki_Kompannia_Prik_1_Rykm_4_Ptn_3" achieved score 0." "SEOW: Unit "u_Jalkavaki_Kompannia_Prik_1_Rykm_4_Ptn_3" achieved score 0." "SEOW: Unit "u_Jalkavaki_Kompannia_Prik_1_Rykm_4_Ptn_3d" achieved score 0." "****** End of SEOW log file for mission "Zapolyarniy-194410041900""