Installer un serveur Garry's Mod DarkRP

Installer un serveur Garry's Mod DarkRP

Déployez un serveur Garry's Mod avec le gamemode DarkRP sur un VPS Linux. Ce guide couvre l'installation via SteamCMD, la configuration du gamemode, l'ajout d'addons depuis le Workshop et la sécurisation du serveur.

Introduction

Garry's Mod (GMod) reste un des jeux sandbox les plus joués au monde, et DarkRP est son gamemode Roleplay le plus populaire. Compatible avec des milliers d'addons Workshop, il propose un système de jobs, économie, propriété et tout l'éventail RP classique.

Prérequis

  • VPS Debian 12 ou Ubuntu 22.04+ chez VeryCloud (compatible 32-bit pour les libs Steam)
  • 2 GB de RAM minimum, 4 GB recommandés pour 32+ joueurs
  • 20 GB de disque (les addons Workshop consomment vite)
  • Accès root via SSH
  • Un Game Server Token Steam (gratuit, créé plus bas)

Étape 1 : Système et dépendances

sudo dpkg --add-architecture i386
sudo apt update && sudo apt upgrade -y
sudo apt install -y lib32gcc-s1 lib32stdc++6 libcurl3-gnutls:i386 \
  curl wget screen git unzip

Étape 2 : Créer un utilisateur dédié

sudo useradd -m -s /bin/bash gmod
sudo passwd gmod
sudo su - gmod

Étape 3 : Installer SteamCMD

mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar xzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz

Étape 4 : Télécharger Garry's Mod Server

mkdir -p ~/gmodserver
cd ~/steamcmd
./steamcmd.sh +force_install_dir /home/gmod/gmodserver +login anonymous +app_update 4020 validate +quit

L'install fait environ 1 GB et prend 5-10 minutes.

Étape 5 : Obtenir un Steam Game Server Token

Rendez-vous sur : https://steamcommunity.com/dev/managegameservers

  • App ID : 4020
  • Memo : Mon serveur GMod
  • Create Account

Récupérez le Login Token (format XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX).

Étape 6 : Premier démarrage (Sandbox de base)

cd ~/gmodserver
./srcds_run -game garrysmod -console -port 27015 +maxplayers 16 \
  +gamemode sandbox +map gm_construct \
  +sv_setsteamaccount VOTRE_TOKEN_STEAM

Le serveur démarre, mais c'est de la sandbox basique. On va installer DarkRP.

Arrêtez avec Ctrl+C ou en tapant quit dans la console.

Étape 7 : Installer DarkRP

cd ~/gmodserver/garrysmod/gamemodes
git clone https://github.com/FPtje/DarkRP.git darkrp
git clone https://github.com/FPtje/DarkRPModification.git darkrpmodification

Note : darkrpmodification est l'addon qui contient VOS modifications (jobs custom, shipments, lois). Le dossier darkrp ne doit jamais être modifié pour faciliter les mises à jour.

Bougez darkrpmodification au bon endroit :

mv ~/gmodserver/garrysmod/gamemodes/darkrpmodification ~/gmodserver/garrysmod/addons/darkrpmodification

Étape 8 : Télécharger une map DarkRP

DarkRP fonctionne sur des maps spécifiques (rp_*). La plus populaire est rp_downtown_v4c_v2. Téléchargez-la depuis garrysmods.org ou Workshop.

Placez la map :

# Si téléchargée en local, uploadez via SFTP dans :
~/gmodserver/garrysmod/maps/

Ou utilisez resource downloader / workshop (voir étape 11).

Étape 9 : Configurer le serveur

nano ~/gmodserver/garrysmod/cfg/server.cfg

Contenu :

hostname "Mon Serveur DarkRP - VeryCloud"
sv_password ""
sv_lan 0
rcon_password "MotDePasseRcon"
sv_region 3  // 3 = Europe

// Performances réseau
sv_minrate 30000
sv_maxrate 0
sv_minupdaterate 22
sv_maxupdaterate 66
sv_mincmdrate 22
sv_maxcmdrate 66

// Anti-spam et tickrate
fps_max 67
gmod_physiterations 4

// Console / chat
sv_alltalk 0
sv_voiceenable 1

// Authentication
sv_steamaccount VOTRE_TOKEN_STEAM

Étape 10 : Lancer DarkRP

Lancez avec le bon gamemode :

cd ~/gmodserver
./srcds_run -game garrysmod -console -port 27015 \
  +maxplayers 32 \
  +gamemode darkrp \
  +map rp_downtown_v4c_v2 \
  +sv_setsteamaccount VOTRE_TOKEN_STEAM \
  -tickrate 66

Le serveur démarre. Connectez-vous depuis GMod : Console → connect IP_VPS:27015.

Étape 11 : Ajouter des addons via Workshop

DarkRP demande quelques addons quasi-obligatoires : Pointshop, Sit Anywhere, custom jobs, weapons packs.

Workshop Collection

Créez une collection Workshop sur Steam : https://steamcommunity.com/sharedfiles/edititem/767/3/

Ajoutez vos addons (Sit Anywhere, M9K Weapons, ULib, ULX, etc.). Notez l'ID de la collection dans l'URL.

Lancez le serveur avec :

./srcds_run -game garrysmod -console -port 27015 \
  +maxplayers 32 \
  +gamemode darkrp \
  +map rp_downtown_v4c_v2 \
  +sv_setsteamaccount VOTRE_TOKEN_STEAM \
  +host_workshop_collection ID_COLLECTION \
  -authkey VOTRE_WORKSHOP_API_KEY

Le Workshop API Key s'obtient sur : https://steamcommunity.com/dev/apikey

Étape 12 : Customiser DarkRP

Toutes vos modifs vont dans darkrpmodification/lua/darkrp_customthings/.

Ajouter un job custom

nano ~/gmodserver/garrysmod/addons/darkrpmodification/lua/darkrp_customthings/jobs.lua

Exemple de job :

TEAM_HACKER = DarkRP.createJob("Hacker", {
    color = Color(0, 255, 100, 255),
    model = "models/player/hostage/hostage_04.mdl",
    description = "Vous piratez les systèmes informatiques.",
    weapons = {"weapon_keypadcracker"},
    command = "hacker",
    max = 2,
    salary = 75,
    admin = 0,
    vote = false,
    hasLicense = false,
    candemote = true,
    category = "Voleurs"
})

Ajouter une arme à acheter

nano ~/gmodserver/garrysmod/addons/darkrpmodification/lua/darkrp_customthings/shipments.lua
DarkRP.createShipment("AK-47", {
    model = "models/weapons/w_rif_ak47.mdl",
    entity = "weapon_ak472",
    price = 5000,
    amount = 10,
    separate = true,
    pricesep = 600,
    noship = false,
    allowed = {TEAM_GUN, TEAM_BLACKMARKET}
})

Étape 13 : Service systemd avec screen

GMod n'a pas de daemon natif, on utilise screen pour le tourner en arrière-plan.

sudo nano /etc/systemd/system/gmod.service
[Unit]
Description=Garry's Mod DarkRP Server
After=network.target

[Service]
Type=forking
User=gmod
WorkingDirectory=/home/gmod/gmodserver
ExecStart=/usr/bin/screen -dmS gmod /home/gmod/gmodserver/srcds_run -game garrysmod -console -port 27015 +maxplayers 32 +gamemode darkrp +map rp_downtown_v4c_v2 +sv_setsteamaccount VOTRE_TOKEN +host_workshop_collection ID_COLLECTION -authkey VOTRE_API_KEY -tickrate 66
ExecStop=/usr/bin/screen -S gmod -X quit
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now gmod

Pour accéder à la console live :

sudo -u gmod screen -r gmod
# Sortir sans tuer le screen : Ctrl+A puis D

Étape 14 : Ouvrir les ports

sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27005/udp

Et côté Netrix VeryCloud, ouvrez 27015 TCP+UDP dans l'espace client.

Dépannage

"Steam token rejected"

Votre Game Server Token n'est pas valide ou est utilisé sur un autre serveur. Re-créez-en un sur https://steamcommunity.com/dev/managegameservers.

Serveur tourne mais inaccessible

Vérifiez que :

  • Le port 27015 UDP est ouvert (pas seulement TCP)
  • sv_lan 0 dans server.cfg
  • heartbeat est activé (par défaut sur 4020)

"Map not found"

La map n'est pas dans ~/gmodserver/garrysmod/maps/. Téléchargez-la et placez le .bsp (et éventuellement .nav) au bon endroit.

Lag malgré peu de joueurs

Souvent dû à des addons Workshop mal optimisés. Listez les plus lourds :

du -sh ~/gmodserver/garrysmod/addons/*/ | sort -h

Désactivez temporairement les plus gros.

Commandes utiles

# Statut du service
sudo systemctl status gmod

# Voir la console live
sudo -u gmod screen -r gmod
# (Ctrl+A puis D pour quitter sans arrêter)

# Mise à jour GMod
~/steamcmd/steamcmd.sh +force_install_dir /home/gmod/gmodserver +login anonymous +app_update 4020 validate +quit

# Mise à jour DarkRP
cd ~/gmodserver/garrysmod/gamemodes/darkrp
git pull

# Compter les joueurs en ligne
ss -unp | grep 27015

# Liste des cartes installées
ls ~/gmodserver/garrysmod/maps/*.bsp

Conclusion

Votre serveur DarkRP est en ligne. Pour aller plus loin :

  • Installez ULX + ULib pour les permissions admin
  • Configurez un anti-cheat (CAC, Vermilion)
  • Mettez en place un système MySQL pour la sauvegarde des données (DarkRP utilise SQLite par défaut)
  • Hébergez une page web (forum, donations) en parallèle sur le même VPS

Ressources

Rejoignez notre serveur communautaire Discord

Pour toute question, suggestion ou simplement pour discuter avec la communauté, rejoignez-nous sur Discord !

900+Membres