Vue d'ensemble & Guide d'Installation

Bienvenue sur la documentation technique des ressources de la suite Yol_Script.

Cette suite de scripts a été conçue pour fonctionner de manière optimisée sous le framework ESX Legacy, en utilisant les briques les plus performantes de l'écosystème FiveM actuel : la base de données oxmysql, la bibliothèque utilitaire ox_lib, l'inventaire ox_inventory, et le script d'interactions physiques ox_target.

Design System Unifié Toutes les interfaces de la suite Yol partagent le même design premium « Glassmorphism » basé sur la couleur d'accentuation orange #F04C00. Le style est centralisé dans le script Yol_lib, évitant ainsi le clonage du code CSS.

Le serveur n'exécute aucun script externe non configuré, et tout le code est articulé pour maximiser le réalisme, le confort de jeu et la sécurité (anti-triche de haut niveau intégré).

Yol_Edition

La Suite d'Administration & Gameplay Ultime pour FiveM — Premium Edition

⚡ ESX LEGACY · OX_LIB · DISCORD BOT · 11 SCRIPTS

Qu'est-ce que l'écosystème Yol_Edition ?

La suite Yol_Edition est un écosystème modulaire clé-en-main conçu pour optimiser, administrer et animer votre serveur FiveM. Géré par un dashboard NUI en jeu et synchronisé avec un bot Discord natif, il intègre des fonctionnalités d'administration, de sécurité, de communication moderne et de gameplay enrichi.

📦 Les 11 Modules de la Suite Yol

Yol_Admin
Outil d'administration complet en jeu et Bot Discord. Logs, tickets, bans rapides, gestions des concessionnaires et des mécanos.
Yol_Core
Noyau de synchronisation. Gère les blips généraux de la carte, le chargement des personnages et les routines d'optimisation serveur.
Yol_EMS
Gestion médicale. Blessures localisées squelettiques, transport de brancards, réanimation avancée et base médicale MDT.
Yol_Police
Fichier central LSPD. Casiers criminels, amendes, mandats de recherche, cinémomètres et hébergement photo de sécurité ATM.
Yol_Phone
Smartphone NUI iOS. Contacts, SMS, banque (AuraBank), galerie photo, recherche musique YouTube API, et réseau DarkChat.
Yol_Licenses
Cartes d'identité et permis physiques. Intègre des photos capturées automatiquement et hébergées via webhook.
Yol_Speedometer
HUD de vitesse circulaire. Jauge d'essence, niveau moteur, ceintures, clignotants et boussole intégrés.
Yol_Cruisecontrol
Limiteur et régulateur de vitesse intelligent s'affichant en overlay sur le HUD de vitesse Yol.
Yol_Tchat
Canaux de tchat unifiés. OOC, Local, Tweets et Staff. Système de tickets d'aide et de logs administratifs.
Yol_Clothing
Magasin de vêtements et panel de tatouages optimisés. Tenues sauvegardées en base de données et chargement fluide.
Yol_Loadingscreen
Écran de chargement multimédia. Supporte les listes de lecture musicales (.mp3) et vidéos d'arrière-plan (.mp4).

🤖 Bot Discord NodeJS Natif

La suite Yol_Edition intègre un bot Discord programmé en NodeJS sous la bibliothèque discord.js, situé dans le dossier 📁 Yol_Admin/bot/.

Étapes d'installation du Bot :

  1. Ouvrez un terminal de commande dans le dossier 📁 Yol_Admin/bot/.
  2. Exécutez la commande suivante pour installer les paquets Node.js requis :
    npm install  # ou yarn install
  3. Renommez le fichier config.example.json en config.json.
  4. Éditez le fichier config.json en renseignant vos identifiants réels :
    {
      "token": "BOT_DISCORD_TOKEN_SECRET",
      "guildId": "ID_DE_VOTRE_SERVEUR_DISCORD",
      "roleIds": {
        "admin": "ID_ROLE_ADMINISTRATEUR",
        "mod": "ID_ROLE_MODERATEUR"
      },
      "channelIds": {
        "reports": "ID_SALON_SIGNALEMENTS",
        "logs": "ID_SALON_JOURNAL_LOGS"
      }
    }
  5. Lancez le bot en tâche de fond à l'aide d'un gestionnaire de processus comme PM2 :
    pm2 start index.js --name "yol-bot"

⚓ Webhooks de journalisation (Logs)

Plusieurs modules de la suite Yol utilisent des requêtes HTTP POST pour stocker et afficher des captures d'écran ou journaliser des actions via des webhooks Discord configurables dans txAdmin ou dans votre config.cfg :

Anti-Cheat Webhook : Reçoit les alertes de détection d'injection, de trigger d'events non whitelistés et de cheats visuels.
Licenses Photo Webhook : Sert de serveur d'hébergement d'images pour stocker les headshots pris en jeu et les afficher sur les cartes d'identité.
Chat Screenshot Webhook : Enregistre les captures d'écran effectuées par les joueurs lors de la création de tickets d'aide ou de signalements.
Phone Gallery Webhook : Stocke les photos prises par l'appareil photo du téléphone de la suite Yol.

📁 Chargement d'actifs dans Yol_Loadingscreen

Pour personnaliser l'écran de chargement avec vos propres fichiers médias, déposez-les dans les dossiers correspondants du script :

Vidéos d'arrière-plan (.mp4, .webm) : Placer dans le dossier 📁 Yol_Loadingscreen/ui/assets/video/.
Musiques de fond (.mp3) : Placer dans le dossier 📁 Yol_Loadingscreen/ui/assets/music/.

Après avoir ajouté de nouveaux fichiers de façon à ce que le loadingscreen les indexe sans devoir redémarrer votre serveur de jeu, tapez dans la console RCON ou txAdmin :

rescanloadingscreen

Besoin d'aide ou de support pour l'installation ?

 📖 Consulter la Documentation Complète → 
Interface In-Game · Bot Discord NodeJS Natif · Premium Quality

Dépendances & Écosystème (OX, mVehicle, pefcl...)

Chaque script Yol interagit étroitement avec des briques techniques spécialisées. Voici une explication approfondie de ces dépendances requises présentes dans votre dossier de ressources :

1. La Suite Overextended (OX)

2. L'écosystème Véhicules (mVehicle & mGarage)

3. Le Système Bancaire (pefcl)

4. La Gestion de la Météo (B2_WeatherEssentials)


Base de données & Schémas SQL

La persistance de vos scripts repose sur la base de données MySQL. Plusieurs scripts Yol intègrent un système d'auto-setup qui crée automatiquement leurs tables au premier boot (Yol_Phone, Yol_EMS, Yol_Licenses via MySQL.ready). D'autres nécessitent une vérification de colonnes.

Auto-Migration Active Les scripts Yol vérifient et adaptent automatiquement le format des colonnes (comme la modification de yol_phone_photos.url en LONGTEXT pour stocker les images base64 locales).

Table : yol_licenses

Stocke les informations des cartes d'identité, permis de conduire et permis de port d'arme physiques générés par Yol_Licenses.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I Identifiant unique de la licence en BDD.
license VARCHAR(128) INDEX Identifiant de licence Cfx.re du propriétaire.
type VARCHAR(64) Type de permis (ex: drive, weapon, identity).
number VARCHAR(64) UNIQUE Numéro de permis unique généré aléatoirement.
data JSON Métadonnées (nom, prénom, photo_url issue de Discord Webhook, date de naissance).
created_at TIMESTAMP Date de création de la carte.

Table : user_injuries

Utilisée par Yol_EMS pour persister l'état de santé du joueur et ses blessures localisées entre les sessions.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I Identifiant unique de la ligne.
license VARCHAR(128) UNIQUE Identifiant Cfx.re unique du joueur.
injuries JSON Détails des blessures par membre (ex: {"head": {"hp": 100, "bleed": false}}).
is_dead TINYINT(1) Indique si le joueur est dans le coma ou décédé (1 = Mort, 0 = En Vie).
last_update TIMESTAMP Dernière modification de l'état de santé.

Table standard d'ESX : users (Colonnes additionnelles)

Les colonnes suivantes sont injectées automatiquement dans la table principale d'ESX users par les scripts Yol :

Colonne Type de Donnée Script Propriétaire Usage / Rôle
phone_number VARCHAR(32) Yol_Phone Numéro de téléphone assigné au personnage (unique).
avatar_url TEXT Yol_Phone / Yol_lib Lien vers la photo de profil du joueur.
blood_group VARCHAR(8) Yol_EMS Groupe sanguin du joueur (ex: A+, O-).
medical_note TEXT Yol_EMS Notes médicales persistantes (ex: allergies, antécédents).

Table : yol_phone_contacts

Liste des contacts enregistrés dans le répertoire de l'application Contacts du téléphone.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I Identifiant unique de la ligne.
owner VARCHAR(128) INDEX Identifiant de licence Cfx.re du propriétaire du téléphone.
name VARCHAR(128) Nom d'affichage du contact.
number VARCHAR(32) Numéro de téléphone du contact.

Table : yol_phone_messages

Historique des SMS échangés entre les joueurs via l'application Messages.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I Identifiant unique du message.
sender VARCHAR(32) Numéro de l'expéditeur.
receiver VARCHAR(32) Numéro du destinataire.
message TEXT Contenu du SMS.
is_read TINYINT(1) Statut de lecture (1 = Lu, 0 = Non lu).
timestamp TIMESTAMP Date et heure d'envoi.

Table : yol_mdt_records

Casiers judiciaires globaux saisis par la police sur le terminal LSPD.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I ID unique du dossier.
license VARCHAR(128) INDEX Identifiant de licence Cfx.re du citoyen.
convictions TEXT Infractions commises enregistrées.
points_removed INT Points retirés sur le permis de conduire.
jail_time INT Temps d'incarcération restant (en minutes).

Table : yol_mdt_warrants

Liste des mandats d'arrêt actifs lancés par les officiers de police.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I ID unique du mandat.
license VARCHAR(128) Identifiant du citoyen recherché.
reason VARCHAR(255) Motif du mandat d'arrêt.
issued_by VARCHAR(128) Officier ayant émis le mandat.
status VARCHAR(32) Statut du mandat (active, resolved).

Table : yol_ems_interventions

Dossiers de suivi médical et rapports de réanimation saisis par les médecins via Yol_EMS.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I ID unique de l'intervention.
patient_license VARCHAR(128) Licence Cfx.re du patient pris en charge.
medic_license VARCHAR(128) Licence Cfx.re du médecin traitant.
diagnosis TEXT Description des blessures constatées.
treatment VARCHAR(255) Traitements appliqués (médicaments, sutures, réanimation).
date TIMESTAMP Date de l'intervention.

Table : yol_admin_bans

Liste des joueurs exclus définitivement ou temporairement du serveur via Yol_Admin.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I ID unique du ban.
identifier VARCHAR(60) INDEX Identifiant principal de connexion (Steam / Rockstar).
license VARCHAR(128) Identifiant Cfx.re (License).
reason VARCHAR(255) Motif du bannissement.
banned_by VARCHAR(60) Nom ou identifiant du modérateur à l'origine du ban.
duration INT Durée en secondes (-1 pour un ban permanent).
timestamp TIMESTAMP Date et heure du ban.

Table : yol_admin_reports

Suivi des tickets d'aide et de signalement RP initiés par les joueurs en jeu.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I Identifiant unique du ticket.
reporter VARCHAR(60) Identifiant du joueur ayant ouvert le ticket.
reason VARCHAR(255) Description du problème rencontré par le joueur.
admin_assigned VARCHAR(60) Nom du modérateur ayant pris en charge le ticket.
status VARCHAR(32) Statut du ticket (open, claimed, closed).

Table : pefcl_accounts

Table principale du système bancaire universel pefcl (AuraBank) gérant les soldes bancaires des personnages.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I Identifiant unique du compte.
number VARCHAR(255) UNIQUE Numéro de compte unique (IBAN).
accountName VARCHAR(255) Nom personnalisé du compte (ex: Compte Courant).
ownerIdentifier VARCHAR(255) INDEX Licence Cfx.re de l'utilisateur propriétaire.
balance INT Solde d'argent en compte (par défaut : 25 000$).
type VARCHAR(255) Type de compte (ex: personal, shared, society).

Table : owned_vehicles

Utilisée par mVehicle et mGarage pour sauvegarder les voitures possédées par les joueurs.

Colonne Type de Donnée Index / Clé Description
id INT PK A_I ID unique de la voiture.
owner VARCHAR(46) INDEX Licence Cfx.re du citoyen propriétaire.
plate VARCHAR(12) UNIQUE Plaque d'immatriculation du véhicule (Clé d'accès unique).
vehicle LONGTEXT Données JSON de configuration (couleurs, upgrades, moteurs).
stored TINYINT(4) Statut du véhicule (1 = Au garage, 0 = Sorti sur la map).
parking VARCHAR(60) Nom du garage où est garée la voiture.
pound VARCHAR(60) Nom de la fourrière si saisi par la police.
mileage INT Kilométrage total parcouru par le véhicule (en mètres).
metadata JSON Informations sur les doubles de clés (utilisé pour mVehicle).

Schémas SQL de la Suite Yol_Script

yol_suite.sql
-- Yol_Licenses
CREATE TABLE IF NOT EXISTS `yol_licenses` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `license` VARCHAR(128) NOT NULL,
    `type` VARCHAR(64) NOT NULL,
    `number` VARCHAR(64) NOT NULL,
    `data` JSON DEFAULT NULL,
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY `uniq_num` (`number`),
    KEY `idx_lic` (`license`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Yol_EMS
CREATE TABLE IF NOT EXISTS `user_injuries` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `license` VARCHAR(128) NOT NULL,
    `injuries` JSON DEFAULT NULL,
    `is_dead` TINYINT(1) DEFAULT 0,
    `last_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY `uniq_lic` (`license`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Yol_Phone
CREATE TABLE IF NOT EXISTS `yol_phone_contacts` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `owner` VARCHAR(128) NOT NULL,
    `name` VARCHAR(128) NOT NULL,
    `number` VARCHAR(32) NOT NULL,
    UNIQUE KEY `unique_contact` (`owner`, `number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `yol_phone_messages` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `sender` VARCHAR(32) NOT NULL,
    `receiver` VARCHAR(32) NOT NULL,
    `message` TEXT NOT NULL,
    `is_read` TINYINT(1) DEFAULT 0,
    `timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Yol_Police
CREATE TABLE IF NOT EXISTS `yol_police_actions_log` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `officer` VARCHAR(128) NOT NULL,
    `suspect` VARCHAR(128) NOT NULL,
    `action` VARCHAR(255) NOT NULL,
    `fine_amount` INT DEFAULT 0,
    `timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Yol_Admin
CREATE TABLE IF NOT EXISTS `yol_admin_bans` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `identifier` VARCHAR(60) NOT NULL,
    `license` VARCHAR(128) DEFAULT NULL,
    `reason` VARCHAR(255) NOT NULL,
    `banned_by` VARCHAR(60) NOT NULL,
    `duration` INT DEFAULT -1,
    `timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    KEY `idx_ident` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Schémas SQL des Dépendances (pefcl & mVehicle)

dependencies.sql
-- PEFCL Banking System
CREATE TABLE IF NOT EXISTS `pefcl_accounts` (
    `id` INT NOT NULL AUTO_INCREMENT,
    `number` VARCHAR(255) DEFAULT NULL,
    `accountName` VARCHAR(255) DEFAULT NULL,
    `isDefault` TINYINT(1) DEFAULT 0,
    `ownerIdentifier` VARCHAR(255) DEFAULT NULL,
    `role` VARCHAR(255) DEFAULT 'owner',
    `balance` INT DEFAULT 25000,
    `type` VARCHAR(255) DEFAULT 'personal',
    `createdAt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `updatedAt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `number` (`number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `pefcl_cash` (
    `id` INT NOT NULL AUTO_INCREMENT,
    `amount` INT DEFAULT 2000,
    `ownerIdentifier` VARCHAR(255) DEFAULT NULL,
    `createdAt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `updatedAt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `ownerIdentifier` (`ownerIdentifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- mVehicle / mGarage
CREATE TABLE IF NOT EXISTS `owned_vehicles` (
    `id` INT NOT NULL AUTO_INCREMENT,
    `owner` VARCHAR(46) DEFAULT NULL,
    `plate` VARCHAR(12) NOT NULL,
    `vehicle` LONGTEXT DEFAULT NULL,
    `type` VARCHAR(20) NOT NULL DEFAULT 'automobile',
    `job` VARCHAR(20) DEFAULT NULL,
    `stored` TINYINT(4) NOT NULL DEFAULT 0,
    `parking` VARCHAR(60) DEFAULT NULL,
    `pound` VARCHAR(60) DEFAULT NULL,
    `mileage` INT(11) DEFAULT 0,
    `metadata` JSON DEFAULT '{"keys":{}}',
    `glovebox` JSON DEFAULT NULL,
    `trunk` JSON DEFAULT NULL,
    `carseller` INT(11) DEFAULT 0,
    `private` TINYINT(1) DEFAULT 0,
    PRIMARY KEY (`id`),
    UNIQUE KEY `unique_plate` (`plate`),
    KEY `idx_owner` (`owner`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

Permissions ACE (perms.cfg)

Le serveur utilise le système de permissions natif de GTA V/FiveM appelé ACE. Ce système définit des règles d'accès strictes pour les commandes et les ressources en jeu (sans surcharger la base de données).

Voici l'intégralité du fichier de permissions perms.cfg configuré pour Yol_Script. Vous pouvez copier ce bloc complet dans votre configuration :

perms.cfg
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#                       CONFIGURATIONS DES PERMISSIONS                        #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

# ==========================================
#  Administrateurs Système (Principals)
# ==========================================
add_principal identifier.fivem:4274194 group.admin # EddyFinch
add_principal identifier.discord:150485416788426753 group.admin # Admin Principal

# ==========================================
#  Hiérarchie des Groupes
# ==========================================
add_principal group.admin group.user

# ==========================================
#  Permissions ACE - Groupe Admin
# ==========================================
add_ace group.admin command allow
add_ace group.admin command.quit deny

# Commandes de gestion de l'environnement
add_ace group.admin command.setweather allow
add_ace group.admin command.settime allow

# Commandes de l'anti-triche Yol_Anticheat
add_ace group.admin command.acban allow
add_ace group.admin command.aclog allow
add_ace group.admin command.actest allow
add_ace group.admin command.acreload allow
add_ace group.admin command.actestmode allow

# ==========================================
#  Permissions ACE - Ressources & Framework
# ==========================================

# Permissions ESX Framework (es_extended)
add_ace resource.es_extended command.add_ace allow
add_ace resource.es_extended command.add_principal allow
add_ace resource.es_extended command.remove_principal allow
add_ace resource.es_extended command.stop allow

# Permissions Overextended Library (ox_lib)
add_ace resource.ox_lib command.add_ace allow
add_ace resource.ox_lib command.remove_ace allow
add_ace resource.ox_lib command.add_principal allow
add_ace resource.ox_lib command.remove_principal allow

# Permissions pour Yol_Admin
add_ace resource.Yol_Admin command.ensure allow
add_ace resource.Yol_Admin command.stop allow
add_ace resource.Yol_Admin command.start allow

# Permissions pour l'anti-triche et son Watchdog
add_ace resource.Yol_Anticheat_Watchdog command.ensure allow
add_ace resource.Yol_Anticheat command.ensure allow
add_ace resource.Yol_Anticheat command.add_ace allow

Explication détaillée des Règles ACE


Mocks des Interfaces NUI (Aperçu)

Voici des répliques interactives codées directement en HTML et CSS pour prévisualiser l'esthétique et l'ergonomie des interfaces de la suite Yol_Script sans avoir à démarrer le serveur :

Yol_Phone (Interface F1)
17:34
5G
Rechercher
Téléphone
Messages
2
AuraBank
Garage
Annonces
DarkChat
5
PingMe
Instapix
Compte PEFCL $84 250 **** **** 9428
Yol_Licenses (Visualiseur)
RÉPUBLIQUE DE SAN ANDREAS
PERMIS DE CONDUIRE
★ SA
FINCH
Eddy
12/04/1995
M
180 cm
Sanandresienne
RÉPUBLIQUE DE SAN ANDREAS
PERMIS — VERSO
★ SA
11/06/2026
Département des Transports
Permet la conduite de véhicules terrestres de classe B (Léger) de manière légale et assurée sur la voie publique.

Cliquez sur le permis pour retourner la carte (Recto / Verso 3D).

Yol_Speedometer (HUD)
0 KM/H
N
N
Yol_EMS (Blessures localisées)
PANEL BLESSURES
Eddy Finch ID #45

Diagnostic

  • Bras Droit Fracture (25%)

Zone: Bras Droit

25%

Actions

ÉLECTROCARDIOGRAMME
NORMAL
72BPM
98%SpO₂
120/80TA mmHg

Cliquez sur les zones corporelles (silhouette) pour ausculter ou appliquer des soins.

Yol_Tchat (Canaux et Glassmorphism)
GLOBAL LOCAL STAFF TICKETS 2
OOC Eddy Finch [ID 45]: Quelqu'un pour faire un braquage de supérette ?
Tweet @Bobby_Car: Vends Cheetah custom d'occasion, 80 000$, contact par GPS.
OOC Jean Dupont [ID 12]: Admin dispo sur Discord pour une question de mapping ?
Local Eddy Finch [ID 45]: Passe-moi les clés du garage s'il te plaît.
Local Pierre Durand [ID 32]: Tiens, les voilà. Attention à la carrosserie.
Staff Yol_Admin: [LOG] L'administrateur Eddy Finch s'est connecté en mode invisible.
AC Warn System: [WARN] Déplacement anormalement rapide détecté pour Jean Dupont [ID 12] (Noclip suspect).
Ticket #108 Pierre Durand [ID 32] Il y a 3 min
Besoin d'aide pour débloquer ma voiture sous la map (concessionnaire).
Voir Capture
Ticket #109 Kevin Du77 [ID 89] Il y a 1 min
Insultes HRP au concessionnaire et noclip.
GLOBAL / Tapez votre message ici... (Cliquez pour envoyer un message de test)

Configuration Globale (Convars)

De nombreux scripts de la suite Yol chargent leurs paramètres les plus sensibles (clés d'API, jetons de bots Discord, et Webhooks) directement depuis la configuration générale de la machine via des Convars. Cela évite de laisser ces identifiants visibles en clair dans les fichiers de scripts et permet de tout centraliser.

Ces variables sont définies dans le fichier config.cfg, qui est chargé au démarrage du serveur par le fichier principal server.cfg.

Sécurité des Webhooks & Tokens Ne partagez jamais vos fichiers server.cfg ou config.cfg. Les webhooks Discord permettent à quiconque les possède d'écrire sur vos salons, et vos jetons de bots peuvent compromettre votre serveur Discord.

Tableau des Convars Configurable

Nom Convar Fichier / Script Utilisateur Description Format de Valeur Attendue
mysql_connection_string oxmysql Chaîne de connexion à la base de données MySQL. mysql://user:pass@host/db_name?charset=utf8mb4...
yol_ac_webhook Yol_Anticheat
Yol_Anticheat_Watchdog
Yol_Debugger
Webhook Discord principal recevant les alertes de triche, les pings du watchdog de sécurité, et le journal des erreurs de code en jeu. https://discord.com/api/webhooks/ID/TOKEN
yol_tchat_screenshot_webhook Yol_Tchat (Screenshots) Webhook Discord utilisé comme hébergeur d'images temporaires lorsqu'un joueur prend un screenshot dans le chat. https://discord.com/api/webhooks/ID/TOKEN
yol_tchat_gallery_webhook Yol_Tchat (Galerie) Webhook Discord pointant vers le salon Galerie RP, où sont publiées les photos d'ambiance prises en jeu. https://discord.com/api/webhooks/ID/TOKEN
yol_licenses_screenshot_webhook Yol_Licenses Webhook de stockage utilisé pour uploader et afficher l'avatar photo réel sur les permis et cartes d'identité. https://discord.com/api/webhooks/ID/TOKEN
yol_police_atm_webhook Yol_Police / Yol_Phone Webhook d'hébergement d'images pour les captures des caméras témoin/ATM lors des braquages. https://discord.com/api/webhooks/ID/TOKEN
yol_phone_gallery_webhook Yol_Phone (Galerie) Webhook Discord servant d'espace de stockage de secours pour héberger les photos de la galerie de l'application Photo. https://discord.com/api/webhooks/ID/TOKEN
yol_phone_youtube_key Yol_Phone (Musique) Clé API Google Cloud (YouTube Data API v3) requise pour faire fonctionner la recherche de chansons dans l'application Musique du téléphone. Chaîne de caractères alphanumérique de 39 caractères (ex: AIzaSy...)
yol_phone_tenor_key Yol_Phone (Tenor GIF) Clé API Tenor permettant la recherche et le partage de GIFs animés dans l'application Messages. (Laisser vide si inutilisé). Clé API alphanumérique fournie par Tenor/Google.
sv_licenseKey FiveM Server Engine Clé de licence du serveur (Cfx.re Keymaster) indispensable pour le boot. Clé Cfx.re active (ex: cfxk_...)
sv_tebexSecret FiveM Tebex Store Secret API pour lier le serveur à votre boutique Tebex pour les achats automatiques en jeu. Clé secrète Tebex.

Ordre de Démarrage des Ressources

Le chargement des scripts FiveM doit suivre un ordre strict pour éviter des erreurs de variables nulles (nil pointer) ou de callbacks introuvables au démarrage. Les dépendances de base (base de données, UI partagée) doivent être actives avant les scripts qui les utilisent.

L'ordre est géré de manière modulaire via le fichier resources.cfg.

resources.cfg
# 1. Ressources Système de Base FiveM
ensure [BaseFivem]

# 2. Pilote BDD (oxmysql en premier)
ensure oxmysql

# 3. Anti-Triche et Watchdog (démarrés très tôt)
ensure Yol_Anticheat
ensure Yol_Anticheat_Watchdog

# 4. Librairies partagées & UI
ensure ox_lib
ensure Yol_lib
ensure Yol_Debugger

# 5. Ressources Noyau (Core)
ensure [Core]
ensure PolyZone
ensure ox_target
ensure Yol_Clothing
ensure ox_inventory

# 6. Dépendances de scripts additionnels
ensure [Depend]  # (Contient Yol_Bridge, bl_bridge, mVehicle, pma-voice, xsound, etc.)
ensure ox_doorlock

# 7. Framework ESX
ensure [ESX]

# 8. Ressources et scripts de vie / métiers
ensure [Others]  # (Contient Yol_Phone, Yol_EMS, Yol_Police, Yol_Core, Yol_Tchat, Yol_Licenses, etc.)
ensure Yol_Admin

Items d'Inventaire requis (ox_inventory)

Plusieurs scripts nécessitent l'existence d'items spécifiques dans l'inventaire des joueurs pour valider les actions (comme les outils de braquages dans Yol_Admin, le défibrillateur et les médicaments dans Yol_EMS, les permis physiques dans Yol_Licenses, ou le téléphone physique dans Yol_Phone).

Vous devez copier-coller le snippet ci-dessous dans votre fichier resources/[OX]/ox_inventory/data/items.lua à l'intérieur de la table principale return { ... } :

ox_inventory/data/items.lua
    -- ============================================================
    -- ITEMS REQUIS POUR LES SCRIPTS YOL (YOL_SCRIPT)
    -- ============================================================

    -- Yol_Phone (Téléphone utilisable)
    ['phone'] = {
        label = 'Téléphone',
        weight = 150, stack = false, close = true,
        description = 'Un smartphone moderne pour appeler, envoyer des SMS et utiliser des applications.'
    },
    ['gps'] = {
        label = 'GPS',
        weight = 100, stack = true, close = true,
        description = 'Un récepteur GPS pour afficher la minimap en jeu.'
    },

    -- Yol_Police (Outil d'entrave)
    ['handcuffs'] = {
        label = 'Menottes',
        weight = 500, stack = true, close = true,
        description = 'Des menottes en acier trempé pour immobiliser les suspects.'
    },

    -- Yol_Licenses (Documents administratifs physiques)
    ['id_card'] = {
        label = 'Carte d\'Identité',
        weight = 5, stack = false, close = true,
        description = 'Carte d\'identité officielle de l\'État.',
        client = { export = 'Yol_Licenses.useLicense' }
    },
    ['license_car'] = {
        label = 'Permis de Conduire (B)',
        weight = 5, stack = false, close = true,
        description = 'Permis de catégorie B — véhicules légers.',
        client = { export = 'Yol_Licenses.useLicense' }
    },
    ['license_moto'] = {
        label = 'Permis Moto (A)',
        weight = 5, stack = false, close = true,
        description = 'Permis de catégorie A — motocyclettes.',
        client = { export = 'Yol_Licenses.useLicense' }
    },
    ['license_truck'] = {
        label = 'Permis Poids Lourd (C/E)',
        weight = 5, stack = false, close = true,
        description = 'Permis catégorie C/E — camions et semi-remorques.',
        client = { export = 'Yol_Licenses.useLicense' }
    },
    ['license_plane'] = {
        label = 'Licence de Pilote',
        weight = 5, stack = false, close = true,
        description = 'Licence de pilote privé (PPL).',
        client = { export = 'Yol_Licenses.useLicense' }
    },
    ['license_boat'] = {
        label = 'Permis Bateau',
        weight = 5, stack = false, close = true,
        description = 'Permis de navigation côtière.',
        client = { export = 'Yol_Licenses.useLicense' }
    },
    ['license_weapon'] = {
        label = 'Permis de Port d\'Arme',
        weight = 5, stack = false, close = true,
        description = 'Permis officiel de port d\'arme de catégorie B.',
        client = { export = 'Yol_Licenses.useLicense' }
    },
    ['license_hunting'] = {
        label = 'Permis de Chasse',
        weight = 5, stack = false, close = true,
        description = 'Permis de chasse réglementée.',
        client = { export = 'Yol_Licenses.useLicense' }
    },

    -- Yol_EMS (Consommables médicaux et matériel)
    ['bandage'] = { label = 'Bandage', weight = 50, stack = true, close = true },
    ['gauze'] = { label = 'Compresses', weight = 30, stack = true, close = true },
    ['suturekit'] = { label = 'Kit de suture', weight = 250, stack = true, close = true },
    ['splint'] = { label = 'Attelle', weight = 200, stack = true, close = true },
    ['tourniquet'] = { label = 'Garrot', weight = 80, stack = true, close = true },
    ['burncream'] = { label = 'Crème brûlure', weight = 80, stack = true, close = true },
    ['painkillers'] = { label = 'Antidouleurs', weight = 20, stack = true, close = true },
    ['morphine'] = { label = 'Morphine', weight = 30, stack = true, close = true },
    ['medikit'] = { label = 'Trousse soins', weight = 800, stack = true, close = true },
    ['firstaid'] = { label = 'Premiers secours', weight = 500, stack = true, close = true },
    ['defibrillator'] = { label = 'Défibrillateur', weight = 2000, stack = false, close = true },

    -- Yol_Core (Conteneurs et objets interactifs)
    ['backpack'] = { label = 'Sac à dos', weight = 1000, stack = false, close = true },
    ['bag'] = { label = 'Sac de Sport', weight = 800, stack = false, close = true },
    ['bag_purple'] = { label = 'Sac de créateur violet', weight = 800, stack = false, close = true },
    ['cardboard_box'] = { label = 'Carton de transport', weight = 500, stack = false, close = true },
    ['large_box'] = { label = 'Grand carton de fret', weight = 800, stack = false, close = true },
    ['cargo_box'] = { label = 'Caisse de marchandise', weight = 1200, stack = false, close = true },
    ['empty_can'] = { label = 'Canette vide', weight = 50, stack = true, close = true },
    ['empty_bottle'] = { label = 'Bouteille vide', weight = 80, stack = true, close = true },
    ['cigarette_butt'] = { label = 'Mégot de cigarette', weight = 5, stack = true, close = true },
    ['newspaper'] = { label = 'Journal usagé', weight = 100, stack = true, close = true },
    ['food_leftover'] = { label = 'Restes de nourriture', weight = 120, stack = true, close = true },
    ['trash'] = { label = 'Déchets ménagers', weight = 200, stack = true, close = true },

    -- Yol_Admin (Outils de braquage persistants & Loots)
    ['laptop'] = { label = 'Laptop de Hack', weight = 2000, stack = false, close = true },
    ['printer'] = { label = 'Imprimante à Cartes', weight = 5000, stack = false, close = true },
    ['generator'] = { label = 'Générateur Électrique', weight = 15000, stack = false, close = true },
    ['fuelcan'] = { label = 'Bidon d\'essence', weight = 3000, stack = true, close = true },
    ['clone_card'] = { label = 'Carte Bancaire Clonée', weight = 50, stack = true, close = true },
    ['grinder2'] = { label = 'Meuleuse d\'angle', weight = 4000, stack = false, close = true },
    ['gold'] = { label = 'Lingot d\'Or', weight = 5000, stack = true, close = true },
    ['montre'] = { label = 'Montre de Luxe', weight = 100, stack = true, close = true },
    ['black_money'] = { label = 'Argent Sale', weight = 0, stack = true, close = false },

Yol_Bridge

Dépendance Noyau Dossier: [Depend]/Yol_Bridge

Yol_Bridge est la couche d'abstraction centrale pour toutes les ressources développées par Yol. Elle se charge d'unifier les appels au framework. Bien qu'elle comporte du code pour d'autres environnements, elle est ici configurée pour lier entièrement vos scripts à ESX Legacy.

Dépendances

Fonctionnalités

Configuration

Le fichier de configuration principal est esx_shim.lua et la détection s'effectue dans bridge.lua.

Yol_lib

Dépendance Noyau Dossier: [Depend]/Yol_lib

Bibliothèque de composants UI partagée, extraite de Yol_Admin. Elle regroupe les feuilles de style CSS, les polices (Inter, Montserrat, FontAwesome) et les scripts JavaScript permettant d'afficher des notifications premium stylisées, des boîtes de confirmation et des fenêtres modales avec le thème Yol_Script Orange (#F04C00).

Dépendances

Fonctionnalités & Raccourcis

Fichiers de Configuration

Yol_Admin

Système & Modération Dossier: Yol_Admin

Le panneau d'administration tout-en-un de Yol_Script. C'est le centre de contrôle total du serveur, regroupant 24 modules et panels visuels interactifs ainsi qu'un bot Discord Node.js autonome.

Dépendances

Détail de ce que fait Yol_Admin (Par Panel NUI)

1. Modération & Gestion des Joueurs

2. Économie & Flotte de Véhicules

3. Éditeurs Visuels (Créateurs d'environnements)

4. Gestion Serveur & Bot Discord

Fichiers de Configuration

Commandes & Raccourcis

Yol_Anticheat

Sécurité Dossier: Yol_Anticheat

Système anti-triche serveur rigoureux avec scan d'injection, détection de tricheurs en temps réel (vitesse, noclip, godmode, blacklist d'entités, anti-triggers) et création dynamique d'une Whitelist d'événements réseau sécurisée.

Dépendances

Détails des Protections

Fichiers de Configuration

Yol_Anticheat_Watchdog

Sécurité Dossier: Yol_Anticheat_Watchdog

Script de sécurité indépendant agissant comme un "chien de garde". Son seul but est de s'assurer que l'anti-triche Yol_Anticheat est toujours en cours d'exécution. Si un tricheur de niveau administrateur tente de stopper la ressource Yol_Anticheat, le Watchdog intercepte l'événement et la relance instantanément.

Dépendances

Fonctionnalités

Yol_Debugger

Système & Modération Dossier: [Others]/Yol_Debugger

Centralisateur de débogage. Il écoute les canaux système en continu pour détecter la moindre erreur fatale, crash ou exception de code, puis l'écrit dans un fichier log local et l'envoie sur Discord pour une correction immédiate.

Fonctionnalités

Yol_Clothing

Créateur & Boutiques Dossier: Yol_Clothing

Système unifié et esthétique pour la gestion complète de l'apparence des joueurs : création initiale du personnage, magasins de vêtements, salons de coiffure, tatoueurs addon, et garde-robe.

Dépendances

Fonctionnalités

Fichiers de Configuration & Commandes

Yol_Core

Rôleplay & Immersion Dossier: [Others]/Yol_Core

Regroupe un grand nombre de fonctionnalités immersives, d'animations d'ambiance et d'interactions physiques pour enrichir l'expérience de jeu.

Dépendances

Fonctionnalités

Fichiers de Configuration & Commandes

Yol_EMS

Métiers Dossier: [Others]/Yol_EMS

Script médical avancé intégrant un système de diagnostic visuel précis via un panel NUI représentant une silhouette humaine. Permet aux médecins de cibler précisément les blessures par zone corporelle et d'appliquer le traitement adéquat.

Dépendances

Fonctionnalités

Fichiers de Configuration & Commandes

Yol_Licenses

Services Dossier: [Others]/Yol_Licenses

Système de délivrance, d'affichage et de contrôle de permis et licences. Il intègre des interactions avec des PNJ pour passer des examens théoriques/pratiques et génère des cartes d'identité visuelles ultra-réalistes.

Dépendances

Fonctionnalités

Fichiers de Configuration

Yol_Phone

Rôleplay & Immersion Dossier: [Others]/Yol_Phone

Le smartphone ultime du serveur. Ce téléphone est entièrement indexé sur l'item d'inventaire physique. Si vous perdez, donnez ou vous faites voler votre téléphone, la carte SIM (numéro, messages, contacts, notes) suit l'item en temps réel.

Dépendances

Fonctionnalités & Applications

Fichiers de Configuration

Le téléphone Yol_Phone ne possède pas de fichier config.lua autonome. Ses paramètres d'API et d'hébergement sont définis globalement dans le fichier de convar général de la machine config.cfg :

Yol_Police

Métiers Dossier: [Others]/Yol_Police

Ressource d'interaction pour les forces de l'ordre. Elle regroupe un Quick Menu pour les officiers en service, un dispatch 911 civil, et un générateur de délits automatiques par des PNJ.

Dépendances

Fonctionnalités

Fichiers de Configuration

Yol_Speedometer

Dossier: [Others]/Yol_Speedometer

Compteur de vitesse moderne affiché en NUI en bas à droite lorsque vous montez dans un véhicule. Intègre la jauge d'essence, l'état moteur, les phares, et un système de ceinture de sécurité avec éjection.

Fichiers de Configuration

Yol_Cruisecontrol

Dossier: [Others]/Yol_Cruisecontrol

Régulateur de vitesse électronique permettant de bloquer l'allure de votre véhicule d'une simple pression de touche.

Dépendances

Fichiers de Configuration

Yol_Tchat

Dossier: [Others]/Yol_Tchat

Système de chat textuel enrichi. Son design moderne en glassmorphism floute l'arrière-plan et s'estompe après inactivité pour ne pas obstruer l'écran de jeu.

Dépendances

Fichiers de Configuration