====== ArmA 2 SOM ====== [[https://www.pmctactical.org/forum/viewforum.php?f=50|ArmA 2 Forum]], [[:arma2|ArmA 2 Home]], [[arma2:config|ArmA 2 Config]], [[arma2:file_formats|ArmA 2 File Formats]], [[arma2:missions|ArmA 2 Missions]], [[arma2:modeling|ArmA 2 3D Modeling]], [[arma2:scripting|ArmA 2 Scripting]], [[arma2:terrain|ArmA 2 Terrain]], [[arma2:texturing|ArmA 2 Texturing]], [[arma2:tools|ArmA 2 Tools]] **Secondary Operations Manager** Its what generates the little side missions in the campaign, but of course, if you run it on an empty map you essentially have a random mission generator. Usage:\\ Place the SOM gamelogic on the map, then synchronize it with the player. SOM randomly creates mission and objectives and enemies depending on where you are on the map. There is quite a lot you can configure for the SOM, including adding fully new SecOps. A random mission generator is exactly what the SOM is. Some initial global settings: You can override certain SOM settings by setting a "settings" variable in a SOM (do this during the first 2 seconds of a mission!). In this Array you can send the SOM your custom pool of SecOps for this mission, you can disable the standard H.Q. radio communications, you can set different callsigns and set an initial delay (default is 30 seconds). If you do not want to set all settings, you may pass nil for those that you wish to leave on their default values. A typical settings Array can look like this: private ["_pool", "_hq", "_callsigns", "initialDelay", "_autoReinforce", "_settings"]; _pool = [ "ambush" ]; _hq = false; //Team text, team speech, H.Q. text, H.Q. speech. _callsigns = ["Razor", ["Razor"], "Frostbite", ["Frostbite"]]; //Delay in seconds before starting random SecOps selection. _initialDelay = 60; //Should an automatic Reinforce be triggered when there are casualties? //Default is true. _autoReinforce = false; _settings = [ _pool, _hq, _callsigns, _initialDelay, _autoReinforce ]; _som setVariable ["settings", _settings]; **Is it possible to have a script or trigger running that once you had completed a certain amount of SOM missions, say 5?** Yes. The SecOps template (04: Combat) uses this concept. The SOM tracks completed / failed SecOps in an internal variable history (Array: Scalar | completed, Scalar | failed). So let's say your SOM is myFirstSOM, you can make your trigger check for: ((myFirstSOM getVariable "history") select 0) == 5; Misc notes What is already possible: without modifying the core SOM scripts (not recommended), you can create new SecOps in some add-on and define them in CfgSecOps. The SOM will automatically be able to use them. Eventually there could be a long list of community SecOps if anybody likes making them. To get support: Try to execute in a script after the SOM has started: //Gives one: ["tactical_airstrike", player] call BIS_SOM_addSupportRequestFunc; //Gives one of each: [["transport", "supply_drop", "tactical_airstrike", "artillery_barrage"], player] call BIS_SOM_addSupportRequestFunc; //Gives 2 random supports: [2, player] call BIS_SOM_addSupportRequestFunc;