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: