Anatomy of description.ext

  1. Introduction
  2. Onload
  3. Score
  4. Sounds
  5. Character Identities
  6. Mission Options
  7. Multi Player Options
  8. Respawn
  9. Lobby Parameters (param)
  10. Keys
  11. Header Class
  12. Weapons & Ammo
  13. Resource Titles (rsctitles)
  14. Reference

 

Introduction

The description.ext file is one of the most important mission files you will create/edit in your mission creating career. The file defines all kinds if mission parameters you will use in making your mission come to life. Its important to note that in Armed Assault, you must include a semi-colon (;) after each line entry otherwise you will receive errors in the arma.rpt file and sometimes you will have an unloadable mutliplayer mission as the dedicated server seems to be more strict about having the semi-colons.

OnLoad

OnLoadMission et al

This displays a message whilst the mission is loading. Note that a mission that takes very little time to load will only display the message for a short time. Care should be taken to see whether your message is readable in that timeframe.

OnLoadMission = "YourMissionName";
OnLoadIntro = "YourMessage";



The OnLoadMission option is used to present the mission name to the user. In MP this is the name you see when selecting a mission and also the name that is presented to the GameSpy browser.

OnLoadIntroTime et al

This allows you to define whether you will see the time and date displayed whilst the mission loads. Variables are True or False.


OnLoadIntroTime = False;
OnLoadMissionTime = False;

 

Score

This feature allows you to set scores for your mission. Score is related to the star display in the debriefing screen. The score can be influenced during a missions progress by using the addRating command.


MinScore = 0;
AvgScore = 1800;
MaxScore = 7500;

Sounds

There are three types of sound that can be specified:

  1. General sounds that can be used for dialog, voiceovers in the briefing etc. These sounds are actioned in a mission by using the commands: say, say and playSound
  2. Dialog where one unit talks over the radio, for example using the command sideRadio
  3. Music using the command playMusic


Examples:

General Sounds

class CfgSounds{
sounds[] = {};
class wolf1
{
name = "";
sound[] = {"\sound\wolf1.ogg", 1, 1};
titles[] = {};
};
class wolf2
{
name = "";
sound[] = {"\sound\wolf2.ogg", 1, 1};
titles[] = {};
};
};

playSound wolf2

Radio Sounds

 

class CfgRadio
{
sounds[] = {};
class RadioMsg1
{
name = "";
sound[] = {"\sound\filename1.ogg", db-100, 1.0};
title = "Well all the civilians are now safe in the lodge. I am ready for your orders.";
};
class RadioMsg2
{
name = "";
sound[] = {"\sound\filename2.ogg", db-100, 1.0};
title = {$STR_RADIO_2};
};
};
unit sideRadio RadioMsg2

Musicclass CfgMusic

{
tracks[]={};
class MarsIntro
{
name = "";
sound[] = {"\music\filename.ogg", db+0, 1.0};
};
class Ludwig9
{
name = "";
sound[] = {"\music\filename.ogg", db+10, 1.0};
};
};

playMusic  MarsIntro

 

Sound Notes

Name can be left blank as in the examples above. Only specify a name if you wish to access these sounds via the environment options of a trigger.

Title is the text string that will be displayed on the screen when the sound file is played. See also Stringtable.csv

Setting volume (db) of music far from zero will disable fadeMusic command. Optimal values are from -10 to 10.

 

Identities

It is here that you can 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.

Example:

class CfgIdentities
{
class John_Doe
{
name="John Bartholemew Doe";
face="Face20";
glasses="None";
speaker="Dan";
pitch=1.1;
};
};

See setIdentity for valid options for: face, glasses, speaker etc.

 


Mission Options

 
OptionDescription
disabledAI = false/true;

Removes all playable units which do not have a human player. (MP)

Note: Disabling all the AI units will prevent JIP into playable units in OFP:Elite and ArmA.

showGPS = 0;

Enables/Disables the GPS

Note: In ArmA 1.04 toggle this option to disable the mini map attached to the GPS.

debriefing = 0;
Defines if the debriefing is shown or not at the end of the mission.
showCompass = 0;Defines if the compass is visible.
showMap = 0;
Defines if the map is shown after the mission starts.
showNotePad = 0;
In ArmA, defines if the NotePad is shown after the mission starts.
showPad = 0;
Defines if the NotePad is shown after the mission starts. (Not in ArmA)
showWatch = 0;
Defines if the watch is visible.
briefing = 0;
Skip briefing screen in the mission. Note: Added in 1.05

 

Multiplayer

Respawn Options

respawn = ''RespawnType'';
respawnDelay = ''DelayInSeconds'';
respawnVehicleDelay = ''DelayInSeconds'';

RespawnType

Description

0 or "NONE"No respawn
1 or "BIRD"Respawn as a seagull
2 or "INSTANT"Respawn just where you died.
3 or "BASE"

Respawn in base. Requires a marker named:

respawn_west
respawn_east
respawn_guerrila
respawn_civilian

Vehicle respawn in base requires a marker named:

respawn_vehicle_west
respawn_vehicle_east
respawn_vehicle_guerrila
respawn_vehicle_civilian
4 or "GROUP"Respawn in your group (if there's no AI left, you'll become a seagull).
5 or "SIDE"

Respawn into an AI unit on your side (if there's no AI left, you'll become a seagull) - ''implemented in ArmA 1.08: with this respawn type, team switch is also available to any AI controlled playable units''.

 

Lobby Parameters

TitleParam1 and TitleParam2 are multiplayer options. These options are seen in the lobby of a multiplayer game. These options can be useful for setting time limits and score limits in such games as Capture the Flag and Death Matches. Other popular uses include accelerate time, setting the mission difficulty or switching the intro on/off.

In the mission param1 and param2 have the values of the chosen options. Many people will assign a variable in the init.sqs file to param1 for simplicity, an example of this would be to assign variable timelimit = param1.

Example:

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};

 

Header Class

With the introduction of OFP:Elite, BI started to include a new class definition in the description.ext. The purpose of this class definition is to signal the engine the gameType which is displayed in the MP game browser. This can assist other players for finding particular missions using the filters.

Here is a basic class example:

class Header
{
gameType = COOP; //DM, Team, Coop, ...
minPlayers = 1; //min # of players the mission supports
maxPlayers = 10; //Max # of players the mission supports
playerCountMultipleOf = 1; //OFP:Elite option.
};

These are basic types to help with filtering in the MP game browser.

DM         = Death Match
CTF = Capture the Flag
FF = Flag Fight
Coop = Cooperative Mission
Team = Team Mission
Scont = Sector Control
Hold = Hold Location
Unknown    = Unknown - is used when no class header is defined.

Keys

Since Armed Assault it's possible to define keys for every mission. Keys are used for marking mission as completed in mission list (square left to mission name) and for unlocking hidden content.

keys[] = {"key1","key2","key3"}; // List of keys (needed for keysLimit)
keysLimit = 2; // Number of keys from the list needed for unlock a mission.
doneKeys[] = {"key4"}; // Name of key(s) needed for mark a mission in SP missions list as completed.

Weapons and Magazines

The weapons and magazines (OFP)/(ArmA) available to players during the briefing are also defined in description.ext.

Example:

class Weapons
{
class AK74 {count = 8;};
class RPG7V {count = 2;};
class Binocular {count = 2;};
};
class Magazines
{
class 30Rnd_545x39_AK {count = 32;};
class PG7V {count = 6;};
class HandGrenade {count = 16;};
};

RscTitles

RscTitles class defines image, text and object resources for use with commands such as: cutRsc, cutText, cutObj, titleRsc, titleText, titleObj.

Example:class RscTitles {
titles[] = {introImage}; // optional
class introImage {
idd = -1;
movingEnable = false;
duration = 120;
fadein = 0;
name = "IntroImage";
controls[] = {"image1"};
class image1: RscPicture {
x = 0;
y = 0;
w = 1;
h = 1;
text = "IntroImage.paa";
};
};

cutRsc["introImage", "PLAIN", 1];

 

 

References

OFP - Example