Jump to content

Discord   |   Play games and chat with our PC gaming community in Discord.
Launch Discord  
Photo

Creating a Local ARMA Server for Testing (includes MySQL and extDB2 Config)



  • Please log in to reply
4 replies to this topic

#1
Paronity

Paronity

  • Forum Member
  • var Paronity = new Guru();

  • 16,885 posts

Here is a guide on how to set up a server and add persistence to it for those that want to start mucking around with ARMA 3 coding. Keep in mind, that this is very basic, and not going to go into a TON of depth. Also, there are ZIP files below for those that keep things the way I have them set up. You would just need to change the paths in all of the configs. 

 

Let's get started. 

 

1.) Click on Library->Tools 9e9a0.png

 

2.) Find ARMA 3 Server and right-click and hit install-game 287W8.png

 

3.) Run the server once from Steam and then shut it down. 

 

4.) Next, you need the batch file to start the server. (There is a tool that people use to do this TADST, but it's not needed and just something else that can go wrong when you can do it with a single line batch file). 

 

This is what my batch file looks like:

start arma3server.exe -nosplash -skipintro -cpuCount=4 -exThreads=7 -noPause -noSound -high -maxMem=8192 -port=2302 "-config=C:\Servers\ArmA3\TEST-Server\server.cfg" "-cfg=C:\Servers\ArmA3\TEST-Server\basic.cfg" "-profiles=C:\Servers\ArmA3\TEST-Server" "-bepath=C:\Servers\ArmA3\TEST-Server\BattlEye" -name=TEST-Server "-mod=" -showScriptErrors -autoInit -loadmissiontomemory

Create a file with this in it and call it what you like. If you want to be able to run it from anywhere, just add the full path to arma3server.exe. Also, if you are doing altis life or any other mod, you will need to add them to the mod parameter. It's a comma separated field. Then you will also need to put those addons in the folder of the server. 

 

The server uses a profile name to determine where it's going to store it's config files. In my example above, it's TEST-Server. You can change it if you like but you will need to remember to change it throughout the rest of the process. 

 

5.) Next you want to create a folder with the profile name (TEST-Server) and we will create a couple files in there. Basic.cfg and Server.cfg. These files will be vastly different for a live server and will need to be tweaked and I will not be going into details on what the options in them mean. 

 

6.) In the folder created in step 5 make those two files. 

Basic.cfg:

MinBandwidth=15000000;
MaxBandwidth=100000000;
MaxMsgSend=512;
MaxSizeGuaranteed=1024;
MaxSizeNonguaranteed=64;
MinErrorToSend=0.0024999999;
MinErrorToSendNear=0.02;
MaxCustomFileSize=100000;
Windowed=0;
language="English";
adapter=-1;

Server.cfg

steamPort = 2302;
steamQueryPort = 2303;

hostName = "GSNGaming.com | ParoniLabs";
password = "join_password";
passwordAdmin = "admin_password";
reportingIP = "arma3pc.master.gamespy.com";
logFile = "";

motd[] = {

};
motdInterval = 250;

maxPlayers=70;
kickduplicate = 0;
verifySignatures = 1;
requiredSecureId = 0;

voteMissionPlayers = 1;
voteThreshold = 1.5;

disableVoN = 0;
vonCodecQuality = 5;
persistent = 1;
timeStampFormat = "none";
BattlEye = 1;

doubleIdDetected = "";
onUserConnected = "";
onUserDisconnected = "";
onHackedData = "";
onDifferentData = "";
onUnsignedData = "";
regularCheck = "";

class Missions
{
	class Mission_1
	{
		template = "race.Altis";
		difficulty = "regular";
	};
};

This line:

template = "race.Altis";

Dictates what mission will be started when the server starts. You can use any file in your MPMissions folder can be a folder, or a PBO. 

 

NOTE: If you kept the server profile name as TEST-Server, you can just download this zipped TEST-Server folder and drop it in the server files root directory. https://paronity.com/i/TEST-Server.zip

 

7.) It is at this point that you shuold have a working ARMA 3 server in your possession. Reminder: you will need to open whatever port you use in the server.cfg on your router if you want people to be able to connect to it. (both ports at the top of the file)  If you just wanted a working server, you are clear to stop here, if you are working on wasteland, or Altis or something with persistence, then you will want to continue on. 

 

8.) Ok - Now onto persistence. You can do this two ways with extDB2 (which is what we use for Altis Life). You can use something called SQLite (which is just a single flat-file database system), or you can use MySQL. I'm not going to get into the differences, positives and negatives, or anything as that isn't need for this guide. We use MySQL as it gives us much more control and flexibility, not to mention, easier to manage and build admin tools on top of. So the rest of this guide will assume that you are going to use MySQL. The means downloading the MySQL Server (for those of you working on our code for GSN, please see me and I will give you a database to use for testing on our server). 

 

9.) Walk through the installation process and keep track of your root username and password. You will need these later to connect to and manage the server. 

 

10.) Now we need something to manage the server. MySQL has the option of installing MySQL workbench, but I find it to be bloated and just not needed. I would recommend downloading HeidiSQL.

 

11.) Connect to the database and run your SQL file to create your database of choice (again, if you are doing work for us on our servers, see me and I will get you this file (if you don't want a database on our server)). 

 

12.) Now we need to download extDB2. In our Altis Life server, we are using SQL_RAW which was removed in version 64 because it's not the most efficient. Unfortunately, re-writing it to use CUSTOM_V2 takes a TON of time and I haven't done it yet, so if you intend on working on our code, download version 63

 

13.) Unpack those files in the root of the ARMA 3 server. (That DL is version 63 and a BARE config to hook up to our server for altis/wasteland once you put in your username and password). The name of the database we use in AltisLife is Database2. Not sure how it got named that at some point, but it's just been that way since. 

 

14.) On each of the 3 .dll files, right-click and goto properties and unblock the files if they need to be (this is a security thing that windows does when dlls and exes are brought from another computer).  5d2r0.png

 

15.) Open your config file and input the correct values under the [Database2] section. 

 

There you have it. You should now have a functional and working ARMA3 server with persistence. The config file for extDB2 will vary slightly if it's wasteland/altis life, but the general idea is the same. 

 

 

Suggested Programs

 

1.) HeidiSQL - To manage, maintain, and clean your MySQL Server. 

2.) PoseidonTools (Includes poseidon editor which syntax highlights ARMA code (.ext, .sqf, .hpp, .h, ect...). and includes the ability to open entire folders. (Example)

3.) 7zip (because people are using winRAR which sucks)

4.) PBO Manager - To pack/unpack PBO files. Includes a shell extension. (Right click option)

5.) TeamViewer (for when you need help from me ;))

 

 

That about takes care of it. Let me know if you run into any issues or have any questions. Thanks!



#2
TheGoats267

TheGoats267
  • Banned
  • Always Here

  • 1,958 posts

Glad to see this is in the making. As a lot of people know by now, I dove pretty deep into this process last night, and got hung up on the "persistence" portion (database and whatnot), so I look forward to the rest of the guide! 

 

Thanks for sharing so far!



#3
LoneWolf

LoneWolf

  • Forum Member
  • 1,237 posts
Brendan Allen has some good noob friendly vids in this as well. The thing I could never get right was the text of my hatchet to show in Market. Also learnt me real fast just copying nodes and adding 1 or 2 at the end doesn't fly.

#4
Paronity

Paronity

  • Forum Member
  • var Paronity = new Guru();

  • 16,885 posts

Bumped because I completed it. 



#5
Majorpain762

Majorpain762
  • Inactive
  • SHORT AND REASONABLY CLEAN

  • 621 posts
Awesome, thanks for putting this up. Myself, and @ECHO have been learning a lot about mission creation, and how things in Arma work. This tutorial will come in handy no doubt. Thank you for posting it @Paronity !




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users