Description.ext: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "import" to "import (Config)") |
Lou Montana (talk | contribs) m (Text replacement - "{{Link|:Category:" to "{{Link|Category:") |
||
(33 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
<!-- | |||
Wiki editors: do not forget to update miniTOC when adding an H2 title! | |||
--><div style="display: flex"><!-- flex start --> | |||
<div style="flex-grow: 1"><!-- scrolling div start --> | |||
<!-- | <!-- | ||
Level 2 titles: categories (Mission information, Starting gear, etc.) | Level 2 titles: categories (Mission information, Starting gear, etc.) | ||
Line 5: | Line 11: | ||
Level 4 titles: the settings themselves | Level 4 titles: the settings themselves | ||
--> | --> | ||
The [[Description.ext]] is a [[missionConfigFile]] and is used to set the overall mission attributes or to define global properties that will be available for other scripts. | The [[Description.ext]] is a [[missionConfigFile]] and is used to set the overall mission attributes or to define global properties that will be available for other scripts. | ||
It is placed in the [[Mission Editor: External#Mission Folder|mission root folder]] and uses the same syntax as the config.cpp file, but supports only a limited number of config classes. | It is placed in the [[Mission Editor: External#Mission Folder|mission root folder]] and uses the same syntax as the config.cpp file, but supports only a limited number of config classes. | ||
Line 12: | Line 17: | ||
In the [[2D Editor]] the mission has to be reloaded for changes to be applied. | In the [[2D Editor]] the mission has to be reloaded for changes to be applied. | ||
{{Feature|ofpe|This file is required in | {{Feature|ofpe|This file is required in {{GameCategory|ofpe|link= y}} for MP missions to work, otherwise a '''-1 error''' is shown.}} | ||
{{Feature|informative|This page is about the '''Mission Description.ext'''. For the campaign version, see [[Campaign Description.ext]].}} | {{Feature|informative|This page is about the '''Mission Description.ext'''. For the campaign version, see [[Campaign Description.ext]].}} | ||
{{Feature|warning|The keyword {{hl|class}} for class definitions '''must''' be lowercase, otherwise a parsing error will occur.}} | {{Feature|warning|The keyword {{hl|class}} for class definitions '''must''' be lowercase, otherwise a parsing error will occur.}} | ||
{{Feature|important|Accidentally creating this file with a wrong file extension is a frequent cause of issues. If you are unfamiliar with script file creation, read {{Link|Introduction to Arma Scripting#File Creation}} for a step-by-step tutorial.}} | {{Feature|important| | ||
Accidentally creating this file with a wrong file extension is a frequent cause of issues. | |||
If you are unfamiliar with script file creation, read {{Link|Introduction to Arma Scripting#File Creation}} for a step-by-step tutorial. | |||
}} | |||
{{Feature|arma3|Since {{arma3}} v2.02, it is possible to import a class from main config and inherit from it in mission config: | {{Feature|arma3|Since {{arma3}} v2.02, it is possible to import a class from main config and inherit from it in mission config: | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
import RscText; | import RscText; | ||
class MyText: RscText | class MyText : RscText | ||
{ | { | ||
// ... | // ... | ||
Line 46: | Line 37: | ||
{{ConfigPage|start|notoc= y}} | |||
{{ConfigPage|abc}} | {{ConfigPage|abc}} | ||
== Mission Information == | == Mission Information == | ||
Line 71: | Line 63: | ||
{{ArgTitle|4|author|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|author|{{GVI|arma3|0.50}}}} | ||
Mission author's name. The default loading screen shows this string below the | Mission author's name. The default loading screen shows this string below the {{Link|#onLoadName}} in a smaller font prefixed by "by ". | ||
{{ArgTitle|4|onLoadName|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|onLoadName|{{GVI|arma3|0.50}}}} | ||
String (usually mission name) shown during [[Loading Screens|mission loading]]. The string is shown in a slightly larger font above the loadScreen. The | String (usually mission name) shown during [[Loading Screens|mission loading]]. The string is shown in a slightly larger font above the loadScreen. | ||
The {{Link|#onLoadMission}} text is placed below the load screen and the {{Link|#header|header gameType}} determines the game type on top of the box. | |||
Line 122: | Line 115: | ||
Mission name displayed in the mission selection menu. | Mission name displayed in the mission selection menu. | ||
<syntaxhighlight lang="cpp">briefingName = "TAG 1-5 CO My super mission";</syntaxhighlight> | <syntaxhighlight lang="cpp">briefingName = "TAG 1-5 CO My super mission";</syntaxhighlight> | ||
{{Feature|important|Please note that the same parameter can be defined in 3DEN in Attributes->General->Presentation->Title, but 'briefingName' from 'description.ext' has a priority. To use [[localize]]d string either in 3DEN field or in 'description.ext', prefix stringtable ID with {{hl|@}}.}} | |||
Line 133: | Line 128: | ||
{{ArgTitle|4|overviewText|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|overviewText|{{GVI|arma3|0.50}}}} | ||
Text to be displayed below the | Text to be displayed below the {{Link|#overviewPicture}} on the mission selection screen when the mission is available to play. | ||
{{Feature|important|Please note that the same parameter can be defined in 3DEN in Attributes->General->Overview->Text, but 'overviewText' from 'description.ext' has a priority. To use [[localize]]d string either in 3DEN field or in 'description.ext', prefix stringtable ID with {{hl|@}}.}} | |||
{{Feature|important| | {{Feature|important| | ||
Line 153: | Line 149: | ||
{{ArgTitle|4|overviewTextLocked|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|overviewTextLocked|{{GVI|arma3|0.50}}}} | ||
Text to be displayed below the | Text to be displayed below the {{Link|#overviewPicture}} on the mission selection screen when the mission is locked from play. | ||
{{Feature|important|Please note that to use [[localize]]d string prefix stringtable ID with {{hl|@}}.}} | |||
==== onBriefingGear ==== | ==== onBriefingGear ==== | ||
Defines a sound (defined in | Defines a sound (defined in {{Link|#CfgSounds}}) that will play when accessing the gear part of the briefing. See [[Briefing.html#Advanced Briefings|Briefing.html]]. | ||
<syntaxhighlight lang="cpp">onBriefingGear = "SoundName";</syntaxhighlight> | <syntaxhighlight lang="cpp">onBriefingGear = "SoundName";</syntaxhighlight> | ||
{{Feature|arma3|Has no effect in {{arma3}}.}} | {{Feature|arma3|Has no effect in {{arma3}}.}} | ||
Line 163: | Line 160: | ||
==== onBriefingGroup ==== | ==== onBriefingGroup ==== | ||
Defines a sound (defined in | Defines a sound (defined in {{Link|#CfgSounds}}) that will play when accessing the group part of the briefing. See [[Briefing.html#Advanced Briefings|Briefing.html]]. | ||
<syntaxhighlight lang="cpp">onBriefingGroup = "SoundName";</syntaxhighlight> | <syntaxhighlight lang="cpp">onBriefingGroup = "SoundName";</syntaxhighlight> | ||
{{Feature|arma3|Has no effect in {{arma3}}.}} | {{Feature|arma3|Has no effect in {{arma3}}.}} | ||
Line 169: | Line 166: | ||
==== onBriefingPlan ==== | ==== onBriefingPlan ==== | ||
Defines a sound (defined in | Defines a sound (defined in {{Link|#CfgSounds}}) that will play when accessing the plan part of the briefing. See [[Briefing.html#Advanced Briefings|Briefing.html]]. | ||
<syntaxhighlight lang="cpp">onBriefingPlan = "SoundName";</syntaxhighlight> | <syntaxhighlight lang="cpp">onBriefingPlan = "SoundName";</syntaxhighlight> | ||
{{Feature|arma3|Has no effect in {{arma3}}.}} | {{Feature|arma3|Has no effect in {{arma3}}.}} | ||
Line 175: | Line 172: | ||
{{ArgTitle|4|CfgWorlds|{{GVI|arma3|2.02}}}} | {{ArgTitle|4|CfgWorlds|{{GVI|arma3|2.02}}}} | ||
Could be used to override the following properties used on mission loading: author, description, pictureMap, pictureShot, loadingTexts[]. If a specific world name given as a subclass, override will happen only when this world is loading. If subclass with name Any is used, then aforementioned properties would be overridden for any world that is loading. | Could be used to override the following properties used on mission loading: author, description, pictureMap, pictureShot, loadingTexts[]. | ||
<syntaxhighlight lang="cpp">class CfgWorlds | If a specific world name given as a subclass, override will happen only when this world is loading. If subclass with name Any is used, then aforementioned properties would be overridden for any world that is loading. | ||
<syntaxhighlight lang="cpp"> | |||
class CfgWorlds | |||
{ | { | ||
class Any // or specific world name | class Any // or specific world name | ||
Line 184: | Line 183: | ||
pictureMap = "picturepath"; | pictureMap = "picturepath"; | ||
pictureShot = "picturepath"; | pictureShot = "picturepath"; | ||
loadingTexts[] = {"text1", "text2", "text3"}; | loadingTexts[] = { "text1", "text2", "text3" }; | ||
}; | }; | ||
}; | }; | ||
Line 232: | Line 231: | ||
|} | |} | ||
==== respawn ==== | ==== respawn ==== | ||
Sets respawn type. | Sets soldiers and vehicles respawn type. | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
respawn = 0; // Default: 0 for SP, 1 for MP | respawn = 0; // Default: 0 for SP, 1 for MP | ||
Line 238: | Line 237: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{ArgTitle|4|respawnVehicle|{{GVI|arma3|2.18}}}} | |||
Sets vehicles only respawn type. Vehicles can only have 2 (or "INSTANT") and 3 (or "BASE") respawn mode. All other modes are equal to disabled respawn. If 'respawnVehicle' is not defined, the 'respawn' value is used. | |||
<syntaxhighlight lang="cpp"> | |||
respawnVehicle = 3; // number version | |||
respawnVehicle = "BASE"; // text version works too | |||
</syntaxhighlight> | |||
==== respawnButton ==== | ==== respawnButton ==== | ||
Line 255: | Line 260: | ||
==== respawnDialog ==== | ==== respawnDialog ==== | ||
Show the scoreboard and respawn countdown timer for a player if he is killed with | Show the scoreboard and respawn countdown timer for a player if he is killed with {{Link|#respawn|respawn type}} '''3'''. | ||
<syntaxhighlight lang="cpp">respawnDialog = 0; // 0: disabled - 1: enabled. Default: 1</syntaxhighlight> | <syntaxhighlight lang="cpp">respawnDialog = 0; // 0: disabled - 1: enabled. Default: 1</syntaxhighlight> | ||
==== respawnOnStart ==== | ==== respawnOnStart ==== | ||
Respawn player when he joins the game. Available only for INSTANT and BASE | Respawn player when he joins the game. Available only for INSTANT and BASE {{Link|#respawn|respawn types}}. | ||
<syntaxhighlight lang="cpp">respawnOnStart = 1; // Default: 0</syntaxhighlight> | <syntaxhighlight lang="cpp">respawnOnStart = 1; // Default: 0</syntaxhighlight> | ||
* -1 - Dont respawn on start. Don't run respawn script on start. | * -1 - Dont respawn on start. Don't run respawn script on start. | ||
Line 269: | Line 274: | ||
==== respawnTemplates ==== | ==== respawnTemplates ==== | ||
Respawn templates from [[Arma 3: Respawn#Respawn Templates|CfgRespawnTemplates]]. You can combine any number of them together. | Respawn templates from [[Arma 3: Respawn#Respawn Templates|CfgRespawnTemplates]]. You can combine any number of them together. | ||
<syntaxhighlight lang="cpp">respawnTemplates[] = { "Counter", "Wave" }; | <syntaxhighlight lang="cpp">respawnTemplates[] = { "Counter", "Wave" };</syntaxhighlight> | ||
</syntaxhighlight> | |||
{{Feature|important|Side specific respawn templates can be specified with ''respawnTemplates'''''SIDE'''''[]'' where '''SIDE''' can be any playable side (West, East, Guer, Civ).<br> | {{Feature|important|Side specific respawn templates can be specified with ''respawnTemplates'''''SIDE'''''[]'' where '''SIDE''' can be any playable side (West, East, Guer, Civ).<br> | ||
When such is undefined, general respawnTemplates are used instead.}} | When such is undefined, general respawnTemplates are used instead.}} | ||
Line 276: | Line 280: | ||
{{ArgTitle|4|respawnWeapons|{{GVI|arma1|1.00}}}} | {{ArgTitle|4|respawnWeapons|{{GVI|arma1|1.00}}}} | ||
Set weapons players will receive upon respawn. | Set weapons players will receive upon respawn. {{Link|#respawnMagazines}} has to be defined as well. | ||
<syntaxhighlight lang="cpp">respawnWeapons[] = { "arifle_Katiba_GL_F" }; | <syntaxhighlight lang="cpp">respawnWeapons[] = { "arifle_Katiba_GL_F" };</syntaxhighlight> | ||
</syntaxhighlight> | |||
{{Feature|important|Side specific respawn weapons can be specified with ''respawnWeapons'''''SIDE'''''[]'' where '''SIDE''' can be any playable side (West, East, Guer, Civ).<br> | {{Feature|important|Side specific respawn weapons can be specified with ''respawnWeapons'''''SIDE'''''[]'' where '''SIDE''' can be any playable side (West, East, Guer, Civ).<br> | ||
Corresponding ''respawnMagazines'''''SIDE'''''[]'' has to be defined as well.}} | Corresponding ''respawnMagazines'''''SIDE'''''[]'' has to be defined as well.}} | ||
Line 284: | Line 287: | ||
{{ArgTitle|4|respawnMagazines|{{GVI|arma1|1.00}}}} | {{ArgTitle|4|respawnMagazines|{{GVI|arma1|1.00}}}} | ||
Set magazines players will receive upon respawn. | Set magazines players will receive upon respawn. {{Link|#respawnWeapons}} has to be defined as well. | ||
<syntaxhighlight lang="cpp">respawnMagazines[] = { "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green" }; | <syntaxhighlight lang="cpp">respawnMagazines[] = { "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green" };</syntaxhighlight> | ||
</syntaxhighlight> | |||
{{Feature|important|Side specific respawn weapons can be specified with ''respawnMagazines'''''SIDE'''''[]'' where '''SIDE''' can be any playable side (West, East, Guer, Civ).<br> | {{Feature|important|Side specific respawn weapons can be specified with ''respawnMagazines'''''SIDE'''''[]'' where '''SIDE''' can be any playable side (West, East, Guer, Civ).<br> | ||
Corresponding ''respawnWeapons'''''SIDE'''''[]'' has to be defined as well.}} | Corresponding ''respawnWeapons'''''SIDE'''''[]'' has to be defined as well.}} | ||
Line 347: | Line 349: | ||
{{ArgTitle|4|enablePlayerAddRespawn|{{GVI|arma3|1.62}}}} | {{ArgTitle|4|enablePlayerAddRespawn|{{GVI|arma3|1.62}}}} | ||
Usage unsure, may be related to | Usage unsure, may be related to {{Link|#respawnTemplates|respawn template}} '''MenuPosition'''. | ||
<syntaxhighlight lang="cpp">enablePlayerAddRespawn = 0; // Disable framework respawn</syntaxhighlight> | <syntaxhighlight lang="cpp">enablePlayerAddRespawn = 0; // Disable framework respawn</syntaxhighlight> | ||
{{ArgTitle|4|CfgRespawnInventory|{{GVI|arma3|1.62}}}} | {{ArgTitle|4|CfgRespawnInventory|{{GVI|arma3|1.62}}}} | ||
This class defines a respawn inventory, used with '''MenuInventory''' | This class defines a respawn inventory, used with '''MenuInventory''' {{Link|#respawnTemplates|respawn template}}. | ||
Loadouts with no assigned role are automatically assigned to the "Default" role.<br> | Loadouts with no assigned role are automatically assigned to the "Default" role.<br> | ||
See also [[BIS_fnc_addRespawnInventory]], [[BIS_fnc_removeRespawnInventory]] | See also [[BIS_fnc_addRespawnInventory]], [[BIS_fnc_removeRespawnInventory]] | ||
Line 365: | Line 367: | ||
// Loadout definition, uses same entries as CfgVehicles classes | // Loadout definition, uses same entries as CfgVehicles classes | ||
weapons[] = { | weapons[] = | ||
{ | |||
"arifle_MXC_F", | "arifle_MXC_F", | ||
"Binocular" | "Binocular" | ||
}; | }; | ||
magazines[] = { | |||
magazines[] = | |||
{ | |||
"30Rnd_65x39_caseless_mag", | "30Rnd_65x39_caseless_mag", | ||
"30Rnd_65x39_caseless_mag", | "30Rnd_65x39_caseless_mag", | ||
"SmokeShell" | "SmokeShell" | ||
}; | }; | ||
items[] = { | |||
items[] = | |||
{ | |||
"FirstAidKit" | "FirstAidKit" | ||
}; | }; | ||
linkedItems[] = { | |||
linkedItems[] = | |||
{ | |||
"V_Chestrig_khk", | "V_Chestrig_khk", | ||
"H_Watchcap_blk", | "H_Watchcap_blk", | ||
Line 387: | Line 396: | ||
"ItemRadio" | "ItemRadio" | ||
}; | }; | ||
uniformClass = "U_B_CombatUniform_mcam_tshirt"; | uniformClass = "U_B_CombatUniform_mcam_tshirt"; | ||
backpack = "B_AssaultPack_mcamo"; | backpack = "B_AssaultPack_mcamo"; | ||
}; | }; | ||
class Blufor2 | class Blufor2 | ||
{ | { | ||
Line 400: | Line 411: | ||
{{ArgTitle|4|CfgRespawnTemplates|{{GVI|arma3|1.62}}}} | {{ArgTitle|4|CfgRespawnTemplates|{{GVI|arma3|1.62}}}} | ||
This class defines new respawn templates to be used with | This class defines new respawn templates to be used with {{Link|#respawnTemplates|respawn templates}}. | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
class CfgRespawnTemplates | class CfgRespawnTemplates | ||
Line 444: | Line 456: | ||
icon = "a3\Ui_f\data\GUI\Cfg\RespawnRoles\assault_ca.paa"; | icon = "a3\Ui_f\data\GUI\Cfg\RespawnRoles\assault_ca.paa"; | ||
}; | }; | ||
class Support | class Support | ||
{ | { | ||
Line 449: | Line 462: | ||
icon = "a3\Ui_f\data\GUI\Cfg\RespawnRoles\support_ca.paa"; | icon = "a3\Ui_f\data\GUI\Cfg\RespawnRoles\support_ca.paa"; | ||
}; | }; | ||
class Recon | class Recon | ||
{ | { | ||
Line 456: | Line 470: | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Mission Keys == | == Mission Keys == | ||
Line 467: | Line 480: | ||
{{ArgTitle|4|keys|{{GVI|arma1|1.00}}}} | {{ArgTitle|4|keys|{{GVI|arma1|1.00}}}} | ||
List of keys from which | List of keys from which {{Link|#keysLimit}} counts the ''done'' ones. | ||
<syntaxhighlight lang="cpp">keys[] = { "key1", "key2", "key3" }; | <syntaxhighlight lang="cpp">keys[] = { "key1", "key2", "key3" };</syntaxhighlight> | ||
</syntaxhighlight> | |||
{{ArgTitle|4|keysLimit|{{GVI|arma1|1.00}}}} | {{ArgTitle|4|keysLimit|{{GVI|arma1|1.00}}}} | ||
Number of keys from the | Number of keys from the {{Link|#keys}} list needed ''done'' to unlock (and be able to play) this mission. | ||
<syntaxhighlight lang="cpp">keysLimit = 2;</syntaxhighlight> | <syntaxhighlight lang="cpp">keysLimit = 2;</syntaxhighlight> | ||
Line 479: | Line 491: | ||
{{ArgTitle|4|doneKeys|{{GVI|arma1|1.00}}}} | {{ArgTitle|4|doneKeys|{{GVI|arma1|1.00}}}} | ||
Name of keys marked ''done'' on mission completion. | Name of keys marked ''done'' on mission completion. | ||
<syntaxhighlight lang="cpp">doneKeys[] = { "key4" }; | <syntaxhighlight lang="cpp">doneKeys[] = { "key4" };</syntaxhighlight> | ||
</syntaxhighlight> | |||
Line 496: | Line 507: | ||
{{ArgTitle|4|overrideFeedback|{{GVI|arma3|1.98}}}} | {{ArgTitle|4|overrideFeedback|{{GVI|arma3|1.98}}}} | ||
Some of the feedback effects in {{arma3}} are scripted and executed by {{hl|functions_f\feedback\fn_feedbackMain.fsm}}. Those include being hit, pulsation, dirt from explosion, choking etc. Adding {{hl|overrideFeedback}} with value > 0 will stop feedback FSM from executing, allowing mission/mod makers to script their own, custom effects. The param is first checked in the mission config and then mod config. If mission config has this param set to 0, it will force default feedback handling without possibility to override it by mods. Do not set this param unless you are planning to enforce feedback one way or another. | Some of the feedback effects in {{arma3}} are scripted and executed by {{hl|functions_f\feedback\fn_feedbackMain.fsm}}. Those include being hit, pulsation, dirt from explosion, choking etc. | ||
Adding {{hl|overrideFeedback}} with value > 0 will stop feedback FSM from executing, allowing mission/mod makers to script their own, custom effects. The param is first checked in the mission config and then mod config. | |||
If mission config has this param set to 0, it will force default feedback handling without possibility to override it by mods. Do not set this param unless you are planning to enforce feedback one way or another. | |||
<syntaxhighlight lang="cpp">overrideFeedback = 1; // 0: force default handling, 1+: allow custom handling. Default: not set</syntaxhighlight> | <syntaxhighlight lang="cpp">overrideFeedback = 1; // 0: force default handling, 1+: allow custom handling. Default: not set</syntaxhighlight> | ||
Line 517: | Line 530: | ||
Since {{arma3}} v1.50 '''showHUD''' param can be an array to allow control over separate HUD elements, for example: | Since {{arma3}} v1.50 '''showHUD''' param can be an array to allow control over separate HUD elements, for example: | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
showHUD[] = { | showHUD[] = | ||
{ | |||
1, // Scripted HUD (same as showHUD command) | 1, // Scripted HUD (same as showHUD command) | ||
1, // Vehicle and unit info | 1, // Vehicle and unit info | ||
Line 580: | Line 594: | ||
<syntaxhighlight lang="cpp">showSquadRadar = 0; // 0: disabled - 1: enabled. Default: 0</syntaxhighlight> | <syntaxhighlight lang="cpp">showSquadRadar = 0; // 0: disabled - 1: enabled. Default: 0</syntaxhighlight> | ||
{{Feature|important|Has no effect since custom panels were introduced in {{arma3}}.}} | {{Feature|important|Has no effect since custom panels were introduced in {{arma3}}.}} | ||
{{ArgTitle|4|overrideHazeQuality|{{GVI|arma3|2.16}}}} | |||
0/1/2 - VeryLow/Low/Standard - Forces haze quality and in MP has priority over the server 'overrideHazeQuality' option. Standard(2) - mod config driven. Default(-1) - do not force. | |||
<syntaxhighlight lang="cpp">overrideHazeQuality = 1; // Low </syntaxhighlight> | |||
== Starting Gear == | == Starting Gear == | ||
Starting gear points to briefing-available equipment. For respawn equipment, see | Starting gear points to briefing-available equipment. For respawn equipment, see {{Link|#Respawn/Revive}}.<br> | ||
See also [[:Category:Command Group: Weapon Pool|Weapon Pool Commands]] for more detailed information about weapon pool system. | See also [[:Category:Command Group: Weapon Pool|Weapon Pool Commands]] for more detailed information about weapon pool system. | ||
Line 624: | Line 643: | ||
{{ArgTitle|4|allowSubordinatesTakeWeapons|{{GVI|arma2oa|1.56}}}} | {{ArgTitle|4|allowSubordinatesTakeWeapons|{{GVI|arma2oa|1.56}}}} | ||
Allows subordinates (i.e., not leaders) to equip items defined in | Allows subordinates (i.e., not leaders) to equip items defined in {{Link|#weapons}}, {{Link|#magazines}} and {{Link|#backpacks}}. | ||
<syntaxhighlight lang="cpp">allowSubordinatesTakeWeapons = 1; // 0: disabled - 1: enabled. Default: ?</syntaxhighlight> | <syntaxhighlight lang="cpp">allowSubordinatesTakeWeapons = 1; // 0: disabled - 1: enabled. Default: ?</syntaxhighlight> | ||
Line 630: | Line 649: | ||
{{ArgTitle|4|arsenalRestrictedItems|{{GVI|arma3|1.98}}}} | {{ArgTitle|4|arsenalRestrictedItems|{{GVI|arma3|1.98}}}} | ||
Used to blacklist undesired [[Arma 3: Arsenal|Arsenal]] equipment, which prevents user saved loadout from being loaded if it contains restricted items. | Used to blacklist undesired [[Arma 3: Arsenal|Arsenal]] equipment, which prevents user saved loadout from being loaded if it contains restricted items. | ||
<syntaxhighlight lang="cpp">arsenalRestrictedItems[] = { "U_B_Soldier_VR" }; | <syntaxhighlight lang="cpp">arsenalRestrictedItems[] = { "U_B_Soldier_VR" };</syntaxhighlight> | ||
</syntaxhighlight> | |||
{{ArgTitle|4|allowProfileGlasses|{{GVI|arma3|2.04}}}} | {{ArgTitle|4|allowProfileGlasses|{{GVI|arma3|2.04}}}} | ||
When set to 0 will stop glasses set in player profile from being added to player's gear: | When set to 0 will stop glasses set in player profile from being added to player's gear: | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp">allowProfileGlasses = 0;</syntaxhighlight> | ||
allowProfileGlasses = 0; | |||
</syntaxhighlight> | |||
== Corpse | == Corpse and Wreck Management == | ||
This section explains how to use game-included '''garbage collector''' ('''GC''') for better performances.<br> | This section explains how to use game-included '''garbage collector''' ('''GC''') for better performances.<br> | ||
See also [[addToRemainsCollector]], [[isInRemainsCollector]] and [[removeFromRemainsCollector]] commands. | See also [[addToRemainsCollector]], [[isInRemainsCollector]] and [[removeFromRemainsCollector]] commands. | ||
The Remains Collector, if enabled, runs at background on every client and clears mission of corpses and wrecks depending on set params and mode. | |||
Individual objects can be added or removed from collector monitoring. Items in remains collector are sorted depending on how valuable they are. | |||
The most valuable items are pushed to the end of remains array and will be deleted last if possible; for example, the flag carrier is never deleted while it has the flag. | |||
{{ArgTitle|4|corpseManagerMode|{{GVI|arma3|1.32}}}} | {{ArgTitle|4|corpseManagerMode|{{GVI|arma3|1.32}}}} | ||
Sets the mode for corpse removal | Sets the mode for automatic corpse removal. | ||
<syntaxhighlight lang="cpp">corpseManagerMode = 0; // Default: 0 | <syntaxhighlight lang="cpp">corpseManagerMode = 0; // Default SP: 0; Default MP: 2</syntaxhighlight> | ||
* 0 = None - None of the units are managed by the manager | * 0 ''(Default in SP)'' = None - None of the units are automatically managed by the manager | ||
* 1 = All - All units are managed by the manager | * 1 = All - All units are automatically managed by the manager | ||
* 2 = None_But_Respawned - Only units that can respawn are managed by the manager | * 2 ''(Default in MP)'' = None_But_Respawned - Only units that can respawn are automatically managed by the manager | ||
* 3 = All_But_Respawned - All units are managed by the manager with exception of respawned (opposite to mode 2) | * 3 = All_But_Respawned - All units are automatically managed by the manager with the exception of respawned ones (opposite to mode 2) | ||
{{ArgTitle|4|corpseLimit|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|corpseLimit|{{GVI|arma3|0.50}}}} | ||
If the total number of monitored corpses is higher than '''corpseLimit''', the corpses that have been dead for longer than {{Link|#corpseRemovalMinTime}} will be considered for removal. | |||
<syntaxhighlight lang="cpp">corpseLimit = 1; // Default: 15</syntaxhighlight> | <syntaxhighlight lang="cpp">corpseLimit = 1; // Default: 15</syntaxhighlight> | ||
{{ArgTitle|4|corpseRemovalMinTime|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|corpseRemovalMinTime|{{GVI|arma3|0.50}}}} | ||
See {{Link|#corpseLimit}} above. | |||
<syntaxhighlight lang="cpp">corpseRemovalMinTime = 60; // seconds. Default: 10</syntaxhighlight> | <syntaxhighlight lang="cpp">corpseRemovalMinTime = 60; // seconds. Default: 10</syntaxhighlight> | ||
{{ArgTitle|4|corpseRemovalMaxTime|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|corpseRemovalMaxTime|{{GVI|arma3|0.50}}}} | ||
Monitored corpses that are dead for longer than '''corpseRemovalMaxTime''' will be considered for removal regardless of the {{Link|#corpseLimit}}. | |||
<syntaxhighlight lang="cpp">corpseRemovalMaxTime = 1200; // seconds. Default: 3600</syntaxhighlight> | <syntaxhighlight lang="cpp">corpseRemovalMaxTime = 1200; // seconds. Default: 3600</syntaxhighlight> | ||
{{ArgTitle|4| | {{ArgTitle|4|disposalCheckPeriod|{{GVI|arma3|2.18}}}} | ||
How often the remains collector checks monitored remains for removal. The value can be between 1 and 60. | |||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp">disposalCheckPeriod = 10; // seconds. Default: 5</syntaxhighlight> | ||
{{ArgTitle|4| | {{ArgTitle|4|minPlayerDistance|{{GVI|arma3|1.66}}}} | ||
This value applies for monitored corpses, wrecks and weaponholders. The minimum distance between remains and the nearest player before the remains are allowed to be removed by the remains collector. | |||
The remains closer than minimum distance to nearest player will not be removed until distance increases. If 'minPlayerDistance' is set to 0, the distance check is not performed. | |||
<syntaxhighlight lang="cpp">minPlayerDistance = 50; // meters. Default: 0</syntaxhighlight> | |||
{{ArgTitle|4|minPlayerDistance[]|{{GVI|arma3|2.18}}}} | |||
Array variant of the above that allows setting individual minPlayerDistance for {corpses, wrecks, weaponholders} | |||
<syntaxhighlight lang="cpp">minPlayerDistance[] = {50, 60, 70}; // meters. Default: {0, 0, 0}</syntaxhighlight> | |||
{{ArgTitle|4|weaponholderManagerMode|{{GVI|arma3|2.18}}}} | |||
Sets the mode for automatic weapon holder removal. | |||
<syntaxhighlight lang="cpp">weaponholderManagerMode = 0; // Default SP: 0; Default MP: 2</syntaxhighlight> | |||
* 0 ''(Default in SP)'' = None - None of the weapon holders are automatically managed by the manager | |||
* 1 = All - All weapon holders are automatically managed by the manager | |||
* 2 ''(Default in MP)'' = None_But_Respawned - Only weapon holders from units that can respawn are automatically managed by the manager | |||
* 3 = All_But_Respawned - All weapon holders are automatically managed by the manager with the exception of the ones from respawned units (opposite to mode 2) | |||
{{ArgTitle|4|weaponholderLimit|{{GVI|arma3|2.18}}}} | |||
If the total number of monitored weapon holders is higher than '''weaponholderLimit''', the weapon holders that exist for longer than {{Link|#weaponholderRemovalMinTime}} will be considered for removal. | |||
<syntaxhighlight lang="cpp">weaponholderLimit = 1; // Default: 50</syntaxhighlight> | |||
{{ArgTitle|4|weaponholderRemovalMinTime|{{GVI|arma3|2.18}}}} | |||
See {{Link|#weaponholderLimit}} above. | |||
<syntaxhighlight lang="cpp">weaponholderRemovalMinTime = 60; // seconds. Default: 3600</syntaxhighlight> | |||
{{ArgTitle|4|weaponholderRemovalMaxTime|{{GVI|arma3|2.18}}}} | |||
Monitored weapon holders that exist for longer than '''weaponholderRemovalMaxTime''' will be considered for removal regardless of the {{Link|#weaponholderLimit}}. | |||
<syntaxhighlight lang="cpp">weaponholderRemovalMaxTime = 1200; // seconds. Default: 36000</syntaxhighlight> | |||
{{ArgTitle|4|wreckManagerMode|{{GVI|arma3|1.32}}}} | |||
Sets the mode for automatic wreck removal. | |||
<syntaxhighlight lang="cpp">wreckManagerMode = 0; // Default SP: 0; Default MP: 2</syntaxhighlight> | |||
* 0 ''(Default in SP)'' = None - None of the vehicles are automatically managed by the manager | |||
* 1 = All - All vehicles are automatically managed by the manager | |||
* 2 ''(Default in MP)'' = None_But_Respawned - Only vehicles that can respawn are automatically managed by the manager | |||
* 3 = All_But_Respawned - All vehicles are automatically managed by the manager with exception of respawned (opposite to mode 2) | |||
{{ArgTitle|4|wreckLimit|{{GVI|arma3|0.50}}}} | |||
If the total number of monitored wrecks is higher than '''wreckLimit''', the wrecks that existed for longer than {{Link|#wreckRemovalMinTime}} will be considered for removal. | |||
<syntaxhighlight lang="cpp">wreckLimit = 1; // seconds. Default: 15</syntaxhighlight> | <syntaxhighlight lang="cpp">wreckLimit = 1; // seconds. Default: 15</syntaxhighlight> | ||
{{ArgTitle|4|wreckRemovalMinTime|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|wreckRemovalMinTime|{{GVI|arma3|0.50}}}} | ||
See {{Link|#wreckLimit}} above. | |||
<syntaxhighlight lang="cpp">wreckRemovalMinTime = 60; // seconds. Default: 10</syntaxhighlight> | <syntaxhighlight lang="cpp">wreckRemovalMinTime = 60; // seconds. Default: 10</syntaxhighlight> | ||
{{ArgTitle|4|wreckRemovalMaxTime|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|wreckRemovalMaxTime|{{GVI|arma3|0.50}}}} | ||
Monitored wrecks that existed for longer than '''wreckRemovalMaxTime''' will be considered for removal regardless of the {{Link|#wreckLimit}}. | |||
<syntaxhighlight lang="cpp">wreckRemovalMaxTime = 1800; // seconds. Default: 36000 (10 hours)</syntaxhighlight> | <syntaxhighlight lang="cpp">wreckRemovalMaxTime = 1800; // seconds. Default: 36000 (10 hours)</syntaxhighlight> | ||
== Mission Parameters == | == Mission Parameters == | ||
Line 714: | Line 768: | ||
{{Feature|important| | {{Feature|important| | ||
* While '''param1'''/'''param2''' were introduced in ''' | * While '''param1'''/'''param2''' were introduced in '''{{Name|ofp|short}}''' and can still be used in later titles, it is '''highly recommended''' to use config class {{Link|#Params}}, available since {{arma2}} v1.03. | ||
* '''param1'''/'''param2''' variables can be overridden during the mission as they are '''not''' read-only. | * '''param1'''/'''param2''' variables can be overridden during the mission as they are '''not''' read-only. | ||
}} | }} | ||
Line 760: | Line 814: | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
See [[ | See [[Mission Parameters]] for more detailed information. | ||
Line 813: | Line 867: | ||
variable = "BLU_P"; | variable = "BLU_P"; | ||
}; | }; | ||
class oPoints | class oPoints | ||
{ | { | ||
Line 822: | Line 877: | ||
{| | {{ArgTitle|4|DifficultyOverride|{{GVI|arma3|2.16}}}} | ||
! colspan="7" | [[Channel IDs|Channel ID]] number command correspondence | Allow to override a difficulty setting for the mission only. | ||
|- | |||
At the moment, only {{hl|tacticalPing}} is supported. | |||
<syntaxhighlight lang="cpp"> | |||
class DifficultyOverride | |||
{ | |||
tacticalPing = 0; // disables tactical ping in this mission, even if selected difficulty preset has it enabled | |||
} | |||
</syntaxhighlight> | |||
{| class="wikitable float-right align-center" style="max-width: 50%" | |||
! colspan="7" | [[Channel IDs|Channel ID]] number command correspondence | |||
|- | |||
| Global | | Global | ||
| Side | | Side | ||
Line 861: | Line 928: | ||
{{Feature|informative| | {{Feature|informative| | ||
* This setting is not considered when hosting from {{Link| | * This setting is not considered when hosting from {{Link|Category:Eden Editor|Eden Editor}}. | ||
* A mission using '''disableChannels''' will override any <syntaxhighlight lang="cpp" inline>disableChannels[]</syntaxhighlight> value in {{Link|Arma 3: Server Config File|server config}}. | * A mission using '''disableChannels''' will override any <syntaxhighlight lang="cpp" inline>disableChannels[]</syntaxhighlight> value in {{Link|Arma 3: Server Config File|server config}}. | ||
}} | }} | ||
Line 870: | Line 937: | ||
{{GVI|arma3|1.60}} '''advanced syntax''': | {{GVI|arma3|1.60}} '''advanced syntax''': | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
disableChannels[] = { | disableChannels[] = | ||
{ | |||
{ | { | ||
0, // channel ID | 0, // channel ID | ||
Line 885: | Line 953: | ||
When AI is disabled, a player logging out will '''not''' have AI take control of his character. | When AI is disabled, a player logging out will '''not''' have AI take control of his character. | ||
{{Feature|important|Disabling AI units will prevent [[Multiplayer Scripting#Join In Progress|JIP]] into playable units if '''respawn''' is disabled.}} | {{Feature|important|Disabling AI units will prevent [[Multiplayer Scripting#Join In Progress|JIP]] into playable units if '''respawn''' is disabled.}} | ||
<syntaxhighlight lang="cpp">disabledAI = 1; // 0: | <syntaxhighlight lang="cpp">disabledAI = 1; // 0: AIs fill empty slots - 1: AIs are disabled, only players can spawn. Default: 0</syntaxhighlight> | ||
{{ArgTitle|4|disableRandomization|{{GVI|arma3|1.42}}}} | {{ArgTitle|4|disableRandomization|{{GVI|arma3|1.42}}}} | ||
Disables randomization on certain objects, object types or object kinds in the mission. For more information visit: [[Vehicle | Disables randomization on certain objects, object types or object kinds in the mission. For more information visit: [[Arma 3: Vehicle Customisation]] | ||
<syntaxhighlight lang="cpp">disableRandomization[] = { "All", "AllVehicles", "B_G_Offroad_01_F", "myCar", "MyUnitName", "B_Soldier_F" }; | <syntaxhighlight lang="cpp">disableRandomization[] = { "All", "AllVehicles", "B_G_Offroad_01_F", "myCar", "MyUnitName", "B_Soldier_F" };</syntaxhighlight> | ||
</syntaxhighlight> | |||
Note: This takes higher priority and will override the following: | Note: This takes higher priority and will override the following: | ||
<sqf>_vehicle setVariable ["BIS_enableRandomization", true]; // cannot enable for all or specific vehicles once disabled in description.ext</sqf> | <sqf>_vehicle setVariable ["BIS_enableRandomization", true]; // cannot enable for all or specific vehicles once disabled in description.ext</sqf> | ||
Line 897: | Line 964: | ||
{{ArgTitle|4|enableDebugConsole|{{GVI|arma3|0.50}}}} | {{ArgTitle|4|enableDebugConsole|{{GVI|arma3|0.50}}}} | ||
Allows access to the [[Arma 3: Debug Console|Debug Console]] outside of the editor | Allows access to the [[Arma 3: Debug Console|Debug Console]] in multiplayer scenarios outside of the editor. This has no effect for singleplayer scenarios. | ||
Since {{GVI|arma3|2.18}} also makes the console available in singleplayer scenarios. | |||
<syntaxhighlight lang="cpp">enableDebugConsole = 2; // dangerous in MP</syntaxhighlight> | <syntaxhighlight lang="cpp">enableDebugConsole = 2; // dangerous in MP</syntaxhighlight> | ||
* 0 - Default behavior, available only in editor | * 0 - Default behavior, available only in editor | ||
Line 923: | Line 993: | ||
* 1 - enabled (advanced mode) | * 1 - enabled (advanced mode) | ||
* 2 - disabled (default flight mode) | * 2 - disabled (default flight mode) | ||
{{ArgTitle|4|hostDoesNotSkipLobby|{{GVI|arma3|2.06}}}} | |||
Stops hosting player from skipping the lobby if {{hl|c= skipLobby = 1;}} is used | |||
<syntaxhighlight lang="cpp">hostDoesNotSkipLobby = 1;</syntaxhighlight> | |||
Line 935: | Line 1,010: | ||
Score is related to the star display in the debriefing screen (OFP:CWC). | Score is related to the star display in the debriefing screen (OFP:CWC). | ||
The score can be influenced during a missions progress by using the [[addRating]] command. | The score can be influenced during a missions progress by using the [[addRating]] command. | ||
<syntaxhighlight lang="cpp">minScore = 0; | <syntaxhighlight lang="cpp"> | ||
minScore = 0; | |||
avgScore = 1800; | avgScore = 1800; | ||
maxScore = 75000;</syntaxhighlight> | maxScore = 75000; | ||
{{Feature|important|Values have to follow this formula: '''minScore < avgScore < maxScore'''. Any other combinations can lead to game freeze upon mission end. | </syntaxhighlight> | ||
}} | {{Feature|important|Values have to follow this formula: '''minScore < avgScore < maxScore'''. Any other combinations can lead to game freeze upon mission end.}} | ||
{{ArgTitle|4|missionGroup|{{GVI|arma3|2.10}}}} | |||
Shared mission group name to override default [[missionName]] used with [[missionProfileNamespace]], [[saveMissionProfileNamespace]] | |||
<syntaxhighlight lang="cpp">missionGroup = "SomeNameDescribingCommonMissions";</syntaxhighlight> | |||
Line 951: | Line 1,032: | ||
[[Display]] parameter of the resulting [[dialog]] is available ''via'' <sqf inline>_this select 0</sqf> inside the script. | [[Display]] parameter of the resulting [[dialog]] is available ''via'' <sqf inline>_this select 0</sqf> inside the script. | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
onPauseScript = "myOnPauseScript.sqf"; | onPauseScript = "myOnPauseScript.sqf"; // file path | ||
onPauseScript[] = { myOnPauseFunction1, myOnPauseFunction2 }; // function name - since Arma 3 | onPauseScript[] = { "myOnPauseFunction1", "myOnPauseFunction2" }; // function name - since Arma 3 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 981: | Line 1,062: | ||
{{ArgTitle|4|skipLobby|{{GVI|arma3|1.60}}}} | {{ArgTitle|4|skipLobby|{{GVI|arma3|1.60}}}} | ||
When enabled, joining player will join the mission bypassing role selection screen. The joinUnassigned param will be set to 1 automatically, so that player receives first available role from mission template. When leaving such mission, player will go straight back to server browser. | When enabled, joining player will join the mission bypassing role selection screen. | ||
The {{Link|#joinUnassigned}} param will be set to 1 automatically, so that player receives first available role from mission template. When leaving such mission, player will go straight back to server browser. | |||
<syntaxhighlight lang="cpp">skipLobby = 1; // 0: disabled - 1: enabled. Default: 0</syntaxhighlight> | <syntaxhighlight lang="cpp">skipLobby = 1; // 0: disabled - 1: enabled. Default: 0</syntaxhighlight> | ||
== Server Security == | == Server Security == | ||
Line 1,080: | Line 1,154: | ||
icon3D = "\A3\UI_F_MP_Mark\Data\Tasks\Types3D\Attack_ca.paa"; | icon3D = "\A3\UI_F_MP_Mark\Data\Tasks\Types3D\Attack_ca.paa"; | ||
}; | }; | ||
class Defend | class Defend | ||
{ | { | ||
Line 1,100: | Line 1,175: | ||
marker = "my task destination marker"; | marker = "my task destination marker"; | ||
}; | }; | ||
class myTask2 | class myTask2 | ||
{ | { | ||
Line 1,115: | Line 1,191: | ||
class CfgTaskEnhancements | class CfgTaskEnhancements | ||
{ | { | ||
enable = 1; // 0: disable new task features (default), 1: enable new task features | enable = 1; // 0: disable new task features (default), 1: enable new task features and add new task markers and task widgets into the map | ||
3d = 1; // 0: do not use new 3D markers (default), 1: replace task waypoints with new 3D markers | 3d = 1; // 0: do not use new 3D markers (default), 1: replace task waypoints with new 3D markers | ||
3dDrawDist = 0; // 3d marker draw distance (default: 2000) | 3dDrawDist = 0; // 3d marker draw distance (default: 2000) | ||
Line 1,142: | Line 1,218: | ||
file = ""; // some kind of custom .p3d file for camera | file = ""; // some kind of custom .p3d file for camera | ||
}; | }; | ||
class AutoTerminate: External | |||
class AutoTerminate : External | |||
{ | { | ||
type = 3; // CamChained | type = 3; // CamChained | ||
Line 1,154: | Line 1,231: | ||
<sqf> | <sqf> | ||
showCinemaBorder false; | showCinemaBorder false; | ||
_dur = getNumber (missionConfigFile >> "CfgCameraEffects" >> "Array" >> _this >> "duration"); | private _dur = getNumber (missionConfigFile >> "CfgCameraEffects" >> "Array" >> _this >> "duration"); | ||
_cam = "camera" camCreate (player modelToWorld [0, -100, 50]); | private _cam = "camera" camCreate (player modelToWorld [0, -100, 50]); | ||
_cam camSetTarget player; | _cam camSetTarget player; | ||
_cam camSetRelPos [0, -0.1, 1.8]; | _cam camSetRelPos [0, -0.1, 1.8]; | ||
Line 1,170: | Line 1,247: | ||
{{ArgTitle|4|CfgCommands|{{GVI|arma3|1.50}}}} | {{ArgTitle|4|CfgCommands|{{GVI|arma3|1.50}}}} | ||
This entry contains a list of configurations for certain scripting commands (currently only {{hl|allowedHTMLLoadURIs}} for [[htmlLoad]], [[ctrlSetURL]] and [[menuSetURL]]). Can be defined in [[Config.cpp]] or in campaign's or mission's [[Description.ext]]; the most local variant is used. | This entry contains a list of configurations for certain scripting commands (currently only {{hl|allowedHTMLLoadURIs}} for [[htmlLoad]], [[ctrlSetURL]] and [[menuSetURL]]). | ||
Can be defined in [[Config.cpp]] or in campaign's or mission's [[Description.ext]]; the most local variant is used. | |||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
class CfgCommands | class CfgCommands | ||
Line 1,176: | Line 1,254: | ||
// a list of URIs supported by HTMLLoad | // a list of URIs supported by HTMLLoad | ||
// note that in case of clients connected to dedicated server, restrictions defined in its config have priority. | // note that in case of clients connected to dedicated server, restrictions defined in its config have priority. | ||
allowedHTMLLoadURIs[] = { | allowedHTMLLoadURIs[] = | ||
{ | |||
"*.mywebsite.com", // strings support wildcards '*' and '?' | "*.mywebsite.com", // strings support wildcards '*' and '?' | ||
"*.mywebsite2.com/something/*", | "*.mywebsite2.com/something/*", | ||
// ... | |||
"*.mywebsiteN.com", | "*.mywebsiteN.com", | ||
}; | }; | ||
Line 1,300: | Line 1,379: | ||
title = "I am ready for your orders."; | title = "I am ready for your orders."; | ||
}; | }; | ||
class RadioMsg2 | class RadioMsg2 | ||
{ | { | ||
Line 1,314: | Line 1,394: | ||
==== CfgSentences ==== | ==== CfgSentences ==== | ||
See [[Conversations#.bikb BIS_fnc_kbTell | See [[Conversations#.bikb BIS_fnc_kbTell Example|Conversations]] for more information. | ||
Line 1,335: | Line 1,415: | ||
titles[] = { 0, "*wolf growls*" }; // subtitles | titles[] = { 0, "*wolf growls*" }; // subtitles | ||
titlesFont = "LCD14"; // OFP:R - | titlesFont = "LCD14"; // OFP:R - titles font family | ||
titlesSize = 0.1; // OFP:R - titles font size | titlesSize = 0.1; // OFP:R - titles font size | ||
Line 1,344: | Line 1,424: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{| class="wikitable align-left-col-1 align-center-row-1 valign-top" | {| class="wikitable align-left-col-1 align-center-row-1 valign-top" | ||
! Property | ! style="min-width: 15em" |<!-- line returns are to force a <p> in the cell --> | ||
! Description | Property | ||
! | |||
Description | |||
|- | |- | ||
! | ! | ||
Line 1,364: | Line 1,446: | ||
* file path: the relative path to the file<br><!-- | * file path: the relative path to the file<br><!-- | ||
-->Since {{GVI|arma3|1.50|size= 0.75}} the path can be prefixed with {{hl|@}} in order to look directly into addon files, e.g {{hl|"@a3\Ui_F_Curator\Data\Sound\CfgSound\visionMode"}} | -->Since {{GVI|arma3|1.50|size= 0.75}} the path can be prefixed with {{hl|@}} in order to look directly into addon files, e.g {{hl|"@a3\Ui_F_Curator\Data\Sound\CfgSound\visionMode"}} | ||
* volume: between 0 and 5, 1 being normal volume {{Feature|informative|Volume may at some point be found defined with '''db''' (e.g {{hl|db-40}}). The formula for db-based volume is: {{hl|10^(''number''*(1/20))}}.}} | * volume: between 0 and 5, 1 being normal volume<br>{{Feature|informative|Volume may at some point be found defined with '''db''' (e.g {{hl|db-40}}). The formula for db-based volume is: {{hl|10^(''number'' * (1/20))}}.}} | ||
* pitch: 1 is normal pitch, 2 = chipmunk, 0.5 = Darth Vader, etc | * pitch: 1 is normal pitch, 2 = chipmunk, 0.5 = Darth Vader, etc | ||
* max distance: (Optional, default {{hl|''volume'' × 1000}}) maximum distance at which the sound is heard, in metres | * max distance: (Optional, default {{hl|''volume'' × 1000}}) maximum distance at which the sound is heard, in metres | ||
Line 1,398: | Line 1,480: | ||
{{GVI|arma3|0.50|size= 0.75}} titlesStructured | {{GVI|arma3|0.50|size= 0.75}} titlesStructured | ||
| | | | ||
(Optional) if set to 1, treat titles as [[Structured Text]] (e.g <syntaxhighlight lang=" | (Optional) if set to 1, treat titles as [[Structured Text]] (e.g <syntaxhighlight lang="html" inline>0, "<t color=""#ff0000"">Red text</t>"</syntaxhighlight>) | ||
|} | |} | ||
Line 1,432: | Line 1,514: | ||
{ | { | ||
// Classic selectRandom | // Classic selectRandom | ||
class MyFirstTemplate: Default | class MyFirstTemplate : Default | ||
{ | { | ||
headgearList[] = | headgearList[] = | ||
Line 1,440: | Line 1,522: | ||
"H_Cap_oli_hs" | "H_Cap_oli_hs" | ||
}; | }; | ||
facewearList[] = | facewearList[] = | ||
{ | { | ||
Line 1,449: | Line 1,532: | ||
// the probabilities will be considered, weighted random | // the probabilities will be considered, weighted random | ||
class MySecondTemplate: Default | class MySecondTemplate : Default | ||
{ | { | ||
headgearList[] = | headgearList[] = | ||
Line 1,457: | Line 1,540: | ||
"H_Cap_oli_hs", 0.55 | "H_Cap_oli_hs", 0.55 | ||
}; | }; | ||
facewearList[] = | facewearList[] = | ||
{ | { | ||
Line 1,469: | Line 1,553: | ||
Example: | Example: | ||
<sqf> | <sqf> | ||
[myUnit, "MyFirstTemplate"] | [myUnit, "MyFirstTemplate"] call BIS_fnc_unitHeadgear; | ||
[myUnit, "MySecondTemplate"] call BIS_fnc_unitHeadgear; | [myUnit, "MySecondTemplate"] call BIS_fnc_unitHeadgear; | ||
</sqf> | </sqf> | ||
Line 1,489: | Line 1,573: | ||
{{ArgTitle|4|CfgVehicleTemplates|{{GVI|arma3|1.42}}}} | {{ArgTitle|4|CfgVehicleTemplates|{{GVI|arma3|1.42}}}} | ||
This class is used to create vehicle templates used by the [[Vehicle | This class is used to create vehicle templates used by the [[Arma 3: Vehicle Customisation|Vehicle Customization system]]. | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
class CfgVehicleTemplates | class CfgVehicleTemplates | ||
Line 1,502: | Line 1,586: | ||
"guerilla_02", 1 | "guerilla_02", 1 | ||
}; | }; | ||
animationList[] = | animationList[] = | ||
{ | { | ||
Line 1,516: | Line 1,601: | ||
{{ConfigPage|end}} | {{ConfigPage|end}} | ||
</div><!-- scrolling div end --> | |||
<div> | |||
<div style="margin-left: 2em; position: sticky; top: 2em"> | |||
{{TabView | |||
|title1= Full TOC | |||
|title2= Mini TOC | |||
|content1= <div style="overflow: auto; max-height: 80vh; min-width: 22em">{{TOC}}</div> | |||
|content2= | |||
<div style="min-width: 12em"> | |||
{{TOC|subtoc|title= Main Categories|content= | |||
* 1. {{Link|#Mission Information}} | |||
* 2. {{Link|#Respawn/Revive}} | |||
* 3. {{Link|#Mission Keys}} | |||
* 4. {{Link|#Player's UI}} | |||
* 5. {{Link|#Starting Gear}} | |||
* 6. {{Link|#Corpse and Wreck Management}} | |||
* 7. {{Link|#Mission Parameters}} | |||
* 8. {{Link|#Mission Settings}} | |||
* 9. {{Link|#Server Security}} | |||
* 10. {{Link|#Tasks}} | |||
* 11. {{Link|#Custom Content Definition}} | |||
}} | |||
</div> | |||
</div><!-- sticky end --> | |||
}}<!-- TabView end --> | |||
</div> | |||
</div><!-- flex end --> | |||
[[Category:Mission Editing]] | [[Category:Mission Editing]] |
Latest revision as of 14:51, 16 October 2024
The Description.ext is a missionConfigFile and is used to set the overall mission attributes or to define global properties that will be available for other scripts. It is placed in the mission root folder and uses the same syntax as the config.cpp file, but supports only a limited number of config classes.
Additionally, many attributes can also be set via the Eden Editor, where changes are automatically refreshed upon scenario preview. In the 2D Editor the mission has to be reloaded for changes to be applied.
Mission Information
This section helps you find out how to customise Mission overall external appearance, from Mission Overview to Loading Screens.
author = "Varanon";
onLoadName = "Point Insertion";
onLoadMission = "A group of NATO soldiers is tasked with sabotaging a coastal defense.";
loadScreen = "images\loadScreen.paa";
class Header
{
gameType = "Coop"; // Game type
minPlayers = 1; // minimum number of players the mission supports
maxPlayers = 10; // maximum number of players the mission supports
};
author
Mission author's name. The default loading screen shows this string below the onLoadName in a smaller font prefixed by "by ".
onLoadName
String (usually mission name) shown during mission loading. The string is shown in a slightly larger font above the loadScreen. The onLoadMission text is placed below the load screen and the header gameType determines the game type on top of the box.
onLoadMission
Displays a message while the mission is loading. Note that a mission that takes very little time to load will only display the message for a short time. In OFP this is the name you see when selecting a mission in MP and also the name that is presented to the Multiplayer browser.
onLoadMission = "YourMissionName";
loadScreen
The picture to be shown while the mission is loaded. The path is relative to the mission folder. Must be in PAA file format. 2:1 aspect ratio (different aspect are rendered correctly as well, but won't cover the whole area). Ideally 1024x512 pixels.
loadScreen = "pictures\intro.paa";
header
This class defines mission type and other settings displayed in the multiplayer browser.
class Header
{
gameType = "CTF"; // Game type
minPlayers = 1; // minimum number of players the mission supports
maxPlayers = 10; // maximum number of players the mission supports
};
See Multiplayer Game Types for more detailed information.
onLoadIntro
Displays a message while the intro is loading.
onLoadIntro = "YourMessage";
onLoadMissionTime
Define whether you will see the time and date displayed while the mission loads. Effect unkown in Arma 3.
onLoadMissionTime = 1; // 0: disabled - 1: enabled. Default: 1
onLoadIntroTime
Define whether you will see the time and date displayed while the intro loads.
onLoadIntroTime = 1; // 0: disabled - 1: enabled. Default: 0
briefingName
Mission name displayed in the mission selection menu.
briefingName = "TAG 1-5 CO My super mission";
CfgLoadingTexts
Define mission specific loading texts.
overviewPicture
Path to image which will be displayed when the mission is highlighted on the mission selection screen. Image should be .paa format and in 2:1 aspect ratio – ideally 1024×512 (Arma 3).
overviewText
Text to be displayed below the overviewPicture on the mission selection screen when the mission is available to play.
overviewTextLocked
Text to be displayed below the overviewPicture on the mission selection screen when the mission is locked from play.
onBriefingGear
Defines a sound (defined in CfgSounds) that will play when accessing the gear part of the briefing. See Briefing.html.
onBriefingGear = "SoundName";
onBriefingGroup
Defines a sound (defined in CfgSounds) that will play when accessing the group part of the briefing. See Briefing.html.
onBriefingGroup = "SoundName";
onBriefingPlan
Defines a sound (defined in CfgSounds) that will play when accessing the plan part of the briefing. See Briefing.html.
onBriefingPlan = "SoundName";
CfgWorlds
Could be used to override the following properties used on mission loading: author, description, pictureMap, pictureShot, loadingTexts[]. If a specific world name given as a subclass, override will happen only when this world is loading. If subclass with name Any is used, then aforementioned properties would be overridden for any world that is loading.
class CfgWorlds
{
class Any // or specific world name
{
author = "author";
description = "description";
pictureMap = "picturepath";
pictureShot = "picturepath";
loadingTexts[] = { "text1", "text2", "text3" };
};
};
Respawn/Revive
This section talks about respawn and revive actions.
- for Arma 2, see First Aid.
- for Arma 3, see Arma 3: Respawn and Arma 3: Revive.
ID | Text version | Description |
---|---|---|
0 | "NONE" | No respawn |
1 | "BIRD" | Respawn as a seagull |
2 | "INSTANT" | Respawn just where you died. |
3 | "BASE" | Respawn in base. A respawn marker is needed. If no marker is defined, respawn behaviour will be the same as "INSTANT". Marker role names:
Side can be one of west, east, guerrila (sic), civilian, e.g respawn_west. |
4 | "GROUP" | Respawn in your group. If there is no remaining AI, you will become a seagull. |
5 | "SIDE" | 1.08 Respawn into an AI unit on your side (if there's no AI left, you'll become a seagull). With this respawn type, team switch is also available to any AI controlled playable units. |
respawn
Sets soldiers and vehicles respawn type.
respawn = 0; // Default: 0 for SP, 1 for MP
respawn = "SIDE"; // text version works too
respawnVehicle
Sets vehicles only respawn type. Vehicles can only have 2 (or "INSTANT") and 3 (or "BASE") respawn mode. All other modes are equal to disabled respawn. If 'respawnVehicle' is not defined, the 'respawn' value is used.
respawnVehicle = 3; // number version
respawnVehicle = "BASE"; // text version works too
respawnButton
Enable or disable the respawn button in the menu for INSTANT and BASE respawn types.
respawnButton = 0; // 0: disabled - 1: enabled. Default: 1
respawnDelay
Set respawn delay in seconds.
respawnDelay = 42; // Default: ?
respawnVehicleDelay
Set vehicle respawn delay in seconds.
respawnVehicleDelay = 12; // Default: ?
respawnDialog
Show the scoreboard and respawn countdown timer for a player if he is killed with respawn type 3.
respawnDialog = 0; // 0: disabled - 1: enabled. Default: 1
respawnOnStart
Respawn player when he joins the game. Available only for INSTANT and BASE respawn types.
respawnOnStart = 1; // Default: 0
- -1 - Dont respawn on start. Don't run respawn script on start.
- 0 - Dont respawn on start. Run respawn script on start.
- 1 - Respawn on start. Run respawn script on start.
respawnTemplates
Respawn templates from CfgRespawnTemplates. You can combine any number of them together.
respawnTemplates[] = { "Counter", "Wave" };
respawnWeapons
Set weapons players will receive upon respawn. respawnMagazines has to be defined as well.
respawnWeapons[] = { "arifle_Katiba_GL_F" };
respawnMagazines
Set magazines players will receive upon respawn. respawnWeapons has to be defined as well.
respawnMagazines[] = { "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green" };
reviveMode
Define if Revive mode is enabled.
reviveMode = 1; // Default: 0
- 0 - disabled
- 1 - enabled
- 2 - controlled by player attributes
reviveUnconsciousStateMode
Define revive mode.
reviveUnconsciousStateMode = 0; // Default: 0
- 0 - basic mode
- 1 - advanced mode
- 2 - realistic
See damage model for more detailed information.
reviveRequiredTrait
Define if only a medic (or unit with medic trait) can perform a revive.
reviveRequiredTrait = 0; // 0: disabled - 1: enabled. Default: 0
reviveRequiredItems
Define if a medical item (first aid kit or medkit) is required to begin a revive process.
reviveRequiredItems = 2; // Default: ?
- 0 - none
- 1 - medkit
- 2 - medkit or first aid kit
reviveRequiredItemsFakConsumed
Define if a first aid kit is consumed on reviving a teammate
reviveRequiredItemsFakConsumed = 1; // 0: disabled - 1: enabled. Default: ?
reviveMedicSpeedMultiplier
Speed multiplier for revive performed by medic
reviveMedicSpeedMultiplier = 2; // medic revive will be two times faster compared to another soldier
reviveDelay
The time in seconds it takes to revive an incapacitated unit. Having a Medikit will halve this time.
reviveDelay = 10; // Default: 6
reviveForceRespawnDelay
The time in seconds it takes for an incapacitated unit to force their respawn.
reviveForceRespawnDelay = 5; // Default: 3
reviveBleedOutDelay
The time in seconds it takes for a unit to bleed out.
reviveBleedOutDelay = 300; // Default: 120
enablePlayerAddRespawn
Usage unsure, may be related to respawn template MenuPosition.
enablePlayerAddRespawn = 0; // Disable framework respawn
CfgRespawnInventory
This class defines a respawn inventory, used with MenuInventory respawn template.
Loadouts with no assigned role are automatically assigned to the "Default" role.
See also BIS_fnc_addRespawnInventory, BIS_fnc_removeRespawnInventory
class CfgRespawnInventory
{
class Blufor1
{
displayName = "Light"; // Name visible in the menu
icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa"; // Icon displayed next to the name
role = "Assault"; // Optional, see CfgRoles
// Loadout definition, uses same entries as CfgVehicles classes
weapons[] =
{
"arifle_MXC_F",
"Binocular"
};
magazines[] =
{
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag",
"SmokeShell"
};
items[] =
{
"FirstAidKit"
};
linkedItems[] =
{
"V_Chestrig_khk",
"H_Watchcap_blk",
"optic_Aco",
"acc_flashlight",
"ItemMap",
"ItemCompass",
"ItemWatch",
"ItemRadio"
};
uniformClass = "U_B_CombatUniform_mcam_tshirt";
backpack = "B_AssaultPack_mcamo";
};
class Blufor2
{
// Alternative configuration pointing to a CfgVehicles class. Loadout will be copied from it.
vehicle = "B_soldier_AR_F"
};
};
CfgRespawnTemplates
This class defines new respawn templates to be used with respawn templates.
class CfgRespawnTemplates
{
// class used in respawnTemplates entry
class myTag_beacon
{
// function or script executed upon death
// parameters passed into it are the same as are passed into onPlayerKilled.sqf file
onPlayerKilled = "\myAddon\scripts\respawnBeacon.sqf";
// function or script executed upon respawn
// parameters passed into it are the same as are passed into onPlayerRespawn.sqf file
onPlayerRespawn = "\myAddon\scripts\respawnBeacon.sqf";
// default respawn delay
// can be overwitten by description.ext attribute of the same name
respawnDelay = 20;
// see respawnOnStart for description and limitations
// can be overridden by description.ext attribute of the same name
respawnOnStart = 1;
};
class Spectator
{
onPlayerRespawn = "BIS_fnc_respawnSpectator"; // a function can be used instead of a script
};
};
CfgRoles
This class defines Respawn roles. The main purpose of Roles is to make things clearer and simpler for player when selecting a loadout. All the loadouts available in a mission are now divided into various roles. Mission designer can use roles already created in the game config, or custom roles can be defined in description.ext file. Loadouts with no role assigned are automatically assigned to the Default role.
// all default roles with icons
class CfgRoles
{
class Assault
{
displayName = "$STR_A3_Role_Assault";
icon = "a3\Ui_f\data\GUI\Cfg\RespawnRoles\assault_ca.paa";
};
class Support
{
displayName = "$STR_A3_Role_Support";
icon = "a3\Ui_f\data\GUI\Cfg\RespawnRoles\support_ca.paa";
};
class Recon
{
displayName = "$STR_A3_Role_Recon";
icon = "a3\Ui_f\data\GUI\Cfg\RespawnRoles\recon_ca.paa";
};
};
Mission Keys
Mission keys are used to lock/unlock certain missions until you completed other ones. It can also be used in mission to know which missions you finished.
Activated keys can be found in user profile (e.g documents\username.Arma3profile) under activeKeys section.
See also commands activateKey, isKeyActive and deActivateKey for more detailed information.
keys
List of keys from which keysLimit counts the done ones.
keys[] = { "key1", "key2", "key3" };
keysLimit
Number of keys from the keys list needed done to unlock (and be able to play) this mission.
keysLimit = 2;
doneKeys
Name of keys marked done on mission completion.
doneKeys[] = { "key4" };
Player's UI
This section explains HUD customisation possibilities.
See also commands:
- showCompass, shownCompass, visibleCompass
- showGPS, shownGPS, visibleGPS
- showHUD, shownHUD
- showWatch, shownWatch, visibleWatch
- showUAVFeed, shownUAVFeed 1.16
- showPad, shownPad 1.00
overrideFeedback
Some of the feedback effects in Arma 3 are scripted and executed by functions_f
overrideFeedback = 1; // 0: force default handling, 1+: allow custom handling. Default: not set
showHUD
Enables/Disables the following IGUI elements:
- Vehicle and unit info
- Radar and tactical display
- Vehicle compass
- Tank direction indicator
- Commanding menu
- Group info bar
- HUD weapon cursors
- Vehicle display panels
- Kill messages
- 3D Icons visibility
showHUD = 0; // 0: disabled - 1: enabled. Default: 1
The effect of using the above showHUD param is different from the effects of showHUD scripting command, both methods are rather complementary to each other.
Since Arma 3 v1.50 showHUD param can be an array to allow control over separate HUD elements, for example:
showHUD[] =
{
1, // Scripted HUD (same as showHUD command)
1, // Vehicle and unit info
0, // Vehicle radar [HIDDEN]
0, // Vehicle compass [HIDDEN]
1, // Tank direction indicator
1, // Commanding menu
1, // Group info bar
1, // HUD weapon cursors
1, // Vehicle display panels
1, // "x killed by y" systemChat messages
1 // force show drawIcon3D icons
};
showCompass
Defines if the compass is visible.
showCompass = 0; // 0: disabled - 1: enabled. Default: 1
showGPS
Enables/Disables the GPS.
showGPS = 0; // 0: disabled - 1: enabled. Default: 1
In Armed Assault 1.04 toggle this option to disable the mini map attached to the GPS.
showGroupIndicator
Changes default GPS mini map into a radar like display that indicates group members relative position to the player.
showGroupIndicator = 1; // 0: disabled - 1: enabled. Default: 0
showMap
Defines if the map is shown after the mission starts.
showMap = 0; // 0: disabled - 1: enabled. Default: 1
showNotePad
In Armed Assault, defines if the NotePad is shown after the mission starts.
showNotePad = 0; // 0: disabled - 1: enabled. Default: 1
showPad
Defines if the NotePad is shown after the mission starts. Only in OFP:CWC.
showPad = 0; // 0: disabled - 1: enabled. Default: 1
showWatch
Defines if the watch is visible.
showWatch = 0; // 0: disabled - 1: enabled. Default: 1
showUAVFeed
Enables/Disables the UAV Feed.
showUAVFeed = 0; // 0: disabled - 1: enabled. Default: 1
showSquadRadar
Defines if the Squad Radar is visible.
showSquadRadar = 0; // 0: disabled - 1: enabled. Default: 0
overrideHazeQuality
0/1/2 - VeryLow/Low/Standard - Forces haze quality and in MP has priority over the server 'overrideHazeQuality' option. Standard(2) - mod config driven. Default(-1) - do not force.
overrideHazeQuality = 1; // Low
Starting Gear
Starting gear points to briefing-available equipment. For respawn equipment, see Respawn/Revive.
See also Weapon Pool Commands for more detailed information about weapon pool system.
weapons
Set weapons available to players during the briefing.
class Weapons
{
class AK74 { count = 8; };
class RPG7V { count = 2; };
class Binocular { count = 2; };
};
magazines
Set magazines available to players during the briefing.
class Magazines
{
class 30Rnd_545x39_AK { count = 32; };
class PG7V { count = 6; };
class HandGrenade { count = 16; };
};
backpacks
Set backpacks available to players during the briefing.
class Backpacks
{
class US_Patrol_Pack_EP1 { count = 4; };
class US_Assault_Pack_EP1 { count = 4; };
};
allowSubordinatesTakeWeapons
Allows subordinates (i.e., not leaders) to equip items defined in weapons, magazines and backpacks.
allowSubordinatesTakeWeapons = 1; // 0: disabled - 1: enabled. Default: ?
arsenalRestrictedItems
Used to blacklist undesired Arsenal equipment, which prevents user saved loadout from being loaded if it contains restricted items.
arsenalRestrictedItems[] = { "U_B_Soldier_VR" };
allowProfileGlasses
When set to 0 will stop glasses set in player profile from being added to player's gear:
allowProfileGlasses = 0;
Corpse and Wreck Management
This section explains how to use game-included garbage collector (GC) for better performances.
See also addToRemainsCollector, isInRemainsCollector and removeFromRemainsCollector commands.
The Remains Collector, if enabled, runs at background on every client and clears mission of corpses and wrecks depending on set params and mode. Individual objects can be added or removed from collector monitoring. Items in remains collector are sorted depending on how valuable they are. The most valuable items are pushed to the end of remains array and will be deleted last if possible; for example, the flag carrier is never deleted while it has the flag.
corpseManagerMode
Sets the mode for automatic corpse removal.
corpseManagerMode = 0; // Default SP: 0; Default MP: 2
- 0 (Default in SP) = None - None of the units are automatically managed by the manager
- 1 = All - All units are automatically managed by the manager
- 2 (Default in MP) = None_But_Respawned - Only units that can respawn are automatically managed by the manager
- 3 = All_But_Respawned - All units are automatically managed by the manager with the exception of respawned ones (opposite to mode 2)
corpseLimit
If the total number of monitored corpses is higher than corpseLimit, the corpses that have been dead for longer than corpseRemovalMinTime will be considered for removal.
corpseLimit = 1; // Default: 15
corpseRemovalMinTime
See corpseLimit above.
corpseRemovalMinTime = 60; // seconds. Default: 10
corpseRemovalMaxTime
Monitored corpses that are dead for longer than corpseRemovalMaxTime will be considered for removal regardless of the corpseLimit.
corpseRemovalMaxTime = 1200; // seconds. Default: 3600
disposalCheckPeriod
How often the remains collector checks monitored remains for removal. The value can be between 1 and 60.
disposalCheckPeriod = 10; // seconds. Default: 5
minPlayerDistance
This value applies for monitored corpses, wrecks and weaponholders. The minimum distance between remains and the nearest player before the remains are allowed to be removed by the remains collector. The remains closer than minimum distance to nearest player will not be removed until distance increases. If 'minPlayerDistance' is set to 0, the distance check is not performed.
minPlayerDistance = 50; // meters. Default: 0
minPlayerDistance[]
Array variant of the above that allows setting individual minPlayerDistance for {corpses, wrecks, weaponholders}
minPlayerDistance[] = {50, 60, 70}; // meters. Default: {0, 0, 0}
weaponholderManagerMode
Sets the mode for automatic weapon holder removal.
weaponholderManagerMode = 0; // Default SP: 0; Default MP: 2
- 0 (Default in SP) = None - None of the weapon holders are automatically managed by the manager
- 1 = All - All weapon holders are automatically managed by the manager
- 2 (Default in MP) = None_But_Respawned - Only weapon holders from units that can respawn are automatically managed by the manager
- 3 = All_But_Respawned - All weapon holders are automatically managed by the manager with the exception of the ones from respawned units (opposite to mode 2)
weaponholderLimit
If the total number of monitored weapon holders is higher than weaponholderLimit, the weapon holders that exist for longer than weaponholderRemovalMinTime will be considered for removal.
weaponholderLimit = 1; // Default: 50
weaponholderRemovalMinTime
See weaponholderLimit above.
weaponholderRemovalMinTime = 60; // seconds. Default: 3600
weaponholderRemovalMaxTime
Monitored weapon holders that exist for longer than weaponholderRemovalMaxTime will be considered for removal regardless of the weaponholderLimit.
weaponholderRemovalMaxTime = 1200; // seconds. Default: 36000
wreckManagerMode
Sets the mode for automatic wreck removal.
wreckManagerMode = 0; // Default SP: 0; Default MP: 2
- 0 (Default in SP) = None - None of the vehicles are automatically managed by the manager
- 1 = All - All vehicles are automatically managed by the manager
- 2 (Default in MP) = None_But_Respawned - Only vehicles that can respawn are automatically managed by the manager
- 3 = All_But_Respawned - All vehicles are automatically managed by the manager with exception of respawned (opposite to mode 2)
wreckLimit
If the total number of monitored wrecks is higher than wreckLimit, the wrecks that existed for longer than wreckRemovalMinTime will be considered for removal.
wreckLimit = 1; // seconds. Default: 15
wreckRemovalMinTime
See wreckLimit above.
wreckRemovalMinTime = 60; // seconds. Default: 10
wreckRemovalMaxTime
Monitored wrecks that existed for longer than wreckRemovalMaxTime will be considered for removal regardless of the wreckLimit.
wreckRemovalMaxTime = 1800; // seconds. Default: 36000 (10 hours)
Mission Parameters
Mission parameters allow you to add settings to your creation. These settings are in-game accessible only in Multiplayer mode, but can also be accessed by commands for a scripted use in Singleplayer mode.
See Mission Parameters, along with BIS_fnc_getParamValue function (paramsArray usage is not recommended).
param1/param2
param1 and param2 are multiplayer options that can be seen in the multiplayer lobby. They can be useful for setting time limits and score limits in such games as Capture the Flag and Death Matches. Other popular uses include time acceleration, setting the mission difficulty or switching the intro on/off.
In the mission, variables param1 and param2 have the corresponding values of the chosen options.
titleParam1 = "Time limit:";
valuesParam1[] = { 0, 300, 600, 900 };
defValueParam1 = 900;
textsParam1[] = { "Unlimited", "5 min", "10 min", "15 min" };
titleParam2 = "Score to win:";
valuesParam2[] = { 10000, 5, 7, 10, 15, 20, 25, 30 };
defValueParam2 = 5;
textsParam2[] = { "Unlimited", 5, 7, 10, 15, 20, 25, 30 };
Example:
Params
These are Multiplayer parameters, available in the lobby by the server administrator. They are intended as a replacement for param1/param2.
class Params
{
class ViewDistance
{
// Visible name in lobby settings list
title = "View distance";
// must be integers - commas e.g 1.5 are not allowed
values[] = { 500, 1000, 2000, 5000 };
// Description of each selectable item - must have the same number of items as 'values'
// If texts are missing, the values will be displayed instead
texts[] = { "500m", "1000m", "2 km", "5 km" };
// must be listed in 'values' array, otherwise 0 is used. If not integer, fallback value is 1
default = 1000;
// (optional) script file called when player joins, selected value is passed as an argument
file = "setViewDistance.sqf";
};
};
See Mission Parameters for more detailed information.
Mission Settings
These are non-editable, mission maker design settings.
They can be used for a smoother experience, briefing/debriefing behaviour, saving options, etc.
See also Debriefing for more detailed information.
aiKills
Enables AI units score to appear in score table.
aiKills = 1; // 0: disabled - 1: enabled. Default: 0
briefing
Skip briefing screen for SP missions. If no briefing.html is present, it is skipped anyway.
briefing = 0; // 0: disabled - 1: enabled. Default: 1
Briefing will still be displayed until all clients are connected and done loading.
debriefing
Defines if the debriefing is shown or not at the end of the mission.
debriefing = 0; // 0: disabled - 1: enabled. Default: 1
CfgDebriefing
Define custom mission endings or override the default endings (found under CfgDebriefing in the game's config file).
class CfgDebriefing
{
// Used when all players die in MP
class endDeath
{
title = "Both teams have died.";
description = "Everyone was killed by the bomb.";
picture = "KIA";
};
};
For a detailed description, see Arma 3: Debriefing.
CfgDebriefingSections
Define custom sections to be displayed on the debriefing screen. Useful for custom scoring systems or displaying player achievements.
class CfgDebriefingSections
{
class bPoints
{
title = "Blufor Points";
variable = "BLU_P";
};
class oPoints
{
title = "Opfor Points";
variable = "OPF_P";
};
};
DifficultyOverride
Allow to override a difficulty setting for the mission only.
At the moment, only tacticalPing is supported.
class DifficultyOverride
{
tacticalPing = 0; // disables tactical ping in this mission, even if selected difficulty preset has it enabled
}
Channel ID number command correspondence | ||||||
---|---|---|---|---|---|---|
Global | Side | Command | Group | Vehicle | Direct | System |
0 | 1 | 2 | 3 | 4 | 5 | N/A |
globalRadio | sideRadio | commandRadio | groupRadio | vehicleRadio | directSay | N/A |
globalChat | sideChat | commandChat | groupChat | vehicleChat | N/A | systemChat |
disableChannels
Disable global, side, command or system chat. MOTD and admin say have exception and will show in global.
1.62 basic syntax:
disableChannels[] = { 0, 3 }; // simple channel ID list
1.60 advanced syntax:
disableChannels[] =
{
{
0, // channel ID
false, // text chat remains enabled
true // voice chat is disabled
},
{ 3, true, true }
};
disabledAI
Multiplayer setting that removes all playable units which do not have a human player.
When AI is disabled, a player logging out will not have AI take control of his character.
disabledAI = 1; // 0: AIs fill empty slots - 1: AIs are disabled, only players can spawn. Default: 0
disableRandomization
Disables randomization on certain objects, object types or object kinds in the mission. For more information visit: Arma 3: Vehicle Customisation
disableRandomization[] = { "All", "AllVehicles", "B_G_Offroad_01_F", "myCar", "MyUnitName", "B_Soldier_F" };
Note: This takes higher priority and will override the following:
enableDebugConsole
Allows access to the Debug Console in multiplayer scenarios outside of the editor. This has no effect for singleplayer scenarios.
Since 2.18 also makes the console available in singleplayer scenarios.
enableDebugConsole = 2; // dangerous in MP
- 0 - Default behavior, available only in editor
- 1 - Available in SP and for hosts / logged in admins
- 2 - Available for everyone
Alternative since 1.72
enableDebugConsole[] = { "76561198XXXXXXXXX", "76561198YYYYYYYYY", }; // admins and players with their UID in this list have access
enableItemsDropping
Disable dropping items while swimming. Introduced in Arma 2: Operation Arrowhead BETA 1.60.93965. Doesn't seem to have any effect in Arma 3.
enableItemsDropping = 0; // 0: disabled - 1: enabled. Default: ?
enableTeamSwitch
Enables or disables Team Switch functionality in MP when respawn type is 5 (SIDE).
enableTeamSwitch = 0; // 0: disabled - 1: enabled. Default: 1
forceRotorLibSimulation
Force enable or disable RotorLib flight model.
forceRotorLibSimulation = 1; // Default: 0
- 0 - based on player's options
- 1 - enabled (advanced mode)
- 2 - disabled (default flight mode)
hostDoesNotSkipLobby
Stops hosting player from skipping the lobby if skipLobby = 1; is used
hostDoesNotSkipLobby = 1;
joinUnassigned
By default a new player is not auto assigned a free playable slot in the mission lobby in Multiplayer. Disable this setting to make him auto assigned to the side with least players.
joinUnassigned = 0; // 0: disabled - 1: enabled. Default: 1
minScore, avgScore, maxScore
Set minimum, average and maximum score for your mission. Score is related to the star display in the debriefing screen (OFP:CWC). The score can be influenced during a missions progress by using the addRating command.
minScore = 0;
avgScore = 1800;
maxScore = 75000;
missionGroup
Shared mission group name to override default missionName used with missionProfileNamespace, saveMissionProfileNamespace
missionGroup = "SomeNameDescribingCommonMissions";
onCheat
Executes custom statement when player enters the GETALLGEAR cheat (see: GETALLGEAR).
onCheat = "hint str _this";
onPauseScript
Executes a custom SQF script or function in scheduled environment (execVM) when player brings up Game Pause screen (presses 'Esc' button). Display parameter of the resulting dialog is available via _this select 0 inside the script.
onPauseScript = "myOnPauseScript.sqf"; // file path
onPauseScript[] = { "myOnPauseFunction1", "myOnPauseFunction2" }; // function name - since Arma 3
saving
Toggle saving possibility.
saving = 0; // 0: disabled - 1: enabled. Default: 1
scriptedPlayer
When scripted player is enabled, game no longer shows "No player select" error message upon mission start when no player unit is present.
scriptedPlayer = 1; // 0: disabled - 1: enabled. Default: 0
skipLobby
When enabled, joining player will join the mission bypassing role selection screen. The joinUnassigned param will be set to 1 automatically, so that player receives first available role from mission template. When leaving such mission, player will go straight back to server browser.
skipLobby = 1; // 0: disabled - 1: enabled. Default: 0
Server Security
This section underlines mission security settings for server. They can secure or break your mission, so be sure to use them wisely.
allowFunctionsLog
Allows functions to log to the RPT file.
allowFunctionsLog = 1; // 0: disabled - 1: enabled. Default: ?
allowFunctionsRecompile
As a security measure, functions are by default protected against rewriting during mission. This restriction does not apply in missions previewed from the editor.
allowFunctionsRecompile = 1; // 0: disabled - 1: enabled. Default: 0
zeusCompositionScriptLevel
zeusCompositionScriptLevel = 0; // 0: all scripts are forbidden
// 1: only attributes are allowed (including custom attributes added by mods)
// 2: all scripts are allowed including init scripts
// Default: 1
CfgDisabledCommands
Define disabled script commands. See CfgDisabledCommands for more detailed explanations.
CfgRemoteExec
Define remoteExec and remoteExecCall restrictions. See CfgRemoteExec for more detailed explanations and examples.
Tasks
Tasks are part of the mission. This section deals with the settings for them.
See also Arma 3: Task Framework - Task Overhaul
taskManagement_markers2D
Use new 2D markers.
taskManagement_markers2D = 1; // 0: disabled - 1: enabled. Default: 0
taskManagement_markers3D
Use new 3D markers.
taskManagement_markers3D = 1; // 0: disabled - 1: enabled. Default: 0
taskManagement_propagate
Propagate shared tasks to subordinates.
taskManagement_propagate = 1; // 0: disabled - 1: enabled. Default: 0
taskManagement_drawDist
3D marker maximum draw distance in meters. within this range, unassigned tasks are drawn on screen.
taskManagement_drawDist = 2500; // in meters. Default: 2000
CfgTasks
Agents task config
class CfgTasks
{
class Default
{
name = "";
fsm = ""; // relative path to fsm file
condition = ""; // relative path to sqf file (compiled and stored for the duration of run time, executed frequently)
description = "";
destination = "";
resources[] = {};
};
};
CfgTaskTypes
Define Task types and their icons.
class CfgTaskTypes
{
class Attack
{
icon = "\A3\UI_F_MP_Mark\Data\Tasks\Types\Attack_ca.paa";
icon3D = "\A3\UI_F_MP_Mark\Data\Tasks\Types3D\Attack_ca.paa";
};
class Defend
{
icon = "\A3\UI_F_MP_Mark\Data\Tasks\Types\Defend_ca.paa";
icon3D = "\A3\UI_F_MP_Mark\Data\Tasks\Types3D\Defend_ca.paa";
};
};
CfgTaskDescriptions
Define Task titles and descriptions.
class CfgTaskDescriptions
{
class myTask1
{
title = "my task title";
description = "my task description";
marker = "my task destination marker";
};
class myTask2
{
title = "STR_myTask2Title"; // note the lack of $ sign here!
description = "STR_myTask2Description"; // without $, it translates for each client
marker = "STR_myTask2Marker"; // with $ everyone sees the server's language
};
};
CfgTaskEnhancements
Defines tasks enhancements directly in a class.
class CfgTaskEnhancements
{
enable = 1; // 0: disable new task features (default), 1: enable new task features and add new task markers and task widgets into the map
3d = 1; // 0: do not use new 3D markers (default), 1: replace task waypoints with new 3D markers
3dDrawDist = 0; // 3d marker draw distance (default: 2000)
share = 1; // 0: do not count assigned players (default), 1: count how many players have the task assigned
propagate = 1; // 0: do not propagate (default), 1: propagate shared tasks to subordinates
};
Custom Content Definition
The following class definitions allow for mission-defined content like sounds, music, or more advanced content like functions
CfgCameraEffects
Configure custom cameraEffect.
class CfgCameraEffects
{
class Array
{
class External
{
type = 0;
duration = 6; // 3 seconds for some reason
file = ""; // some kind of custom .p3d file for camera
};
class AutoTerminate : External
{
type = 3; // CamChained
chain[] = { "External", "Terminate" }; // Terminate will trigger after 3 seconds
};
};
};
Example:
CfgCommunicationMenu
This entry allows to add commanding menu option in the communication menu. See Arma 3: Communication Menu for more information.
CfgCommands
This entry contains a list of configurations for certain scripting commands (currently only allowedHTMLLoadURIs for htmlLoad, ctrlSetURL and menuSetURL). Can be defined in Config.cpp or in campaign's or mission's Description.ext; the most local variant is used.
class CfgCommands
{
// a list of URIs supported by HTMLLoad
// note that in case of clients connected to dedicated server, restrictions defined in its config have priority.
allowedHTMLLoadURIs[] =
{
"*.mywebsite.com", // strings support wildcards '*' and '?'
"*.mywebsite2.com/something/*",
// ...
"*.mywebsiteN.com",
};
};
CfgFunctions
Define functions for your mission. For a detailed explanation, see:
Arma 3: Functions Library | |
Arma 2: Functions Library | |
Take On Helicopters: Functions Library |
CfgHints
Define Advanced Hints (similar to the Field Manual ones). See Advanced Hints for more information.
CfgIdentities
Define the identities of individual units, you can specify the face, type of glasses worn, voice, tone of voice and name of an identity. You then give a specific unit this identity by using the command setIdentity in the mission.
class CfgIdentities
{
class MyLittleSoldier
{
name = "Givens";
nameSound = "Givens"; // Arma 3 only!
face = "whiteHead_06";
glasses = "None";
speaker = "Male05ENG";
pitch = 1.1;
};
};
Example:
CfgLeaflets
Define leaflets for your missions. See Arma 3: Leaflets for more information.
CfgMusic
Defines music you can play with playMusic.
class CfgMusic
{
tracks[] = {};
class MyIntro
{
// display name
name = "My intro music";
// filename, volume, pitch
sound[] = { "\music\filename.ogg", db + 0, 1.0 };
};
class Ludwig9
{
name = "Ludwig Van Beethoven's Ninth Symphony";
sound[] = { "\music\ludwig9.ogg", db + 10, 1.0 };
};
};
Example:
CfgNotifications
Define custom notifications to be shown with BIS_fnc_showNotification. See Notification for more detailed information and examples.
CfgPostprocessTemplates
Define custom post-process effects, to Post Process Effects format (only "colorCorrection" and "filmGrain" are supported for now).
To be used with BIS_fnc_setPPeffectTemplate.
class CfgPostprocessTemplates
{
class MyPurplePP
{
colorCorrections[] = { 1, 1, 0, { 1, 1, 1, 0 }, { 1, 0.5, 1, 0 }, { 0.75, 0.25, 0, 1 } };
displayName = "Purple-ish!";
filmGrain[] = { 0.04, 1, 1, 0, 1 };
};
};
CfgRadio
Defines radio sentences you can play with these radio commands: customRadio, vehicleRadio, groupRadio, sideRadio, globalRadio.
class CfgRadio
{
sounds[] = {};
class RadioMsg1
{
// display name
name = "";
// filename, volume, pitch
sound[] = { "\sound\filename1.ogg", db - 100, 1.0 };
// radio caption
title = "I am ready for your orders.";
};
class RadioMsg2
{
name = "";
sound[] = { "\sound\filename2", db - 100, 1.0 }; // .wss implied
title = "$STR_RADIO_2";
};
};
Example:
CfgSentences
See Conversations for more information.
CfgSFX
See CfgSFX for more information.
CfgSounds
General sounds that can be used for dialog, voiceovers in the briefing etc.
See also commands playSound, say, say2D and say3D.
class CfgSounds
{
sounds[] = {}; // OFP required it filled, now it can be empty or absent depending on the game's version
class wolf1
{
name = "My wolf sound"; // display name
sound[] = { "fx\wolf1.ogg", 1, 1, 100 }; // file, volume, pitch, maxDistance
titles[] = { 0, "*wolf growls*" }; // subtitles
titlesFont = "LCD14"; // OFP:R - titles font family
titlesSize = 0.1; // OFP:R - titles font size
forceTitles = 1; // Arma 3 - display titles even if global show titles option is off (1) or not (0)
titlesStructured = 1; // Arma 3 - treat titles as Structured Text (1) or not (0)
};
};
Property |
Description |
---|---|
sounds[] |
Was required in previous titles, and needed to be filled with CfgSounds defined sounds at the beginning of Operation Flashpoint. |
name |
(Optional) how the sound is referred to in the editor (e.g. name in trigger effects) this can be a translation (e.g "$STR_My_Translation") |
sound[] |
An array containing:
|
titles[] |
An array format
|
1.75 titlesFont |
(Optional) titles font family |
1.75 titlesSize |
(Optional) titles font size |
0.50 forceTitles |
(Optional) if set to 1, will display titles even if global show titles option is off |
0.50 titlesStructured |
(Optional) if set to 1, treat titles as Structured Text (e.g |
Example:
CfgUnitInsignia
Define custom unit insignia (shoulder patches). See Arma 3: Unit Insignia for more detailed information.
class CfgUnitInsignia
{
class 111thID
{
displayName = "111th Infantry Division"; // name displayed in Arsenal
author = "Bohemia Interactive"; // author displayed in Arsenal
texture = "\a3\UI_F_Bootcamp\Data\CfgUnitInsignia\B_111thID_texture_ca.paa"; // image path
textureVehicle = ""; // does nothing, was reserved for future use
};
};
CfgUnitTemplates
This class is used to create units templates. For now, this is only used with the function BIS_fnc_unitHeadgear.
class CfgUnitTemplates
{
// Classic selectRandom
class MyFirstTemplate : Default
{
headgearList[] =
{
"H_Cap_blk",
"H_Cap_grn",
"H_Cap_oli_hs"
};
facewearList[] =
{
"G_Bandanna_beast",
"G_Bandanna_blk",
"G_Bandanna_khk"
};
};
// the probabilities will be considered, weighted random
class MySecondTemplate : Default
{
headgearList[] =
{
"H_Cap_blk", 0.9,
"H_Cap_grn", 0.6,
"H_Cap_oli_hs", 0.55
};
facewearList[] =
{
"G_Bandanna_beast", 0.5,
"G_Bandanna_blk", 0.5,
"G_Bandanna_khk", 0.5
};
};
};
Example:
CfgVehicles
This class can only be used to create sound sources.
See also CfgSFX for more detailed information.
class CfgVehicles
{
class MyOwlSound // class name to be used with createSoundSource
{
sound = "MyOwl"; // reference to CfgSFX class
};
};
CfgVehicleTemplates
This class is used to create vehicle templates used by the Vehicle Customization system.
class CfgVehicleTemplates
{
class BIS_Offroad_01_default
{
displayName = "Default";
author = "Bohemia Interactive";
textureList[] =
{
"guerilla_01", 0.5,
"guerilla_02", 1
};
animationList[] =
{
"HideBumper1", 1,
"HideBumper2", 1
};
};
};
RscTitles
This class is used to define custom HUDs. See Arma: GUI Configuration for more information.
- 1. Mission Information
- 2. Respawn/Revive
- 3. Mission Keys
- 4. Player's UI
- 5. Starting Gear
- 6. Corpse and Wreck Management
- 7. Mission Parameters
- 8. Mission Settings
- 9. Server Security
- 10. Tasks
- 11. Custom Content Definition