Setting up a Arma 3 Antistasi Dedicated Server on a Linux Machine

Having had some trouble with this myself in the past, so I've decided to make post on how exactly to do this

Published: 07.01.2023

arma3•linux•server

Preface

A little while ago I attempted to setup an “Antistasi” Arma 3 Server on my Linux Server, but was unable to find any “do this and be done” guide that showed how to setup such a server. This post is an attempt to save you from this pain. Good luck!

Setup

Requirements

This article assumes you have already setup a Debian based server, which meets the minimum requirements, with your preferred hosting service.

Part Minimum Recommended
CPU 2.4 GHz Dual-Core 3.5 GHz Quad-Core
RAM 2GB 4GB
Storage 32 GB HDD 32 GB SSD

Update System

In general keeping your system up to date is good practice and important for your system’s security.

sudo apt update -y && sudo apt upgrade -y

Install SteamCMD

To install the Arma server software you first need to install SteamCMD. SteamCMD is Steam’s command line interface for installing games, servers and mods. Since running SteamCMD via sudo or as a root user is a security risk we add a new user called “steam” to run any Arma & Steam related commands on.

# Create a new User
sudo useradd -m -s /bin/bash steam

# Add Steam user to sudo group to make installation easier
sudo usermod -aG sudo steam

# Set a secure password for your Steam user
sudo passwd steam

# Switch to user
sudo -i -u steam

Now that we are the “steam” user we can install SteamCMD this varies depending on what kind of system you are on.

32-Bit Systems

sudo apt install steamcmd

64-Bit Systems

sudo add-apt-repository multiverse
sudo apt install software-properties-common
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc-s1 steamcmd

Install the Arma 3 Server

Now that we have SteamCMD we are able to get the files we need. First create a new directory in the steam users home folder in which we can save our server files.

mkdir ~/steamcmd && cd ~/steamcmd

Next start SteamCMD and let it install the files it needs.

/usr/games/steamcmd

Once it is done initializing you can set an install directory and login into your steam account

force_install_dir /home/steam/steamcmd/arma3/

login <username>

from here just run app_update in SteamCMD with Arma’s GameID which is 233780.

app_update 233780 validate

exit

Now you should have all the files needed to run an Arma Server on your machine.

Configure

If you want to customize your server a bit, like changing it’s name or the admin password, you can create a server.cfg in the arma3 directory

nano server.cfg

Here is a good template:

// server.cfg
hostname = "My Arma 3 Server";
motd[] = {
	"This is your server's description.",
	"You can write anything you want to show your players here",
	"Or link your socials:",
	"Youtube: https://youtu.be/dQw4w9WgXcQ"
};

// password = "PasswordToJoinServer";
passwordAdmin = "PasswordToBecomeAdmin"; //Password used in the '#login <pass>' command

maxPlayers = 20; // How many players may join the server
persistent = 1; // Persist mission selection even when server is empty
BattlEye = 1; // Enable BattleEye Anticheat

Port Forwarding

The last step before we can start the server is to allow for the necessary ports to be reachable this will depend on what setup you have, but here are the ports that need to be reachable:

Incoming

Port Protocol Note
2302 TCP Arma 3 Game Port
2303 TCP Steam
2304 TCP Steam
2305 TCP VON (Voice Chat)
2306 TCP BattleEye

Outgoing

Port Protocol Note
2344 TCP + UDP BattleEye
2345 TCP BattleEye
2302 UDP Arma 3
2303 UDP Arma 3
2304 UDP Arma 3
2305 UDP Arma 3 to Steam
2306 UDP Arma 3 to Steam

Run

Finally you can run the server

./arma3server -name=server -config=server.cfg

Mods

Find Mods

Go to the workshop and find the mod you want to install

https://steamcommunity.com/sharedfiles/filedetails/?id=2867537125
                                                       ^^^^^^^^^^
                                                       MOD_ID

Download

# Start SteamCMD
/usr/games/steamcmd
login <Your Username>

# You can now download the Mod
workshop_download_item 107410 <MOD_ID>

# Here is an example for Antistasi
workshop_download_item 107410 2867537125

exit

# Move mod to the server folder
mv ~/Steam/steamapps/workshop/content/107410/<MOD_ID> ~/steamcmd/arma3/@<ModName>
# Here is an example for Antistasi
mv ~/Steam/steamapps/workshop/content/107410/2867537125 ~/steamcmd/arma3/@Antistasi

Run

You are now able to run the installed mod by adding the -mod= command line Argument

cd ~/steamcmd/arma3
./arma3server -name=server -config=server.cfg -mod=@Antistasi

CBA_A4 & Ace3 / Installing Multiple Mods

Be sure to escape the mod separators ; otherwise your mods might not work correctly. This can be done by adding a \ before each separator (like this -mod=@Mod1\;@Mod2)

/usr/games/steamcmd

login <Your Username>

# Download CBA
workshop_download_item 107410 450814997
# Download Ace
workshop_download_item 107410 463939057

exit

mv ~/Steam/steamapps/workshop/content/107410/450814997 ~/steamcmd/arma3/@CBA_A3
mv ~/Steam/steamapps/workshop/content/107410/463939057 ~/steamcmd/arma3/@Ace

./arma3server -name=server -config=server.cfg -mod=@CBA_A3\;@Ace\;@Antistasi

Security

Once you are done with your setup you should remove the steam User from the “sudoers” group to prevent your server potentially getting hacked.

# Remove steam from sudoers
sudo deluser steam sudo

Resources

Here are some of the things I found useful on my path:

Comments