{"name":"missionConfigFile","operator":null,"title":"missionConfigFile","type":"command","url":"https://community.bistudio.com/wiki/missionConfigFile","revid":342131,"updated":"2023-07-09T12:26:44Z","groups":["Config"],"status":"ok","replaced_by":[],"games":[{"game":"arma1","name":"Armed Assault","version":"1.00"},{"game":"arma2","name":"Arma 2","version":"1.00"},{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.50"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"arma1","name":"Armed Assault","version":"1.00"},"arma3_since":"0.50","branch":null,"locality":{"argument":null,"effect":null,"server_exec":false},"exec":null,"description":"Return root of mission Description.ext entries hierarchy.\n\n> [!IMPORTANT]\n> Since the introduction of the Eden Editor, scenario attributes can be configured in the editor itself, not only in the external Description.ext file.\n> To access desired value independently on where it is stored, use the following commands:\n> - getMissionConfigValue\n> - getMissionConfig","syntaxes":[{"syntax":"missionConfigFile","since":null,"effect":null,"exec":null,"params":[],"returns":{"type":"Config","types":["Config"],"description":null,"text":"Config"},"form":"nullary","operator":null,"left":null,"right":null}],"examples":[{"text":"```sqf\nfor \"_i\" from 0 to (count paramsArray - 1) do\n{\n    missionNamespace setVariable [configName ((missionConfigFile/\"Params\") select _i), paramsArray select _i];\n};\n```","code":["for \"_i\" from 0 to (count paramsArray - 1) do\n{\n\tmissionNamespace setVariable [configName ((missionConfigFile/\"Params\") select _i), paramsArray select _i];\n};"]},{"text":"To define custom values in description.ext:\n\n```cpp\nclass myMissionConfig\n{\n    class mySetup\n    {\n        myNumber = 3;\n        myArray[] = { 1, 2, 3 };\n        myText = \"LOL\";\n    };\n};\n```\n\nTo read defined custom values from a script:\n\n```sqf\n_myNumber = getNumber (missionConfigFile >> \"myMissionConfig\" >> \"mySetup\" >> \"myNumber\");\n_myArray = getArray (missionConfigFile >> \"myMissionConfig\" >> \"mySetup\" >> \"myArray\");\n_myText = getText (missionConfigFile >> \"myMissionConfig\" >> \"mySetup\" >> \"myText\");\n```","code":["_myNumber = getNumber (missionConfigFile >> \"myMissionConfig\" >> \"mySetup\" >> \"myNumber\");\n_myArray = getArray (missionConfigFile >> \"myMissionConfig\" >> \"mySetup\" >> \"myArray\");\n_myText = getText (missionConfigFile >> \"myMissionConfig\" >> \"mySetup\" >> \"myText\");"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["configFile","campaignConfigFile","getMissionConfigValue","getMissionConfig","getMissionPath"],"notes":[{"user":"Killzone_Kid","date":"2015-02-17T16:46:00Z","text":"missionConfigFile can be used to parse *mission.sqm* file data as well if it is included into description.ext:\n\n```cpp\nclass MissionSQM\n{\n    #include \"mission.sqm\"\n};\n```\n\nThen *mission.sqm* data can be accessed like this:\n\n```sqf\ngetNumber (missionConfigFile >> \"MissionSQM\" >> \"version\"); // 12 - version param in mission.sqm\n```\n\n(courtesy of Master85)"},{"user":"Dedmen","date":"2018-04-27T20:39:00Z","text":"If your Description.ext file is empty, str missionConfigFile may report an empty string instead of the path to the file. You have to put at least one entry into your config.\n\nTo get file path with description.ext to play sound via playSound3D (before getMissionPath):\n\n```sqf\nprivate _missionRootPath = str missionConfigFile select [0, count str missionConfigFile - 15];\n```"}],"categories":["ArmA: Armed Assault: New Scripting Commands","ArmA: Armed Assault: Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 2: Scripting Commands","Arma 3: Scripting Commands","Command Group: Config","Introduced with Armed Assault version 1.00","Scripting Commands","Take On Helicopters: Scripting Commands"]}