Jump to content
terox

Tutorial: Installation & Configuration of ArmA3 Dedicated Server

Recommended Posts

Hey guys, just a quick question. Are you required to create a new steam account, and purchase another copy of the the A3 alpha for your dedicated server? Or can you just use your own steam account on the server?

The first post states that you only need 1 copy of ArmA3

The installed steam account on the server is run in offline mode

Your client on your PC is run in Online Mode

I will try and keep the first post updated with the queries and advice offered in this thread so it is all condensed into one post


Those of you that are having problems seeing your server in the game browser but are seeing the console on your remote desktops check your Firewall settings. UDP ports need to be opened

Firewall issues

By default the Armed Assault server is reporting to Gamespy and it also uses the Gamespy server to negotiate a NAT traversal. If this does not work reliably for you (e.g. when running behind very strict firewall), you may need to open and/or forward following incoming ports:

port UDP (used for game)

port+1 UDP (used for server reporting)

port+3 UDP (used for VoN transmissions)

Following outgoing ports need to be open as well:

port UDP (used for game)

port+3 UDP (used for VoN transmissions)

Default value of port is 2302, but you may change it by -port command line argument.


Those of you that haven't set your bandwidth up or have no goal post values to work with.

My server uses a Xeon X5570 on a 100mb line

It can run 3 arma2 servers all at the same time with anything up to around 60 players spread across the 3 servers

So the following values should be good for a 60 player A3 server albeit in its Alpha stage at the moment and therefore poorly optimised

These values need to be added to your "Arma3Alpha.cfg" Check your user/documents folder to find the file

The server seems to be running fairly stable and I am currently happy with my values

These may not be ideal for your server, check the following link for more information

http://community.bistudio.com/wiki/basic.cfg

MinBandwidth=800000;
MaxBandwidth=25000000;
MaxMsgSend=384;
MaxSizeGuaranteed=512;
MaxSizeNonguaranteed=256;
MinErrorToSend=0.003;         // the bigger the number the more the warping effect you will see

Edited by Terox

Share this post


Link to post
Share on other sites

I've also noticed that regardless of where you copy/paste the installation it will still run the .exe and server cfg from the Steam installation directory.

Share this post


Link to post
Share on other sites

Here`s a nice little batch file that I created to auto-restart server if it has crashed:

::Made by eRazeri
@echo off
:start
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3.exe">NUL
if "%ERRORLEVEL%"=="0" goto loop
echo Server monitored is not running, will be started now 
start "" /wait "C:\Steam\SteamApps\common\Arma 3\arma3.exe" -server -nosound -nosplash  -nopause -config=C:\server.cfg -cpuCount=4 -maxMem=8192 -exThreads=7
echo Server started succesfully
goto started
:loop
cls
echo Server is already running, running monitoring loop
:started
C:\Windows\System32\timeout /t 10
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3.exe">NUL
if "%ERRORLEVEL%"=="0" goto loop
goto start

Share this post


Link to post
Share on other sites

Ok I got Firedeamon working where it will automatically restart the server if it closes.

First:

Create a batch file and name it "arma3servercheck.bat" using notepad or notepad+.

Place the following in it:

@echo off

tasklist | findstr /i arma3.exe

if %errorlevel% neq 0 goto restart

goto end

:restart

start "" "server.bat"

:end

exit

Then create your "server.bat" file using the launch parameters of your choosing.

Example (this is what we are using to run our ARMA 3 Wasteland server):

"arma3.exe" -server -ip=199.19.105.215 -port=2398 "-config=wasteland\server.cfg" "-profiles=wasteland" "-name=wasteland" "-cfg=wasteland\basic.cfg" -noPause -noSound -cpuCount=2 -exThreads=1 -maxMem=2048

exit

NOTE: Both of these files MUST be saved in the same location as your ARMA3.exe, otherwise you need to change the file directory to "arma3.exe" in each. Also note that if you are using this process you should have exit on the last line of the server.bat otherwise you will come back to a messy server with a lot of cmd windows open (depending on how many times your server shut down).

In FireDeamon create a service with the arma3servercheck.bat file and have it have a start-up time of 60000ms and a pre-launch delay of 60000ms. Also in the "Upon Program Exit:" Have it set to Restart the Program at 60000ms. All of those settings are overkill I am sure, but it makes it were every minute the process runs to see if arma3.exe is running, and if not starts it up. Hope this helps some people, and if anybody comes up with a better solution please let me know!

Share this post


Link to post
Share on other sites
Here`s a nice little batch file that I created to auto-restart server if it has crashed:

::Made by eRazeri
@echo off
:start
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3.exe">NUL
if "%ERRORLEVEL%"=="0" goto loop
echo Server monitored is not running, will be started now 
start "" /wait "C:\Steam\SteamApps\common\Arma 3\arma3.exe" -server -nosound -nosplash  -nopause -config=C:\server.cfg -cpuCount=4 -maxMem=8192 -exThreads=7
echo Server started succesfully
goto started
:loop
cls
echo Server is already running, running monitoring loop
:started
C:\Windows\System32\timeout /t 10
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3.exe">NUL
if "%ERRORLEVEL%"=="0" goto loop
goto start

were do you place this code?

Share this post


Link to post
Share on other sites
were do you place this code?

In a batch file named for example "autorestarter.bat".

You can run it anywhere just check that the paths of the exe and config are correct.

Also remember to change parameters accordingly.

Share this post


Link to post
Share on other sites
In a batch file named for example "autorestarter.bat".

You can run it anywhere just check that the paths of the exe and config are correct.

Also remember to change parameters accordingly.

thankyou

Share this post


Link to post
Share on other sites

so what are we putting in for the reporting line? arma2alphapc ? I cant imagine we are reporting arma2oapc

Share this post


Link to post
Share on other sites
so what are we putting in for the reporting line? arma2alphapc ? I cant imagine we are reporting arma2oapc

I think its using a steam browser and auto reports at the moment, just make sure your UDP ports are open

---------- Post added at 00:11 ---------- Previous post was at 23:59 ----------

[00:09:58] terox__: This is how i currentl;y have my FD service running

Program Field: C:\Program Files (x86)\Steam\SteamApps\common\Arma 3\arma3.exe

Parameters: -server "-profiles=d:\Games\ArmA3\A3_No1" -config=d:\Games\ArmA3\A3_No1\No1_Vanilla.cfg

I have 2 issues

1) Cannot stop the ArmA3 console via stopping the service

2) Wont load the missions in the MPMissions folder in the profile location (Still loads them from the initial Steam Installation location)

Share this post


Link to post
Share on other sites
Here`s a nice little batch file that I created to auto-restart server if it has crashed:

::Made by eRazeri
@echo off
:start
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3.exe">NUL
if "%ERRORLEVEL%"=="0" goto loop
echo Server monitored is not running, will be started now 
start "" /wait "C:\Steam\SteamApps\common\Arma 3\arma3.exe" -server -nosound -nosplash  -nopause -config=C:\server.cfg -cpuCount=4 -maxMem=8192 -exThreads=7
echo Server started succesfully
goto started
:loop
cls
echo Server is already running, running monitoring loop
:started
C:\Windows\System32\timeout /t 10
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3.exe">NUL
if "%ERRORLEVEL%"=="0" goto loop
goto start

THIS. Is fscking brilliant dude. Just put it on our server and it works perfectly. 10 out of 10.

Share this post


Link to post
Share on other sites

For those who want to run the workaround dedicated server and client at the same time on the same computer using the same steam account, do the following:

1) Launch your shortcut that starts the dedicated server.

2) Open task manager. (ctrl+alt+del in XP or ctrl+shift+esc in vista/7)

3) Open processes tab, find steam.exe and end process.

4) Launch steam again and then launch Arma 3 (client).

Works for me. I can run the game as normal and have the dedicated server in the background. If your client crashes and you try launch it again, you will get the usual steam error telling you the game is already running. Just repeat steps 2-4. Very handy if you're hosting a server for friends or public on your home computer and suddenly your client crashes. This has already happened to me and is why I went looking for this separate server solution.

Here's my question though. What command do you write in the A3TestServer.cfg (or whatever you name it as), that allows you to set the mission to be played. At the moment it will start the server but will go to the mission select screen. How can I pre-select the mission from the cfg file? I have my own mission I would like to keep as the only mission on my server and repeat it once mission is complete. Thanks.

Share this post


Link to post
Share on other sites

bottom of server.cfg...

change 404Wasteland_Arma3.Stratis to the mission you want. You can cycle multiple missions however I do not have that code. google is your friend


// MISSIONS CYCLE (see below)
class Missions
{
class Wasteland_Chernarus
{
template="404Wasteland_ArmA3.Stratis";
difficulty="Regular";
};
};

Share this post


Link to post
Share on other sites

How do you set a server to a specific mission 24/7.

I have no control panel i am hosting this on a S08R2 machine.

Share this post


Link to post
Share on other sites
Here`s a nice little batch file that I created to auto-restart server if it has crashed:

::Made by eRazeri
@echo off
:start
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3.exe">NUL
if "%ERRORLEVEL%"=="0" goto loop
echo Server monitored is not running, will be started now 
start "" /wait "C:\Steam\SteamApps\common\Arma 3\arma3.exe" -server -nosound -nosplash  -nopause -config=C:\server.cfg -cpuCount=4 -maxMem=8192 -exThreads=7
echo Server started succesfully
goto started
:loop
cls
echo Server is already running, running monitoring loop
:started
C:\Windows\System32\timeout /t 10
C:\Windows\System32\tasklist /FI "IMAGENAME eq arma3.exe" 2>NUL | C:\Windows\System32\find /I /N "arma3.exe">NUL
if "%ERRORLEVEL%"=="0" goto loop
goto start

This is very good but is there a line I could add to kill the server once it crash (aka the "Arma3.exe has stopped responding windows") because otherwise it won't reboot.

Found it C:\Windows\System32\taskkill but no idea how to set that up , help would be greatly appreciated.

Edited by Burgerlolz
quote

Share this post


Link to post
Share on other sites
This is very good but is there a line I could add to kill the server once it crash (aka the "Arma3.exe has stopped responding windows") because otherwise it won't reboot.

Found it C:\Windows\System32\taskkill but no idea how to set that up , help would be greatly appreciated.

Easiest would be to disable windows error reporting completely then it won`t hang.

EDIT:

Or you could add

C:\Windows\System32\taskkill /im arma3.exe

before the "goto start" line

Edited by eRazeri

Share this post


Link to post
Share on other sites
Easiest would be to disable windows error reporting completely then it won`t hang.

EDIT:

Or you could add

C:\Windows\System32\taskkill /im arma3.exe

before the "goto start" line

I haven't found a way to fully disable it on windows server 2008, it basicly just disable the reporting error part, not the actual message telling you to wait or to close UI, added this command line and it does nothing.

Share this post


Link to post
Share on other sites

I have the same problem, the script is great but when the server crashes you get a box that tells you its crashed and you have to click close for it to kill the application, otherwise the script thinks it still running. I also have windows reporting turned off and I still get this problem.

Share this post


Link to post
Share on other sites
You're a funny guy.

We don't even really have a dedicated server binary for windows yet, linux is far off methinks.

Well considering that linux is the most stable OS for servers it would make more sence to first make a dedicated server software for linux and after that make one for windows.

Also linux is free, so you dont have to buy a other copy of windows if you want to set up a server pc for this game.

Which then would result in more people having dedicated servers.

Share this post


Link to post
Share on other sites
Well considering that linux is the most stable OS for servers it would make more sence to first make a dedicated server software for linux and after that make one for windows.

Also linux is free, so you dont have to buy a other copy of windows if you want to set up a server pc for this game.

Which then would result in more people having dedicated servers.

B.I have a history of releasing Windows server Dedi first, followed sometime later by Linux. Unfortunately for some I don't see them changing their practice. I do believe from a developers point of view, its easier to write the binary for windows first and then convert to Linux, rather than the other way around.

We used to run Linux servers instead, but due to their working practice, we were always weeks, months behind everyone else, so we switched. Also a lot of apps that are created by the community tend to be windows apps, so it makes it easier all around to run a windows server so that these apps can communicate with it

Share this post


Link to post
Share on other sites
Ok I got Firedeamon working where it will automatically restart the server if it closes.

First:

Create a batch file and name it "arma3servercheck.bat" using notepad or notepad+.

Place the following in it:

Then create your "server.bat" file using the launch parameters of your choosing.

Example (this is what we are using to run our ARMA 3 Wasteland server):

NOTE: Both of these files MUST be saved in the same location as your ARMA3.exe, otherwise you need to change the file directory to "arma3.exe" in each. Also note that if you are using this process you should have exit on the last line of the server.bat otherwise you will come back to a messy server with a lot of cmd windows open (depending on how many times your server shut down).

In FireDeamon create a service with the arma3servercheck.bat file and have it have a start-up time of 60000ms and a pre-launch delay of 60000ms. Also in the "Upon Program Exit:" Have it set to Restart the Program at 60000ms. All of those settings are overkill I am sure, but it makes it were every minute the process runs to see if arma3.exe is running, and if not starts it up. Hope this helps some people, and if anybody comes up with a better solution please let me know!

Thanks for this mate, seems to work great :)

Share this post


Link to post
Share on other sites

Hi all,

Some great work being done here. I have hit a little snag. Below you will find the start command and cfg I am using. I can connect fine, but a mission will not start. Thanks in advance for any help.

C:\Program Files (x86)\Steam\SteamApps\common\Arma 3>arma3.exe -server -nosound -nosplash -nopause -config=wasteland\server.cfg -profiles=wasteland -name=wasteland

// GLOBAL SETTINGS

hostname = "VIPER CORPS"; // The name of the server that shall be displayed in the public server list

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

passwordAdmin = "<REMOVED>"; // Password to become server admin.

// 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 Viper Corps Private Server",

"",

"viper-corps.org",

"",

""

};

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

// JOINING RULES

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

// VOTING

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

voteThreshold = 0.80; // 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 = 8; // Quality from 1 to 10

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

// MISSIONS CYCLE (see below)

class Missions

{

class Wasteland_Chernarus

{

template="404Wasteland_ArmA3.Stratis";

difficulty="Regular";

};

};

Edited by Cepheus74

Share this post


Link to post
Share on other sites
Hi all,

Some great work being done here. I have hit a little snag. Below you will find the start command and cfg I am using. I can connect fine, but a mission will not start. Thanks in advance for any help.

Try removing all the custom made missions first. Then try selecting one of the vanilla missions. if this works, add 1 user made mission at a time until you find the mission that is causing the issue

---------- Post added at 12:58 ---------- Previous post was at 12:53 ----------

Initial Post Updated to this point Changelog v1.02

Can some of you supply me with

Example configuration files for the bandwidth settings, including the spec of server and pipeline it is attached too.

Eg

a copy of your Arma3Alpha.cfg the basic specs, eg Xeon x5570 and 100mbit line supporting 40 players Forget that, use the default values, it seems altering them doesnt have any significant effect

Edited by Terox

Share this post


Link to post
Share on other sites

Hardware:

4x 2.0 Ghz i7 Xeon (SB-E architecture) CPU

8 GB of RAM

100Mbit/s connection

A few notes on performance and such we have determined while running a public server with organised coop play and some TvT with our pistol carnage maps.

- We can't push past 26 players without a server crash eventually happening. 26 Players is 24 hours stable for TvT and coop.

- With the server fully populated and with a reasonable amount of AI (60) we see server FPS that is 20-40.

- Fully populated the server will utilise about 8Mbit/s of upload bandwidth and just 2Mbit/s download.

- The server never goes above 2 cores used fully at any time, ie 200% usage.

We have found no real difference with tweaked Arma 2 network bandwidth settings or all defaults (empty file). The performance is reasonable in both cases and bandwidth usage is mostly unchanged. Tweaking the settings does not fix the crashing on larger numbers of players.

Share this post


Link to post
Share on other sites
Try removing all the custom made missions first. Then try selecting one of the vanilla missions. if this works, add 1 user made mission at a time until you find the mission that is causing the issue

---------- Post added at 12:58 ---------- Previous post was at 12:53 ----------

Initial Post Updated to this point Changelog v1.02

Can some of you supply me with

Example configuration files for the bandwidth settings, including the spec of server and pipeline it is attached too.

Eg

a copy of your Arma3Alpha.cfg the basic specs, eg Xeon x5570 and 100mbit line supporting 40 players

Thanks, what is the text to put in for the vanilla missions, I cant find this anyone I must be getting blind in my old age. Sorry, but this is my first time running an Arma server, thanks.

Im trying this on a 2008 R2 64bit server with x5650 100mbit+ connection.

Edited by Cepheus74

Share this post


Link to post
Share on other sites

In order to serve your mpmissions from another location than the root game folder, simply delete the folder and create a Junction (aka Symlink) instead.

mklink /J C:\steam\steamapps\common\user\Arma 3\mpmissions C:\Users\user\Desktop\Dropbox\mpmissions

We are using this to replace the standard mpmissions folder with a folder residing in a local dropbox. This way we can easily sync files from our local machines to the server. Those files are loaded into the server on runtime and then locked once the serverprocess gets hold of them (e.g. going to the mission selection). You can delete them from your local dropbox. On the server they'll get deleted once the gameserver has been stopped and unlocked the resources.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×