Garry's Mod

Garry's Mod

Not enough ratings
Dedizierte Server: Alles Wichtige in einer Guide [German Translation]
By TGravel and 1 collaborators
Du möchtest deinen eigenen dedizierten Garry's Mod Server hosten? In dieser Guide findest du alle wichtigen Schritte dafür einzeln und einfach erklärt.
   
Award
Favorite
Favorited
Unfavorite
Einleitung
Dieser Guide ist für jeden der seinen eigenen Garry's Mod Server erstellen möchte. Auch wenn teilweise technisch anspruchsvollere Themen kommen, solltest du hier eine einfache und gute Grundlage haben, der du folgen kannst.

Dieser Guide ist nicht original, sonderen eine Übersetzung der englischen Version von Dark, der diesen erstellte, um den Prozess der Servererstellung zusammenzufassen und einen guten Leitfaden zu bieten.

Alle Textelemente die von den folgenden Klammeren "<>" umgeben sind, müssen auf deine individuellen Bedürfnisse angepasst werden.

Originale englische Version:
Dedicated Servers: A definitive guide

Englischer YouTube Guide [Windows]:
YouTube Playlist
Installation
SteamCMD
Zuerst muss für die Installation eines Garry's Mod Servers SteamCMD gedownloadet werden. SteamCMD ist Valve's hauseigenes Programm um Server oder Content mit simplen Befehlen zu downloaden / updaten.

SteamCMD herunterladen
Windows:
Downloaden und extrahieren:

OSX:
Öffne das Terminal und gib folgende Befehle ein:
mkdir ~/Steam && cd ~/Steam curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz" | tar zxvf -

Linux (Ubuntu / Debian):
sudo apt-get install steamcmd
Linux (RedHat / CentOS):
yum install steamcmd

Sonstige Betriebssysteme:
SteamCMD Wiki

Ein Download bzw. Update-Script erstellen
Um nicht jeden Befehl manuell in SteamCMD eintippen zu müssen, empfiehlt es sich für den Download und das spätere updaten ein Script zu schreiben.

Dafür erstellen wir eine Text Datei im SteamCMD Installationsverzeichnis mit einem Namen wie z.B.: "update_gmod.txt".

In diese Datei schreiben wir nun unsere Commands, welche SteamCMD später der Reihe nach ausführen soll:
@NoPromptForPassword 1 login anonymous force_install_dir <gewünschtes Installationsverzeichnis> app_update 4020 validate quit

Hinweis: Im Gegensatz zu manch anderen Spielen benötigst du für einen Garry's Mod Dedicated Server keine Lizenz des Spiels, dadurch ist kein anmelden bei Steam erforderlich. -> daher reicht "login anonymous"

Das Update-Script ausführen
Windows:
Öffne hierfür die cmd.exe und gib folgende Befehle ein:
cd <SteamCMD Installationsverzeichnis> steamcmd.exe +runscript <Deine Update-Script .txt / Im Beispiel "update_gmod.txt">
Solltest du eine Oberfläche auf deinem Server haben, kannst du auch eine Verknüpfung der steamcmd.exe erstellen an welche du den "+runscript <Update-Script-Name>" Startparameter anhängst.

OSX & Linux:
Öffne das Terminalfenster und gib folgende Befehle ein:
cd <SteamCMD Installationsverzeichnis> ./steamcmd.sh +runscript <Deine Update-Script .txt / Im Beispiel "update_gmod.txt">

Wenn du nach ausführen die Nachricht "Success! App '4020' fully installed." siehst, hast du alle Schritte korrekt befolgt. Gratulation!


Content hinzufügen
Content herunterladen
Um Content von Spielen wie Counter Strike: Source auf dem Server korrekt zu laden, benötigen wir nun wieder SteamCMD um diesen zu downloaden.
Das mounten von Content auf einem dezidierten Server verhindert beispielsweise, dass Objekte keine Hitboxes haben. Du musst daher nur die von deinen Addons/Maps benötigten Contentpacks installieren.

Da manche Contentpacks einen Steamaccount der die betreffenden Spiele besitzt benötigen, ist es empfehlenswert ein Textscript mit Login und eines ohne Login zu erstellen. Beispiellayouts:

update_content_anon.txt
@NoPromptForPassword 1 login anonymous force_install_dir <Serverpfad>/sharedcontent app_update 232250 validate force_install_dir <Serverpfad>/sharedcontent app_update 232330 validate exit

Achtung! Bitte überprüfe vorher ob du die nachfolgenden angeführten Spiele überhaupt besitzt! Falls nicht, benötigst du kein update_content_login.txt und musst die Spiele aus der mount.cfg entfernen! Dazu am Ende der Sektion mehr.

update_content_login.txt
@NoPromptForPassword 0 login <Dein Steam-Benutzername> force_install_dir <Serverpfad>/sharedcontent app_update 420 validate force_install_dir <Serverpfad>/sharedcontent app_update 220 validate force_install_dir <Serverpfad>/sharedcontent app_update 380 validate exit



App IDs und sonstige Informationen
Content
App ID
Login benötigt
Counter Strike: Source
232330
Nein
Team Fortress 2
232250
Nein
Half Life 2
220
Ja

Half Life 2: Episode 1
380
Ja
Half Life 2: Episode 2
420
Ja


Content installieren
Lokalisiere deine mount.cfg Datei. Du findest sie unter dem Pfad <Installationsverzeichnis>/garrysmod/cfg.

Für jedes Contentpack musst du in der mount.cfg eine eigene Zeile wie im unten gezeigten Beispiel erstellen:
"mountcfg" { "tf" "<Serverpfad>/sharedcontent/tf" //TF2 "episodic" "<Serverpfad>/sharedcontent/episodic" //HL2 Episode 1 "cstrike" "<Serverpfad>/sharedcontent/cstrike" //CSS "ep2" "<Serverpfad>/sharedcontent/ep2" //HL2 Episode 2 "hl2" "<Serverpfad>/sharedcontent/hl2" //HL2 }

WICHTIG: Keine Schrägstriche am Ende eines Pfades hinzufügen und auch keine Packs hinzufügen die du nicht besitzt!

Entferne die Zeilen mit den Enden "//HL2 Episode 1", "//HL2 Episode 2" und "//HL2", wenn du kein Half-Life 2 hast!


Addons hinzufügen
Es gibt mehrere Möglichkeiten Addons auf den Server hinzuzufügen und später Spieler automatisch herunterladen zu lassen; Alle haben ihre Vor- und Nachteile.
Wir werden die unserer Meinung nach einfachste benutzen.

Kollektionen (Steam Workshop)
  1. Bevor du eine Kollektion erstellst, musst du zumindest ein Workshop-Item abonnieren oder favorisieren, damit du etwas hinzufügen kannst.

  2. Navigiere zu der Garry's Mod Workshop-Seite. (z.B.: über die Schaltfläche "Workshop durchstöbern" in deiner Bibliothek.)

  3. Einmal dort angelangt, wählst du in dem Dropdownfeld von "Durchsuchen" "Kollektionen" aus. Auf der rechten Seite sollte sich nun ein "Kollektion erstellen" Knopf befinden.

  4. Nun brauchst du nur noch einen Namen, ein Bild und deine gewünschten Workshop-Items hinzuzufügen.

  5. Ist die Kollektion einmal erstellt, musst du für weitere GMOD Workshop-Items nur auf deren Seite gehen und auf "Zur Kollektion hinzufügen" klicken. (Die richtige Kollektion auswählen!)

Die Kollektion muss auf öffentlich gestellt werden.
Auch eine andere öffentliche Kollektion aus dem Workshop kann verwendet werden.

Erweiterte Benützung
Solltest du vor haben viele Addons mit unterschiedlichen Funktionen hinzuzufügen, kannst du mehrere Kollektionen erstellen, die du später zu einer Basis/Eltern-Kollektion hinzufügst.


Einen API Key registrieren
Um eine Kollektion auf deinen Server zu laden, musst du einen API Key registrieren.

Hier klicken um einen Schlüssel zu bekommen

ACHTUNG! Diesen Schlüssel NICHT an andere weitergeben!


Start Parameter

Bevor du den Server startest, musst du noch angeben welche Kollektion dieser laden soll.

Dafür brauchst du die ID der Kollektion. Diese findet man als letzte Zahl im URL der Kollektion oder wenn man auf "Teilen" klicken.
(https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=<Ihre Kollektions-ID>)

Außerdem brauchst du jetzt deinen API Key.

Füge daraufhin folgende Startparameter zum Startscript hinzu: (Sektion: Server starten)
+host_workshop_collection <Kollektions-ID> -authkey <API Key>

Automatischer und schneller download für Clients

Der einfachste Weg Addons für Clients automatisch zu downloaden ist dieses Addon. Wir können es nicht genug empfehlen!
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=309020990
Dank diesem Addon brauchen wir keine workshop.lua Datei.



GameServerToken / Spielserver-Anmeldetoken (optional)
Diese Tokens wurden 2015 eingeführt um Nutzern zu ermöglichen Server auf Account-Basis statt IP-Basis zu finden und sich zu ihnen zu verbinden. Kurz gesagt kann man so den Server zum Beispiel zu seinen Favoriten hinzufügen und ihn später, selbst wenn sich dessen IP-Adresse geändert hat, wiederfinden.

Wenn gewünscht kann man den Token hier erstellen.
Bei ID fügt man für Garry's Mod einfach 4000 ein. Anschließend muss nur noch als Startparameter folgendes hinzugefügt werden:
+sv_setsteamaccount <DeinGameServerLoginToken>

Danke an @Bella 109 für den Hinweis auf dieses Feature!


Den Server starten
Ports freigeben
Folgende Ports müssen auf dem Router und in der Firewall freigegeben werden, damit Fremde auf euren Server beitreten können:
27015
TCP + UDP
27005
TCP + UDP

Ein Start-Script erstellen

Windows:

startserver.bat
srcds.exe -console -game garrysmod pause

OSX & Linux:

startserver.sh
./srcds_run -game garrysmod

Der Parameter "+map" wird unbedingt benötigt, wenn du keine Konfigurationen hast, die dem Server sagen was er laden soll.

Mehr Kofigurationsoptionen:

Funktionsbeschreibung
Parameter
Beispielwert
Map nach dem Serverstart
+map
gm_construct
Maximale Spieleranzahl
+maxplayers
16
Spielmodus
+gamemode
terrortown


Optionale Parameter aus den vorherigen Sektionen nicht vergessen:

Workshop Kollektion aus der "Addons hinzufügen" Sektion:
+host_workshop_collection <Kollektions-ID> -authkey <API Key>

Spielserver-Anmeldetoken aus der "GameServerToken" Sektion:
+sv_setsteamaccount <DeinGameServerLoginToken>


Erweiterte Liste aller Startparameter: (für Experten)
Bitte nur benützen wenn du weißt was du damit anfängst. Standardmäßig richtig eingestellt!
  • -secure
  • -ip <IP>
  • -port <Port>
  • +clientport <ClientPort>


RAM festlegen (optional):

Um für den Server im vorhinein mehr Arbeitsspeicher festzulegen können wir folgenden Befehl ausführen:
mem_max_heapsize “Hier_MB_einfügen”

Die Befehle in der "autoexec.cfg" Datei werden bei jedem Start des Servers automatisch ausgeführt. Daher fügen wir alle Befehle die wir immer ausgeführt haben wollen, wie auch diesen, in sie ein. Du findest sie unter <Installationsverzeichnis>/garrysmod/cfg.

Achtung! Dies ist kein Startparameter!


Administrator Werkzeuge
Diese Sektion handelt vorallem über die Ulysses mod[ulyssesmod.net] oder auch ULX Mod.

Diese Mod ist sehr hilfreich um den Server zu administrieren/managen und dazu auch noch gut zu verstehen, vielseitig konfigurierbar und erweiterbar.

Zu deiner Kollektion hinzufügen musst du dafür:
ULX
ULib
Beide werden benötigt.


Solltest du die Downloadvariante um das Konfigurieren zu erleichtern bevorzugen:
Hier herunterladen[ulyssesmod.net]



IP herausfinden
In der Server-Konsole (nicht in der Client-Konsole, solange du kein RCON benützt) folgendes eingeben :
status
Es erscheinen mehrere Informationen. Geräte in einem externen Netzwerk benötigen die Public IP (Port nicht vergessen) zum verbinden.

Direkt verbinden über die Client-Konsole (in Optionen belegen):
connect <DeineIP>
Nützlich sind auch die Steam connect URLs:
steam://connect/<DeineIP:port>


Admin werden
In der Server-Konsole (nicht in der Client-Konsole, solange du kein RCON benützt) folgendes eingeben:
ulx adduser <Spielername> Superadmin 1


ULX Befehle & Menüs für TTT
Solltest du vorhaben einen TTT-Server zu erstellen, kannst du auch dieses Addon hinzufügen um:
mehr Kontrolle über CVars zu haben,
zusätzliche TTT spezifische Befehle zu erhalten
und eine extra Sektion für TTT Einstellungen zu bekommen.

Trouble in Terrorist Town ULX Befehle
Schlusswort
Wir hoffen, dass dieser Guide für dich nützlich und informativ war.

Solltest du Verständnisprobleme haben, lasse einen Kommentar unten da und wir werden versuchen uns bei dir zu melden.

Fandest du diese Guide nützlich? Wenn ja, dann lasse es uns doch in den Kommentaren erfahren oder gib dem ursprünglichen Autor ein +rep auf sein Steam-Profil. Danke :)

Originale Guide von Dark.
Übersetzt von TGravel.
Korrektur-Leser: Reptice

Keine Lust zu lesen? Hier englische Videoguide anschauen
25 Comments
TGravel  [author] 3 Apr, 2021 @ 6:11pm 
@synrg Moin! Der Error bedeutet, dass diese App IDs einen Login benötigen wie in der Tabelle oben angegeben. Heißt man kann die Content Packs nur herunterladen, wenn man die Spiele davon gekauft hat => das heißt du musst dich bei SteamCMD mit einem Steam Account der die Lizenzen besitzt anmelden wie in der "update_content_login.txt" gezeigt. !Außerdem Achtung! Texturen sind vom Client abhängig (unabhängig vom Server), heißt jeder Spieler muss sich diese selbst für sein Spiel installieren. Dafür einfach die jeweiligen Sources kaufen/herunterladen und einmal starten oder einfach mal auf Google nach Downloads dafür suchen. Die meisten Maps benutzen CS:S Objekte also versuche einfach mal bei deinem Client die CS:S Texturen zu installieren, vielleicht fixt das dein Problem. :lunar2019grinningpig: Sonst schreib mir gerne nochmal!
synrg 3 Apr, 2021 @ 12:27pm 
moin, der server steht soweit aber ich habe noch fehlende texturen.. der cs:s content mit der oben stehen App ID hat funktioniert.. aber für tf2 und hl2 bekomme ich nur einen error (failed to install app ' ID ' (no subscription)

hat da jemand ne idee woran das liegt? sind die IDs nicht mehr aktuell oder wo liegt das problem?
TGravel  [author] 5 Mar, 2021 @ 7:49am 
@Padder 3.) Der GameServerToken ermöglicht es deinen Server viel besser zu finden, da er in deinem Account hinterlegt ist. Valve hat diese eingeführt, da früher Server die nicht den Regulierungen von Valve folgten per IP gebannt werden mussten. Wer den Token benutzt wird also von Valve "bevorzugt" und erscheint viel höher in Serverlisten usw.. Außerdem können Spieler die deinen Server als Favorit hinzufügen (also bereits verbunden waren oder ihn gefunden haben), diesen später auch bei sich ändernder externer IP/Port wieder finden!
TGravel  [author] 5 Mar, 2021 @ 7:49am 
@Padder 2.) Ok das klingt seltsam. Funktioniert es auch nicht bei erneutem Starten nach einer der Standardmaps? Ich persönlich habe auch eine Addon Map als Startwert und das funktioniert einwandfrei. Wenn du da weitere Hilfe benötigst wären die Logs gut. Notfalls könntest du diese eine Map mit dem "GMad Addon Extractor" manuell hinzufügen. (Die Map auf deinem PC \Steam\steamapps\common\GarrysMod\garrysmod\addons suchen umwandeln mit GMad. Danach einfach die .bsp File in deinen \garrysmod\maps Ordner auf dem Server kopieren.)
TGravel  [author] 5 Mar, 2021 @ 7:49am 
@Padder 1.) Wahrscheinlich deine lokale IP. Personen außerhalb deines Lokalen Netzwerks benutzen deine externe IP. Versuche mal https://www.whatismyip.com/de/ oder eine ähnliche Website, da sollte dir deine externe IP gezeigt werden. Je nach deinem Setup im lokalen Netzwerk kann es auch sein, dass bei dir die externe IP nicht funktioniert, sondern nur bei fremden Spielern.
Padder 5 Mar, 2021 @ 5:08am 
Mir sind noch einige Fragen offen. 1. Welche IP nutzen nun meine Leute zum Joinen. Im Log fine ich zwei. Einer funst für mich, aber beide für die anderen nicht. Ports sind freigegeben und werden genutzt (laut meiner Box).
2. Ich habe mal eine Addon Map als startwert hinzugefügt. (Habe sie in der Kollektion.) Der Log downloadet alle addons aber kann die map nicht laden, weil sie nihct in /maps enthalten ist. Zur auswahl stehen nur die 2 Standardmaps
3. Ich habe es mit dem GameServerToken umgesetzt und als wert hinzugefügt. Wie hilft es praktisch den anderen zum Joinen? Was muss ich ihnen geben und wie nutzen sie das?
TGravel  [author] 20 Feb, 2021 @ 9:18am 
Danke für die netten Worte! :) @Psychotrickser
Psychotrickser 20 Feb, 2021 @ 2:24am 
Gerade dachte ich mir, ein Guide mit einer Anleitung zum Erstellen eines Gmod Servers auf Linux wäre sicher nützlich und stoße dann auf diesen Guide. Sehr gut beschrieben und übersetzt. Top :D
TGravel  [author] 12 Jan, 2021 @ 12:13pm 
@Nugget Das machst du in der existierenden "mount.cfg", die müsste vom Server erstellt werden. Ich glaube standardmäßig stehen da auch Beispiele mit // drinnen, wie entsprechender Content hinzugefügt werden muss. Sollte dann so wie in dem Code Beispiel von uns ungefähr aussehen. Die "mount" Datei die du meinst ist glaube ich die richtige, wahrscheinlich sind Dateiendungen wie ".cfg" bei dir ausgeblendet.
Nugget 12 Jan, 2021 @ 11:19am 
Muss ich bei "content installieren" und in dem ordner "<Installationsverzeichnis>/garrysmod/cfg" muss ich da eine datei "mount.cfg" erstellen oder soll ich das in der "mount" datei machen?