- Offizieller Beitrag
Tutorial aktualisiert am : 20.12.2020
Hallo zusammen!
Hier findet ihr nun endlich das für extDB3 und die neue 64bit Architektur von ArmA 3 überarbeitete Tutorial, oder anders gesagt: Wie erstelle Ich einen eigenen ArmA 3 Server?
Sollte ich etwas vergessen haben informiert mich bitte darüber, ich ergänze es dann.
Vorwort:
In diesem Tutorial werde Ich nicht auf die Einrichtung von Tools via BEC eingehen! (Nein BEC ist noch immer nicht BattlEye sondern lediglich ein Tool für dessen Verwaltung.)
Weiterhin solltest du diesen Beitrag lesen, falls du auf die Idee kommen solltest XAMPP verwenden zu wollen: Weshalb man XAMPP besser nicht nutzen sollte
Folgendes werdet ihr im laufe des Tutorials einrichten:
- ArmA 3 Gameserver (64bit)
- Datenbankserver & passende Datenbank für die aktuellste Altis- oder Tanoa Life Version
- Datenbankbenutzer
- extDB3 (64bit)
- BattlEye Konfiguration für die Verbindung via RCon
- Altis Life und extDB3 oder Tanoa Life und extDB3 (Aktuellste Versionen!) (Alternativ könnt ihr Altis- und Tanoa Life auch direkt vom GitHub Repository beziehen. Dort muss extDB3 aber separat geladen werden. https://github.com/AsYetUntitled/Framework )
Ihr benötigt zudem folgende Programme:
- Notepad++
- PBO Manager
- Navicat Lite
- MariaDB Server (MySQL)
- Visual Studio C++ Redistributable 2013 32bit + 64bit (Für Windows Server Versionen außer Windows Server 2019 benötigt)
- Visual Studio C++ Redistributable 2015 32bit + 64bit (Für alle Windows Server Versionen benötigt)
- Visual Studio C++ Redistributable 2017 32bit + 64bit (Nur für Windows Server 2019 benötigt)
- DirectX (Alternativer download: https://www.microsoft.com/de-de/download/details.aspx?id=35)
Installiert bitte alles außer MariaDB im Vorfeld. Für MariaDB gibt es im laufe des Tutorials eine Anleitung.
Alle benötigten Dateien sind entsprechend verlinkt und können direkt heruntergeladen werden.
Schritt 1:
Nach der Installation von Windows auf eurem Rootserver findet ihr nun eine leere Desktopoberfläche vor.
Zu Beginn installieren wir benötigte Komponenten damit extDB3 im späteren Verlauf korrekt funktionieren kann. Ladet dazu einfach "Visual Studio C++ Redistributable 2015 32bit + 64bit" aus der Liste oben herunter und installiert sowohl die 32bit als auch die 64bit Variante. Sorgt zudem dafür dass eure Windows-Updates auf dem aktuellsten Stand sind!
Erstellt nun im Anschluss folgende Verzeichnisse:
C:\server\steam
C:\server\A3Master
C:\server\A3Files
Schritt 2:
Ladet euch hier die SteamCMD.exe herunter: KLICK MICH
Und packt diese in dieses Verzeichnis: C:\server\steam
Anschließend startet ihr diese durch einen Doppelklick und wartet bis Steam die notwendigen Dateien heruntergeladen hat welche sich nun im selben Verzeichnis befinden sollten.
HINWEIS: Eine Installation des Steam-Clients wie ihr es sicher von eurem Computer Zuhause kennt ist NICHT nötig!
Schritt 3:
Wechselt nun in folgendes Verzeichnis: C:\server\A3Files
Verschiebt nun die .bat Datei mit dem Namen "serverupdate.bat" welche ihr im Anhang dieses Beitrages finden könnt in dieses Verzeichnis. Wenn ihr selbst in der Lage seid eine .bat Datei zu erstellen könnt ihr dazu diesen Inhalt nutzen:
@echo off
@rem http://media.steampowered.com/installer/steamcmd.zip
SETLOCAL ENABLEDELAYEDEXPANSION
:: DEFINE the following variables where applicable to your install
SET STEAMLOGIN=STEAMNAME STEAMPASSWORT
SET A3serverBRANCH=233780 -beta
:: For stable use 233780 -beta
:: For Dev use 233780 -beta development
:: Note, the missing qotation marks, these need to be wrapped around the entire "+app_data......"
:: There is no DEV branch data yet for Arma 3 Dedicated Server package !!!
SET A3serverPath=C:\server\A3Master
SET STEAMPATH=C:\server\steam\
:: _________________________________________________________
echo.
echo You are about to update ArmA 3 server
echo Dir: %A3serverPath%
echo Branch: %A3serverBRANCH%
echo.
echo Key "ENTER" to proceed
pause
%STEAMPATH%\steamcmd.exe +login %STEAMLOGIN% +force_install_dir %A3serverPath% +"app_update %A3serverBRANCH%" validate +quit
echo .
echo Your ArmA 3 server is now up to date
echo key "ENTER" to exit
pause
Alles anzeigen
Bei "SET STEAMLOGIN=STEAMNAME STEAMPASSWORT" ersetzt ihr "STEAMNAME" durch euren Steamloginnamen und "STEAMPASSWORT" durch dass dazugehörige Passwort damit die nötigen Daten für den Arma 3 Server heruntergeladen werden können. Solltet ihr die .bat Datei auf dem Anhang verwendet führt auf diese einen Rechtsklick auf und öffnet sie im Anschluss am besten mit Notepad++ (Kostenloser Download)
Startet nun die serverupdate.bat und wartet ab bis alle Daten heruntergeladen wurden. Immer wenn ein Arma3 Update erscheint startet ihr diese .bat Datei um auch euren Server zu updaten.
ACHTUNG: Falls ihr Steamguard aktiviert habt kann es sein dass ihr nach einem Code gefragt werdet. Diesen erhaltet ihr per EMail und müsst ihn einfach dort eingeben um den Download zu starten.
HINWEIS: Um Euren Server künftig zu updaten führt ihr ebenfalls die serverupdate.bat aus, stoppt davor jedoch euren ArmA 3 Server!
Schritt 4:
Öffnet nun folgendes Verzeichnis: C:\server\A3Master
Erstellt dort die Datei "server.cfg" mit folgendem Inhalt:
(Einige Inhalte habe ich übersetzt da ich schon zu oft danach gefragt wurde.. Votefunktionen sind bereits deaktiviert.)
Falls ihr nicht wisst wie ihr eine .cfg Datei erstellt könnt ihr euch diese einfach auf dem Anhang in diesem Beitrag herunterladen.
/*
################## Arma 3 Servereinstellungen ###################
### EDIT: Andre Reinhardt (Nox) ###
### WEB: native-network.net ###
### QUELLE: Bohemia Interactive Studios ###
### Die bereits vorhandenen Einstellungen sind lediglich eine ###
### Empfehlung von uns, können jedoch verändert werden ###
#################################################################
*/
steamPort = 8766;
steamQueryPort = 27016;
// ███████████████████████████████████████████████████████████████████████
// █████████████████████████ GRUNDEINSTELLUNGEN ██████████████████████████
// ███████████████████████████████████████████████████████████████████████
hostname = "Mein Altis Life Server | www.native-network.net | Rootserver Tutorial von Nox :)";
password = "123"; //Bei keinem Passwort einfach leer lassen...
passwordAdmin = "DEIN ADMIN PASSWORT";
admins[] = {"ADMINUSERID1","ADMINUSERID2"}; //Trage hier die SteamIDs der Administratoren ein welche sich mithilfe des Admin-Passwortes anmelden sollen. Wird benötigt seit Arma 3 Version 1.69+
logFile = "arma3server.log";
verifySignatures = 2; // Verhindert dass Spieler welche unbekannte Mods verwenden deinen Server betreten und hält so eine Menge Hacker fern. Standart: 2
equalModRequired = 0; // Prevent players who don't have the exact same mods as the server from joining (best kept at 0)
requiredSecureId = 2; // was used to define type of secureID
maxPlayers = 64; // Slotzahl deines Servers. Empfohlen: 64
kickDuplicate = 1; // Each player normally has its own unique ID. If set to 1, players with an ID that is identical to another player will be kicked
BattlEye = 1; // BattlEye Ein- oder Abschalten. 1 = Eingeschaltet | 0 = Ausgeschaltet (Nicht empfohlen!)
motd[] =
{
"Willkommen auf meinem Server! :)",
"Besuch unsere Homepage auf www.deinehomepage.de :)"
};
motdInterval = 30; // Time interval (in seconds) between each message
// ███████████████████████████████████████████████████████████████████████
// ███████████████████████ MISSIONSEINSTELLUNGEN █████████████████████████
// ███████████████████████████████████████████████████████████████████████
voteMissionPlayers = 1; // Tells the server how many people must connect before displaying the mission selection screen, if you have not already selected a mission in this config
voteThreshold = 2; // Percentage (0.00 to 1.00) of players needed to vote for something, for example an admin or a new mission, to become effective. Set to 9999 to prevent people from voting random players as admins.
drawingInMap = true; // Enables or disables the ability to place markers and draw lines in map. Default: true (since Arma 3 1.63+).
forceRotorLibSimulation = 0; // Enforces the Advanced Flight Model on the server. Default = 0 (up to the player). 1 - forced AFM, 2 - forced SFM
class Missions
{
class Mission1
{
template="Altis_Life.Altis";
difficulty="Regular";
};
};
// ███████████████████████████████████████████████████████████████████████
// █████████████████████ ERWEITERTE EINSTELLUNGEN ████████████████████████
// ███████████████████████████████████████████████████████████████████████
disconnectTimeout = 20; // Server wait time before disconnecting client, default 90 seconds, range 5 to 90 seconds. (since Arma 3 1.56+)
maxdesync = 150; // Max desync value until server kick the user (since Arma 3 1.56+)
maxping = 200; // Max ping value until server kick the user (since Arma 3 1.56+)
maxpacketloss = 80; // Max packetloss value until server kick the user (since Arma 3 1.56+)
disableVoN = 0; // If set to 1, voice chat will be disabled
vonCodecQuality = 10; // Supports range 1-30; 8kHz is 0-10 (narrowband), 16kHz is 11-20 (wideband), 32kHz is 21-30 (ultrawideband); higher = better sound quality
persistent = 1; // If set to 1, missions will continue to run after all players have disconnected
timeStampFormat = "short"; // Set the timestamp format used on each line of the server RPT log file. Possible values are "none" (default), "short", "full".
allowedVoteCmds[] = {}; //Deaktiviert ALLE Votefunktion, solange in den Klammern keine Funktionen angegeben sind.
allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; // only allow files with those extensions to be loaded via loadFile command (since Arma 3 build 1.19.124216)
allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; // only allow files with those extensions to be loaded via preprocessFile/preprocessFileLineNumber commands (since Arma 3 build 1.19.124323)
allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"}; // only allow files with those extensions to be loaded via HTMLLoad command (since Arma 3 build 1.27.126715)
onUserConnected = ""; // command to run when a player connects
onUserDisconnected = ""; // command to run when a player disconnects
doubleIdDetected = ""; // command to run if a player has the same ID as another player in the server
onUnsignedData = "kick (_this select 0)"; // command to run if a player has unsigned data
onHackedData = "kick (_this select 0)"; // command to run if a player has data with invalid signatures
onDifferentData = ""; // command to run if a player has modified data
Alles anzeigen
Anschließend erstellt ihr eine Verknüpfung der arma3server_x64.exe auf eurem Desktop.
Macht einen Rechtsklick auf dieser Verknüpfung, klickt auf Eigenschaften und gebt nun bei "Ziel:" folgendes ein:
C:\server\A3Master\arma3server_x64.exe -autoinit -servermod=@extDB3;@life_server -config=server.cfg -bepath=C:\server\A3Master\battleye -profiles=C:\server\A3Master
Danach klickt ihr auf OK.
Schritt 5:
Kommen wir nun zum lustigen Teil, dem Port Forwarding (Portfreigaben).
Diese werden benötigt damit der Server ohne Probleme nach außen kommunizieren kann und damit euren Spielern Verbindungsprobleme aufgrund verschlossener Ports erspart bleiben.
Öffnet folgendes: Systemsteuerung>System und Sicherheit>Windows-Firewall.
Wählt dort den Punkt "Eine App oder ein Feature durch die Windows-Firewall zulassen".
Dort klickt ihr nun auf "Einstellungen ändern" und im Anschluss auf "Andere App zulassen..."
Dort wählt ihr nun einfach eure arma3server_x64.exe aus, danach sind alle benötigten Ports für ArmA 3 freigegeben und ihr brauch euch darum keine Sorgen mehr zu machen.
ACHTUNG: Egal was euch jemand erzählt, schaltet NIEMALS eure Windows-Firewall komplett aus! Sollte euch jemand raten diese abzuschalten, hat dieser jemand keine Ahnung und stellt eine Gefahr für euren Server dar. Klingt hart, ist aber so.
Schritt 6:
Nun konfigurieren wir BattlEye um eine Verbindung via RCon zu ermöglichen, so könnt Ihr dann unter anderem Spieler bannen und Nachrichten an den Server und einzelne Spieler senden.
Öffnet folgende Datei mit Notepad++: C:\server\A3Master\battleye\beserver.cfg
Der Inhalt dieser Datei sollte wie folgt aussehen:
Der Parameter "RConPassword" gibt das Passwort an mit welchem man via RCon auf den Server verbinden kann, der "RConPort" kann an sich beliebig geändert werden, jedoch darf der Port nicht bereits von ArmA 3 belegt sein (zb kein 2302-2305). Der Parameter "RConIP" gibt an von welcher IP Adresse aus eine Verbindung via RCon zu eurem Server hergestellt werden kann, der Wert "0.0.0.0" erlaubt jedem Besitzer des RCon-Passwortes sich von einer beliebigen IP auf den Server zu verbinden.
Schritt 7:
Nun installieren wir einen Maria DB (MySQL) Server und ein entsprechendes Verwaltungsprogramm auf dem Server.
Wir werden uns während der Installation auch um eine grundlegende Konfiguration kümmern welche die Leistung des Maria DB (MySQL) Servers im Vergleich zu einer normalen Installation etwas anheben wird.
Ladet euch hier die Maria DB herunter: KLICK MICH
Startet nun den Installationsvorgang durch einen Doppelklick auf die heruntergeladene Datei. Los gehts:
Startet die Installation und klickt auf Next.
Setzt im Anschluss einen Haklen bei "I accept the terms in the License Agreement" und klickt dann ebenfalls auf Next.
Im Anschluss klickt ihr erneut auf Next und wählt im dann auftauchenden Fenster ein SICHERES Passwort für eure Datenbank.
Klickt im Anschluss 3x auf Next und im Anschluss auf Install.
ACHTUNG: Das Passwort des "root"-Benutzers ist ein sehr wichtiger Punkt wenn es um die Sicherheit eures Servers geht. Wir werden für den Altis Life Server zwar einen anderen Benutzer verwenden, ebenfalls aus Sicherheitsgründen, trotzdem sollte das Passwort des "root"-Benutzers besonders Sicher sein. Ich empfehle euch ein generiertes Passwort aus 25 Stellen mit Groß- und Kleinbuchstaben als auch Zahlen.
Hier könnt ihr einfach ein Passwort generieren: Passwort Generator ツ - Kostenlos sicheres Passwort erstellen
WICHTIG: Speichert dieses Passwort UNBEDINGT und bewahrt es sicher auf! Jeder der dieses Passwort kennt hat volle Kontrolle über euren MySQL Server!
Klickt nun auf Finish um die Installation abzuschließen.
Geschafft! Euer Maria DB (MySQL) Server ist nun Installiert, konfiguriert und Einsatzbereit!
Schritt 8:
Für Die Verwaltung der Datenbanken innerhalb des MySQL Datenbankservers verwendet ihr "Navicat Lite".
Das ganze gibt es hier kostenlos: KLICK
Via Navicat habt ihr die Möglichkeit eure Datenbanken zu verwalten um zum Beispiel etwas zu editieren oder die Datenbank neu zu installieren.
Ich bevorzuge Aufgrund des Funktionsumfangs die kostenpflichtige Vollversion von Navicat (auf navicat.com für ca 120€), woher ihr diese allerdings bekommt bleibt euch überlassen... *hust*
Die kostenlose Version reicht jedoch auch voll und ganz aus(!).
Die Installation von Navicat könnt ihr ganz einfach durchklicken, dort gibt es nichts zu beachten.
Nach der Installation von Navicat stellen wir nun die Verbindung zur Datenbank her.
Öffnet Navicat, klickt Links auf "Connection" und wählt "MySQL".
Als Connection Name wählen wir "localhost". Die Einstellung "localhost" und den Port 3306 lasst ihr unverändert. Als Benutzernamen und Passwort tragt ihr die Daten ein welche ihr während der MySQl Installation festgelegt habt. Also als benutzername "root" (ohne "") und euer festgelegtes Passwort.
Klickt im Anschluss auf "Test Connection" und die Verbindung sollte erfolgreich sein wenn ihr alles richtig gemacht habt.
ACHTUNG: Die Screenshots können von eurer Version von Navicat abweichen. Ich nutze die kostenpflichtige...
Klickt nun auf "OK" und wir können mit dem Import eurer Datenbank beginnen.
Doppelklickt nun "localhost" links in der Liste, woraufhin sich eine Liste mit Datenbanken öffnet. Dabei handelt es sich um Datenbanken welche Standartmäßig in MySQL enthalten sind, lasst einfach die Finger von diesen.
Recktsklickt nun "localhost" und wählt "Execute SQL File..."
Bei "File" wählt ihr nun die .sql Datei eurer Datenbank aus welche sich als "altislife.sql" im Downloadordner der Missionsdatei befindet und klickt anschließend auf "Start". Nun wird die Datenbank importiert, danach könnt ihr das Fenster schließen.
Nun sollte sich Links in der Liste der Datenbanken eine neue Datenbank mit Namen "altislife" befinden. Eventuell müsst Ihr die Liste dazu neu laden (F5).
Doppelklickt ihr diese erscheinen Tabellen, darin befinden sich alle Daten eures Server wie Spielernamen, Fahrzeuge, Gangs etc.
Wir erstellen nun kurz einen neuen Benutzer da wir aus Sicherheitsgründen nicht mit dem "root"-Benutzer arbeiten werden.
Klickt also oben in Navicat auf "User" und anschließend auf "New User".
Tragt dort nun einen Benutzernamen und ein Passwort eurer Wahl ein. Auch hier empfehle ich euch ein sicheres Passwort zu verwenden, dieses könnt ihr ebenfalls generieren.
Wählt nun im oberen Reiter den Punkt "Privileges" und klickt dann auf "Add Privilege".
Dort setzt ihr Links einen Haken bei eurem Datenbanknamen und vergebt mithilfe der Hakenfelder Rechts die folgenden Rechte:
Select, Insert, Update, Trigger, Execute, Event, Delete
Mehr Rechte als diese benötigt der Benutzer für den Betrieb eines ArmA 3 Altis Life Servers nicht.
Klickt nun auf "OK".
Im darauf folgenden Fenster müsst ihr nun lediglich auf "Save" klicken, dann habt ihr die Erstellung eines neuen Benutzers abgeschlossen.
Schritt 9:
Kommen wir nun zur Konfiguration von extDB3.
Ich gehe hier nur auf die Installation der aktuellsten Altis- so wie Tanoa Life Versionen mit extDB3 ein!
Verschiebt die Dateien "@extDB3", "tbbmalloc.dll" und "tbbmallox_x64.dll" aus dem Verzeichnis der heruntegeladenen Missionsdatei in folgendes Verzeichnis: C:\server\A3Master. Öffnet nun in eurem A3Master Verzeichnis den "@extDB3" Ordner und im Anschluss die "extdb-conf.ini".
Das ganze sollte in etwa so aussehen:
[Main]
Version = 1
Randomize Config File = false
;; Randomizes Config File after loading.
;; Recommend to turn on, if you have enabled filepatching on arma.
Allow Reset = false
;; Allows 9:RESET, usefull for development work
Thread = 0;
;; Option to force number of worker threads for extDB3.
;; Auto = 0, Min = 2, Max = 6
[Log]
Flush = true;
;; Flush logfile after each update.
;; Option really only usefull if running DEBUG BUILD
[Database]
IP = 127.0.0.1
Port = 3306
Username = changeme
Password = changeme
Database = changeme
Alles anzeigen
Ändert dort den unteren Abschnitt wie folgt:
[altislife]
IP = 127.0.0.1
Port = 3306
Username = DEIN BENUTZERNAME
Password = DEIN PASSWORT
Database = altislife
ACHTUNG: Bitte nicht vergessen den neu erstellen Benutzer und nicht den root Benutzer zu verwenden!
Zum Schluss kopiert Ihr die heruntergeladene Missionsdatei (zb Altis_Life.Altis) als auch das beiliegende in den Ordner "mpmissions" unter C:\server\A3Master
Folgendes Verzeichnis müsst Ihr noch erstellen: C:\server\A3Master\@life_server\addons
In dieses kopiert Ihr den Ordner "life_server" und verpackt diesen zu einer ".pbo" indem Ihr den Ordner Rechtsklickt und anschließend mithilfe des PBO Managers als PBO packt.
Vergesst nicht den Ordner "Altis_Life.Altis" oder "Tanoa_Life.Tanoa" ebenfalls via Rechtsklick mithilfe des PBO-Managers in eine .PBO Datei umzuwandeln!
Nun könnt Ihr euren Server über die zu Beginn des Tutorials erstellte Verknüpfung starten.
FERTIG.
Ich hoffe ich konnte einigen von euch helfen und die Installation ihres Servers etwas erleichtern. Bei Fragen erstellt bitte hier einen neuen Beitrag: Spieler helfen Spielern
Bis dahin und Viel Erfolg!
Falls ich etwas vergessen habe, shame on me.. Aber es war echt viel zu schreiben.