Serveurs et communautés

Installer une map sur un serveur GMod : FastDL ou Workshop

Installer une map sur un serveur GMod : fichier dans garrysmod/maps, map de départ, puis distribution aux joueurs via FastDL ou Workshop. Avec dépannage.

Pour installer une map, tu places le .bsp dans garrysmod/maps sur le serveur, puis tu la définis comme map de départ ou tu la charges avec changelevel. Pour pouvoir rejoindre le serveur, les joueurs ont besoin du même fichier. Le mieux est qu’ils le reçoivent par FastDL ou par le Steam Workshop, car le téléchargement direct depuis le serveur de jeu est très lent.

Étape 1 : mettre la map sur le serveur

  1. Envoie le .bsp dans garrysmod/maps/ par FTP ou SFTP. Écris tout le nom du fichier en minuscules. Les serveurs Linux sont sensibles à la casse.
  2. Si d’autres fichiers accompagnent la map, ils vont dans les dossiers correspondants. Un .nav se place aussi dans garrysmod/maps/, le contenu non packé va dans materials, models ou sound. Si le contenu est packé dans le BSP, tu peux sauter cette étape.
  3. Définis la map comme map de départ. Dans la ligne de lancement du serveur, tu le fais avec +map rp_example, et le mode de jeu avec +gamemode darkrp. Beaucoup d’hébergeurs proposent un champ prévu pour ça dans leur panneau web.
  4. Sur un serveur en cours d’exécution, tu changes de map avec changelevel rp_example dans la console du serveur ou via RCON. La commande maps * liste toutes les maps que le serveur trouve.

Si le serveur démarre avec une autre map ou ne démarre pas du tout, la cause est presque toujours le nom ou l’emplacement : une faute de frappe, des majuscules ou le mauvais dossier. Dans le paramètre de lancement, le nom de la map s’écrit sans l’extension .bsp.

Étape 2 : comment les joueurs reçoivent la map

Chaque client a besoin du BSP en local. Il y a trois façons de faire.

Téléchargement direct depuis le serveur de jeu

Avec sv_allowdownload 1, le serveur de jeu envoie lui-même le fichier au client. Cela fonctionne sans autre configuration, mais le débit est fortement bridé. De plus, net_maxfilesize limite la taille du fichier, à 16 Mo par défaut. Augmenter la valeur n’accélère pas le transfert. Pour les maps RP d’aujourd’hui, cette voie n’est qu’une solution de secours.

FastDL via un serveur web

Avec FastDL, les clients téléchargent les fichiers en HTTP depuis un espace web. Tu indiques l’adresse dans server.cfg :

sv_downloadurl "http://fastdl.example.com/garrysmod/"

Cette seule variable active FastDL. sv_allowdownload ne régit que le téléchargement direct depuis le serveur de jeu. L’espace web reproduit l’arborescence du serveur. La map doit donc être accessible à l’adresse .../garrysmod/maps/rp_example.bsp. En option, tu places à côté une version compressée en bzip2 nommée rp_example.bsp.bz2. Le client demande d’abord le fichier compressé et le décompresse lui-même, ce qui raccourcit nettement le téléchargement, sauf si le BSP est déjà compressé lui-même.

Teste l’adresse dans un navigateur. Si le fichier ne se charge pas là, il ne se chargera pas en jeu non plus.

Steam Workshop

Si la map existe en tant qu’addon Workshop, Steam se charge de la distribution. Le serveur charge ses addons via une collection que tu indiques dans la ligne de lancement :

+host_workshop_collection 1234567890

Si la map en cours vient de cette collection, le serveur la marque de lui-même pour le téléchargement par les clients. Pour les autres addons Workshop avec du contenu, par exemple un pack de textures, tu inscris l’ID de l’addon dans un fichier Lua côté serveur, par exemple garrysmod/lua/autorun/server/workshop.lua :

resource.AddWorkshop("9876543210")

Le nombre est l’ID qui figure dans l’adresse de l’élément Workshop lui-même, pas l’ID de la collection.

Avantages et inconvénients en comparaison

VoieVitesseEffortAvantagesInconvénients
Téléchargement directtrès lentaucunfonctionne tout de suitelimite de taille, longue attente, charge le serveur de jeu
FastDLrapideespace web et maintenancecontrôle total des fichiers, pas besoin de publication publiqueles fichiers doivent être tenus à jour en double à chaque mise à jour
Workshoprapidefaiblemises à jour et distribution par Steam, pas besoin de ton propre espace webla map doit être sur le Workshop, attention à la visibilité et à la licence

Beaucoup de serveurs combinent les deux : Workshop pour les addons librement disponibles, FastDL pour les fichiers qui ne doivent pas se retrouver sur le Workshop.

Erreurs typiques et leurs causes

« Missing map 'maps/rp_example.bsp', disconnecting » : Le client n’a pas la map et n’a pas pu la télécharger. Vérifie dans l’ordre :

  • Sans FastDL ni Workshop : sv_allowdownload est-il réglé sur 1 ?
  • sv_downloadurl est-il correct, et le fichier s’y trouve-t-il dans le sous-dossier maps ?
  • Le .bz2 est-il à jour et non corrompu ?
  • Le joueur a-t-il désactivé les téléchargements ? Le réglage correspondant est cl_downloadfilter.

« Your map [maps/rp_example.bsp] differs from the server's » : Le client et le serveur ont des fichiers différents sous le même nom. Le joueur supprime l’ancienne copie de garrysmod/maps ou de garrysmod/download/maps et se reconnecte. En tant que propriétaire du serveur, tu évites ça en donnant à chaque version de la map son propre nom de fichier et en mettant toujours à jour FastDL et le serveur ensemble. Le .bz2 s’oublie facilement.

La map se charge mais des textures manquent : Il manque alors du contenu qui n’est pas dans le BSP, ou un jeu requis. Tu trouveras de l’aide dans corriger les textures manquantes et les modèles ERROR. Pour les mappeurs, packer du contenu custom dans un BSP sera utile.

Maps achetées et protégées : attention à la licence

Quand tu achètes une map, tu acquiers en général le droit de l’utiliser sur ton propre serveur, pas celui de diffuser le fichier publiquement. Un upload public sur le Workshop rend la map librement accessible à tous et n’est donc généralement pas autorisé. Lis les conditions de licence avant de choisir un mode de distribution, et demande au mappeur en cas de doute. FastDL pour les joueurs de ton propre serveur est la voie habituelle. Les bases sont dans acheter des maps GMod en sécurité.

Pour les maps avec Server-Exclusive, la répartition est fixée d’avance. Seul le BSP protégé du paquet est distribué, tous les autres fichiers restent privés sur le serveur sous licence. Le principe et ses limites sont expliqués dans Maps Server-Exclusive.

Questions fréquentes

Dois-je aussi ajouter la map avec resource.AddFile ?

Non. Le serveur propose de lui-même aux clients le téléchargement de la map en cours. Tu n’as besoin de resource.AddFile que pour le contenu qui n’est pas packé dans le BSP.

FastDL ou Workshop : lequel est le mieux ?

Pour les maps librement disponibles, le Workshop est le plus pratique, car Steam se charge de la distribution et des mises à jour. Pour les maps qui ne doivent pas ou ne peuvent pas être publiques, FastDL est le bon choix. Les deux voies sont à peu près aussi rapides pour les joueurs.

Où GMod stocke-t-il les maps téléchargées ?

Les maps qui viennent du serveur ou de FastDL sont stockées côté joueur dans garrysmod/download/maps. Le contenu Workshop est géré séparément par Steam.

Pourquoi les joueurs téléchargent-ils lentement malgré FastDL ?

Le plus souvent, le client ne trouve pas le fichier à l’adresse indiquée. Selon les réglages du serveur, il l’obtient alors par le téléchargement direct, lent, ou pas du tout. Vérifie l’orthographe, le slash final et l’arborescence de sv_downloadurl, et ouvre le fichier dans un navigateur pour tester.