Publier une map GMod sur le Steam Workshop : étape par étape
Publier une map GMod sur le Workshop : crée un dossier avec addon.json, génère le .gma avec gmad.exe, publie-le avec gmpublish.exe. Avec les erreurs fréquentes.
Tu publies une map GMod en trois étapes : tu crées un dossier avec un addon.json et le BSP sous maps/, tu en fais un fichier .gma avec gmad.exe, puis tu l’uploades avec gmpublish.exe, accompagné d’une icône de 512 × 512 pixels. Le nouvel élément est d’abord caché et ne devient visible que lorsque tu le passes en public sur sa page Workshop. Si l’upload échoue, la cause est en général un fichier qui n’est pas sur la whitelist, l’addon.json ou l’icône.
D’abord décider : Workshop ou vente
Un élément Workshop public est gratuit et accessible à tout le monde. Cela ne s’annule pas proprement : selon l’Accord de souscription Steam, retirer l’élément plus tard n’affecte pas les droits des utilisateurs qui en ont déjà obtenu une copie. Une map que tu veux vendre n’a donc pas sa place sur le Workshop au préalable. À l’inverse, le Workshop est la voie la plus pratique pour tout ce qui est destiné à être librement disponible, car Steam se charge de la distribution et des mises à jour. Le pour et le contre du point de vue d’un serveur sont traités dans map custom ou map Workshop, le chemin vers la vente dans vendre des maps GMod.
Structure du dossier et addon.json
Techniquement, un addon Workshop est un seul fichier .gma : une archive créée à partir d’un dossier organisé comme garrysmod/. Le nom du dossier n’a pas d’importance. Pour une map, il se présente ainsi :
rp_harbourtown/
addon.json
maps/rp_harbourtown_v2.bsp
maps/rp_harbourtown_v2.nav
maps/graphs/rp_harbourtown_v2.ain
maps/thumb/rp_harbourtown_v2.png
materials/...
models/...
sound/...
Tu n’as besoin de materials/, models/ et sound/ que pour le contenu qui n’est pas dans le BSP. Il est en général plus simple de tout packer, voir packer du contenu custom dans le BSP. L’image sous maps/thumb/ apparaît dans la sélection de maps du jeu. Les miniatures livrées avec GMod sont des fichiers PNG de 128 × 128 pixels.
L’addon.json décrit l’addon :
{
"title": "rp_harbourtown",
"type": "map",
"tags": [ "roleplay", "scenic" ],
"ignore": [ "*.vmf", "*.psd" ]
}
| Champ | Valeurs autorisées |
|---|---|
title | Nom de l’addon, idéalement uniquement des caractères ASCII |
type | l’une des valeurs gamemode, map, weapon, vehicle, npc, entity, tool, effects, model, ServerContent |
tags | au plus deux parmi fun, roleplay, scenic, movie, realism, cartoon, water, comic, build |
ignore | Motifs pour les fichiers qui ne doivent pas entrer dans l’archive |
Créer le .gma avec gmad.exe
gmad.exe et gmpublish.exe se trouvent dans le dossier GarrysMod/bin de l’installation du jeu. Le wiki GMod met en garde contre le déplacement de gmad vers un autre emplacement.
gmad.exe create -folder "C:\maps\rp_harbourtown" -out "C:\maps\rp_harbourtown.gma"
gmad vérifie chaque fichier par rapport à une whitelist et s’interrompt avec File list verification failed si l’un d’eux est refusé. Sous maps/, seuls .bsp, .nav, .ain, .lmp et les fichiers PNG sous maps/thumb/ sont autorisés, auxquels s’ajoutent les formats habituels pour les matériaux, les modèles, les sons et le Lua. Avec l’option -warninvalid, gmad ignore les fichiers invalides au lieu de s’interrompre.
| Message | Cause |
|---|---|
[Not allowed by whitelist] | Type de fichier ou dossier non autorisé, par exemple .vmf, .txt sous maps/ ou scripts/ (sauf scripts/vehicles/), pour les modèles .sw.vtx |
[Filename contains captial letters] | Majuscules dans le chemin. gmad crée quand même le fichier, mais renomme-le |
addon.json error: Couldn't find file | addon.json est absent du dossier |
Couldn't parse json | Erreur de syntaxe dans l’addon.json, par exemple une virgule manquante |
type isn't a supported type! | la valeur de type n’est pas dans la liste |
too many tags - specify 2 only! | plus de deux tags |
La whitelist a une conséquence importante pour les mappeurs : les scripts de soundscapes (scripts/soundscapes_<mapname>.txt) et un manifeste de particules (maps/<mapname>_particles.txt) ne peuvent pas être livrés sous forme de fichiers séparés. La solution habituelle consiste à les packer dans le BSP. Pour les soundscapes, c’est documenté dans la Valve Developer Community. Après le packing, vérifie en jeu que les sons et les particules se chargent vraiment.
Publier avec gmpublish.exe
La commande pour créer un nouvel élément est :
gmpublish.exe create -icon "C:\maps\rp_harbourtown.jpg" -addon "C:\maps\rp_harbourtown.gma"
- Prépare l’icône. Il faut un JPEG d’exactement 512 × 512 pixels, enregistré en JPEG baseline (non progressif) et de moins de 1 Mo. Le wiki mentionne en plus un sous-échantillonnage de la chrominance en 4:2:0. Le PNG ne fonctionne pas.
- Lance Steam et connecte-toi avec le compte qui doit posséder l’élément. gmpublish passe par le client Steam en cours d’exécution.
- Exécute la commande. Si tu n’as pas encore accepté l’accord Workshop de Steam, gmpublish s’interrompt et affiche l’adresse pour le faire. En cas de succès, la sortie contient
Success! Your new item ID issuivi de l’ID. Note-le. - Remplis la page. gmpublish indique que le nouvel élément est marqué comme caché. Ouvre-le sur le Workshop et ajoute une description et des screenshots.
- Règle la visibilité. C’est seulement ensuite que tu rends l’élément public.
Steam a quatre niveaux de visibilité : public, amis uniquement, caché (uniquement pour toi) et non répertorié. « Non répertorié » signifie que toute personne disposant du lien peut voir l’élément, mais qu’il n’apparaît dans aucune recherche. La façon dont un serveur charge les addons Workshop et les transmet aux joueurs est expliquée dans FastDL ou Workshop.
Mises à jour et notes de modification
gmpublish.exe list
gmpublish.exe update -id 1234567890 -addon "C:\maps\rp_harbourtown.gma" -changes "v3: fixed spawn in town hall"
gmpublish.exe update -id 1234567890 -icon "C:\maps\rp_harbourtown.jpg"
list affiche les éléments que tu as uploadés. L’ID se trouve aussi dans l’adresse de la page Workshop, après ?id=. -changes est facultatif, et tu peux modifier la note plus tard sur la page Workshop, dans l’onglet « Change Notes ». Écris-la uniquement avec des caractères ASCII, donc sans trémas ni accents. D’après le wiki, sinon l’upload passe mais la note manque. D’après le wiki, le titre, la description et les images se modifient sur la page Workshop.
Publie les nouvelles versions comme mise à jour de cet élément et non comme nouvel élément. Les règles du Workshop pour GMod le recommandent. Les serveurs vérifient au redémarrage si leurs addons ont des mises à jour. D’ici là, c’est l’ancien BSP qui y tourne, et d’après le wiki GMod cela peut empêcher les joueurs de rejoindre le serveur. La raison pour laquelle une nouvelle version devrait aussi recevoir un nouveau nom de fichier est expliquée dans noms et versions de maps.
Contenu de tiers : ce que disent les règles
Ceci n’est pas un conseil juridique, mais un résumé de ce qu’énoncent les règles.
- Dans l’Accord de souscription Steam, tu déclares avoir créé toi-même une contribution Workshop ou être autorisé à la soumettre au nom de toutes les personnes impliquées, et détenir les droits nécessaires sur le contenu.
- Le wiki GMod le dit plus crûment : n’uploade pas d’addons que tu n’as pas faits, pas même des versions corrigées, sauf si l’auteur est d’accord. Les re-uploads sont supprimés, même si l’original n’existe plus.
- D’après les règles du Workshop, les addons contenant du contenu de jeux payants comme Counter-Strike: Source ou Half-Life 2 sont supprimés, même si ton addon a besoin de ces props pour fonctionner. Ne packe donc pas de tels fichiers dans le BSP.
- Ne sont pas autorisés non plus les éléments vides et les éléments de test, les addons qui exigent un téléchargement externe et les addons qui restreignent leur utilisation à certains serveurs.
Selon l’Accord de souscription, Valve peut restreindre ou supprimer des contributions pour n’importe quelle raison. La question de savoir qui détient les droits sur quelles parties d’une map est démêlée dans l’article sur les bases du droit d’auteur pour les maps GMod.
Questions fréquentes
Comment livrer un script TTT si les .txt sous maps/ ne sont pas autorisés ?
Via data_static/. TTT cherche le script d’armes et de spawns d’abord sous maps/<mapname>_ttt.txt, puis sous data_static/<mapname>_ttt.txt. La whitelist autorise .txt, .json, .xml, .csv et .dat dans ce dossier.
Puis-je supprimer un élément Workshop après coup ?
Oui, sur la page Workshop, et c’est irréversible. Cela ne fait pas revenir les copies que les abonnés ont déjà.
« Non répertorié » suffit-il pour ne donner une map qu’à mon serveur ?
Non. Toute personne disposant du lien peut s’abonner à l’élément, et chaque joueur qui rejoint le serveur reçoit de toute façon le fichier. Pour les maps qui ne doivent pas être publiques, FastDL est la voie habituelle.
Quelle taille peut faire un addon ?
Les règles du Workshop mentionnent une limite d’environ 4 Go et déconseillent de découper un addon en plusieurs parties. Si l’upload signale « Compression Failed », l’addon est trop gros d’après le wiki. Des textures plus petites sont le premier levier, voir réduire la taille d’un fichier BSP.