Aller au contenu

Installer et configurer DarkRP

DarkRP est le gamemode de jeu de rôle le plus joué sur Garry’s Mod. Cette page explique comment l’installer sur un serveur CloudFive sans se créer de dette technique, puis comment ajouter vos premiers métiers et vos premières entités. Elle s’adresse à quelqu’un qui a déjà un serveur qui démarre — sinon, passez d’abord par Installer un serveur Garry’s Mod.

La règle à retenir avant tout le reste : DarkRP ne se modifie pas. Vos réglages vont dans un addon séparé, darkrpmodification, prévu pour ça. C’est ce qui vous permettra de mettre DarkRP à jour sans perdre six mois de configuration.

Deux éléments, dans deux dossiers différents :

  • le gamemode darkrp, dans garrysmod/gamemodes/ ;
  • l’addon darkrpmodification, dans garrysmod/addons/, qui contiendra toute votre configuration.
  1. Prenez une sauvegarde de votre serveur. Vous allez remplacer le gamemode actif.

  2. Récupérez les deux projets officiels depuis leur dépôt GitHub : FPtje/DarkRP et FPtje/DarkRPModification.

  3. Décompressez les archives, puis renommez les dossiers : DarkRP-master devient darkrp, DarkRPModification-master devient darkrpmodification. Le suffixe -master rend le gamemode introuvable.

  4. Envoyez darkrp dans garrysmod/gamemodes/ et darkrpmodification dans garrysmod/addons/. Pour des dossiers de cette taille, passez par le SFTP plutôt que par le navigateur — voir aussi Utiliser le gestionnaire de fichiers.

  5. Dans le panel, réglez la variable de gamemode sur darkrp et la carte sur une carte rp_ installée sur le serveur, par exemple rp_downtown_v4c_v2.

  6. Redémarrez le serveur, puis vérifiez dans la console qu’il annonce bien le chargement de DarkRP.

Tout se trouve dans garrysmod/addons/darkrpmodification/lua/, réparti entre deux dossiers dont la distinction est simple : darkrp_config règle le comportement du serveur, darkrp_customthings ajoute du contenu.

  • Répertoiregarrysmod/
    • Répertoireaddons/
      • Répertoiredarkrpmodification/
        • Répertoirelua/
          • Répertoiredarkrp_config/
            • settings.lua les réglages généraux
            • jobrelated.lua métiers par défaut, armes de départ
            • shipments.lua réglages des cargaisons
            • licenses.lua permis d’armes
            • disabled_defaults.lua désactiver le contenu livré
          • Répertoiredarkrp_customthings/
            • jobs.lua vos métiers
            • entities.lua vos entités achetables
            • shipments.lua vos cargaisons et armes
            • food.lua nourriture
            • doorgroups.lua groupes de portes
            • categories.lua catégories du menu F4
            • vehicles.lua véhicules
            • Répertoiremodules/ vos scripts personnalisés
              • …

Chaque fichier est commenté : la syntaxe attendue y figure en exemple, le plus souvent mise en commentaire. Lisez l’exemple avant d’écrire, c’est plus rapide que de chercher ailleurs.

Les métiers se déclarent dans darkrp_customthings/jobs.lua. Chacun est stocké dans une variable TEAM_ qui doit être unique sur tout le serveur.

darkrpmodification/lua/darkrp_customthings/jobs.lua
TEAM_BOULANGER = DarkRP.createJob("Boulanger", {
color = Color(210, 160, 60, 255),
model = {"models/player/Group01/male_07.mdl"},
description = [[Vous tenez la boulangerie du quartier.
Fabriquez du pain et vendez-le aux habitants.]],
weapons = {},
command = "boulanger",
max = 2,
salary = 45,
admin = 0,
vote = false,
hasLicense = false,
category = "Citizens",
})

Les champs qui comptent :

  • command est la commande de chat qui fait prendre le métier, ici /boulanger.
  • max limite le nombre de joueurs sur le métier en même temps. 0 signifie sans limite, pas « interdit ».
  • salary est le revenu versé à chaque cycle de paie.
  • admin à 1 réserve le métier aux administrateurs, à 2 aux super-administrateurs.
  • category doit correspondre à une catégorie existante du menu, sinon le métier n’apparaît nulle part.

Une entité achetable (imprimante, établi, machine) se déclare dans darkrp_customthings/entities.lua :

darkrpmodification/lua/darkrp_customthings/entities.lua
DarkRP.createEntity("Imprimante à billets", {
ent = "money_printer",
model = "models/props_c17/consolebox01a.mdl",
price = 1500,
max = 2,
cmd = "buyprinter",
allowed = {TEAM_GANG, TEAM_MOB},
})

Une arme vendue en cargaison se déclare dans darkrp_customthings/shipments.lua :

darkrpmodification/lua/darkrp_customthings/shipments.lua
DarkRP.createShipment("Pistolet", {
model = "models/weapons/w_pistol.mdl",
entity = "weapon_pistol",
price = 3000,
amount = 10,
separate = false,
noship = false,
allowed = {TEAM_GUN},
})
  • ent et entity doivent être le nom de classe réel de l’entité ou de l’arme. Si l’addon qui la fournit n’est pas installé, l’achat échoue.
  • allowed liste les métiers autorisés. Les TEAM_ cités doivent être déclarés avant, sinon ils valent nil et l’entité devient inaccessible.
  • separate à true permet la vente à l’unité en plus de la cargaison.

Dans darkrp_config/settings.lua, quatre ou cinq valeurs suffisent à donner sa personnalité à un serveur. Ouvrez le fichier et cherchez :

  • GM.Config.startingmoney — ce que possède un joueur qui arrive. Trop haut, l’économie n’a plus d’intérêt ; trop bas, personne ne joue.
  • GM.Config.normalsalary — le salaire de base, point de référence de tous les métiers.
  • GM.Config.paydelay — le délai entre deux paies, en secondes.
  • GM.Config.propertytax — la taxe sur les portes possédées.
  • GM.Config.doorcost — le prix d’achat d’une porte.

Ne devinez pas les valeurs par défaut : lisez-les dans le fichier, puis ajustez-les une par une. Changer cinq réglages d’un coup rend impossible de savoir lequel a déséquilibré l’économie.

En dehors de ce fichier, trois choses à régler tôt :

  1. Le nom du serveur, avec hostname dans garrysmod/cfg/server.cfg.
  2. Les droits d’administration. DarkRP est livré avec FAdmin ; beaucoup lui préfèrent ULX. Ne cumulez pas deux mods d’administration. La procédure pour vous donner le grade le plus élevé est dans Installer un serveur Garry’s Mod.
  3. La base de données. DarkRP fonctionne d’origine avec un stockage local, suffisant pour démarrer. Si vous passez à MySQL pour partager les données entre plusieurs serveurs, voir Créer et gérer une base de données.

Le suffixe -master oublié. Un dossier DarkRP-master n’est pas le gamemode darkrp : le serveur ne le trouve pas et repart en sandbox. C’est la panne numéro un.

darkrpmodification placé dans gamemodes/. C’est un addon : sa place est dans garrysmod/addons/. Ailleurs, il est purement ignoré, et vos métiers n’apparaissent jamais.

Une virgule ou une accolade manquante. Lua refuse alors le fichier entier, pas seulement la ligne fautive : tous vos métiers disparaissent d’un coup. La console affiche un message du genre unexpected symbol near avec un numéro de ligne. Regardez la ligne indiquée, et celle juste au-dessus.

Un TEAM_ réutilisé. Deux métiers déclarés dans la même variable : le second écrase le premier, silencieusement.

Un chemin de modèle faux. Pas d’erreur, juste des joueurs en panneau ERROR. Copiez les chemins, ne les retapez pas.

Une carte qui n’est pas une carte rp_. DarkRP a besoin de portes à vendre et de rues. Sur gm_construct, le gamemode se charge mais le jeu n’a aucun sens.

Le serveur démarre en sandbox alors que vous avez demandé darkrp. Le nom du dossier dans garrysmod/gamemodes/ ne correspond pas exactement, ou le gamemode a été envoyé dans le mauvais dossier. Comparez caractère par caractère : minuscules, pas de suffixe, pas de dossier intermédiaire — un darkrp/darkrp/ créé par une décompression maladroite est fréquent.

Tous vos métiers ont disparu après une modification. Une erreur de syntaxe dans jobs.lua. Ouvrez la console, repérez le numéro de ligne, corrigez, redémarrez. Voir Console et logs.

Une entité est dans le menu mais ne s’achète pas. Le nom de classe est faux, ou l’addon qui fournit l’entité n’est pas monté sur le serveur. La console le signale au moment de l’achat.

Vous avez cassé quelque chose sans savoir quoi. Restaurez la dernière sauvegarde et reprenez par petites touches. Si le serveur lui-même ne répond plus, vérifiez status.cloudfive.xyz, puis ouvrez un ticket en joignant les lignes de console utiles — c’est ce qui fait gagner le plus de temps.