Installer Source Dedicated Server (serveur Counter-Strike:Source)

A lire avant de poursuivre : Structure & agencement.

Prérequis : Quels logiciels choisir ?

Source Dedicated Server (SRCDS) est l'application de Valve Software pour créer des serveurs de jeux dédiés basés sur le moteur HLSource.
Nous allons commencer par télécharger ce qui va nous permettre d'installer le serveur, mais avant toute chose, nous devons évidemment posséder un compte ROOT, puis nous allons nous connecter à notre machine via PuTTY ou TTYEmulator (la console de Linux).

Le mieux est de créer un nouvel utilisateur qui servira seulement à faire tourner SRCDS. Pour que notre machine soit un minimum protégé ne lancez JAMAIS SRCDS avec l'utilisateur ROOT.

Nous allons créer un utilisateur, par exemple : mic

sudo adduser mic

Le répertoire personnel de mic sera automatiquement créé (/home/mic).

​La manipulation consiste à créer un dossier, télécharger le binaire d'installation hldsupdatetool.bin, le rendre exécutable et le mettre à jour.

Maintenant nous allons nous connecter avec notre nouvel utilisateur, et créer le dossier « /hlds » dans « /home/mic », et nous placer dans ce dossier.

su mic
cd /home/mic
mkdir hlds
cd hlds

Puis nous allons télécharger l'outil d'installation hldsupdatetool.bin (Half-Life Dedicated Server) commun a tous les mods (Counter-Strike:Source, Day of Defeat:Source, Team Fortress 2, Left 4 Dead, ect ...).

wget http://www.steampowered.com/download/hldsupdatetool.bin

Nous allons modifier les droits du binaire hldsupdatetool.bin afin de le rendre exécutable et nous allons l'exécuter.

chmod a+x hldsupdatetool.bin
./hldsupdatetool.bin

Taper "yes" pour accepter les conditions d'utilisation du programme, cela va extraire 2 fichiers (steam et readme.txt).

Nous pouvons supprimer le binaire hldsupdatetool.bin.

rm hldsupdatetool.bin

Maintenant nous pouvons exécuter l'application steam pour obtenir la dernière version des fichiers de base du serveur dédié.

./steam

Si vous obtenez ceci, vous pouvez relancer « ./steam ».

Mieux vaut deux fois qu'une, non ?

Voila tout est prêt pour installer notre serveur Counter-Strike:Source.

​Il faut maintenant préciser le chemin de destination du serveur Counter-Strike:Source alias SRCDS (Source Dedicated Server) et télécharger les fichiers et les dossiers de celui-ci.

Pour cela nous allons créer un dossier « ../srcds » (dans lequel se trouvera tous les fichiers de notre serveur de jeu) et lancer la commande de téléchargement du jeu dans ce dossier (-dir srcds).

mkdir srcds
./steam -command update -game "Counter-Strike Source" -dir srcds

Cette commande a pour but de télécharger tous les dossiers et tous les fichiers de la version serveur de Counter-Strike:Source, le temps du téléchargement peut être assez long (voir très long, plusieurs gigaoctets) suivant la vitesse de connexion de notre ordinateur.

Une fois que tous les fichiers se sont installés, nous allons vérifier l'intégrité de notre installation (assez rapide). En cas d'erreur, il vaut mieux supprimer le dossier « ../srcds » (rm -r srcds), et recommencer (dans 99,9% des cas, il n'y a pas de problème).

./steam -command update -game "Counter-Strike Source" -dir srcds -verify_all

Si tout s'est bien passé, notre serveur est installé et opérationnel !

yes Astuce :

Pour installer d'autres mods, il suffit de changer le paramètre "Counter-Strike Source" par le nom du mod (liste complète des mods), Vous pouvez obtenir cette liste en exécutant cette commande :

./steam -command update -game list -dir srcds

Par exemple pour installer le mods Team Fortress 2, il suffit de changer le paramètre "Counter-Strike Source" par "tf".

./steam -command update -game "tf" -dir srcds

​La configuration de notre serveur Counter-Strike:Source se fait dans le dossier « ../cfg » (../cstrike/cfg).

Le fichier de configuration qui nous intéresse ici s'appelle « server.cfg ». Il se charge au lancement du serveur (fichier comportant les variables de jeu, exécuté à chaque changement de maps), ce fichier n'est pas créé par défaut, il faut donc le créer.

nano ~/hlds/srcds/css/cstrike/cfg/server.cfg

Puis nous allons le remplir de quelques variables. Voici un exemple de fichier « server.cfg » :

hostname "nom de votre serveur" // Nom du serveur
rcon_password "motdepasse" // Mot de passe rcon (mot de passe pour l'administration de votre serveur)
sv_password "" // Mot de passe du serveur (mot de passe pour accéder au serveur, laissez le vide pour un serveur public)
mp_friendlyfire 0 // active le tir-amis
mp_footsteps 1 // active les les bruits de pas
mp_autoteambalance 1 // active l'autoteambalance
mp_autokick 0 // Ejection automatique du joueur
mp_flashlight 0 // Autorise la lampe de poche
mp_tkpunish 1 // Punition automatique pour team-killing
mp_forcecamera 0 // Bloque la caméra des joueurs morts
sv_alltalk 0 // active la discussion vocal pour les deux équipes
sv_pausable 0 // Permet de mettre le serveur en pause
sv_cheats 0 // Autorise la triche
sv_consistency 1 // Vérifie l'intégrité des données afin que le client et le serveurs aient bien les mêmes fichiers
sv_allowupload 1 // Autorise l'upload (des tags ou des maps que vous avez ajoutées)
sv_allowdownload 1 // Autorise le download (des tags ou des maps que vous avez ajoutées)
sv_maxspeed 320
mp_limitteams 2
// nombre maximum de joueurs en plus ds une team avant que l'equilibrage auto de fasse
mp_hostagepenalty 5 // nombre maximum d'otages tués par un CT avant une punition
sv_voiceenable 1 // active les micros
mp_allowspectators 1 // autorise les spectateurs
mp_timelimit 25 // Durée de chaque carte (en minute)
mp_chattime 10 // durée en secondes laissée aux joueurs pour parler ensemble avant un changement de map
sv_timeout 65 // Durée avant l'éjection d'un joueur qui ne répond plus (en seconde)
mp_freezetime 6 // Durée ou les joueurs sont immobilisés en début de round (en seconde)
mp_roundtime 5 // Durée d'un round (en minute)
mp_startmoney 800 // Montant avec le quelle les joueurs commencent le round
mp_c4timer 45 // Durée du timer de la bombe
mp_maxrounds 0 // Nombre maximum de round avant de changer de carte
mp_winlimit 0 // Nombre maximum de victoire pour une équipe avant de changer de carte
mp_spawnprotectiontime 5 // Durée de protection des joueurs avant le début d'un round (en seconde)
decalfrequency 60 // temps minimum entre 2 poses de tag par un même joueur
fps_max 300
sv_maxrate 0
// quantité maximum de données en octets par seconde que le serveur envoie au client
sv_minrate 15000
sv_maxupdaterate 66 // montant maximum des mises à jour par seconde que le serveur envoie au client
sv_minupdaterate 30
sv_mincmdrate 30
sv_maxcmdrate 66
log on
// Active l'enregistrement des journaux du serveurs (répertoire /logs)
sv_logbans 1 // Enregistre les joueurs bannis
sv_logecho 1
sv_logfile 1
sv_log_onefile 0

sv_lan 0
// Défini si le serveur est un serveur locale (1) ou en ligne (0)
sv_region 3 // Définis la région on se trouve le serveur (3 pour l'europe)
exec banned_user.cfg // Le serveur va lire la liste des steam_id bannis
exec banned_ip.cfg // Le serveur va lire la liste des ips bannis

L'autre fichier de configuration qui nous intéresse ici s'appelle « autoexec.cfg ». Il se charge au lancement du serveur (fichier exécuté une seule fois au démarrage du serveur), ce fichier n'est pas créé par défaut, il faut donc le créer.

nano ~/hlds/srcds/css/cstrike/cfg/autoexec.cfg

Nous allons le laisser vide, bas houé ! (il n'est pas utile pour le moment)

yes Astuce :

Si vous ne voulez pas paramétrer vous même votre fichier « server.cfg », il existe des générateurs automatiques qui vous permettent de générer un fichier « server.cfg » configuré avec vos variables : Counter-Strike Planet et GoodSpeedReseau.

Il convient d'ajouter des maps qui correspondent au ton de notre serveur et aux désirs des membres de notre clan ou de nos visiteurs.

Les maps (.bsp et parfois .nav) doivent être stockés dans le répertoire « ../maps » qui se trouve à la racine de notre serveur (../cstrike/maps). Une fois stockés, il faut les ajouter au « mapcycle.txt » et « maplist.txt ».

Pour cela, il suffit d'éditer le fichier « mapcycle.txt » qui se trouve aussi à la racine de notre serveur (../cstrike/mapcycle.txt) et d'y rajouter le nom de la carte récemment installée sans l'extension .bsp, idem pour « maplist.txt ». Elle sera prise en compte dès la prochaine carte jouée sur notre serveur, sans même avoir besoin de le redémarrer.

nano ~/hlds/srcds/css/cstrike/mapcycle.txt

nano ~/hlds/srcds/css/cstrike/maplist.txt

yes Astuce :

Nous trouverons une mine incroyable de maps pour notre serveur sur le site GameBanana.

​Ce "Message Du Jour", en français, est la page qui s'affiche lorsque nous nous connectons sur un serveur (quelque soit le mod). Ce message est utilisé pour présenter le serveur, son clan, ses règles, etc ...

Bien que ce fichier ait une extension .txt, son contenu est bel et bien du HTML, ainsi si vous avez quelques connaissances en HTML vous allez pouvoir vous faire une belle page de présentation. Ce fichier a quand même quelques limites, son contenu ne doit pas dépasser 1457 caractères.

Le contenu de cette page est stocké dans le fichier « motd.txt » qui se situe à la racine de notre serveur (../cstrike/motd.txt).

nano ~/hlds/srcds/css/cstrike/motd.txt

Voici un exemple basique qu'il ne nous restera qu'à personnaliser. Cet exemple va nous permettre d'insérer une image, un texte et le lien d'une page Web. Nous n'avons qu'à modifier les url dans le texte qui suit (écrit en bleu). Nous pouvons bien sûr, modifier le reste du texte (écrit en vert), qui correspond au texte qui sera écrit sur la page une fois affichée.

<html><head><title>Cstrike MOTD</title>
<style type="text/css">
pre { font-family:Verdana,Tahoma; color:#FFB000; }
body { background:#000000; margin-left:8px; margin-top:0px; }
a { text-decoration: underline; }
a:link { color: #FFFFFF; }
a:visited { color: #FFFFFF; }
a:active { color: #FFFFFF; }
a:hover { color: #FFFFFF; text-decoration: underline; }
</style>
</head>
<body scroll="auto">
<div align="center">
<pre>

<img src="http://url.de.limage.que.vous.voulez/mon.fichier.image.jpg">

Bienvenue sur le serveur

Quelques règles à respecter :

* pas d'insultes !
* pas de camp, si vous êtes fatigués allez dormir mais pas ici
* pas de cheats , nous avons votre steam id et n'hésiterons pas à vous dénoncer

Ici nous jouons pour le fun, pas de moqueries envers un joueur moins bon
respectez ces règles et tout se passera le mieux du monde

Bon jeu a tous !

<a href="http://url.du.lien.que.vous.voulez">Visitez mon site</a>

</pre>
</div></body></html>

Pour afficher une page Web, nous n'avons qu'à modifier l'url dans le texte qui suit (écrit en bleu).

<html><head><title>Cstrike MOTD</title>
<style type="text/css">
pre { font-family:Verdana,Tahoma; color:#FFB000; }
body { background:#000000; margin-left:8px; margin-top:0px; }
a { text-decoration: underline; }
a:link { color: #FFFFFF; }
a:visited { color: #FFFFFF; }
a:active { color: #FFFFFF; }
a:hover { color: #FFFFFF; text-decoration: underline; }
</style>
</head>
<body scroll="auto">
<div align="center">
<pre>

<meta http-equiv="refresh" content="0 ;url=http://url.du.site.que.vous.voulez">

</pre>
</div></body></html>

​Notre serveur Counter-Strike:Source s'est installé dans le dossier « ../hlds/srcds ». Nous allons maintenant lancer le programme appelé srcds_run.

Pour lancer notre serveur de jeu, nous allons nous placer dans le dossier « ../css » (../hlds/srcds/css), puis nous lançons le serveur, en exécutant le programme srcds_run suivi de divers paramètres (Liste complète des paramètre).

cd ~/hlds/srcds/css/
./srcds_run -game cstrike -port 27015 +maxplayers 20 +map de_dust2 -tickrate 66 -autoupdate

« srcds_run » Nom de l’executable (SouRCe Dedicated Server)
« -game cstrike » Lance la version serveur Counter-Strike:Source (« -game tf » pour une installation de Team Fortress 2)
« -port » Le port d'écoute de votre serveur (27015 est le port par défaut pour le 1er serveur)
« +maxplayers » Le nombre de joueurs maximum (64 joueurs est le maximum)
« +map » Le nom de la map de départ
« -tickrate » Le taux de mise à jour des positions des joueurs sur le serveur (100 est le maximum)
« -autoupdate » Met à jour automatiquement le serveur

Et voilà, notre serveur est lancé !

« Connection to Steam servers successful » Notre serveur est visible de tous sur steam.
« VAC secure mode is activated » Notre serveur est sécurisé contre la triche.

Pour arrêter notre serveur,il faut taper "exit" et/ou maintenir les touches "Ctrl+C".

Utilisons un logiciel appelé Screen pour qu'une fois PuTTY fermé, notre serveur de jeu reste lancé, sinon le serveur s'éteindrait dès la fermeture de PuTTY.

screen -dmS NOM_DE_LA_SCREEN ./srcds_run -game cstrike -port 27015 +maxplayers 20 +map de_dust2 -tickrate 66 -autoupdate

Pour accéder à la session de terminal et voir notre serveur (histoire de voir ci tout marche bien !).

screen -r NOM_DE_LA_SCREEN

Pour stopper la session de terminal, ainsi que notre serveur quand nous ne sommes pas dans la session (si nous sommes dans la session « screen -r » il faut maintenir les touches "Ctrl+C").

screen -dr NOM_DE_LA_SCREEN -X quit

yes Astuce :

La variable « -tickrate » permet de définir la fréquence de mise à jour des informations clients, elle peut aller de 40 (par défaut) à 100. Plus elle est élevé moins il y aura de décalage entre les informations client et serveurs, mais plus elle est élevé plus la charge processeur (CPU) augmente. Valve Corporation recommande un « -tickrate 66».

Un tickrate élevé permet par exemple de ne pas avoir un joueur qui viens de se mettre à l'abris tué par un joueur qui ayant un décalage dans les information de position le voit toujours en face de lui.

Pour faire bref, plus le tickrate est élevé plus les informations relatives à la position des joueurs sont précises et moins nombreuses sont les plaintes des joueurs !

yes Astuce :

serveurcss est un script (que j'ai écrit pour l'occasion) qui nous permet de lancer, stopper et visualiser l'activité d'un serveur Counter-Strike:Source. Pour utiliser ce script nous devons l'éditer pour modifier si besoin les paramètres de configuration puis le rendre exécutable et l'exécuter.

nano serveurcss

Une fois que nous avons modifier les paramètres (si besoin), nous pouvons continuer.

chmod a+x serveurcss
sh serveurcss

Voila, amusez-vous bien, et n'hésitez pas à poser vos questions.

Propulsé par Drupal