Lunamys Anti-Cheat : Vue dâensemble
Lunamys Anti-Cheat est un systĂšme dâanti-cheat Lua + API Node.js conçu pour les serveurs Garryâs Mod. Il collecte des dĂ©tections cĂŽtĂ© serveur/clients, les envoie Ă une API, puis les affiche dans un panel web moderne.
Lâarchitecture repose sur :
- Une API Express sur https://anticheat.lunamys.fr.
- Des modules Lua bhop / anti-aim / cvar cÎté GMod.
- Un panel web pour visualiser les joueurs, détections et statistiques.
Installation cÎté serveur GMod
1. Fichiers Ă placer
Place les fichiers Lua Lunamys dans ton dossier lua/lunamys/ :
- sv_lunamysac_bhop.lua
- sv_lunamysac_antiaim.lua
- sv_lunamysac_cvar.lua
- sv_lunamysac_config.lua
- sh_lunamysac_common.lua
- cl_lunamysac_cvar.lua
2. Chargement automatique
Dans ton core serveur (par exemple lua/autorun/server/sv_core.lua), assure-toi dâinclure :
- include("lunamys/modules/sv_lunamysac_config.lua")
- include("lunamys/modules/sv_lunamysac_bhop.lua")
- include("lunamys/modules/sv_lunamysac_antiaim.lua")
- include("lunamys/modules/sv_lunamysac_cvar.lua")
- AddCSLuaFile("lunamys/modules/cl_lunamysac_cvar.lua")
CÎté client, ajoute un include("lunamys/modules/cl_lunamysac_cvar.lua") dans un fichier autorun client.
Heartbeats & communication API
Lunamys utilise plusieurs appels rĂ©guliers entre GMod et lâAPI pour tenir le panel Ă jour :
- /api/status_heartbeat : indique que le serveur est en ligne.
- /api/update_players : envoie la liste des joueurs connectés.
- /api/actions/poll : récupÚre les kicks / bans en attente depuis le panel.
Les intervalles de ces heartbeats sont configurables dans ParamĂštres â FrĂ©quences & Heartbeats dans le panel.
Module Bhop Serveur
Le module bhop détecte les bunnyhops automatisés en surveillant la cadence des sauts et la vitesse horizontale du joueur.
ParamĂštres principaux
- enabled : active/désactive le module.
- speedThreshold : vitesse minimale suspecte.
- jumpInterval : temps max entre deux sauts consécutifs.
- jumpCountMax : nombre de sauts rapides avant flag.
- cooldown : temps avant de pouvoir re-flag le mĂȘme joueur.
Ces valeurs sont éditables dans le panel (onglet ParamÚtres), section Modules Lunamys.
Module Anti-Aim Serveur
Le module Anti-Aim surveille les EyeAngles pour dĂ©tecter des angles impossibles (pitch extrĂȘme) ou des changements de yaw trĂšs brutaux typiques des anti-aim / spinbots.
ParamĂštres principaux
- enabled : active/dĂ©sactive lâanti-aim.
- yawDelta : delta de yaw considéré comme suspect.
- pitchHigh : bornes hautes/basses du pitch autorisé.
- suspicionAdd : score ajouté par tick suspect.
- suspicionDecay : score retiré par tick normal.
- suspicionThreshold : score à partir duquel on déclenche une détection.
- cooldown : cooldown entre deux flags pour un mĂȘme joueur.
Module Anti-CVar Client + Serveur
Le module Anti-CVar vérifie réguliÚrement les valeurs de cvars sensibles cÎté client (comme sv_allowcslua ou mat_wireframe) et signale toute différence avec la valeur attendue cÎté serveur.
Principe
- Le client lit les cvars via GetConVar.
- Il envoie un rapport périodique au serveur via un net message.
- Le serveur compare avec EXPECTED_CVARS et crée une détection cvar_tamper en cas de mismatch.
ParamĂštres principaux
- enabled : active le module cÎté client.
- reportInterval : secondes entre deux reports cvars.
ParamĂštres & Settings du panel Panel
Lâonglet ParamĂštres centralise la configuration de lâanti-cheat :
- Activation des bans automatiques.
- Sensibilité globale des détections.
- Politique par défaut sur les flags critiques (log / kick / ban).
- FrĂ©quences des heartbeats et des polls dâactions.
- Configuration des modules (bhop / anti-aim / cvar).
Toute modification est envoyĂ©e Ă lâAPI via POST /api/settings et rĂ©cupĂ©rĂ©e cĂŽtĂ© GMod par /api/modules pour les modules Lua.
DĂ©tections & types dâĂ©vĂ©nements
Les dĂ©tections apparaissent dans lâonglet DĂ©tections du panel. Chaque entrĂ©e contient le serveur, le joueur, le type de dĂ©tection et une description.
| Type | Origine | Description |
|---|---|---|
| bhop_suspicious | Serveur | Patron de sauts rapides + vitesse Ă©levĂ©e, typique dâun bunnyhop scriptĂ©. |
| antiaim_suspicious | Serveur | Angles de vue impossibles ou changements de yaw extrĂȘmes, suggĂ©rant un anti-aim. |
| cvar_tamper | Client/Serveur | CVar cliente ne correspondant pas à la valeur attendue cÎté serveur. |
Tu peux ajouter de nouveaux types en envoyant dâautres valeurs dans payload.type depuis tes modules Lua, et les afficher de la mĂȘme maniĂšre dans le panel.