Documentation 9.6.24
Installation pas à pas
Comptez environ 20 minutes pour passer d'un serveur vide à une protection fonctionnelle et connectée au panel. Chaque étape se termine par un point à vérifier. Si une vérification échoue, corrigez le problème avant de continuer.
Avant de commencer#
Vérifiez que les éléments suivants sont prêts avant de commencer.
- Une version récente du serveur FiveM (artifact) avec OneSync activé (set onesync on). La plupart des vérifications côté serveur ne fonctionnent pas sans OneSync, et l'anticheat le signale au démarrage.
- oxmysql installé et en cours d'exécution. L'anticheat accède à la base de données uniquement via oxmysql et ne demande jamais de mot de passe MySQL séparé.
- Un compte sur le panel avec une offre qui inclut les téléchargements.
- Une sauvegarde de la base de données et du dossier resources. Lors d'une mise à jour, conservez aussi à part vos dossiers configs, admins, editable, locales et bridge.
- Un moyen d'envoyer des fichiers sur le serveur (FTP, le gestionnaire de fichiers de txAdmin ou un bureau à distance) et un outil pour exécuter du SQL (HeidiSQL ou phpMyAdmin).
1. Ajoutez votre serveur dans le panel#
La clé de licence est liée à un seul serveur. L'installation commence donc par la déclaration de ce serveur dans le panel.
- Ouvrez la page Serveurs du panel client et choisissez Ajouter un serveur.
- Saisissez le nom du serveur, puis choisissez le framework (QBCore, Qbox ou ESX) et le script d'inventaire.
- Dans Connexion à la base de données, laissez Connexion via le script sélectionné. Ce mode ne demande ni mot de passe MySQL ni port de base de données public.
- Enregistrez, ouvrez le serveur et copiez la valeur de la carte Clé de licence. Si vous avez plusieurs serveurs, utilisez la clé propre à chacun.
- Vérification : le serveur apparaît dans la liste et vous avez copié sa clé de licence.
2. Téléchargez le package serveur#
Le package est généré pour le serveur choisi au moment du téléchargement. Cela peut prendre quelques secondes.
Le package contient tosun-ac (la ressource principale, obligatoire), tosun-ac-guardian (une petite ressource qui empêche l'arrêt de l'anticheat, recommandée) et, s'il est inclus, tosun_render (le composant des vidéos de preuve). Le dossier tosun-ac contient aussi INSTALL.sql (un seul fichier SQL qui crée toutes les tables), KURULUM.txt (une courte note d'installation) et INTEGRATION.md (le guide pour les autres scripts).
Télécharger un nouveau package ne met pas à jour un serveur en cours d'exécution. Rien ne change tant que vous n'avez pas placé les fichiers et redémarré la ressource.
- Allez sur la page Téléchargements du panel.
- Choisissez votre serveur et cliquez sur Télécharger.
- Extrayez le fichier ZIP dans un dossier de votre ordinateur.
3. Placez les fichiers#
Créez un dossier nommé [tosun] dans le dossier resources du serveur. Dans FiveM, les dossiers entre crochets servent seulement à regrouper des ressources. Copiez-y les dossiers tosun-ac, tosun-ac-guardian et, s'il est inclus, tosun_render.
Ne renommez pas les dossiers. Les autres scripts appellent l'anticheat via exports['tosun-ac'] et le Guardian surveille le nom tosun-ac. Un renommage casse les intégrations et la protection.
Ne supprimez aucun fichier dans les dossiers. Le contrôle d'intégrité du package détecte les fichiers manquants ou modifiés.
resources/
[tosun]/
tosun-ac/
tosun-ac-guardian/
tosun_render/4. Créez les tables de la base de données#
L'anticheat enregistre les bans, les détections, les logs et les réglages dans votre base de données de jeu. Créez les tables dans la base à laquelle oxmysql se connecte, celle qui contient déjà les tables de votre framework.
INSTALL.sql ne supprime pas vos données. Les tables sont créées avec CREATE TABLE IF NOT EXISTS : les tables existantes restent telles quelles.
L'utilisateur de base de données utilisé par oxmysql doit avoir les droits CREATE et ALTER sur cette base. Si votre hébergeur mutualisé ne les accorde pas, exécutez vous-même le SQL depuis le panneau de contrôle de l'hébergement.
- Sauvegardez la base de données.
- Dans HeidiSQL, sélectionnez la base de jeu, ouvrez tosun-ac/INSTALL.sql via File → Load SQL file et exécutez-le (F9). Dans phpMyAdmin, utilisez l'onglet Import.
- Si vous préférez la ligne de commande, utilisez la commande ci-dessous.
- Vérifiez que les tables ts_anticheat, ac_detections et admin_logs existent maintenant.
mysql -u USER -p DATABASE_NAME < INSTALL.sql5. Ajoutez les colonnes manquantes sur les anciennes installations#
Si vous venez d'une ancienne version, vos tables existent mais il peut leur manquer des colonnes récentes. Si la console affiche une erreur comme Unknown column 'log_message' in 'field list', sauvegardez la base de données et exécutez les commandes ci-dessous. Elles ajoutent seulement les colonnes manquantes et ne touchent pas aux données existantes.
Cette syntaxe est prévue pour MariaDB. MySQL 8 ne prend pas en charge IF NOT EXISTS à cet endroit : listez d'abord les colonnes avec SHOW COLUMNS FROM admin_logs; puis ajoutez uniquement celles qui manquent avec ADD COLUMN.
Si l'erreur persiste, la table admin_logs appartient peut-être à un autre script. Envoyez le résultat de SHOW CREATE TABLE admin_logs; au support.
ALTER TABLE admin_logs
ADD COLUMN IF NOT EXISTS log_message LONGTEXT NULL,
ADD COLUMN IF NOT EXISTS log_playerid LONGTEXT NULL,
ADD COLUMN IF NOT EXISTS log_playername LONGTEXT NULL,
ADD COLUMN IF NOT EXISTS log_type VARCHAR(20) NOT NULL DEFAULT 'LOG',
ADD COLUMN IF NOT EXISTS log_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN IF NOT EXISTS created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE ac_detections
ADD COLUMN IF NOT EXISTS player_id INT NULL,
ADD COLUMN IF NOT EXISTS player_name VARCHAR(100) NOT NULL DEFAULT '',
ADD COLUMN IF NOT EXISTS license VARCHAR(100) NULL,
ADD COLUMN IF NOT EXISTS steam VARCHAR(50) NULL,
ADD COLUMN IF NOT EXISTS discord VARCHAR(50) NULL,
ADD COLUMN IF NOT EXISTS ip VARCHAR(40) NULL,
ADD COLUMN IF NOT EXISTS detection_type VARCHAR(60) NOT NULL DEFAULT '',
ADD COLUMN IF NOT EXISTS detail TEXT NULL,
ADD COLUMN IF NOT EXISTS reason VARCHAR(512) NOT NULL DEFAULT '',
ADD COLUMN IF NOT EXISTS punishment VARCHAR(10) NOT NULL DEFAULT 'LOG',
ADD COLUMN IF NOT EXISTS ban_id VARCHAR(20) NULL,
ADD COLUMN IF NOT EXISTS screenshot VARCHAR(512) NULL,
ADD COLUMN IF NOT EXISTS config VARCHAR(100) NULL,
ADD COLUMN IF NOT EXISTS config_key VARCHAR(100) NULL,
ADD COLUMN IF NOT EXISTS server_id INT NULL,
ADD COLUMN IF NOT EXISTS created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;6. Configurez server.cfg et les réglages de base#
Ajoutez les lignes ci-dessous dans server.cfg. Les lignes set doivent se trouver avant les lignes ensure, car la ressource lit ces valeurs au démarrage. oxmysql et votre framework doivent démarrer avant l'anticheat.
Remplacez qb-core par la ressource de votre framework (qbx_core ou es_extended). Ajoutez la ligne tosun_render seulement si votre package l'inclut.
tosun_ac_license est le seul réglage obligatoire. La connexion des données du panel et la modification des soldes des personnages en ligne sont activées par défaut : n'ajoutez aucune ligne pour elles. Les anciennes lignes set tosun_db_bridge_enabled et set tosun_db_bridge_money_write sont ignorées à partir du package 9.6.14 et peuvent être supprimées. Les packages plus anciens ont encore besoin de ces lignes pour activer la connexion : téléchargez donc le package actuel depuis le panel.
Réglages facultatifs : tosun_ac_panel_key (Paramètres du site → Clé API AntiCheat ; s'il est vide, l'anticheat trouve lui-même cette clé dans la base de données) et tosun_ac_central_token (un jeton avec le composant fivem, créé sur la page Jetons API AC ; s'il est vide, la clé du panel est utilisée).
Utilisez uniquement set pour la licence et les clés. setr envoie la valeur aux joueurs et sets la publie dans la liste publique des serveurs. Ne mettez pas de clés dans configs/anticheat_config.lua, car ce fichier est aussi envoyé aux joueurs. À la place de server.cfg, vous pouvez utiliser la table credentials de configs/anticheat_server.lua, qui est chargée uniquement sur le serveur. Si les deux sont remplis, server.cfg l'emporte.
- ts.Framework.framework : laissez "auto". QBCore, Qbox et ESX sont détectés automatiquement. Si la détection échoue, indiquez "qb", "qbox", "esx" ou "standalone".
- ts.punishType : utilisez 'LOG' le premier jour pour seulement enregistrer les détections, puis passez à 'BAN' une fois que vous les avez vérifiées dans le panel.
- ts.Debug : laissez false. Quand il est activé, tout le monde est détecté, staff compris.
- Laissez vides les champs webPanelKey, Central.token et licenseLock.licenseKey.
set onesync on
set tosun_ac_license "YOUR_LICENSE_KEY"
ensure oxmysql
ensure qb-core
# ... vos autres ressources de framework et d'inventaire ...
ensure tosun_render
ensure tosun-ac
ensure tosun-ac-guardian7. Donnez les permissions au staff#
Le staff est exempté des détections et peut ouvrir le menu d'administration en jeu. La méthode recommandée consiste à utiliser les permissions ACE dans server.cfg.
tosun.admin donne accès au menu d'administration et à l'exemption. tosunac.admin permet d'exécuter tosunac_setup depuis le jeu. Remplacez la valeur de licence par la vôtre.
Vous pouvez aussi ajouter des identifiants license:, steam: ou discord: à la liste Admins dans tosun-ac/admins/anticheat_admins.lua, ou accorder la permission depuis le panel.
Une personne qui est seulement admin txAdmin est exemptée des détections mais ne peut pas ouvrir le menu en jeu. Le menu nécessite l'une des méthodes ci-dessus.
En jeu, ouvrez le menu avec /ts ou /tsmenu, ou appuyez sur F7. Vous pouvez changer la touche avec ts.AdminMenu.openKeyControl.
add_ace group.admin tosun.admin allow
add_ace group.admin tosunac.admin allow
add_principal identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx group.admin8. Premier démarrage et vérification#
Pour la première installation, redémarrez tout le serveur et pas seulement la ressource. Les problèmes d'ordre de démarrage apparaîtront ainsi tout de suite.
- Redémarrez le serveur et cherchez des erreurs tosun-ac en rouge dans la console.
- Exécutez tosunac_doctor dans la console du serveur. La commande liste les réglages risqués ou contradictoires.
- Exécutez tosunac_db_status pour la connexion des données du panel et tosunac_integration pour les connexions avec les autres scripts.
- Cherchez la ligne [AC-Guardian] Aktif dans la console.
- Si vous êtes sûr que le serveur est sain, exécutez tosunac_setup. La commande recherche d'abord les backdoors, puis ajoute les ressources saines et les events du serveur à la liste autorisée. Ne l'exécutez pas si vous soupçonnez une ressource infectée : elle considère l'état actuel comme fiable.
- Le serveur apparaît en ligne dans le panel et le nombre de joueurs se met à jour.
- En vous connectant avec un compte staff, /ts ouvre le menu.
- De nouvelles lignes apparaissent dans la section des logs du panel.
- Après 10 à 15 minutes de jeu avec un compte normal, le panel n'affiche aucune détection inattendue.
tosunac_doctor
tosunac_db_status
tosunac_integration
tosunac_setup9. Vérifiez la connexion des données du panel#
Cette connexion est activée par défaut. Vous n'avez aucune ligne à ajouter dans server.cfg et rien à activer dans le panel. Les utilisateurs autorisés du panel peuvent consulter au besoin les données des joueurs, personnages, inventaires, véhicules, bans et détections. La base de données n'est pas copiée et votre mot de passe MySQL reste sur votre serveur. La connexion ne fait que lire des données ; la seule exception est la modification des soldes des personnages en ligne, décrite plus bas.
Chaque page renvoie 25 enregistrements, une seule requête s'exécute à la fois et une réponse fait au plus 64 Ko. Au repos, la connexion n'exécute aucune requête sur la base de jeu. Les tables standard de QBCore, Qbox et ESX sont prises en charge. Les tables personnalisées ne sont pas mappées automatiquement.
La modification des soldes est elle aussi activée par défaut. Seuls les utilisateurs du panel ayant le rôle administrateur ou propriétaire (permission économie) peuvent l'utiliser. Elle n'ajoute rien au solde : elle fixe le total en espèces ou en banque à la valeur saisie. Le personnage doit être en ligne. Si le solde actuel attendu ne correspond pas, la demande est refusée avec stale_balance et rien ne change. Le panel affiche un résumé de confirmation avant l'envoi, et chaque demande est inscrite dans le journal d'audit. Une demande dont le résultat est incertain n'est jamais relancée automatiquement ; vérifiez le solde en jeu avant de réessayer.
Pour un contrôle manuel avancé, ajoutez set tosun_db_bridge_manual "1" dans server.cfg. tosun_db_bridge_enabled et tosun_db_bridge_money_write sont alors lus dans server.cfg comme avant, et chacun reste désactivé tant qu'il n'est pas à "1". Si vous avez activé volontairement l'ancien miroir complet (ts.panelMirror.enabled = true dans configs/anticheat_config.lua), la connexion reste désactivée automatiquement pour que le miroir continue de fonctionner.
Votre site communautaire utilise la même connexion. Sans paramètres de base de données du jeu, les pages Joueurs, Bannissements et Détections lisent les données sur le serveur de jeu ; aucun utilisateur MySQL ni port de base de données ouvert n’est nécessaire. La section Base de données et bridge → « Site communautaire avec la seule licence » explique ce que ce mode affiche et quand ajouter la connexion SQL directe facultative.
- Dans le panel, ouvrez Serveurs → votre serveur → la carte Tosun Connect. Tant que la ressource tourne, la carte doit afficher Connection ready (Connexion prête).
- Vous pouvez aussi vérifier la connexion avec tosunac_db_status dans la console du serveur.
- Pour couper la connexion sur un serveur, choisissez Disable connection (Désactiver la connexion) sur la même carte. Toutes les lectures et modifications de solde s'arrêtent alors pour ce serveur. Vous pouvez la réactiver depuis la même carte.
10. Rendez vos autres scripts compatibles#
Les scripts qui téléportent des joueurs, donnent des armes ou figent des joueurs peuvent ressembler à de la triche s'ils ne préviennent pas l'anticheat. Voici les cas les plus courants et leurs solutions :
Tout script peut appeler MarkTeleport. AllowWeapon et SetExempt accordent des exemptions larges : ils ne sont donc acceptés que depuis des ressources de confiance. Ajoutez les noms des scripts qui les utilisent, séparés par des virgules, et conservez les noms déjà présents dans la liste.
- Téléporte un joueur (maison, garage, prison, hôpital) : appelez exports['tosun-ac']:MarkTeleport(src) juste avant de déplacer le joueur.
- Ouvre un menu court qui fige le joueur (vêtements, barbier) : exports['tosun-ac']:MarkTeleport(src, 15000).
- Donne une arme sans la mettre dans l'inventaire (arène, paintball) : exports['tosun-ac']:AllowWeapon(src, "WEAPON_PISTOL", ms). Nécessite une ressource de confiance.
- Doit exempter complètement un joueur pendant un moment (cinématique, respawn personnalisé) : exports['tosun-ac']:SetExempt(src, ms, "reason"). Nécessite une ressource de confiance.
set tosun_ac_trusted_resources "my-clothing,my-housing,my-arena"11. Mise à jour#
Faites la mise à jour pendant une maintenance et conservez vos propres réglages.
Si votre clé de panel se trouvait auparavant dans anticheat_config.lua, elle a peut-être été envoyée aux joueurs. Créez une nouvelle clé dans le panel et mettez aussi à jour server.cfg. La mise à jour ne révoque pas les anciennes clés.
- Téléchargez le nouveau package depuis le panel.
- Sauvegardez le dossier tosun-ac du serveur et conservez à part vos modifications des dossiers configs, admins, editable, locales et bridge.
- Supprimez les anciens dossiers tosun-ac, tosun-ac-guardian et tosun_render, puis mettez les nouveaux à leur place. Copier par-dessus les anciens dossiers laisse en place les fichiers supprimés.
- Remettez vos propres réglages. Pour conserver les lignes ajoutées dans la nouvelle version, reportez uniquement les valeurs que vous avez modifiées au lieu de remplacer tout le fichier.
- Si les notes de version mentionnent des changements de base de données, refaites les étapes 4 et 5.
- Redémarrez le serveur et refaites les vérifications de l'étape 8.
12. Dépannage#
Les symptômes les plus courants et leurs solutions :
Quand vous contactez le support, indiquez le numéro de version (version dans fxmanifest.lua), l'erreur complète de la console et le résultat de tosunac_doctor. Ne partagez jamais votre licence ni vos clés API : le support ne vous les demandera pas.
- Unknown column '…' in 'field list' : les tables proviennent d'une ancienne version. Exécutez le SQL de l'étape 5.
- Table '…' doesn't exist : INSTALL.sql n'a pas été importé, ou a été importé dans la mauvaise base. Importez-le dans la base à laquelle oxmysql se connecte.
- Erreurs oxmysql et arrêt de l'anticheat dès la première seconde : placez ensure oxmysql au-dessus de ensure tosun-ac.
- Avertissement de licence invalide : la licence d'un autre serveur a été saisie, la ligne set se trouve après ensure, ou setr a été utilisé. Copiez à nouveau la licence depuis la carte du bon serveur.
- Le menu d'administration ne s'ouvre pas : la personne est seulement admin txAdmin. Ajoutez les lignes ACE de l'étape 7 et reconnectez-vous.
- Un joueur innocent est détecté : ouvrez la détection dans le panel pour voir quelle vérification s'est déclenchée, puis ajoutez l'appel de l'étape 10 au script concerné. En attendant, réglez la sanction de cette vérification sur LOG dans le panel.
- Le serveur apparaît hors ligne dans le panel : lisez le résultat de tosunac_doctor. Si tosun_ac_panel_key est défini, vérifiez qu'il correspond à la clé du panel.
- Impossible de télécharger le package : lisez l'avis sur la page Téléchargements. Votre offre n'inclut peut-être pas les téléchargements, ou le serveur n'a pas été ajouté.
Première connexion du propriétaire du site#
Sélectionnez votre site loué dans TosunDev puis ouvrez sa gestion. Sans session, vous êtes envoyé vers la connexion, puis revenez à la gestion. Pour une inscription par e-mail, utilisez les identifiants valides lors de la création du site; les changements ultérieurs ne sont pas nécessairement synchronisés.
- Vérifiez l’adresse du site et le contrat sélectionné.
- Testez connexion et retour vers la bonne gestion dans une fenêtre privée.
- Reliez votre propre serveur FiveM; mot de passe web, licence Tosun et mot de passe MySQL sont distincts.
- Utilisez récupération du compte et contrôle de propriété, sans mot de passe administrateur partagé.
Copier la licence Tosun du bon serveur#
Dans TosunDev, ouvrez Serveurs, choisissez votre serveur FiveM et copiez sa licence Tosun AC. tac_live_ est distinct de la licence Cfx.re, de sv_licenseKey, du jeton Discord et de la clé API du panneau.
- Remplacez YOUR_SERVER_LICENSE entre guillemets dans server.cfg.
- Placez tosun_ac_license avant ensure tosun-ac; utilisez set, jamais setr ou sets.
- Autre méthode : credentials.licenseKey dans configs/anticheat_server.lua. Un convar non vide est prioritaire.
- Ne publiez pas la licence dans une capture, le chat, shared config ou les fichiers client.
set tosun_ac_license "YOUR_SERVER_LICENSE"
# Alternative: configs/anticheat_server.lua
# credentials.licenseKey = "YOUR_SERVER_LICENSE"Un seul SQL dans la bonne base#
tosun-ac/INSTALL.sql est l’unique point d’importation SQL du nouveau ZIP. N’importez pas une seconde ancienne copie du schéma. Il cible la base de jeu FiveM/oxmysql, pas la base des comptes ou du thème du site loué. Les colonnes anciennes manquantes sont réparées avant les valeurs par défaut; bannissements et réglages personnels sont conservés.
- Sauvegardez la base de jeu et vérifiez son nom.
- Importez uniquement INSTALL.sql dans HeidiSQL/phpMyAdmin ou nommez explicitement la base avec mysql.
- tosunac_db_check vérifie une requête, tosunac_db_status l’état du pont. Le pont est actif par défaut et ne demande aucune ligne dans server.cfg. enabled=false est normal en mode manuel (set tosun_db_bridge_manual "1") sans tosun_db_bridge_enabled "1", ou si l’ancien miroir complet (ts.panelMirror.enabled = true dans configs/anticheat_config.lua) est activé volontairement; la licence ne crée pas de connexion MySQL.
- La connexion du panneau (Tosun Connect) et la modification du solde en ligne sont actives par défaut. N’ajoutez ni tosun_db_bridge_enabled ni tosun_db_bridge_money_write dans server.cfg; à partir du package 9.6.14, les anciennes lignes sont ignorées et peuvent être supprimées (les packages plus anciens en ont encore besoin tant que le package actuel n’est pas installé). Seuls les utilisateurs du panneau avec le rôle admin ou owner fixent un solde: le personnage doit être en ligne, le solde attendu doit correspondre (sinon stale_balance, rien ne change), le panneau affiche un résumé à confirmer avant l’envoi, chaque requête est inscrite au journal d’audit et un résultat incertain n’est jamais relancé automatiquement; vérifiez d’abord le solde en jeu. L’opération fixe le total, elle n’ajoute pas. Pour couper toute la connexion sur un serveur (cela arrête toutes les lectures du panneau et toutes les modifications de solde): Panneau → Serveurs → le serveur → carte Tosun Connect → Disable connection; vous pouvez la réactiver depuis la même carte. Gardez le mot de passe sur le serveur de jeu.
mysql -u YOUR_DB_USER -p YOUR_GAME_DATABASE < tosun-ac/INSTALL.sql
# txAdmin console:
tosunac_db_check
tosunac_db_statusDu ZIP au démarrage dans txAdmin#
Placez tosun-ac, tosun-ac-guardian et tosun_render au même niveau dans resources, chacun avec fxmanifest.lua à sa racine. discord-bot est une application Node.js. Le nouveau manifeste Render ne déclare que gta5, sans common.
- Conservez mysql_connection_string; démarrez oxmysql et votre framework/inventaire existants avant Render, AC et Guardian.
- Exécutez refresh dans txAdmin puis respectez l’ordre indiqué. L’alias tosun-render est accepté; le dossier reste tosun_render.
- tosun_render_status doit afficher started et les fichiers disponibles. Testez ensuite la capture avec un joueur.
- Analysez la première erreur : dépendance, emplacement du dossier ou licence du serveur sélectionné.
set tosun_ac_license "YOUR_SERVER_LICENSE"
ensure oxmysql
# Start your existing framework/inventory here.
ensure tosun_render
ensure tosun-ac
ensure tosun-ac-guardian
# txAdmin console:
tosun_render_status
tosunac_doctor
tosunac_db_check
tosunac_db_statusVérifier les droits et leur retrait#
ACE, identifiants administrateur et droits du panneau sont vérifiés côté serveur. all ne constitue ni identifiant ni autorisation. allowedIds attend license:..., discord:... ou fivem:... complets issus des identifiants du joueur.
- Accordez le minimum nécessaire à un administrateur de test.
- Retirez le droit du panneau et réessayez avec ce joueur; la nouvelle interrogation par défaut est d’environ cinq secondes.
- Vérifiez aussi les droits indépendants ACE/admins.lua. La télémétrie des joueurs en ligne ne donne aucun droit.
- Un joueur normal doit rester refusé; testez les actions sensibles avec des données de test.
ts.AdminMenu.allowedIds = {
"license:YOUR_EXACT_PLAYER_IDENTIFIER",
"discord:YOUR_DISCORD_USER_ID"
}
# Examples are placeholders, not grants.Installer le bot Discord comme service séparé#
discord-bot fonctionne sous Node.js et ne se lance pas avec ensure. Créez votre application dans Discord Developer Portal et utilisez vos Application ID, Guild ID et identifiants de rôles/canaux. Conservez le jeton dans un fichier d’environnement privé.
Le compte de base du site est limité par défaut au localhost du fournisseur. Un bot sur une autre machine FiveM n’y accède pas automatiquement. Utilisez un service géré sur l’hôte du site ou une connexion privée approuvée pour votre seul compte. N’utilisez ni root du fournisseur ni MySQL public. Vérifiez séparément les commandes anciennes qui nécessitent des tables du jeu.
Comme propriétaire, enregistrez le token, Client ID et Guild ID dans Gestion du site → Bot Discord. Téléchargez le fichier privé avec Download private bot setup et placez-le sous le nom .env dans votre dossier bot. Il contient uniquement les clés du site choisi, contrairement à l’exemple vide du ZIP. Ne le partagez pas et ne le versionnez pas.
- Installez une version LTS prise en charge de Node.js 22 ou plus; préparez les exemples avec le script.
- Invitez avec les portées bot et applications.commands et accordez les permissions nécessaires.
- Configurez la base du site et l’API HTTPS. La clé privée de commandes appartient uniquement à ce bot et ce site; ce n’est pas une licence ou une clé SaaS principale.
- Lancez npm run doctor avant le service. Vérifiez ensuite connexion et rôles; doctor ne se connecte pas à Discord.
cd discord-bot
sh setup.sh
# Configure the private .env and site bot settings first.
npm run doctor
npm startÉviter les analyses inutiles après redémarrage#
Chaque démarrage vérifie les empreintes SHA256 du contenu. Les ressources dont les fichiers et règles sont inchangés réutilisent les résultats authentifiés du KVP serveur au lieu de répéter les analyses coûteuses de signatures et événements. Les changements de fichiers, exceptions ou règles déclenchent une nouvelle analyse. Les empreintes nécessitent encore des lectures ; aucune valeur resmon fixe n’est garantie.
- Conservez le cache KVP pendant une mise à jour normale ; les entrées corrompues ou invérifiables sont réanalysées.
- Le catalogue initial collecte les noms d’événements littéraux Lua/JS. Les noms dynamiques, fichiers illisibles ou escrow et DLL ne sont pas certifiés entièrement analysés.
- L’installation automatique manuelle attend l’analyse de sécurité. Les ressources incomplètes, suspectes, modifiées ou expirées ne sont pas approuvées automatiquement.
- Testez la connexion des joueurs, le jeu normal et les actions administrateur sur un serveur de test ; évaluez resmon avec le nombre de joueurs et la charge du framework.