scroll down

Arma 2 Step by Step Dedicated Server Guide

Arma 2 just like Operation Flashpoint is a tactical first person shooter developed by Bohemia Interactive. Both the series are well known for their realistic gameplay. The game was released last year and an expansion pack named “Operation Arrowhead” has been released recently. Following guide will aid you in setting up Arma 2 dedicated server.

Minimal Requirements
Before you proceed, you should check that your machine should meet the following minimum requirements to run an Arma 2 dedicated server efficiently.

  • 2 GHz machine with 512Mb RAM.
  • 1 Mbps upload speed

Step 1| Install Arma 2
Install the game on your machine. If you don’t have physical access to the server then you will have to upload the whole game (almost 7.4 GB) using FTP. After installation make sure that you patch your game to the latest version. You can download the patches from  here.

Step 2| Download and copy Arma 2 Standalone Executable

Download the Arma 2 Standalone Dedicated Server and paste executable server file to the root directory of the game.

Download ArmA 2 Dedicated server
Download ArmA 2. Operation Arrowhead Dedicated server

Step 3| Server Configuration
You are gonna need some config files for your server.

  • Arma 2 Server CFG

Save it as server.cfg for reference.
Here is a sample config you can use for ArmA 2 dedicated server.

//

// server.cfg

//

// comments are written with "//" in front of them.

// GLOBAL SETTINGS

hostname = "Fun and Test Server";     // The name of the server that shall be displayed in the public server list

password = "";                                       // Password for joining, eg connecting to the server

passwordAdmin = "xyz";                               // Password to become server admin. When you're in Arma MP and connected to the server, type '#login xyz'

reportingIP = "armedass.master.gamespy.com";         // This is the default setting. If you change this, your server

//reportingIP = arma2pc.master.gamespy.com";            // In case of ArmA2 might not turn up in the public list. Leave empty for private servers

//reportingIP = "arma2oapc.master.gamespy.com";         // For Operation Arrowhead

logFile = "server_console.log";                      // Tells ArmA-server where the logfile should go and what it should be called

// WELCOME MESSAGE ("message of the day")

// It can be several lines, separated by comma

// Empty messages "" will not be displayed at all but are only for increasing the interval

motd[] = {

"", "", "",

"Welcome to the Testing",

"Server Settings: Veteran, Crosshair = off, 3rdPerson = off, MapInfo = off, VoN = off, CustomFiles = 200KByte, Voting = 33%, PersistentMaps = on",

"We are looking for fun - Join us Now !",

"http://www.segmentnext.org/",

"",

"You should use mumble, its better than",

"TS2 Server for recruits: mypage.org:8767"

};

motdInterval = 5;                                            // Time interval (in seconds) between each message

// JOINING RULES

checkfiles[] = {};                                           // Outdated.

maxPlayers = 30;                                             // Maximum amount of players. Civilians and watchers, beholder, bystanders and so on also count as player.

kickDuplicate = 1;                                   // Each ArmA version has its own ID. If kickDuplicate is set to 1, a player will be kicked when he joins a server where another player with the same ID is playing.

verifySignatures = 1;                                // Verifies the players files by checking them with the .bisign signatures. Works properly from 1.08 on

equalModRequired = 0;                                // Outdated. If set to 1, player has to use exactly the same -mod= startup parameter as the server.

// VOTING

voteMissionPlayers = 1;                                      // Tells the server how many people must connect so that it displays the mission selection screen.

voteThreshold = 0.33;                                // 33% or more players need to vote for something, for example an admin or a new map, to become effective

// INGAME SETTINGS

disableVoN = 1;                                      // If set to 1, Voice over Net will not be available

vonCodecQuality = 0;                                 // Quality from 1 to 10

persistent = 1;                                      // If 1, missions still run on even after the last player disconnected.

// SCRIPTING ISSUES

onUserConnected = "";                                // self-explaining

onUserDisconnected = "";

doubleIdDetected = "";

regularCheck = "";

// some ArmA specific stuff - signature verification

onUnsignedData = "kick (_this select 0)"; // unsigned data detected

onHackedData = "ban (_this select 0)"; // tampering of the signature detected

onDifferentData = ""; // data with a valid signature, but different version than the one present on server detected

BattlEye = 1; //Server to use BattlEye system

// MISSIONS CYCLE (see below)

class Missions {}
  • Arma 2 cfg

Save it as arma2.cfg for reference.

// These options are created by default

language="English";

adapter=-1;

3D_Performance=1.000000;

Resolution_W=800;

Resolution_H=600;

Resolution_Bpp=32;

// These options are important for performance tuning

MinBandwidth = 320000;                //* Bandwidth the server is guaranteed to have (in bps). This value helps server to estimate bandwidth available. Increasing it to too optimistic values can increase lag and CPU load, as too many messages will be sent but discarded. Default: 131072

MaxBandwidth = 10000000000;           //Bandwidth the server is guaranteed to never have. This value helps the server to estimate bandwidth available.

MaxMsgSend = 256;                     //* Maximum number of messages that can be sent in one simulation cycle. Increasing this value can decrease lag on high upload bandwidth servers. Default: 128

MaxSizeGuaranteed = 1024;             //Maximum size of guaranteed packet in bytes (without headers). Small messages are packed to larger frames. Guaranteed messages are used for non-repetitive events like shooting. Default: 512

MaxSizeNonguaranteed = 64;            //Maximum size of non-guaranteed packet in bytes (without headers). Non-guaranteed messages are used for repetitive updates like soldier or vehicle position. Increasing this value may improve bandwidth requirement, but it may increase lag. Default: 256

MinErrorToSend = 0.005;                       //Minimal error to send updates across network. Using a smaller value can make units observed by binoculars or sniper rifle to move smoother. Default: 0.01

MaxCustomFileSize = 1600000;          //Users with custom face or custom sound larger than this size are kicked when trying to connect.
  • Default Arma 2 Profile

Save it as default.arma2profile.cfg for reference.

class Difficulties

{

class regular                         // Displayed as "Cadet"

{

class Flags

{

// These are the settings. Set a value to 0 to disable the feature, or set it to 1 to enable it.

Armor=1;               // Gives you improved body armor, tank armor etc

FriendlyTag=1;         // Displays information on friendly units. ONLY WORKS WITH 'Weaponcursor=0', eg crosshair on.

EnemyTag=1;            // Displays information on enemy units

HUD=1;                 // Shows you leaders location and your position in formation

HUDPerm=1;             // Shows HUD permanently

HUDWp=1;               // Shows Waypoints right after they're ordered to you

HUDWpPerm=1;           // Shows Waypoints permanently

WeaponCursor=1;        // Shows the crosshair for your weapon

AutoAim=1;             // Enables auto aim when you're not looking through your weapon's scope. Also works with crosshair off

AutoGuideAT=1;         // AT missiles will be automatically guided to their target. If 0, player has to lock onto the target.

3rdPersonView=1;       // This turns 3rd(third) person view and group leader view on or off. Please never talk of this as "3D view" - ArmA is not an arcade game !

ClockIndicator=1;      // Displays the clock indicator on the left of your screen when giving/receiving orders like "At 11 o'clock, eemy man at 200 meters"

Map=1;                 // Shows symbols for all objects known to your gruop on the map. This will NOT disable the map itself !

Tracers=1;             // Displays tracers even of small arms that in real life would not have tracers

AutoSpot=1;            // If you're close enough to an enemy, you'll report it without right-clicking

UltraAI=0;             // Enables some kind of super AI that hears and sses more and has better tactics. This is for both friendly and enemy sides.

UnlimitedSaves=1;      // Enables saing permanently. For single player missions. But you then can only load the last save state.

DeathMessages=1;       // (1.09 and later) Displays "XXX was killed by YYY" messages in multiplayer

NetStats=1;            // (1.09 and later) Enables the scoreboard functionality in MP

VonID=1;               // (1.09 and later) When using VoN, display the name of the player speaking.

};

// These are the skills. Value may range from 0.000000 to 1.000000

skillFriendly=0.350000;               // Friendly tactics skill

skillEnemy=0.350000;           // Enemy tactics skill

precisionFriendly=0.350000;    // Friendly shooting precision

precisionEnemy=0.350000;       // Enemy shooting precision

};

class veteran                  // Most of the options from above are not available, because they're off by default.

{

// Also soldiers/vehicles die sooner upon damage (have no armor or body armor).

class Flags

{

HUD=1;                 // Shows you leaders location and your position in formation

HUDWp=1;               // Shows Waypoints right after they're ordered to you

HUDWpPerm=0;           // Shows Waypoints permanently

WeaponCursor=1;        // Shows the crosshair for your weapon

ClockIndicator=1;      // Displays the clock indicator on the left of your screen when giving/receiving orders like "At 11 o'clock, eemy man at 200 meters"

3rdPersonView=1;       // This turns 3rd(third) person view and group leader view on or off. Please never talk of this as "3D view" - ArmA is not an arcade game !

Tracers=1;             // Displays tracers even of small arms that in real life would not have tracers

UltraAI=0;             // Enables some kind of super AI that hears and sses more and has better tactics. This is for both friendly and enemy sides.

DeathMessages=1;       // (1.09 and later) Displays "XXX was killed by YYY" messages in multiplayer

NetStats=1;            // (1.09 and later) Enables the scoreboard functionality in MP

VonID=0;               // (1.09 and later) When using VoN, display the name of the player speaking.

};

// These are the skills. Value may range from 0.000000 to 1.000000

skillFriendly=0.850000;

skillEnemy=0.850000;

precisionFriendly=0.850000;

precisionEnemy=0.850000;

};

};

Note. First 2 config files should be placed in “\ArmA2\default” folder. Third config should go here “\ArmA2\default\users\default\”.You can name these files anyway you want.

Step 4| Port Forwarding
Make sure following UDP ports are opened.
2302
2303
2305

Step 5| How to Start Server
To start the server, you will need a command line that should be placed in ArmA2Server.exe. Your command line should look something like this.

C:\ArmA2\arma2oaserver.exe” -port=2302 -name=default -config=default\server.cfg -cfg=default\Arma2.cfg -profiles=default

You cannot specify any ip  in the command line as command like “-ip” is not supported here.

Now double click ArmA2Server.exe, a console windows will open and your server will be up and running. Others should be able to join your server by now. If you are facing any difficulties, post them in comments and we will try to solve them.