Nothing beats hanging out with your friends before an OP before things get serious. But creating a dedicated Arma 3 server for that can be difficult. There are a lot of interconnected parts. I’ve been running a server for a while now and have figured out things along the way. In this article, I’ll show you how to avoid common issues with Arma 3 servers.

Setting up an Arma 3 server is pretty straightforward as far as game servers go. It’s a 3-step process, install the software, set up your network to accept incoming connections, and then configure your server.

Minimum Requirements

  • OS: Windows 10 64-bit
  • CPU: Intel Core i5-4460 / AMD FX 4300
  • DirectX®: 9
  • RAM: 6 GB
  • 20 GB free space
  • Internet connection

Installing an Arma 3 Server

Steam is your best option to grab the Arma 3 server. But with steam you have two ways to grab it, one is through the steamcmd or Steam Command-Line. If you’re working on a remote server, the command line is a good option. But overall, I recommend using steam normally to get the Arma 3 server.

If you’re installing the server on your home computer, you’ll just install it through Steam. Though, it’s not listed in the game menu. If you go to the Library, there’s a drop-down “GAMES AND SOFTWARE”. In there you’ll find “tools”. This enables you to see the Arma 3 Server. Once you install that, you can immediately launch.

A note on server managers. There are a few out there, I’ve seen them cause more issues than they’re worth. I do not recommend them.

Setting up your Network

Let’s be frank, setting up port forwarding is easy, but people act like it is rocket science. Rather than write a book, head over here if you haven’t set up your ports. https://portforward.com/

For good measure, let me give some other links:

The site icanhazip.com is a simple website that displays your Internet IP.

The site canyouseeme.org allows you to check to see if your ports are open and working. Working means that a service is open and listening on that port (the program has to be running). You can use this to test if the port/game works and accepts connections, this also works for other games like Minecraft.

Configuring your Arma 3 server

There are 3 things to configure for your server, the main server config file, the command line to launch the Arma server with specific parameters, and the server user profile.

 

    1. The command line will contain ports, IP, memory, and mods used.
    2. The server profile will have saved game data as well as difficulty settings, such as map-pings, showing names in the game, etc.
    3. Last will be the server config file. This will contain your global settings, admin password, MOTD, Voting rules, initial maps, map list, map parameters, headless client whitelisting, and more.

Server Layout

There are only a few folders you’ll need to be concerned about.
mpmissions – This contains the multiplayer missions. Just throw in your PBO files in this folder.
keys – You’ll be in here a lot. Putting in a mod key here will white list it for use on the server. Adding it to the command line and putting the key in here will allow you to use it on the server. Note: This is for “battle eye” only. “Battle eye” can check to see if everyone’s files are the same and restrict mods.

The other folders you can ignore as they are game data.

Any multiplayer capable mod will have a “keys” folder. In there you should find a file with the extension of “bikey”. Note, any mod you plan on using needs this file copied to your keys directory.

By default, your Arma 3 Server will be in C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Server

Where ever your steam games are installed, your Arma 3 server should be with them.

Command Line

This is the first thing you’ll want to set up. I recommend making a bat file to launch everything, then make a shortcut to that bat file on your desktop.

References for the startup parameters.

Just open up notepad, type something in and go to file then save as. Type in “launch.bat” for the file name and leave in the quotes. This will save that file as a bat file, allowing you to run it. Now we just have to edit this file for what we want.
I’ll paste what my command line looks like and explain it.
arma3server.exe -client -connect=192.168.10.24:2302 -noPause -noSound -exThreads=7 “-cfg=A3\basic.cfg” “-config=A3\server.cfg” “-profiles=A3” “-servermod=” “-mod=” -enableHT -world=empty -autoinit -maxMem=6144

-client and -connect makes this dedicated server a headless client. This means it helps offload some of the AI workloads and helps the server run smoother. You will of course have to white list your IP where you’re connecting from.

-cfg is a server basic config file. The basic config references.
-config is for the main server config file and the reference.
-profiles set the server profile, you can link this to any current profile if you include the path, just naming mine A3 allows me to have a local profile inside the Arma server directory.
-mod is where your main mods will go, I’m not showing my list, it’s a bit long. Mods not listed here will be “Whitelisted”, which means they’re optional. Not recommended adding any gear as optional. It will be invisible. Be sure to have a semicolon between each mod listing.
-servermod is how you add server-side-only mods, things like AI mods added, so the server can use it, clients don’t need to load these. The semicolon is needed as a separator here too.

As for the quotes in some of the launch parameters. This is so we can include spaces. Most mods from the workshop have spaces.

Server Config

You’ll find more information here: https://community.bistudio.com/wiki/server.cfg

The main things to look for are:
hostname is your server name displayed to the public
password is a server password for every player
passwordAdmin is for admin privlages
motd is Message of the Day. This is information that will display after someone connects. This is what I put into my motd:

motd[] =
{
"","","",
"Welcome to Golden Legion",
"Discord: discord.gg/VQk37hU",
"Website: golden-legion.com"
};

Note how the lines are in quotes and separated by commas. The first 3 messages are blank, I think they show up too fast without that.
motdInterval is the time interval in seconds between the motd. I put mine to 30 seconds. So this means my message takes 3 minutes to complete.

BattlEye is an important parameter. This is for the anti-cheat and mod syncing.

The mission cycle is a hierarchy for the mission. I’ll give an example of how mine is set up.

class Missions
{
 class firstMission
 {
  template = "gl-zeus.altis";
  difficulty = "custom";
 };
 class Mission1
 {
  template = "liberation_RX.Altis";
  difficulty = "custom";
  class Params
  {
  Difficulty = 1.25;
  Aggressivity = 2;
  MaximumFobs = 5;
  Whitelist = 1;
  };
 };
 class Mission2
 {
  template = "liberation_RX.Tanoa";
  difficulty = "custom";
  class Params
  {
  Difficulty = 1.25;
  Aggressivity = 2;
  MaximumFobs = 5;
  Whitelist = 1;
  };
 };
};

Important undocumented parameters.
steamProtocolMaxDataSize – This is a parameter to allow more mods to be used. After you’ve added a few mods, they all break. Increasing this will fix that. The reason this is a thing is old routers have a limit to their packet sizes.
zeusCompositionScriptLevel = 2 If you want to be able to spawn in compositions from the workshop, put in that parameter.

Installing Mods for your Arma 3 Server

The last thing is actually installing mods. There are two ways to do this. One is to physically copy your mods to your Arma 3 server directory. The other is to make a symlink. A symlink is a symbolic link, linking two directories or files across your drive. The advantage here is if a mod updates through steam automatically, it’s automatically updated for your server as well! A lot less work on your part and it saves hard drive space.

This is an advanced technique though. The first thing you’ll need to do is go to the windows command line. Click on start and type in “CMD”, when you find “command prompt” right-click on that and go to “run as administrator”, or click that option on the right side. A black box will appear with text in it. This is the command prompt, we’ll use it to create the symlinks.

Next, we’ll need to grab the path for the Arma 3 server. In Steam, navigate to your Arma 3 Server in your library. Right-click that and go to “manage” then “Browse local files”. Your Arma 3 server directory should be open. The path bar at the top, highlight everything in that and copy the text, or CTRL + C.

In your cmd prompt type in:
cd “
Then CTRL + V, then end quote, the command will look like this:
cd “C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Server”

If you did it right, you can type in the command “dir” to list the directory. It should match up with the folder of your Arma 3 Server.

Now we need to find the mod we’re going to link. This is easiest to do with the Launcher open. So go ahead and Launch Arma 3. Navigate to the “mods” tag and find the mod you want to link. I’m going to do “ACRE2” as an example. So I need to find ACR2 in the mod list, right-click, and “open folder”. There’s a warning that appears that says you can damage your mods, just click “I understand” to open the folder. This will show you your Arma 3 mods where they are on your computer. Open up the directory, because were just interested in the full path of where this is.

Copy the full path in that folder at the top, then go to your CMD window.
Type in:
mklink
Then the name of the folder we’re linking to; in this case, the name is “ACRE2”.
Then in quotes, we need the full path of the ACRE2 directory. When it’s done your command should look like this:
mklink ACRE2 “C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@ACRE2”

This will create a link that uses a tiny amount of space. We can then use this as a directory to launch the mod with and run the Arma 3 Server! The last step to install that mod is to copy the key in the keys folder, and you’re done!

Yes, this is a lot of work, if you want this to be a lot easier to manage, consider getting your server professionally hosted!

Arma Server