[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung)

[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung)

Vorab

VoraussetzungBevor wir starten, stellt sicher das ihr bereits einen Account[www.factorio.com] auf der Offizellen Seite[www.factorio.com] von Factorio habt.

Den Account oder Token welches die Voraussetzung auch benötigt, werdet ihr brauchen um euren Server in der „Öffentliche Server“ zu registrieren. Ein reiner Lokaler Server funktioniert auch ohne!

Herunterladen

Achtung

InformationAußerdem gibt es zwei Möglichkeiten wie ihr einen Factorio Server auf Windows erstellt.

Wenn ihr die Steam Version von Factorio zum hosten eines Server nutzen wollt, müsst ihr nur zu eurem Factorio Ordner gehen. Standard gemäß werdet ihr unter:

"C:\Program Files (x86)\Steam\steamapps\common\Factorio" fündig.

Wollt ihr aber eine Steam / DRM-Freie Version verwenden, findet ihr auf der Offiziellen Seite[www.factorio.com] wenn ihr angemeldet seit und rechts nach einen großen orangen Knopf namens Download[www.factorio.com] sucht, schließlich auch fündig.

Achtet darauf das ihr NICHT die Headless Datei herunterladet, da dies NUR für Linux ist.

AnmerkungSollte ihr euch bei der Auswahl des Spieles für die „zip package“ Version entschieden haben, stellt sicher das ihr ein Datenkompressionsprogramm[de.wikipedia.org] wie z. B. 7-Zip[www.7-zip.de] installiert habt.

In den allermeisten Fällen funktioniert es auch mit der experimentelle Versionen[www.factorio.com] von Factorio.

Ordner Optionen


[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 13
[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 14

Ordner AnsichtBevor wir gleich loslegen und den Server gleich zum starten bringen wollen wir vorher noch sicherstellen das wir alle Endungen von den Datein einsehen können. Hierzu gibt es dieses kurze Video[praxistipps.chip.de] .

Oder folgt den Anweisungen:

Gibt in der Windows Suche „Explorer-Optionen“ ein und bestätigt mit der Eingabetaste.

Als nächstes wechselt ihr den Reiter auf „Ansicht“ und sucht nach „Erweiterungen bei bekannten Dateitypen ausblenden“ dort macht ihr das Kreuz raus.

Manueller Start


[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 20
[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 21
[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 22
[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 23

Schritt 1: Speicherstand kopierenWir haben noch eine Voraussetzung die wir erfüllen müssen und zwar öffnen wir unser Spiel, erstellen eine neue Karte mit all den Einstellungen die wir gerne hätten, generieren diese Karte und speichern die Karte ab, in unseren Fall nennen wir den Spielstand „MeinSpielstand.zip“. In der Steam Version findet ihr euren Spielstand am schnellsten wenn ihr die Tastenkombination [Windows+R] (Das ist die Flaggentaste die wie das Logo von Windows ausschaut) gleichzeitig drückt. Dann erscheint das „Ausführen“ Fenster. In diesem Fenster geben wir jetzt „%appdata%“ ein und es öffnet sich ein neues Verzeichnis, dort navigieren wir dann anschließen zu „Factorio“ und unter „save“ finden wir unseren Spielstand. Diesen kopieren wir in unseren Factorio Server Ordner.

Schritt 2: ConsoleUm den Server jetzt zu starten zu können müssen wir als nächstes die Windows Eingabeaufforderung[de.wikipedia.org] (auch bekannt als cmd) öffnen. Dazu wiederholen wir Schritt 1 bis wir das „Ausführen“ Fenster wieder haben in dem ihr jetzt nur noch „cmd“ eingeben müsst und anschließen auf „OK“ drückt.

Schritt 3: NavigierenJetzt haben wir unsere Console und sind schon fast Start bereit! Wir müssen noch ein Schritt gehen und zwar müssen wir jetzt zur unseren Factorio Server Ordner navigieren. Dazu kopieren wir einfach unseren Pfad und geben in der Console „cd "UnserenPfad““ ein.

Tipp: Wenn ihr nur die Anfangsbuchstaben eingibt dann könnt ihr mit der Taste [Tab] (Tabulator) den Rest automatisch anzeigen lassen.

Schritt 4: Server startenJetzt müssen wir nur noch ein Befehl eingeben um unseren Server zu starten!

bin\x64\factorio.exe --start-server MeinSpielstand.zipIm der nächsten Sektion erfährt ihr wie ihr den Server über die so genannte Batchdatei startet!

Einfacher Start


[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 31
[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 32

BatchAls nächstes wollen wir das starten des Servers vereinfachen. Dazu legen wir uns eine Batchdatei[de.wikipedia.org] an.

Mithilfe dieser Zeile lässt sich der Server jetzt auch schon starten:

@echo off

title Factorio Server

bin\x64\factorio.exe --start-server MeinSpielstand.zip

pause

Wie ihr diese Datei bekommt ist ganz einfach, öffnet einen beliebigen Editor oder den mitinstallierten von Windows Editor (Notepad). Danach kopiert ihr diesen Code und fügt ihn bei euch ein. Jetzt müsst ihr nur noch auf „Datei“ gehen und „Speichern unter...“ hierbei ist zu beachten das ihr die Datei mit der Endung „.bat“ speichert, z. B. „Server Start.bat“.

Eure Verzeichnis sollte jetzt auch so aussehen:

AchtungWichtig ist hierbei das ihr einen Spielstand in euren Factorio Server Ordner habt! In diesem Fall haben wir den Spielstand in „MeinSpielstand.zip“ geändert. Selbstverständlich könnt ihr den Namen ändern, vergisst aber nicht auch in der Batchdatei anzupassen!

Erweiterter Start


[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 43
[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 44

IndexNach dem wir erfolgreich einen Server gestartet haben, würden wir gerne weitere Einstellungen vornehmen.

In dieser Sektion werden wir folgendes tun:

laden der Server-settings.json Datei

- Token einfügen

laden der config.ini Datei

- Port bestimmen

Mods hinzufügen

- Modeinstellungen hinzufügenWeitere Parameter findet ihr hier[wiki.factorio.com]

server-settings.jsonAls aller erstes gehen wir in den „data“ Ordner und kopieren die „server-settings.example.json" und benennen sie in „server-settings.json" um. Hier findet ihr außerdem die übersetzte Datei[pastebin.com] von mir. Die Datei könnt ihr im selben Ordner lassen, der Pfad muss aber angegeben werden, achtet darauf auf den Code.

Als nächstes öffnen wir die Datei mit unseren beliebigen Editor und bearbeiten sie.

TokenSolltet ihr beim bearbeiten anstelle eure Factorio Account Passwort für den Token entschieden haben so findet ihr den auf der Offizellen Seite[www.factorio.com] von Factorio unter euren Namen[www.factorio.com] rechts.

config.iniDas gleiche machen wir auch mit der „config.ini“ die ihr wenn ihr einen „Manuellen Start“ oder „Einfachen Start“ wie hier beschrieben wird durchgeführt habt automatisch generiert worden ist, ansonsten findet sie ihr natürlich auch hier auf Pastebin[pastebin.com] . Hierbei ist zu beachten das jeder Text der mit einen Semikolon (;) anfängt als Kommentar gilt! Kommentare werden von dem Spiel oder Server ignoriert. Ebenfalls wichtig ist das nicht alle Einstellungen in dieser Datei nur für den Server sind sondern auch für das normale Spiel, also sprich wenn ihr jetzt in den „bin/x64/“ Ordner geht und die „factorio.exe“ ausführt. Ihr könnt aber davon ausgehen das die Sektionen „path“ und „other“ funktionieren dementsprechend „könnt“ ihr diese anpassen.

Bemerkung zu config.iniWenn ihr den Port über die „config.ini“ Datei bestimmt könnt ihr nachher im Code den Port entfernen!

ModsDie erste Möglichkeit wäre das ihr die Mods in euren Client herunterladet und einstellt.

Wie schon in der Sektion „Manueller Start“, öffnet ihr mit der Tastenkombination [Window+R] gleichzeitig das „Ausführen“ Fenster und gibt „%appdata%“ ein und navigiert zu Factorio. Dort findet ihr dann den Ordner „Mods“ den ihr kopiert und dann zu euren Factorio Server Ordner einfügt. Kleine Anmerkung die Einstellungen für die Mods befindet sich im „Mods“ Ordner namens „mod-settings.dat“

Tipp von mir:

Ich selbst verwende den ModMyFactory[github.com] welches erlaubt ganz einfach mehre Mods zu aktualisieren bevor ihr das Spiel startet außerdem mehrere „Modpack“ erstellen lässt und auch per Verknüpfung jeden „Modpack“ starten. Und ihr könnt euren „Modpack“ exportieren und an euren Freunden weitergeben die es dann in ihren ModMyFactory importieren. Es ist auch in der deutschen Sprache verfügbar!

Hinweis hier noch, wenn ihr beim „exportieren“ unten rechts auf das Ordner-Symbol geht, werden alle Mods mit eingebunden.

Die zweite Möglichkeit ist das ihr auf der Offiziellen Mod Portal Seite[mods.factorio.com] die Mods einzeln herunterlädt und in den „Mods“ Ordner von euren Server einfügt! Hierbei ist zu beachten das es aber keine Möglichkeit gibt die Einstellungen für die Mods zu konfigurieren. Daher befürworte ich natürlich die erste Möglichkeit.

Das ganze sollte dann so im euren Server Ordner aussehen:

Batchdatei & startWie erwähnt braucht ihr den Port nicht angeben den es wird automatisch auf 34197 eingestellt. Wenn ihr in der „config.ini“ den Port eingetragen habt achtet darauf das der im Code nicht steht weil der ihn sonst überschreiben wird! Wie ihr auch sehen könnt sind die Pfade zu den jeweiligen Datein mitangegeben!

@echo off

title Factorio Server

bin\x64\factorio.exe --start-server "MeinSpielstand.zip" --server-settings "data\server-settings.json" --config "config\config.ini" --port 34197

Port Freigeben


[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 70
[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 71

VorabDie „Windows Defender Firewall mit erweiterter Sicherheit“ solltet ihr erst nach dem versuch eures Routers ausprobieren!

Solltet ihr Router und in Windows den Port eingetragen haben und es trotzdem nicht funktioniert das andere Spieler bei euch verbinden können, so könnte es an folgendes liegen. Wenn ihr einen Antivirenschutzprogramm habt könnte es wohl an diesem liegen. Zum ausprobieren könnt ihr eure Antivirenschutzprogramm die Sicherheit ausschalten. WICHTIG dieses Risiko geht auf eigene Gefahr! Wenn ihr damit aber Erfolg haben solltet so müsst ihr eine Ausnahmeregel für euren Antivirenschutzprogramm hinzufügen!

Windows Defender Firewall mit erweiterter SicherheitZuerst öffnet ihr den „Windows Defender Firewall mit erweiterter Sicherheit“ den ihr unter: „Systemsteuerung\System und Sicherheit\Windows Defender Firewall“ links auf „Erweitere Einstellungen" findet!

Geht jetzt auf „Eingehende Regln“

Rechts auf „Neue Regeln...“

Wählt „Port“ aus dann weiter.

Wählt „UDP“ und „Bestimmte lokale Ports“ dort gibt ihr „34197“ ein.

Wählt „Verbindung zulassen“.

Hier wählt ihr aus was auf euch zutrifft bzw. was ihr auch für eure Netzwerk eingestellt habt.

Das könnt ihr hier:

„Systemsteuerung\Netzwerk und Internet\Netzwerk- und Freigabecenter“

Unter „Aktive Netzwerke anzeigen“ sehen.

Dann verpasst noch einen Namen, ich wähle hier „Factorio UDP“ aus.

Beschreibung ist wie ihr schon liest optional.

Und fertig!

Speedport TutorialHier ist eine Erklärung wie ihr das alles auf einen Telekom Speedport Router einstellt.

Logg euch bei euren Router ein, in meinen Fall gehen wir auf „speedport.ip“

Dann geht auf „Internet“, links auf „Portfreischaltung“

Und klickt auf „Port-Umleitungen und Port-Weiterleitungen“.

Danach auf „Weitere Port-Umleitung oder Port-Weiterleitung anlegen“.

Anschließen füllt ihr alles aus:

In meinen Beispiel richten wir das so ein:

Name der Umleitung: „Factorio“

Gilt für folgendes Gerät: „euren Computer auswählen!"

Vorlage verwenden: „Keine Vorlage"

Umzuleitende Ports: „UDP 34197 – 34207 > 34197 – 34207"

In der Wiki[wiki.factorio.com] sieht ihr welcher Port freigegeben werden muss.

Dann speichern und fertig seit ihr!

Mehrere Instanzen


[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 101
[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 102

VoraussetzungWichtig ist das ihr die Sektion schon „Manueller Start“, „Einfacher Start“ und „Erweiterter Start“ gelesen habt.

Übersicht erstellenIn diesem Beispiel werden wir 2 Server auf nur einer Maschine laufen lassen. Natürlich könnt ihr auch mehre Anlegen! Damit wir die Übersicht nicht verlieren werden wir jetzt ein paar Ordner erstellen die für Ordnung sorgen.

Geht in euren Factorio Ordner.

Erstellt in diesem, einen Ordner namens „servers“.

Geht in diesem Ordner und erstellt einen weiteren Ordner „Server1“

In diesen Ordner erstellt ihr wieder zwei Ordner „config“ und „data“.

Kopieren der Einstellungen Kopiert jetzt die „server-settings.json“ in den „data“ Ordner und bearbeitet sie.

Das gleiche machen wir mit der „config.ini“, hierbei ist zu beachten das ihr die Zeile

write-data=__PATH__executable__\..\.. in write-data=servers\server1\ abändern müsst. Und vergisst den Port nicht!

Unbedingt den Spielstand noch kopieren.

Weitere Server hinzufügenJetzt kopieren wir den Ordner „Server1" und nennen diese Kopie „Server2“.

Hier passt ihr ebenfalls die „server-settings.json“ und „config.ini“an.

Anmerkung zur config.iniAchtet unbedingt darauf das ihr immer den Pfad richtig anpasst. Sprichwrite-data=servers\server2\

ModsMods könnt ihr auch hinzufügen. Einen Tipp hier wenn alle Server die gleichen Mods benutzten dann fügt in der Batchdatei einfach das hinzu:

--mod-directory ModOrdnerEinmal in der Zeile 29 und 46 jeweils am ende.

Stellt sicher das die Mods dann nicht in jedem einzelnen Server sind sondern dort wo eure "servers" Ordner ist. Also wie zuvor in der vorigen Sektion „Erweitere Start“.

Das ganze sollte dann so aussehen:

📁Factorio Server

└📁servers

⠀└📁server1

⠀⠀└📁config

⠀⠀⠀└📝config.ini

⠀⠀└📁data

⠀⠀⠀└📝server-settings.json

⠀⠀└🗄️Save.zip

⠀└📁server2

⠀⠀└📁config

⠀⠀⠀└📝config.ini

⠀⠀└📁data

⠀⠀⠀└📝server-settings.json

⠀⠀└🗄️Save.zip

BatchdateiUnd als letztes brauchen wir wieder unsere Batchdatei[pastebin.com] dazu möchte ich anmerken das überall wo „REM“ davor steht Kommentare sind, welche ich für euch gemacht habe. Außerdem wenn ihr einen weiteren Server hinzufügt müsst ihr rein gar nichts an der Batchdatei ändern!

@echo off

title Server starter

setlocal EnableDelayedExpansion

cd servers

:start

REM Legt den Standard Pfad für die factorio.exe fest

set factorio=bin\x64\factorio.exe

REM Um das ausschreiben für jeden einzelen Server zu ersparen erstellen wir Abkürzungen.

set config_file=config\config.ini

set server_settings_file=data\server-settings.json

REM Server werden nach 2 aufgelistet. (1 = Alle Server)

set server_count=1

REM Wir lassen in der Console ein Text erscheinen.

echo Welchen Server wollen sie starten?

REM echo. Um eine leere Zeile anzugeben.

echo.

echo 1. Alle

REM Wir werden alle Ordner in den Ordner "servers" auflisten.

for /D %%f in (*) do (

set /a server_count+=1

REM Wir speichern jeden gefunden Server in einer abkürzung ab.

set s!server_count!="Factorio Server - %%f" /min cmd /c %factorio% --start-server servers\%%f\Save.zip --server-settings servers\%%f\%server_settings_file% --config servers\%%f\%config_file%

REM Wir geben an welche Server wir zur Auswahl haben.

echo !server_count!. %%f

)

echo.

REM Wenn man diesen Script beenden möchte gibt man einfach 0 ein.

echo 0. Exit

echo.

REM Wir nehmen die nächste Eingabe des Benutzers auf.

SET /P GET_INPUT=

echo.

REM Wenn die Eingabe 1 war starten wir alle Servers!

IF "%GET_INPUT%" == "1" (

for /D %%f in (*) do (

cd ..

start "Factorio Server - %%f" /min cmd /c %factorio% --start-server servers\%%f\Save.zip --server-settings servers\%%f\%server_settings_file% --config servers\%%f\%config_file%

cd servers

)

echo Alle Server gestartet...

echo.

pause

) else IF "%GET_INPUT%" == "0" (

REM Bei 0 wie geasgt wird beendet!

exit

) else (

REM Wenn die Eingabe gültig ist.

IF NOT "!s%GET_INPUT%!" == "" (

cd ..

REM Wird der Server gestartet.

start !s%GET_INPUT%!

cd servers

echo.

echo Server gestartet...

echo.

GOTO start

) else (

echo.

REM Gehen wir zurück um erneut eine Zahl eingeben zu können.

echo Versuchen sie es nochmal...

GOTO start

)

)

Tipp für zuviele ConsolenAls Tipp kann ich euch cmder[cmder.net] empfehlen welches eure altes CMD durch ein neues schickes CMD „ersetzt“. Z. B. werden alle Console in einem Fenster geöffnet und als Reiter aufgelistet. Ihr könnt da komplett des Design neu bestimmen. Und vieles mehr.

Tools Für Server Und Mehrere Instanzen


[GER] Windows "Headless" Server inkl. mehrere Instanzen (Ausfhrliche Erklrung) image 200

Vorschau:

Ich schreibe gerade mit AutoHotkey[autohotkey.com] einen Script der euch das ermöglicht einfach mehrere Instanzen zu starten. Ohne das ganze kopieren oder bearbeiten von einzelnen Dateien. Ebenfalls könnt ihr auch alle Einstellungen in diesem Script vornehmen.

EDIT:

Auf Trello[trello.com] findet ihr was ansteht.

Jetzt findet ihr alle veröffentlichte Versionen hier[github.com] zum herunterladen.

Auf Github[github.com] könnt ihr Source[github.com] einsehen und mit wie oben genannt Programm AutoHotkey (v1.1.29.01) die Source-Codes ausführen.

Zur guter letzt könnt ihr Fehler Melden[github.com]

Aushelfen

Wer sich sehr gut mit Batch-Programmierung[de.wikibooks.org] auskennt und möchte hier einen verbesserte Batchdatei hinzufügen, darf sich gerne bei mir melden.

Wenn ihr ein anderen Router habt und ihr mir einen Screenshot von eure Freigabe zu Factorio schicken könntet und mir sagt wie ihr dort hingelangt Navigationsmäßig wäre das super von euch!

Abschlusswort

Wenn ihr weitere Fragen habt stellt sie bitte hier, ich möchte das hier so umfangreich wie möglich gestalten.

Über Feedback und Verbesserungsvorschläge würde ich mich freuen!

Natürlich wäre es auch schön wenn ihr den Guide bewerten würdet :)

Viel Spaß noch am basteln und spielen!

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=1515641780					

More Factorio guilds