ArmA 1 Campaigns

ArmA 1 Forum, ArmA 1 Home, ArmA 1 Config, ArmA 1 Tools, ArmA 1 File Formats, ArmA 1 Missions, ArmA 1 3D Modeling, ArmA 1 Terrain, ArmA 1 Texturing, ArmA 1 Scripting

ArmA 1 aka Armed Assault (ArmA)

Campaigns in ArmA are pretty much the same as in OFP on basic file layouts and operation.

You have the campaign root directory where you place the following files and dirs.

Files:

description.ext
overview.html

Directories:

Missions/
Scripts/

Explanation for the files.

description.ext is what defines your campaign, it includes the campaign name and all the missions available. It also includes configuration settings such as is weaponpool used or not, any characters you want to create (their face + sound pitch, glasses or no glasses etc).

Here is example of PMC First Fight campaign description.ext

//
// 		PMC First Fight campaign
//
 
class CfgIdentities
{
	// SF squad leader
	class carlos
	{
		name = "Carlos Edwards";
		face = "face24";
		glasses = "None";
		speaker = "Rob";
		pitch = 1;
	};
 
	// Army squad leader:
	class gordon
	{
		name = "Gordon McKenzie";
		face = "face39";
		glasses = "none";
		speaker = "Jonah";
		pitch = 1;
	};
 
	// Abrams commander:
	class david
	{
		name = "David Ruby";
		face = "face34";
		glasses = "none";
		speaker = "John";
		pitch = 1;
	};
 
	// Cobra pilot:
	class bob
	{
		name = "Bob Walton";
		face = "face6";
		glasses = "none";
		speaker = "Marc";
		pitch = 1;
	};
};
 
exitScore = -100;
weaponPool = true;
 
class MissionDefault
{
 	lives = -1;
 
	lost = ;
	end1 = ;
	end2 = ;
	end3 = ;
	end4 = ;
	end5 = ;
	end6 = ;
};
 
class Campaign
{
	name = "PMC First Fight";
	firstBattle = Beginning;
 
	class Beginning
	{
		name = "Beginning";
		cutscene = snake_ff_000_intro.Intro;
		firstMission = pmc0;
		end1 = ;
		end2 = ;
		end3 = ;
		end4 = ;
		end5 = ;
		end6 = ;
		lost = ;
 
		class pmc0: MissionDefault
		{
			end1 = pmc1;
			template = snake_ff_000_weaponinit.Intro;
		};
 
		class pmc1: MissionDefault
		{
			end1 = pmc2;
			lost = pmc1;
			template = snake_ff_001_first_sight.Sara;
		};
 
		class pmc2: MissionDefault
		{
			end1 = pmc38;
			lost = pmc2;
			template = snake_ff_002_strip_recon.Sara;
		};
 
		class pmc38: MissionDefault
		{
			end1 = pmc_outro;
			lost = pmc38;
			template = snake_ff_038_dead_target.Sara;
		};
 
		// campaign is over, final cutscene
		class pmc_outro: MissionDefault
		{
			template = snake_ff_xxx_outro.Sara;
		};
	};
};

overview.html is just the same as in missions, it shows the campaign name on the campaign selection window in ArmA, as the similar file would do for single missions. You can include picture image in this file too. The image needs to be power of two 2^n like 128×128, 256×256, 512×512 etc.

Here is example overview.html file:

<html>
<head>
<title>Overview</title>
</head>
<body bgcolor="#FFFFFF">
<p align="center"><img src="campaign.paa" width="256" height="256"></p>
</body>
</html>

Explanation for the directories.

Missions/ here you put all the campaign missions.

Scripts/ here you put all the common scripts used in your missions. When a script is called from campaign mission, its first searched from the mission dir, if not found its searched from the <campaign_root>/Scripts/ directory.

Notes

Also check out OFP: Campaign Design article which suits this page quite well.