So richtest du FastDL auf deinem Garry's Mod Server ein
Damit Spieler eigene Inhalte deines Servers wie Modelle, Texturen, Sounds oder Maps sehen, müssen sie diese herunterladen. Mit FastDL laden die Spieler diese Dateien beim Beitreten über HTTP von deinem Webspace herunter. Du hinterlegst dafür die Adresse des Webspaces in der server.cfg und legst per Lua fest, welche Dateien heruntergeladen werden sollen.
Tipp
Der einfachere und schnellere Weg ist der Steam Workshop. Liegen deine Inhalte im Workshop, nimmst du sie in deine Collection auf und lässt sie mit resource.AddWorkshop an die Spieler verteilen. Wie das geht, erfährst du unter Mods hinzufügen. FastDL brauchst du nur für Inhalte, die es nicht im Workshop gibt.
Voraussetzungen für FastDL
Für FastDL benötigst du einen eigenen Webserver bzw. Webspace, der über http:// oder https:// öffentlich erreichbar ist. Dein Garry's Mod Server selbst ist kein Webserver und kann die Dateien nicht über HTTP ausliefern.
Hinweis
.lua-Dateien zählen nicht als Inhalte. Sie werden über einen eigenen Weg an die Spieler übertragen und brauchen kein FastDL. Lege auf dem Webspace nur Dateien wie Modelle, Materialien, Sounds und Maps ab.
Inhalte auf dem Gameserver bereitstellen
Die Dateien, die die Spieler herunterladen sollen, müssen auch auf deinem Gameserver liegen. Fehlt eine Datei auf dem Server, wird sie nicht in die Downloadliste aufgenommen.
Server stoppen
Stoppe deinen Server über die Verwaltung.Per SFTP verbinden
Verbinde dich per SFTP mit deinem Server.Inhalte hochladen
Lade deine Inhalte als Addon in einen eigenen Unterordner hoch, zum Beispiel:/garrysmod/addons/meinserver-inhalte/Darin liegen die Unterordner wie
materials/,models/odersound/. Eigene Maps legst du als.bsp-Datei unter/garrysmod/maps/ab.Hinweis
Lass deinen Server gestoppt, bis du alle Schritte dieser Anleitung erledigt hast. Gestartet wird er am Ende im Abschnitt Dateien zum Download markieren.
Dateien auf den Webspace hochladen
Die Spieler fordern jede Datei unter der Adresse deines Webspaces mit demselben Pfad an, den sie relativ zum Ordner garrysmod/ hat. Die Ordnerstruktur auf dem Webspace muss deshalb genau der Struktur im Spiel entsprechen.
Ordnerstruktur anlegen
Lege im Hauptverzeichnis deines Webspaces dieselben Ordner an, die deine Inhalte verwenden, zum Beispielmaps/,materials/,models/undsound/.Dateien hochladen
Lade die Dateien in die passenden Ordner hoch. Den Addon-Ordner selbst lässt du dabei weg: Aus/garrysmod/addons/meinserver-inhalte/materials/meinserver/logo.vmtauf dem Gameserver wird auf dem Webspacematerials/meinserver/logo.vmt.Beispiel
Ist dein Webspace unter
https://fastdl.example.comerreichbar, ruft ein Spieler die Dateimaterials/meinserver/logo.vmtunter dieser Adresse ab:https://fastdl.example.com/materials/meinserver/logo.vmtDateien optional komprimieren
Du kannst die Dateien zusätzlich im Format bzip2 komprimieren, um die Downloads zu verkleinern. Die komprimierte Datei bekommt dabei die Endung.bz2an den vollständigen Dateinamen angehängt, zum Beispiellogo.vmt.bz2. Die Spieler fragen zuerst die.bz2-Datei an. Gibt es keine komprimierte Fassung, laden sie die unkomprimierte Datei herunter.
Wichtig
Der Server läuft unter Linux und Dateipfade sind dort groß- und kleinschreibungsabhängig. Achte zur Sicherheit darauf, dass Ordner- und Dateinamen auf dem Gameserver, auf dem Webspace und in deiner Lua-Datei exakt gleich geschrieben sind.
Download-URL eintragen
Datei öffnen
Öffne per SFTP folgende Datei:/garrysmod/cfg/server.cfgURL eintragen
In der Datei steht bereits die Zeilesv_downloadurl "". Trage zwischen den Anführungszeichen die Adresse deines Webspaces ein:sv_downloadurl "https://fastdl.example.com"Die Adresse muss auf das Verzeichnis zeigen, in dem die Ordner
materials/,models/usw. liegen.Download vom Gameserver deaktivieren
Füge unter der Zeile// Add custom lines under herefolgende Zeile hinzu:sv_allowdownload 0Damit laden die Spieler keine Dateien direkt vom Gameserver herunter. Warum das wichtig ist, erfährst du unter Download direkt vom Gameserver.
Datei speichern
Speichere die Datei.
Dateien zum Download markieren
Damit die Spieler die Dateien herunterladen, musst du sie in einer serverseitigen Lua-Datei für den Download markieren. Dafür gibt es zwei Funktionen:
| Funktion | Beschreibung |
|---|---|
resource.AddFile | Markiert die Datei und alle zugehörigen Dateien. Bei einer .vmt-Datei wird automatisch die gleichnamige .vtf-Datei hinzugefügt, bei einer .mdl-Datei automatisch die gleichnamigen .vvd-, .ani-, .dx80.vtx-, .dx90.vtx- und .phy-Dateien. |
resource.AddSingleFile | Markiert nur genau die angegebene Datei. |
Lua-Datei anlegen
Lege per SFTP eine neue Datei an, zum Beispiel:/garrysmod/lua/autorun/server/fastdl.luaDateien eintragen
Trage pro Datei eine Zeile ein. Der Pfad wird relativ zum Ordnergarrysmod/angegeben – ohneaddons/<addonname>/davor und ohne die Endung.bz2:luaresource.AddFile( "materials/meinserver/logo.vmt" ) resource.AddFile( "models/meinserver/stuhl.mdl" ) resource.AddFile( "sound/meinserver/musik.wav" ) resource.AddFile( "maps/rp_beispielstadt.bsp" )Achtung
Der Ordner für Sounds heißt
sound/– ohne „s“ am Ende.Server starten
Speichere die Datei und starte deinen Server. Beim nächsten Beitreten laden die Spieler die markierten Dateien von deinem Webspace herunter.
Hinweis
Mit resource.AddFile werden auch die zugehörigen Dateien angefragt. Lade deshalb z.B. bei Modellen alle zugehörigen Dateien auf den Webspace hoch, nicht nur die .mdl-Datei.
Einschränkungen von FastDL
Achtung
FastDL prüft nicht den Inhalt der Dateien. Änderst du eine Datei auf dem Server, laden Spieler, die sie bereits heruntergeladen haben, die neue Fassung nicht erneut herunter. Damit Spieler die neue Fassung erhalten, kannst du z.B. geänderten Dateien einen neuen Namen geben und die Verweise darauf anpassen.
Hinweis
Es können insgesamt höchstens 8192 Dateien zum Download markiert werden. Diese Grenze gilt für alle resource.Add*-Funktionen zusammen. Brauchst du mehr, lade deine Inhalte in den Steam Workshop hoch und verteile sie mit resource.AddWorkshop.
Hinweis
FastDL lädt Datei für Datei herunter. Bei sehr vielen kleinen Dateien kann das Beitreten deshalb länger dauern. Spieler können außerdem in ihren Spieleinstellungen festlegen, welche Dateitypen sie von Servern herunterladen.
Download direkt vom Gameserver
Über die ConVar sv_allowdownload können Spieler Dateien auch direkt vom Gameserver herunterladen. Diese Methode solltest du nicht verwenden: Sie ist mit rund 64 KB/s sehr langsam.
Wichtig
Ist sv_allowdownload aktiviert, können Spieler mit manipulierten Clients massenhaft Dateien anfordern und deinen Server so stark ausbremsen. Lass deshalb sv_allowdownload 0 in deiner server.cfg stehen und nutze stattdessen FastDL oder den Steam Workshop.