Jump to content

  • Log in with Facebook Log in with Twitter Log In with Google Log In with Steam Sign In
  • Create Account

Tutorial info

  • Added on: Mar 28 2014 03:01 PM
  • Views: 21611
 


* * * * *
0 Ratings

How To Setup An Arma3 Server (Using SteamCMD)

A quick guide on how to setup and arma3 dedicated server for windows.

Posted by DomUk on Mar 28 2014 03:01 PM
Tutorial-Arma

The Server Files
There is two ways to get the dedicated server files on your machine;

  • Install Steam on your dedicated server and then download Arma3 Dedicated Server Tool from the tools section.
  • Install SteamCMD (Valves download and update tool) and use the following commands to download Arma3.
    @echo off
    echo This Will Install Stable Arma3
    steamcmd +login "STEAMUSERNAME" "STEAMPASSWORD" +force_install_dir c:\arma3\ +app_update 233780 validate +quit
    echo ----------------------------------------
    echo Download Compleate
    echo ----------------------------------------
    pause
    @echo off
    echo This Will Install Development Arma3
    steamcmd +login "STEAMUSERNAME" "STEAMPASSWORD" +force_install_dir c:\arma3\ +app_update 233780 -beta development validate +quit
    echo ----------------------------------------
    echo Download Compleate
    echo ----------------------------------------
    pause
    

     

    You will need to download and run steamCMD which can be found at the link - SteamCMD
    Run the application once then you need to create a batch file in the same folder as the SteamCMD.exe. This can be called anything you like (downloadarma3.bat) simply paste the code above in to the file and replace STEAMUSERNAME and STEAMPASSWORD with your own.
    One of them will install the stable branch, the other will install the development branch.
    Click run and leave it to download.

Server Setup
The next step is to setup your server config, this allows you to set the name, server password, admin password ect which will customize your server. Below is an example of a server.cfg that you can use, if you want to know more about what each option is please read this post here - Arma2OA Server.cfg Help

You should create a folder in the arma2oa folder called default server and then save your config as server.cfg. You can copy and paste the example below in to this file.


 

//
// 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";        // For ArmA1 publicly list your server on GameSpy. Leave empty for private servers
//reportingIP = "arma2pc.master.gamespy.com";        // For ArmA2 publicly list your server on GameSpy. Leave empty for private servers
reportingIP = "arma2oapc.master.gamespy.com";        // For Arma2: 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[] = {
    "", "",
    "Two empty lines above for increasing interval",
    "Welcome to our server",
    "", "",
    "We are looking for fun - Join us Now !",
    "http://www.example.com",
    "One more empty line below for increasing interval",
    ""
};
motdInterval = 5;                    // Time interval (in seconds) between each message


// JOINING RULES
checkfiles[] = {};                    // Outdated.
maxPlayers = 64;                    // 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 = 2;                    // Verifies .pbos against .bisign files. Valid values 0 (disabled), 1 (prefer v2 sigs but accept v1 too) and 2 (only v2 sigs are allowed).
equalModRequired = 0;                    // Outdated. If set to 1, player has to use exactly the same -mod= startup parameter as the server.
//requiredBuild = 12345                    // Require clients joining to have at least build 12345 of game, preventing obsolete clients to connect


// 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;                    // since 1.62.95417 supports range 1-20 //since 1.63.x will supports range 1-30 //8kHz is 0-10, 16kHz is 11-20, 32kHz is 21-30
persistent = 1;                        // If 1, missions still run on even after the last player disconnected.
timeStampFormat = "short";                // Set the timestamp format used on each report line in server-side RPT file. Possible values are "none" (default),"short","full".
BattlEye = 1; // Server to use BattlEye system


// SCRIPTING ISSUES
onUserConnected = "";                    //
onUserDisconnected = "";                //
doubleIdDetected = "";                    //
//regularCheck = "{}"; // Server checks files from time to time by hashing them and comparing the hash to the hash values of the clients. Causes heavy I/O, uncomment to disable feature - READ WARNING ABOVE - makes cheating possible!


// 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

//Steam Port
steamPort = 8766;                     //default 8766, defines port for communication with STEAM services, needs to be unique for each dedicated server within one OS instance / network interface
steamQueryPort = 27016;               //default 27016, defines port for server's STEAM query, needs to be unique for each dedicated server within one OS instance / network interface

// MISSIONS CYCLE (see below)
class Missions {};

Mission Cycle
At the bottom of your server.cfg you have a section where you can pre-load your missions for when the server starts up. You can create or download missions from the internet and then put them in the "MPMissions" folder in the arma2oa folder. You then take the name of the mission file you just placed in the folder and put it in the mission cycle section. Below is an example

  • If the mission file you downloaded was called "arma3wasteland.altis.pbo
    " then you would put in the mission cycle sectionclass Missions
    {
        class Wasteland
        {
            template="arma3wasteland.altis";
            difficulty="Regular";
        };
    };
    Take note that you do not put the ".pbo" on the end of the map template. The .altis at the end of the map name tells the server what map the server is going to use, the first part is just the name of the mission you are going to play.

Make sure that you change this in server.cfg if you copy pasted the example one, because if its left blank on server startup people will be able to vote for a map of their choice, rather than the one you want.

Server Startup Command Line
To start your server to test if it works you should create a batch file (startserver.bat) in the root (top folder) of the arma2oa directory. You will need to use something similar to below.

  • Arma3 Server
    arma3server.exe -ip=xxx.xxx.xxx.xxx -port=2302 -name=defaultserver -profiles=defaultserver -cfg=defaultserver\basic.cfg -config=defaultserver\server.cfg

Don't forget to put your own IP and PORT in place of the XXX in the example.

Setting Up Battleye
After running your server once, turn it off and then find your defaultserver folder, there should be a battleye folder located in this folder. You need to open the config_xxx.cfg that has been created, you should see on the first line is rcon PASSWORDHERE. You can either use this password or change it, this password can be used on tools such as BEC, Battlewarden or GOTCHA out of game to help manage admin, hackers and logs.

More information can be found @ http://www.battleye.com/

 

If you have any questions of problems please leave a comment below and I will do my best to get back to you.


Powered by Tutorials 1.5.1 © 2020, by Michael McCune