Setup Server - AsYetUntitled/Framework GitHub Wiki
Here you'll learn how to setup your own server, in both windows and linux environments.
Before starting, you should have both life_server and Altis_Life.Altis packaged as a pbo.
You can find it already packaged in our releases tab, or you can pack it using pboManager.
Download extDB3 from Torndeco's Bitbucket repository. Note: extDB3 is required for Altis Life RPG v5.0.0 as of commit 8de51bd.
If you're using a version <=4.4R4, extDB2 can be found here. It comes with both (Windows & Linux) versions. Just replace any mention of extDB3 in this guide with extDB2 and make sure to use the old extDB2-conf.ini format since it differs from extDB3.
Requirements:
- MySQL Server / MariaDB Server (MariaDB is recommended)
- Steam CMD
- vc2015 redist (x86)
- vc2015 redist 64-bit (Only needed if you're running the 64-bit Arma server executable)
Step 1: (Installing MySQL server)
- Download MariaDB server, install it and take note of your root login and password.
- Next, open HeidiSQL (Or MySQL WorkBench, or navicat... Heidi is already installed with MariaDB) and start a new session.
- Once the session has been started, open AltisLife.sql and edit the string 'changeme' to a password of your choice.
CREATE USER IF NOT EXISTS `arma3`@`localhost` IDENTIFIED BY 'changeme';
- Once the password has been changed, go to File > Load SQL File. Then, select the AltisLife.sql file. It'll open a new tab, then, just select the play button.
- Now, refresh it and you'll see a new database in the left, with the name "AltisLife".
Note: If you use MySQL, server version 5.6.5 or higher is required.
Step 2: (Installing Arma 3 Server)
This step is only needed if you don't have the ArmA 3 client already installed, if so, you can use its directory.
- Extract steamcmd to the folder where you want your ArmA 3 server to be installed.
- Now, double click on it, and it'll start to set the environment.
- When it finishes, you'll see a white line starting with "Steam>" in the cmd.
- Now do this:
Steam> login 'steamlogin' 'steampassword' 'steamguardcode'
Steam> app_update 233780 validate
Steam> quit
obs: steamguardcode is optional, and only for accounts with mobile guard enabled.
Example:
Steam> login armalife 123456 qtk4c
Steam> app_update 233780 validate
Steam> quit
Step 3: (Installing needed Mods/Mission)
- After installing your ArmA 3 server, in the folder where you put steamcmd.exe, go: steamapps > common > Arma 3 Server
- Afterwards, create a new folder with the name: @life_server, and inside this folder, another one with called: Addons
- Now, go back to the ArmA 3 Server folder and create one more folder with named: @extDB3
- It should be like this:
Arma 3 Server
├ @life_server
| └ Addons
└ @extDB3
- After this, copy the life_server.pbo to @life_server > Addons folder and the Altis_Life.Altis.pbo to MPMissions folder.
--------------------------------------------------
If you are using 5.0.0+, please note the following:
5.0.0 and future builds have two different SQMs (for both Altis & Tanoa). If you are downloading from the GitHub itself, these are contained within an SQMs
folder, and you must do the following:
- Open
SQMs
folder - Copy SQM for your chosen map
- Move SQM into
Altis_Life.Altis
(orTanoa_Life.Tanoa
etc) - Rename SQM to
mission.sqm
--------------------------------------------------
- And then, open extDB3-vXX.7z and extract @extDB3 and tbbmalloc.dll, in the Windows folder, to your ArmA 3 Server folder.
- It should be like this:
Arma 3 Server
├ @life_server
| └ Addons
| └ life_server.pbo
├ @extDB3
| ├ extdb-conf.ini
| └ extDB3.dll
├ MPMissions
| └ Altis_Life.Altis.pbo
└ tbbmalloc.dll
Step 4: (Configuring extDB3)
- Open the extdb3-conf.ini file (inside the @extDB3 folder)
- Inside it, edit it to resemble this:
[altislife]
IP = MyDatabaseIP
Port = 3306
Username = MyDatabaseLogin
Password = MyDatabasePassword
Database = altislife
Example:
[altislife]
IP = 127.0.0.1
Port = 3306
Username = arma3
Password = 123456
Database = altislife
Obs: Use 127.0.0.1 as IP if the MySQL server shares the same machine with arma3server.
Step 5: (Starting server)
- First, we need to create a batch file. For this, open the notepad, and paste this:
@echo off
echo ==============================
echo Starting the Altis Life Server
echo ==============================
echo.
set svExe=arma3server_x64.exe
set svPort=2302
set svMod=@life_server;@extDB3;
IF not exist "basic.cfg" (
echo ==============================
echo Creating basic.cfg file
echo ==============================
echo.
echo MaxMsgSend = 128; >> basic.cfg
echo MaxSizeGuaranteed = 512; >> basic.cfg
echo MaxSizeNonguaranteed = 256; >> basic.cfg
echo MinBandwidth = 131072; >> basic.cfg
echo MaxBandwidth = 2097152000; >> basic.cfg
echo MinErrorToSend = 0.001; >> basic.cfg
echo MinErrorToSendNear = 0.01; >> basic.cfg
echo MaxCustomFileSize = 1310720; >> basic.cfg
echo class sockets{maxPacketSize = 1400;}; >> basic.cfg
echo adapter=-1; >> basic.cfg
echo 3D_Performance=1; >> basic.cfg
echo Resolution_W=0; >> basic.cfg
echo Resolution_H=0; >> basic.cfg
echo Resolution_Bpp=32; >> basic.cfg
echo terrainGrid=25; >> basic.cfg
echo viewDistance=2000; >> basic.cfg
echo Windowed=0; >> basic.cfg
PING -n 2 127.0.0.1>nul
)
IF not exist "config.cfg" (
echo ==============================
echo Creating config.cfg file
echo ==============================
echo.
echo hostName = "ArmaLife Server -- Altis"; >> config.cfg
echo password = ""; >> config.cfg
echo passwordAdmin = "123456"; >> config.cfg
echo serverCommandPassword = ""; >> config.cfg
echo logFile = ""; >> config.cfg
echo motd[] = { >> config.cfg
echo }; >> config.cfg
echo. >> config.cfg
echo motdInterval = 3; >> config.cfg
echo maxPlayers = 75; >> config.cfg
echo kickduplicate = 1; >> config.cfg
echo verifySignatures = 2; >> config.cfg
echo allowedFilePatching = 0; >> config.cfg
echo requiredSecureId = 0; >> config.cfg
echo voteMissionPlayers = 3; >> config.cfg
echo voteThreshold = 1.5; >> config.cfg
echo disableVoN = 0; >> config.cfg
echo vonCodecQuality = 10; >> config.cfg
echo persistent = 1; >> config.cfg
echo timeStampFormat = "none"; >> config.cfg
echo BattlEye = 1; >> config.cfg
echo. >> config.cfg
echo doubleIdDetected = ""; >> config.cfg
echo onUserConnected = ""; >> config.cfg
echo onUserDisconnected = ""; >> config.cfg
echo onHackedData = ""; >> config.cfg
echo onDifferentData = ""; >> config.cfg
echo onUnsignedData = ""; >> config.cfg
echo regularCheck = ""; >> config.cfg
echo. >> config.cfg
echo class Missions >> config.cfg
echo { >> config.cfg
echo class Mission_1 >> config.cfg
echo { >> config.cfg
echo template = "Altis_Life.Altis"; >> config.cfg
echo difficulty = "regular"; >> config.cfg
echo }; >> config.cfg
echo }; >> config.cfg
PING -n 2 127.0.0.1>nul
)
:folder
set Folder=ServerProfiles
IF not exist %Folder% (
echo ==============================
echo Creating ServerProfiles Folder
echo ==============================
echo.
mkdir %Folder%
PING -n 2 127.0.0.1>nul
)
echo ==============================
echo Server .exe: %svExe%
echo ==============================
echo.
start "" "%svExe%" -cfg=basic.cfg -config=config.cfg -profiles=ServerProfiles -nosound -port=%svPort% -serverMod=%svMod% -autoInit;
PING -n 2 127.0.0.1>nul
echo ==============================
echo Listening to port: %svPort%
echo ==============================
echo.
PING -n 2 127.0.0.1>nul
echo ==============================
echo Mods: %svMod%
echo ==============================
echo.
PING -n 8 127.0.0.1>nul
@exit
- Then, save it as startserver.bat and place it inside your ArmA 3 server folder
- Now, just double click it and the server will start with all the needed mods & config files
Obs: Remember to install the vc2015 redist (x86) before starting the server. Otherwise, you won't be able to connect to the database.
Obs2: The batch creates both config & basic CFGs in the root folder.
Obs3: The RPT logs from the server are saved in the ServerProfiles, inside your ArmA 3 server folder.
-=WIP=-