Dans ce guide, je vais vous montrer comment gérer les permissions des utilisateurs dans SourceMod.
SourceMod est un addon MetaMod qui prend en charge la plupart des jeux fonctionnant sur le Source Engine. C'est une plateforme puissante et hautement optimisée pour créer des plugins et gérer l'administration des serveurs. SourceMod est largement utilisé dans des jeux tels que Team Fortress 2, Left 4 Dead 2, et Counter-Strike: Source !
Lorsque vous faites tourner un serveur de jeu avec SourceMod installé, il est probable qu'à un moment donné vous vouliez vous accorder, à vous ou à d'autres, des permissions telles que la possibilité de kick et de ban des joueurs (accès admin).
Trouver les Steam ID
Avant d'assigner des permissions aux utilisateurs, vous devrez trouver leur Steam ID. Les formats SteamID2 (STEAM_X:X:XXXXXXXX) et SteamID3 ([U:X:XXXXXX]) sont tous deux pris en charge dans SourceMod.
Si vous êtes connecté à un serveur fonctionnant sur le Source Engine, vous pouvez exécuter la commande status dans la Console de développeur pour récupérer les Steam ID des joueurs actuellement connectés au serveur.
Sinon, vous pouvez utiliser des outils tels que Steam ID Finder et Steam ID I/O pour trouver des Steam ID.
Flags
Pour déterminer quelles permissions spécifiques vous souhaitez assigner aux utilisateurs, vous devez comprendre le système de flags de SourceMod et les accès qu'ils fournissent. Chaque flag est assigné à l'aide d'un seul caractère.
Voici une liste des flags disponibles dans SourceMod.
| Name | Flag | Purpose |
|---|---|---|
| reservation | a |
Accorde l'accès à une place réservée. |
| generic | b |
Accorde l'accès admin générique (requis pour l'admin). |
| kick | c |
Accorde l'accès pour kick d'autres joueurs. |
| ban | d |
Accorde l'accès pour ban d'autres joueurs. |
| unban | e |
Accorde l'accès pour retirer des bans. |
| slay | f |
Accorde l'accès pour slay et blesser d'autres joueurs. |
| changemap | g |
Accorde l'accès pour changer de map ou de fonctionnalités majeures de gameplay. |
| cvar | h |
Accorde l'accès pour changer la plupart des ConVars. |
| config | i |
Accorde l'accès pour exécuter des fichiers de config. |
| chat | j |
Accorde des privilèges spéciaux de chat. |
| vote | k |
Accorde l'accès pour lancer ou créer des votes. |
| password | l |
Accorde l'accès pour définir un mot de passe sur le serveur. |
| rcon | m |
Accorde l'accès pour utiliser les commandes RCON. |
| cheats | n |
Accorde l'accès pour changer la ConVar sv_cheats ou utiliser des commandes de cheat. |
| root | z |
Active tous les flags et ignore les valeurs d'immunité. |
De plus, il existe des flags personnalisés (custom) qui peuvent être utilisés par des plugins et autres.
| Name | Flag |
|---|---|
| custom1 | o |
| custom2 | p |
| custom3 | q |
| custom4 | r |
| custom5 | s |
| custom6 | t |
Plus d'informations sur les flags peuvent être trouvées ici.
Mots de passe
Si vous le souhaitez, vous pouvez exiger que des utilisateurs spécifiques saisissent un mot de passe avant de pouvoir utiliser les permissions personnalisées qui leur sont assignées. Ils devront saisir ce mot de passe chaque fois qu'ils se connectent au serveur de jeu, mais ils peuvent automatiser ce processus de leur côté s'ils le souhaitent.
Tout d'abord, vous devrez modifier le fichier addons/sourcemod/configs/core.cfg et changer la valeur de la ligne PassInfoVar de _password à quelque chose de personnalisé comme _test. L'utilisateur devra connaître son mot de passe spécifique ainsi que le mot de passe que vous avez défini pour PassInfoVar.
Lorsque l'utilisateur se connecte au serveur de jeu, il devra exécuter la commande suivante dans la Console de développeur.
setinfo "<PassInfoVar Password>" "<User Password>"
Par exemple :
setinfo "_test" "myCustomPass123"
Si l'utilisateur souhaite automatiser ce processus de son côté, il devra modifier le fichier <Game Dir>/cfg/autoexec.cfg et ajouter la commande ci-dessus dans le fichier.
Immunité
Le flag immunity empêche les admins de se cibler entre eux selon le niveau d'immunité du client.
Par exemple, si le premier admin a une immunité de 20 tandis que le second admin n'a qu'une immunité de 10. Le premier admin peut cibler le second admin, mais le second admin ne peut pas cibler le premier admin.
NOTE - Les admins avec le flag z (root) peuvent cibler n'importe quel joueur ou admin, peu importe le niveau d'immunité.
Gérer les permissions des utilisateurs
La gestion des permissions des utilisateurs et l'assignation des flags se fait en modifiant un fichier à l'intérieur du répertoire addons/sourcemod/configs (ou du dossier addons\sourcemod\configs sur Windows).
Il y a deux fichiers que vous pouvez modifier, expliqués ci-dessous.
Utiliser le fichier admins_simple.ini
Ce fichier est utilisé pour assigner rapidement des permissions aux utilisateurs. C'est idéal pour des configurations simples ou si vous souhaitez assigner rapidement des permissions à un utilisateur. Lorsque vous assignez des permissions dans ce fichier, chaque ligne doit avoir le format suivant.
"<Steam ID/!IP/Steam name>" "[Immunity Level:]<Flags/@group>" ["password"]
Voici un exemple d'attribution à un utilisateur des flags reservation, generic, kick, et ban avec une immunité de 70.
"STEAM_0:0:36969327" "70:abcd"
Utiliser le fichier admins.cfg
Utiliser ce fichier nécessite d'écrire plus de lignes lors de l'assignation des permissions aux utilisateurs, mais cela peut être considéré comme plus propre. Le format du fichier utilise les KeyValues de SourceMod. Les utilisateurs doivent être ajoutés dans la section Admins.
Voici un format générique pour ajouter des utilisateurs.
"<Name>"
{
"auth" "steam"
"identity" "<Steam ID>"
"flags" "<Flags>"
"immunity" "<Immunity>"
}
Voici une liste des clés que vous pouvez assigner à chaque utilisateur.
auth- Doit être l'une des valeurssteam,name, ouip(à moins qu'il n'existe une méthode d'authentification personnalisée), et indique à SourceMod comment interpréter la valeur d'identité.identity- Une valeur unique qui permet à SourceMod de trouver l'utilisateur à partir d'une méthode d'authentification et de la valeur donnée.password- Spécifie le mot de passe que l'utilisateur doit saisir.group- Spécifie un nom de groupe que l'utilisateur doit hériter s'il est disponible. Plusieurs lignes group peuvent être spécifiées. Il ne doit pas y avoir de symbole@car il n'y a pas d'ambiguïté.flags- Les flags d'accès que l'utilisateur doit recevoir.immunity- Le niveau d'immunité que l'utilisateur doit recevoir.
Recharger les utilisateurs
Après avoir attribué des permissions à un ou plusieurs utilisateurs via les fichiers mentionnés ci-dessus, vous devrez recharger le cache admin afin que les permissions se propagent.
Le cache se recharge normalement automatiquement lors d'un changement de map ou d'un redémarrage du serveur. Vous pouvez utiliser la commande serveur sm_reloadadmins pour recharger le cache manuellement afin de ne pas avoir à attendre un changement de map ou un redémarrage du serveur.
Voir aussi
- Adding Admins - Wiki détaillé sur l'ajout d'admins, publié officiellement par AlliedMods.
- SourceBans++ - Un plugin populaire qui facilite la gestion des utilisateurs, groupes, bannissements, et bien plus !
Si vous avez des questions ou des retours concernant ce guide, merci de répondre à son sujet de forum ici ! Ce guide continuera d'être amélioré au fil du temps.
Rejoignez notre serveur Discord !

