Satisfactory's dedicated server has been an official, first-party Linux build for years, not something the 1.0 release introduced, and SteamCMD installs it the same way it installs anything else — the parts that actually trip people up are one port number doing two jobs, UDP for players and TCP for the Server Manager, and the fact that a fresh install is not yet your server until you claim it from inside the game.Satisfactorys Dedicated Server ist seit Jahren ein offizieller First-Party-Linux-Build, nichts, was das 1.0-Release erst eingeführt hätte, und SteamCMD installiert ihn genauso wie alles andere — die Details, die Leute wirklich stolpern lassen, sind eine Portnummer mit zwei Aufgaben, UDP für Spieler und TCP für den Server-Manager, sowie die Tatsache, dass eine frische Installation noch nicht dein Server ist, bevor du ihn nicht von innerhalb des Spiels beanspruchst.
The dedicated server is its own Steam application, separate from the game you play:Der Dedicated Server ist eine eigene Steam-Anwendung, getrennt vom Spiel, das du spielst:
It is a genuine headless Linux binary, officially supported by the developer rather than a community workaround bolted onto a Windows build — dedicated server support has been a first-party feature since well before the 1.0 release. That matters: earlier community write-ups describing running the Windows server under Proton describe a workaround you no longer need.Es ist ein echtes headless Linux-Binary, offiziell vom Entwickler unterstützt statt ein Community-Workaround, der auf einen Windows-Build aufgesattelt wurde — Unterstützung für den Dedicated Server ist ein First-Party-Feature seit lange vor dem 1.0-Release. Das ist relevant: Ältere Community-Anleitungen, die das Ausführen des Windows-Servers unter Proton beschreiben, beschreiben einen Workaround, den du nicht mehr brauchst.
Ignore what a brand-new save costs you. A fresh factory with one or two players idles at a few gigabytes of RAM, and it is easy to conclude from that first week that a small VPS will do forever. It will not. Satisfactory's memory use tracks the size of the factory, not the number of players connected to it — belts, buildings, vehicles and the sheer amount of world state a sprawling late-game base holds all add up, and a save that has grown for months can comfortably push well past 8 GiB.Ignoriere, was ein nagelneuer Spielstand dich kostet. Eine frische Fabrik mit ein oder zwei Spielern dümpelt bei ein paar Gigabyte RAM, und aus dieser ersten Woche lässt sich leicht schließen, dass ein kleiner VPS für immer reichen wird. Wird er nicht. Satisfactorys Speicherverbrauch folgt der Größe der Fabrik, nicht der Anzahl der verbundenen Spieler — Bänder, Gebäude, Fahrzeuge und die schiere Menge an Weltzustand, die eine ausufernde Late-Game-Basis vorhält, summieren sich, und ein Spielstand, der über Monate gewachsen ist, kann bequem deutlich über 8 GiB drücken.
8 GiB is a reasonable floor for a small group building up through the mid-game — that is our Pro tier. Once the factory sprawls across multiple biomes with megafactories and heavy automation, 16 GiB (Elite) is the honest answer, and you should plan the move before the symptom is stutter and rubber-banding rather than after. Disk is the smaller concern; the install itself is a few gigabytes and a save file for one active world is usually well under a gigabyte, so RAM is where the tiers actually earn their keep here.8 GiB sind eine realistische Untergrenze für eine kleine Gruppe, die sich durchs Mid-Game hocharbeitet — das ist unser Pro-Tarif. Sobald sich die Fabrik über mehrere Biome mit Megafabriken und starker Automatisierung erstreckt, ist 16 GiB (Elite) die ehrliche Antwort, und du solltest den Umzug planen, bevor das Symptom Ruckeln und Rubberbanding ist, nicht danach. Die Festplatte ist das kleinere Problem; die Installation selbst umfasst wenige Gigabyte, und eine Save-Datei für eine aktive Welt liegt meist deutlich unter einem Gigabyte, sodass RAM hier ist, wo sich die Tarife wirklich unterscheiden.
Deploy an Ubuntu LTS image, then do the security basics before anything is exposed to the internet: a non-root user, your SSH key on it, password login switched off, and a firewall that defaults to deny. We wrote those up as connect to your VPS over SSH and secure your VPS.Setze ein Ubuntu-LTS-Image auf und erledige dann die Sicherheitsgrundlagen, bevor irgendetwas dem Internet ausgesetzt ist: einen Non-Root-User, deinen SSH-Key darauf, Passwort-Login abgeschaltet, und eine Firewall, die standardmäßig blockiert. Wir haben das aufgeschrieben unter über SSH mit deinem VPS verbinden und deinen VPS absichern.
SteamCMD needs the 32-bit runtime even on a 64-bit box:SteamCMD braucht die 32-Bit-Runtime, auch auf einer 64-Bit-Maschine:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 curl tar
sudo useradd -m -s /bin/bash satisfactory
Everything below runs as the satisfactory user — never run a game server as root.Alles Folgende läuft als der Nutzer satisfactory — betreibe einen Game-Server niemals als root.
sudo -u satisfactory -i
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sSL https://media.steampowered.com/client/installer/steamcmd_linux.tar.gz | tar zxf -
./steamcmd.sh +force_install_dir /home/satisfactory/server \
+login anonymous \
+app_update 1690800 validate \
+quit
The same command is how you update later, and it is the one thing worth memorising: Satisfactory ships regular patches, and a client on a newer build cannot join an older server.Derselbe Befehl dient später zum Aktualisieren, und das ist die eine Sache, die sich zu merken lohnt: Satisfactory bekommt regelmäßig Patches, und ein Client mit einem neueren Build kann keinem älteren Server beitreten.
The install includes FactoryServer.sh. Run it directly, or wrap it so systemd has something predictable to call — save as /home/satisfactory/server/start.sh:Die Installation enthält FactoryServer.sh. Führe es direkt aus, oder verpacke es so, dass systemd etwas Vorhersehbares aufrufen kann — speichere es als /home/satisfactory/server/start.sh:
#!/bin/bash
cd /home/satisfactory/server
./FactoryServer.sh -multihome=0.0.0.0 -port=7777
-multihome binds the server to a specific interface address, which matters on a VPS with more than one address configured; 0.0.0.0 is the safe default when you only have the one. -port sets the game port — 7777 is the default and the value you want unless your VPS forwards something else, in which case see the NAT section below.-multihome bindet den Server an eine bestimmte Interface-Adresse, was relevant ist, wenn ein VPS mehr als eine Adresse konfiguriert hat; 0.0.0.0 ist der sichere Standard, wenn du nur die eine hast. -port setzt den Game-Port — 7777 ist der Standard und der Wert, den du willst, es sei denn, dein VPS leitet etwas anderes weiter, siehe dazu den NAT-Abschnitt unten.
Since the 1.0 release the server listens on one port number for two protocols, and knowing which does what is most of the troubleshooting. 7777/udp is the game port: it carries the join handshake and every bit of in-session traffic. 7777/tcp is the HTTPS Server Manager API: the in-game Server Manager uses it to add the server, claim it, set the admin password and create or upload a session, and third-party admin tools use the same API. Both live on the number you set with -port=; the separate query and beacon ports from older versions (15000 and 15777) are gone. The next step covers exactly what to open.Seit dem 1.0-Release lauscht der Server auf einer Portnummer für zwei Protokolle, und zu wissen, welches wofür da ist, ist der größte Teil der Fehlersuche. 7777/udp ist der Spiel-Port: Er trägt den Beitritts-Handshake und sämtlichen In-Session-Traffic. 7777/tcp ist die HTTPS-Server-Manager-API: Der In-Game-Server-Manager nutzt sie, um den Server hinzuzufügen, zu beanspruchen, das Admin-Passwort zu setzen und eine Session zu erstellen oder hochzuladen, und externe Admin-Tools nutzen dieselbe API. Beide liegen auf der Nummer, die du mit -port= setzt; die separaten Query- und Beacon-Ports älterer Versionen (15000 und 15777) gibt es nicht mehr. Der nächste Schritt behandelt genau, was du öffnen musst.
Open the port players need:Öffne den Port, den Spieler brauchen:
sudo ufw allow 7777/udp
sudo ufw allow 7777/tcp
Both protocols, same number. UDP is what makes the server joinable once a session exists; TCP is what lets anyone reach the Server Manager in the first place. Open only UDP and the classic symptom follows: the server is running, the logs look fine, and the in-game Server Manager still cannot add or claim it.Beide Protokolle, dieselbe Nummer. UDP macht den Server beitretbar, sobald eine Session existiert; TCP ist das, womit überhaupt jemand den Server-Manager erreicht. Öffne nur UDP, und das klassische Symptom folgt: Der Server läuft, die Logs sehen gut aus, und der In-Game-Server-Manager kann ihn trotzdem weder hinzufügen noch beanspruchen.
If you move the port with -port=, both protocols move with it, so keep the two firewall rules on the same number.Verschiebst du den Port mit -port=, wandern beide Protokolle mit — halte die zwei Firewall-Regeln also auf derselben Nummer.
If your VPS gives you NAT IPv4 rather than an address of your own, you do not get to open arbitrary ports — you get a fixed, small set of forwarded ones, and 7777 has to be among them for both UDP and TCP. If your provider's forwarded set does not include it, either change -port= to a port they do forward, or ask for a dedicated IPv4, which on our plans is available on request by e-mail rather than as a self-service add-on. Read NAT IPv4 vs a dedicated IP and NAT IPv4, ports and forwarding before you order if you are not sure which situation you are in.Gibt dir dein VPS NAT-IPv4 statt einer eigenen Adresse, bekommst du nicht die Freiheit, beliebige Ports zu öffnen — du bekommst einen festen, kleinen Satz weitergeleiteter Ports, und 7777 muss für UDP und TCP darunter sein. Ist er nicht in der weitergeleiteten Menge deines Anbieters enthalten, ändere entweder -port= auf einen Port, den er weiterleitet, oder frag nach einer dedizierten IPv4, die bei unseren Tarifen auf Anfrage per E-Mail verfügbar ist, nicht als Self-Service-Add-on. Lies NAT IPv4 vs. dedizierte IP und NAT IPv4, Ports und Weiterleitung, bevor du bestellst, wenn du nicht sicher bist, welche Situation bei dir vorliegt.
Save the unit as /etc/systemd/system/satisfactory.service:Speichere die Unit als /etc/systemd/system/satisfactory.service:
[Unit]
Description=Satisfactory dedicated server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=satisfactory
WorkingDirectory=/home/satisfactory/server
ExecStart=/home/satisfactory/server/start.sh
Restart=on-failure
RestartSec=15
TimeoutStopSec=90
[Install]
WantedBy=multi-user.target
Enable and watch it:Aktivieren und beobachten:
sudo systemctl enable --now satisfactory
journalctl -u satisfactory -f
Restart=on-failure brings the process back after a crash; it does nothing about a factory that has outgrown its RAM, which is a sizing problem, not a restart-policy one.Restart=on-failure bringt den Prozess nach einem Absturz zurück; es tut nichts gegen eine Fabrik, die ihrem RAM entwachsen ist — das ist ein Dimensionierungsproblem, kein Problem der Restart-Policy.
A fresh install is not attached to any save until you claim it. Launch Satisfactory, open the Server Manager from the main menu, and add your server by address and port 7777 (that step goes over TCP). On first contact it asks you to set an admin password — do that first, since it gates everything after it. Once you're in as admin you choose to either create a new session (start a blank save on the server) or upload a session (push up a save you already have, useful if you're moving a world from a friend's machine or from singleplayer). Only after this claim step does the server actually have a game running on it that other players can join.Eine frische Installation ist an keinen Spielstand gebunden, bis du sie beanspruchst. Starte Satisfactory, öffne den Server Manager im Hauptmenü und füge deinen Server mit Adresse und Port 7777 hinzu (dieser Schritt läuft über TCP). Beim ersten Kontakt bittet er dich, ein Admin-Passwort zu setzen — mach das zuerst, da es alles Weitere absichert. Sobald du als Admin drin bist, wählst du entweder eine neue Session erstellen (einen leeren Spielstand auf dem Server starten) oder eine Session hochladen (einen Spielstand, den du bereits hast, hochschieben — nützlich, wenn du eine Welt vom Rechner eines Freundes oder aus dem Singleplayer umziehst). Erst nach diesem Beanspruchungs-Schritt läuft auf dem Server tatsächlich ein Spiel, dem andere Spieler beitreten können.
Server saves live under:Server-Spielstände liegen unter:
~/.config/Epic/FactoryGame/Saved/SaveGames/server
That's /home/satisfactory/.config/Epic/FactoryGame/Saved/SaveGames/server for the setup above. Each save is a single .sav file, and the server autosaves on an interval on top of whatever manual saves you trigger from the Server Manager — so the file you'd back up is whichever .sav is newest, or the whole directory if you want history rather than just the latest state.Das ist /home/satisfactory/.config/Epic/FactoryGame/Saved/SaveGames/server für das Setup oben. Jeder Spielstand ist eine einzelne .sav-Datei, und der Server speichert in einem Intervall automatisch, zusätzlich zu jedem manuellen Save, den du über den Server Manager auslöst — die Datei, die du sichern würdest, ist also die jeweils neueste .sav, oder das ganze Verzeichnis, wenn du Historie statt nur den letzten Stand willst.
None of that protects you from losing the machine itself, since a copy sitting on the same disk as the save goes down with it. Copy the save directory somewhere else on a schedule; back up your VPS covers what that looks like and what is not covered by default anywhere.Nichts davon schützt dich vor dem Verlust der Maschine selbst, da eine Kopie auf derselben Festplatte wie der Spielstand mit ihr untergeht. Kopiere das Save-Verzeichnis nach einem Zeitplan woandershin; Backup deines VPS beschreibt, wie das aussieht und was standardmäßig nirgends enthalten ist.
Server-side configuration lives in .ini files under the server's config directory rather than in launch flags, the same pattern as most Unreal Engine dedicated servers. The two you'll actually touch:Serverseitige Konfiguration liegt in .ini-Dateien im Config-Verzeichnis des Servers statt in Startflags, dasselbe Muster wie bei den meisten Unreal-Engine-Dedicated-Servern. Die beiden, die du tatsächlich anfassen wirst:
Game.ini — gameplay-facing settings: things like disabling the power-shutdown penalty on overload, or adjusting nudity/violence toggles if your group cares.Game.ini — spielrelevante Einstellungen: etwa das Abschalten der Strom-Abschaltstrafe bei Überlast, oder das Anpassen von Nacktheits-/Gewalt-Schaltern, falls deiner Gruppe das wichtig ist.Engine.ini — engine-level settings, including network tuning such as raising NetServerMaxTickRate if you're seeing lag with several players connected on a well-provisioned box.Engine.ini — Engine-seitige Einstellungen, einschließlich Netzwerk-Tuning wie das Anheben von NetServerMaxTickRate, wenn du bei mehreren verbundenen Spielern auf einer gut ausgestatteten Maschine Lag siehst.Both files are read on server start, so a change means a restart to take effect, not a hot reload. Edit them directly rather than trying to pass the equivalent as a command-line flag — most of what they control has no FactoryServer.sh equivalent.Beide Dateien werden beim Serverstart eingelesen, eine Änderung bedeutet also einen Neustart, damit sie greift, kein Hot-Reload. Bearbeite sie direkt, statt zu versuchen, das Äquivalent als Kommandozeilen-Flag zu übergeben — für das meiste, was sie steuern, gibt es kein FactoryServer.sh-Äquivalent.
Updating is the exact same SteamCMD command from Step 2, run again:Aktualisieren ist genau derselbe SteamCMD-Befehl aus Schritt 2, erneut ausgeführt:
sudo systemctl stop satisfactory
sudo -u satisfactory -i
cd ~/steamcmd
./steamcmd.sh +force_install_dir /home/satisfactory/server \
+login anonymous \
+app_update 1690800 validate \
+quit
exit
sudo systemctl start satisfactory
Stop the service first — SteamCMD updating files a running process has open is how you end up debugging a corrupted install instead of just rerunning the command.Stoppe zuerst den Dienst — SteamCMD dabei Dateien aktualisieren zu lassen, die ein laufender Prozess offen hält, ist der Weg, auf dem du am Ende eine kaputte Installation debuggst, statt einfach den Befehl erneut auszuführen.
Full disclosure: this is what we sell. Size for where the factory is going, not where it starts — a fresh save idles on a few gigabytes, and Pro (8 GiB) covers a small group for a long while, but a sprawling late-game factory outgrows it and wants Elite (16 GiB).Zur vollen Transparenz: Das ist, was wir verkaufen. Dimensioniere für das, wohin die Fabrik wächst, nicht für das, womit sie anfängt — ein frischer Spielstand dümpelt bei ein paar Gigabyte, und Pro (8 GiB) deckt eine kleine Gruppe lange ab, aber eine ausufernde Late-Game-Fabrik wächst darüber hinaus und will Elite (16 GiB).
Linux KVM VPS — EUR 4.99 to EUR 59.99 a month, on our own single-tenant bare metal in Dallas, TX and Charlotte, NC. Full hardware virtualisation (KVM), your own kernel, full root. Six tiers, vps-starter to vps-ultra. Starter is 1 vCPU, 1 GiB RAM, 25 GB disk.Linux-KVM-VPS — 4,99 bis 59,99 EUR im Monat, auf unserer eigenen Single-Tenant-Bare-Metal-Hardware in Dallas, TX und Charlotte, NC. Vollständige Hardware-Virtualisierung (KVM), eigener Kernel, volles Root. Sechs Tarife, vps-starter bis vps-ultra. Starter hat 1 vCPU, 1 GiB RAM, 25 GB Speicher.
You order in the shop, pay by card (Stripe) or SEPA bank transfer, and your login details are e-mailed to you once the service is set up. Support is e-mail, run by one person, with no guaranteed response time. All prices are final totals under the German small-business rule (§19 UStG); no VAT is added or shown.Du bestellst im Shop, zahlst per Karte (Stripe) oder SEPA-Überweisung, und deine Zugangsdaten werden dir per E-Mail zugeschickt, sobald der Dienst eingerichtet ist. Support läuft per E-Mail, von einer einzelnen Person betrieben, ohne garantierte Reaktionszeit. Alle Preise sind Endpreise. Gemäß § 19 UStG wird keine Umsatzsteuer ausgewiesen.
Order vps-pro → · Linux KVM VPS overviewvps-pro bestellen → · Übersicht Linux-KVM-VPS
Written by the person who runs overnight.host: a small, honest hosting company on dedicated bare metal — Linux VPS, game servers, web hosting. Live status at up.overnight.host.Geschrieben von der Person, die overnight.host betreibt: ein kleines, ehrliches Hosting-Unternehmen auf dedizierter Bare-Metal-Hardware — Linux-VPS, Gameserver, Webhosting. Live-Status unter up.overnight.host.
A fresh save with one or two players idles on a few gigabytes; a sprawling late-game factory can push well past 8 GiB. 8 GiB (Pro) is a reasonable floor for a small group through the mid-game, and 16 GiB (Elite) is the honest answer once the factory spans multiple biomes with heavy automation. Size for where the factory is going, not where it starts.Ein frischer Spielstand mit ein oder zwei Spielern dümpelt bei ein paar Gigabyte; eine ausufernde Late-Game-Fabrik kann deutlich über 8 GiB drücken. 8 GiB (Pro) sind eine realistische Untergrenze für eine kleine Gruppe durchs Mid-Game, und 16 GiB (Elite) sind die ehrliche Antwort, sobald die Fabrik sich über mehrere Biome mit starker Automatisierung erstreckt. Dimensioniere für das, wohin die Fabrik wächst, nicht für das, womit sie anfängt.
7777, on both protocols: UDP carries the game itself, TCP carries the HTTPS API that the in-game Server Manager uses to add, claim and administer the server. Open both; -port= moves both together.7777, auf beiden Protokollen: UDP trägt das Spiel selbst, TCP die HTTPS-API, über die der In-Game-Server-Manager den Server hinzufügt, beansprucht und verwaltet. Öffne beide; -port= verschiebt beide gemeinsam.
No. The dedicated server is a separate Steam application (1690800) that installs anonymously through SteamCMD. You do need the game itself to actually play, and to do the initial claim step below.Nein. Der Dedicated Server ist eine eigene Steam-Anwendung (1690800), die sich anonym über SteamCMD installiert. Das Spiel selbst brauchst du, um tatsächlich zu spielen und um den anfänglichen Beanspruchungs-Schritt unten durchzuführen.
Almost always a port gap: either 7777 isn't open for both UDP and TCP in the firewall, or your VPS's forwarded-port set doesn't include it. If the Server Manager cannot even add the server, TCP is missing; if it can add it but nobody can join the session, UDP is missing. Check sudo ufw status and your provider's NAT forwarding table before assuming the install itself is broken.Fast immer eine Port-Lücke: Entweder ist 7777 in der Firewall nicht für UDP und TCP offen, oder die weitergeleitete Portmenge deines VPS enthält ihn nicht. Kann der Server-Manager den Server nicht einmal hinzufügen, fehlt TCP; kann er ihn hinzufügen, aber niemand der Session beitreten, fehlt UDP. Prüfe sudo ufw status und die NAT-Weiterleitungstabelle deines Anbieters, bevor du annimmst, die Installation selbst sei kaputt.
A fresh install has no save attached to it. Connecting to it for the first time in-game opens the Server Manager, where you set an admin password and then either create a new session or upload an existing save. Skip this and the server is running but has nothing anyone can actually join into.Eine frische Installation hat keinen Spielstand angehängt. Verbindest du dich zum ersten Mal im Spiel mit ihr, öffnet sich der Server Manager, wo du ein Admin-Passwort setzt und dann entweder eine neue Session erstellst oder einen bestehenden Spielstand hochlädst. Überspringst du das, läuft der Server, aber es gibt nichts, dem irgendjemand tatsächlich beitreten kann.
Prices are final totals; no VAT is shown (§19 UStG). Need something the shop does not list? Email us for a written offer.Alle Preise sind Endpreise ohne ausgewiesene USt. (§19 UStG). Du brauchst etwas, das nicht im Shop steht? Schreib uns für ein schriftliches Angebot.
Order now →Jetzt bestellen → Request a custom configIndividuelle Konfiguration anfragen