Installation
Installation de l'anticheat — étape par étape
Ce guide vous mène de zéro à une installation fonctionnelle. Il explique aussi pourquoi chaque étape compte, afin que vous sachiez où chercher en cas de problème.
Avant de commencer — prérequis
| Prérequis | Pourquoi c'est nécessaire |
|---|---|
| FiveM artifact 6121+ | Les net events serveur sur lesquels repose l'anticheat (giveWeaponEvent, explosionEvent) ne se comportent de façon fiable qu'à partir de cette build. |
| OneSync activé | set onesync on. La propriété des entités et les détections faisant autorité côté serveur ne fonctionnent pas sans lui. |
| oxmysql | La seule dépendance obligatoire. Bans, détections et paramètres y sont lus et écrits. |
| MySQL / MariaDB 10.4+ | Pas encore de base de données ? Voir le guide base de données. |
| screenshot-basic (optionnel) | Capture des screenshots de preuve au moment du ban. |
1. Télécharger le paquet
Une fois votre abonnement actif : Panel → Serveurs → votre serveur → « Télécharger l'anticheat »
Ou directement avec votre clé de licence :
curl -H "X-License-Key: YOUR_LICENSE_KEY" \
-o tosun-ac.zip \
https://admin.tosundev.com/api/ac_package_download.php
server/core/anticheat_000_license.lua. Si votre copie apparaît ailleurs, son origine peut être prouvée. Ne partagez ni votre paquet ni votre clé de licence.
2. Extraire dans votre dossier resources
resources/
└── [tosun]/
├── tosun-ac/
└── tosun-ac-guardian/
Les deux dossiers doivent se trouver au même niveau. Guardian est une resource distincte — vous allez voir pourquoi.
3. Importer le schéma de base de données
À la première installation seulement :
mysql -u USER -p DATABASE < tosun-ac/sql/ts_anticheat.sql
Sinon, mettez ts.autoSQL = true dans configs/anticheat_config.lua, démarrez le serveur une fois, puis repassez-le à false.
ℹ️ Lors des mises à jour, les différences de schéma sont appliquées automatiquement (ADD COLUMN IF NOT EXISTS) — rien à faire manuellement.
4. server.cfg — l'ordre compte
ensure oxmysql
ensure tosun-ac
ensure tosun-ac-guardian
stop tosun-ac et jouer sans jamais être banni. Le problème : quand tosun-ac s'arrête, ses propres threads de protection meurent avec lui — il ne peut pas se relancer tout seul.
tosun-ac-guardian est une resource séparée, il survit donc : en cas d'arrêt non autorisé, il redémarre l'anticheat en moins d'une seconde et arrête la resource à l'origine de la commande. Les deux se surveillent mutuellement — les couper simultanément est impossible.
Guardian doit venir après
tosun-ac.
5. Connecter le panel
Dans configs/anticheat_config.lua :
ts.webPanelURL = "https://admin.tosundev.com"
ts.webPanelKey = "YOUR_API_KEY"
Récupérez la clé API dans Panel → Serveurs → votre serveur → Clé API.
Vous pouvez laisser les deux vides — l'anticheat les récupère depuis la table panel_settings au démarrage. Si vous avez configuré via le panel, elles y sont déjà.
6. Démarrer et vérifier
Redémarrez le serveur. Vous devriez voir :
[Tosun AC v9.0] NetEventGuard aktif
[AC-Guardian] Aktif — tosun-ac harici gözetmen koruması altında.
Puis, en jeu :
/ts status → état des modules
/ts test → auto-test
Panel → AC → Live doit afficher votre serveur en ligne sous 30 secondes.
7. Durcissement de la plateforme — l'étape la plus rentable
# Les clients ne peuvent pas créer d'entités réseau (véhicules/peds/objets)
set sv_entityLockdown "relaxed"
# Seul le serveur peut écrire les state bags
set sv_stateBagStrictMode "true"
# Détournement du contrôle d'entité (projection de véhicules, de joueurs)
set sv_filterRequestControl "2"
# Events réseau exploitables
set sv_enableNetworkedSounds "false"
set sv_enableNetworkedPhoneExplosions "false"
set sv_enableNetworkedScriptEntityStates "false"
# Clients ScriptHookV
set sv_scriptHookAllowed "false"
# Fichiers client modifiés (utilisés pour le silent aim)
set sv_pureLevel "1"
L'anticheat audite ces valeurs au démarrage et liste celles qui manquent. Pour que les plus sûres soient appliquées automatiquement :
ts.hardening.autoApply = true
sv_entityLockdown strict peut casser d'anciens scripts qui font apparaître des véhicules depuis le client (certains systèmes de concession). Commencez par relaxed, testez, puis resserrez. Ce réglage n'est jamais appliqué automatiquement.
8. Accorder l'accès administrateur
N'importe laquelle de ces méthodes fonctionne ; la première correspondance l'emporte :
# 1) server.cfg — ACE
add_ace group.admin tosun.admin allow
add_principal identifier.license:YOUR_LICENSE group.admin
# 2) txAdmin — reconnu automatiquement (ts.txAdminAuth = true)
# 3) admins/anticheat_admins.lua
Admins = { "license:xxxxxxxxxxxxxxxxxxxxxxxx" }
# 4) Panel → AC → Admin Grants
Ouvrez le menu avec /tsmenu, /ts menu ou F7.
Check-list d'installation
- ☐ La console affiche
NetEventGuard aktif - ☐ La console affiche
[AC-Guardian] Aktif - ☐ Aucun bloc rouge
GUVENLIK UYARISI(ou vous avez volontairement ignoré les convars listées) - ☐ Le serveur apparaît en ligne dans le panel
- ☐
/tsmenus'ouvre pour un admin - ☐
/tsmenune fait rien pour un joueur normal
Problèmes courants
| Symptôme | Cause et solution |
|---|---|
Kick avec Anticheat failed to load | Aucun heartbeat n'est arrivé du client. Souvent un téléchargement lent — augmentez ts.HeartBeat.firstHeartbeatDeadline. Si tout le monde est touché, vérifiez que oxmysql démarre avant tosun-ac. |
| Un admin se fait bannir | Vérifiez qu'il est reconnu : /ts whoami. L'identifiant dans admins.lua doit correspondre exactement (préfixe license: inclus). Les droits accordés via le panel peuvent mettre jusqu'à 20 secondes. |
| Des joueurs normaux ouvrent le menu | Vous êtes en v8.x. Passez en v9.0 — c'était une vulnérabilité connue. |
| Les boutons du menu ne répondent pas | La NUI n'a pas pu charger SweetAlert2 depuis son CDN. La v9.0 bascule automatiquement ; vérifiez la console NUI (F8 → nui_devtools). |
| Aucun ban n'est jamais prononcé | Vérifiez ts.punishType et ts.DetectionPunishments — une détection mappée sur LOG ne bannit jamais. ts.Debug doit être à false. |
| Les PNJ d'ambiance apparaissent encore | Mettez ts.NpcBlocker.enabled = true et blockPeds = true. Les peds créés par script ne sont volontairement jamais supprimés. |
Mettre à jour
- Téléchargez le nouveau paquet depuis le panel (même URL — elle sert toujours la dernière build pour votre licence)
- Sauvegardez vos dossiers
configs/,admins/eteditable/ - Remplacez le dossier de la resource
- Restaurez vos fichiers de configuration — ils ne sont jamais obfusqués précisément pour que vous puissiez continuer à les modifier
- Redémarrez
Lors d'une demande de support, indiquez votre Build ID (dans server/core/anticheat_000_license.lua) — il identifie votre build exacte.