Armes, véhicules, outils, cartes, mod d'administration, parfois le gamemode lui-même : presque tout ce que tu ajouteras à ton serveur viendra du Workshop de Garry's Mod. C'est gratuit et c'est pratique. C'est aussi là que les nouveaux propriétaires de serveur perdent le plus de soirées.
Tout vient d'un seul fait : un addon du Workshop doit arriver à deux endroits, sur ton serveur et chez chacun de tes joueurs. AMP règle ces deux trajets dans deux champs séparés. Ce chapitre te les explique, puis te montre le piège qui fait qu'une collection ne se télécharge qu'à moitié, et enfin comment contrôler toi-même ce qui est vraiment arrivé.
Avant de commencer, ton serveur doit démarrer vide en sandbox. Si ce n'est pas encore le cas,
reprends le chapitre 1.
1. Deux champs, deux destinataires #
Va dans Configuration → Garry's Mod, onglet Server. Deux champs concernent le Workshop. Ils ont l'air de faire la même chose. Ce n'est pas le cas.
| Champ AMP | Ce qu'AMP en fait | Qui télécharge |
|---|---|---|
| Workshop Collection ID | l'ajoute à la ligne de commande : +host_workshop_collection <id> |
le serveur : il télécharge les addons, puis les monte |
| Resource Lua Code | une ligne resource.AddWorkshop("<id>") par addon |
les joueurs, au moment de se connecter |
Regarde la dernière colonne. Resource Lua Code ne fait rien descendre sur le serveur. Il dit
seulement à chaque joueur qui arrive : « récupère d'abord ces addons ». Dans l'autre sens, la
collection ne pousse rien chez les joueurs.
Un cas relevé sur une instance TeamKit : ULX était bien écrit dans Resource Lua Code, mais le
serveur ne l'avait pas encore téléchargé. Résultat : aucun fichier d'ULX sur la machine, et un
serveur qui ne le chargeait pas. Le champ était rempli, l'addon n'existait pas.
Il te faut donc les deux champs, avec la même liste. Un addon présent d'un seul côté pose toujours problème :
- dans la collection seulement : le serveur l'utilise, mais tes joueurs ne l'ont pas. Ils voient des textures manquantes ou des modèles ERROR (chapitre 6).
- dans
Resource Lua Codeseulement : tes joueurs le téléchargent pour rien, le serveur ne le connaît pas.
✅ À retenir La collection sert au serveur.
Resource Lua Codesert aux joueurs. Mets la même liste des deux côtés, sans exception.
2. Monter ta collection #
Une collection est une liste d'addons du Workshop regroupés sous un seul identifiant. Ton serveur n'a besoin que de cet identifiant pour tout récupérer.
- Ouvre le Workshop de Garry's Mod, connecté à ton compte Steam :
https://steamcommunity.com/app/4000/workshop/. - Crée une collection et donne-lui un nom qui dit à quoi elle sert (« Mon serveur – addons »).
- Ajoute-y chaque addon voulu sur le serveur, dépendances comprises (section 8).
- Laisse la collection visible publiquement. C'est le réglage le plus sûr pour que le serveur puisse la lire.
- Relève son identifiant : c'est le nombre qui suit
?id=dans l'adresse de sa page. - Colle cet identifiant dans Workshop Collection ID.
Chaque addon a lui aussi son identifiant, lu de la même manière sur sa page. Celle d'ULX, par
exemple, a une adresse qui se termine par ?id=557962280.
Passe ensuite à Resource Lua Code. On y écrit une ligne par addon, avec l'identifiant de l'addon lui-même, pas celui de la collection. Pour ULX et ULib, la bibliothèque qu'il exige :
resource.AddWorkshop("557962238")
resource.AddWorkshop("557962280")
Pour tout autre addon, prends l'identifiant sur sa page, et recopie-le entre les guillemets.
✅ À retenir Un identifiant = le nombre après
?id=. Celui de la collection va dans Workshop Collection ID, celui de chaque addon va dans Resource Lua Code, une ligne par addon.
3. Le piège n°1 : la collection qui s'arrête en route #
C'est le fait le plus important de ce chapitre, et il a été constaté deux fois sur des instances TeamKit.
Sans autre réglage, +host_workshop_collection fait télécharger le serveur en anonyme. Steam
limite ce mode de téléchargement, et le téléchargement s'arrête en cours de route. Aucun message
d'erreur, aucun avertissement. Le serveur démarre avec ce qu'il a.
Les chiffres relevés :
| Instance | Addons dans la collection | Réellement téléchargés |
|---|---|---|
| Une instance TeamKit | 17 | 8 |
| Une autre instance TeamKit | 88 | 67 |
Et ce n'est pas une affaire de taille. Il manquait aussi bien des paquets de 353 Mo que des outils de 30 Ko. Inutile de chercher le gros addon coupable : il n'y en a pas.
Le symptôme ressemble à ceci : une partie des addons fonctionne, une autre non, et rien dans la console ne t'explique pourquoi. On croit à un addon cassé, on le retire, on en ajoute un autre, et on tourne en rond.
Le correctif : -authkey #
Le remède tient en une ligne, dans Additional Command Line Parameters :
-authkey LA_CLE
LA_CLE est à remplacer par ta clé Steam Web API (section 4).
- Ouvre Configuration → Garry's Mod, onglet Server.
- Descends jusqu'à Additional Command Line Parameters.
- Écris
-authkeysuivi d'une espace et de ta clé. Si le champ contient déjà d'autres paramètres, garde-les et ajoute celui-ci à la suite. - Enregistre.
- Va sur Status et clique sur Restart : la ligne de commande n'est lue qu'au lancement.
⚠️ Attention au signe. Les Additional Command Line Parameters commencent par -, les
Additional Console Variables par +. -authkey va dans les paramètres, jamais dans les
variables de console. Exemple réel des deux côtés : -authkey … dans les paramètres,
+sv_gravity "500" dans les variables. Le détail est dans le chapitre 3.
✅ À retenir Sans
-authkey, une collection peut s'arrêter à 8 addons sur 17, sans un mot. Ajoute-le avant même de remplir ta collection.
4. La clé Steam Web API #
-authkey attend une Steam Web API key. Steam la délivre gratuitement à ton compte.
- Ouvre
https://steamcommunity.com/dev/apikey, connecté à ton compte Steam. - Remplis le champ du nom de domaine. Aucun vrai nom de domaine n'est nécessaire : le nom de ton serveur ou de ta communauté fait l'affaire.
- Valide la demande.
- Copie la clé affichée.
- Colle-la derrière
-authkey, comme à la section 3.
Cette clé est un secret #
Traite-la comme un mot de passe :
- ne la colle jamais dans un ticket, sur le Discord TeamKit ou dans un message privé ;
- ne la laisse pas apparaître sur une capture d'écran de ta configuration ;
- quand tu demandes de l'aide, remplace-la par
LA_CLEdans ce que tu partages ; - réfléchis avant de donner un accès à ton panel : la clé y est lisible pour qui peut ouvrir la configuration.
Si tu penses qu'elle a fuité, retourne sur la même page Steam : elle permet de révoquer la clé et d'en obtenir une nouvelle. Remplace ensuite l'ancienne partout où tu l'avais mise.
✅ À retenir La clé se demande sur
steamcommunity.com/dev/apikey, sans nom de domaine réel. Elle ne se partage avec personne, même pour demander de l'aide.
5. La page Updates : Steam Web API key et Steam Workshop Items #
AMP a sa propre section Workshop, ailleurs que dans l'onglet Server. Ouvre Configuration → Updates, rubrique Steam Workshop. Tu y trouves deux champs :
- Steam Web API key : AMP s'en sert pour ses propres échanges avec le Workshop. C'est le même
genre de clé que celle de
-authkey. S'il est vide, mets-y ta clé ; s'il est déjà rempli, laisse-le tel quel. - Steam Workshop Items : une liste d'identifiants d'addons, un par ligne.
557962238
557962280
Ce tutoriel s'appuie sur la collection, la méthode vérifiée sur les instances TeamKit. Si tu utilises aussi Steam Workshop Items, ne le laisse pas devenir une troisième liste qui vit sa propre vie. Par prudence, ne déclare pas le même addon à deux endroits. Et quelle que soit la méthode, c'est le contrôle de la section 7 qui tranche.
✅ À retenir La page Updates a sa clé et sa liste. Une seule source de vérité pour tes addons : la collection, recopiée dans
Resource Lua Code.
6. Où atterrissent les addons : cache/srcds/ #
Tu vas vouloir vérifier que tes addons sont là. Encore faut-il savoir où regarder.
Les addons téléchargés depuis le Workshop arrivent dans garrysmod/cache/srcds/, un fichier
.gma par addon. Pas ailleurs :
| Dossier | Ce qu'il contient |
|---|---|
garrysmod/cache/srcds/ |
les addons du Workshop, un .gma chacun |
garrysmod/cache/workshop/ |
il existe, mais ne sert pas à ranger tes addons |
garrysmod/addons/ |
les addons hors Workshop, déposés à la main, un dossier par addon |
Un .gma est une archive. Garry's Mod ne la décompresse jamais : il la monte telle quelle au
démarrage. Tu ne verras donc jamais les fichiers .lua d'un addon du Workshop dans le File Manager.
Ce n'est pas une erreur, c'est leur fonctionnement normal.
Ne déplace pas ces fichiers et ne les recopie pas ailleurs : ce dossier appartient au téléchargement.
✅ À retenir Workshop =
cache/srcds/, en.gmafermés. À la main =addons/, en dossiers ouverts. Deux mondes qui ne se mélangent pas.
7. Vérifier ce qui est réellement descendu #
Ne te fie jamais à « ça devrait être bon ». Compte.
- Ouvre la page de ta collection sur le Workshop et compte ses addons.
- Clique sur Restart et laisse le serveur finir de démarrer. Une collection de plusieurs dizaines d'addons ne descend pas en dix secondes.
- Ouvre File Manager, puis
garrysmod/cache/srcds/. - Compte les fichiers
.gma. - Compare les deux nombres.
- Compte aussi les lignes de Resource Lua Code : même nombre attendu.
Si tout concorde, ta liste est complète des deux côtés. S'il manque des .gma, vérifie d'abord la
présence de -authkey (section 3), redémarre, attends, recompte.
Pour trouver lequel manque : si les noms des .gma reprennent les identifiants Workshop de tes
addons, pointe-les un par un face à ta liste. Sinon, garde au moins la comparaison des nombres, et
teste en jeu l'addon dont tu doutes.
Pendant que tu y es, jette un œil à la jauge de mémoire sur Status, une fois tout téléchargé. Les addons consomment ta mémoire avant tes joueurs.
✅ À retenir Nombre d'addons de la collection = nombre de
.gmadanscache/srcds/= nombre de lignes deResource Lua Code. Trois nombres, une seule valeur.
8. Les doublons : un seul exemplaire de chaque chose #
Deuxième grande cause de serveur instable : le même code présent deux fois.
Cas réel : une collection contenait deux fois la même base d'armes. La version officielle, et un ré-upload qui l'embarquait à l'intérieur. Les deux se marchaient dessus et le serveur crachait des erreurs Lua. La documentation officielle de cette base le dit elle-même, en substance : n'installe que la version officielle, et retire tout ré-upload ou contenu qui embarque son code.
La règle générale : un seul exemplaire de chaque chose. Une seule base d'armes. Un seul système de protection des props. Un seul inventaire.
Pour éviter les doublons :
- Préfère la page officielle. Regarde l'auteur, le nombre d'abonnés, la description. ULX en est un bon exemple : sa page officielle dépasse 1,4 million d'abonnés et se présente comme la dernière version officielle du mod.
- Méfie-toi des packs qui regroupent plusieurs addons : ils embarquent parfois une base que tu as déjà.
- Lis la description avant d'ajouter. Les auteurs y indiquent ce que leur addon exige.
- Ajoute les dépendances, une fois chacune. ULX ne fonctionne pas sans ULib :
| Addon | Identifiant | Rôle |
|---|---|---|
| ULib | 557962238 |
la bibliothèque, exigée par ULX |
| ULX | 557962280 |
le mod d'administration |
Les deux vont dans la collection et dans Resource Lua Code. Leur réglage est expliqué au
chapitre 7.
Une carte et son pack de contenu forment souvent deux addons distincts, eux aussi à déclarer tous les deux. C'est traité au chapitre 5 et au chapitre 6.
Pour lire les erreurs Lua et trouver l'addon fautif, va au chapitre 8.
✅ À retenir Deux versions du même addon ne s'additionnent pas, elles se battent. Une base, une protection, un inventaire : un exemplaire chacun.
9. Ajouter ou retirer un addon proprement #
Une méthode, toujours la même, et un addon à la fois quand c'est possible : si quelque chose casse, tu sauras tout de suite quoi.
- Modifie la collection sur le Workshop (ajout ou retrait).
- Ajoute ou retire la ligne correspondante dans Resource Lua Code.
- Enregistre, puis clique sur Restart : les addons du Workshop sont montés au lancement.
- Vérifie
cache/srcds/comme à la section 7. - Rejoins le serveur et teste l'addon.
- Lis la console, à la recherche d'une erreur Lua toute neuve.
La mise à jour d'un addon, et le bon moment pour lancer un Update, sont traités au chapitre 9.
✅ À retenir Collection,
Resource Lua Code, Restart, vérification, test. Dans cet ordre, à chaque fois.
✅ Checklist du chapitre #
❓ Si ça ne marche pas #
Une partie seulement de mes addons fonctionne, la console ne dit rien.
C'est le téléchargement anonyme qui s'est arrêté en route. Ajoute -authkey LA_CLE dans
Additional Command Line Parameters, clique sur Restart, attends la fin du démarrage, puis
recompte les .gma de cache/srcds/.
J'ai mis -authkey et rien n'a changé.
Vérifie le champ : il doit être dans Additional Command Line Parameters, avec un -, et non dans
Additional Console Variables. Vérifie aussi que tu as bien redémarré après l'enregistrement, et
que la clé a été copiée en entier.
L'addon est dans Resource Lua Code mais le serveur ne le charge pas.
Resource Lua Code ne télécharge rien côté serveur. Ajoute l'addon à ta collection, redémarre, et
contrôle sa présence dans cache/srcds/.
Mes joueurs voient des textures violettes et noires ou des modèles ERROR. L'addon est sans doute dans la collection mais absent de Resource Lua Code, ou bien il dépend d'un pack de contenu que tu n'as pas déclaré. Le chapitre 6 traite tous les cas.
Des erreurs Lua sont apparues après l'ajout de plusieurs addons. Cherche un doublon : deux bases d'armes, deux protections de props, un pack qui embarque un addon que tu as déjà. Retire les addons un par un en partant du dernier ajouté, et lis l'erreur avec le chapitre 8.
Je ne trouve pas les fichiers .lua de mon addon dans le File Manager.
C'est normal : un addon du Workshop reste un .gma fermé dans cache/srcds/, monté tel quel. Si tu
bloques, demande de l'aide sur le Discord TeamKit, en remplaçant ta clé par LA_CLE dans tout ce
que tu partages.