Bienvenue dans
Yol_Admin
Système d'administration tout-en-un pour FiveM. Menu admin complet, bot Discord natif, Rich Notifications, modules de braquage unifiés, gestion de zones, doorlock, props persistés, et bien plus — le tout configurable en jeu via un dashboard premium.
Dépendances
es_extended · ox_lib · oxmysql · Yol_Bridge
ox_inventory · ox_target · ox_doorlock · mVehicle · mGarage · pefcl
Étapes d'installation
Placer la ressource
Copier le dossier Yol_Admin dans resources/ de votre serveur FiveM.
Ajouter au server.cfg
Ajouter ensure Yol_Admin après vos dépendances (oxmysql, ox_lib, es_extended).
Tables SQL
Les tables SQL sont créées automatiquement par oxmysql au premier démarrage.
Ajouter les items requis
Ajouter les items du tableau ci-dessous dans ox_inventory/data/items.lua.
Permissions ACE
Dans server.cfg, déclarer un admin :
add_ace group.admin command allow add_principal identifier.discord:VOTRE_DISCORD_ID group.admin
Yol_Admin tente d'auto-détecter les frameworks installés (inventory, target, garage, vehicle, banking). Vous pouvez forcer un choix précis ou désactiver l'auto-détection dans shared/config.lua.
Clés principales de shared/config.lua
| Clé | Description |
|---|---|
Config.Locale | Langue : 'fr' ou 'en' |
Config.ServerName | Nom affiché du serveur |
Config.AdminGroups | Groupes ACE autorisés à ouvrir le menu |
Config.AutoDetectDependencies | Auto-détection des frameworks au démarrage |
Config.Dependencies | Mapping manuel : inventory, target, garage, vehicle, banking, vehicleKeys |
Config.Modules | Activation/désactivation par module (table de bools) |
Config.ModulePermissions | Permission ACE requise pour chaque module |
Config.Weapons | Liste des armes du panel d'attribution |
Config.TargetOptions | Options à exposer via ox_target (Player/Vehicle/Ped/Object) |
Config.NotifDefaults | Image/durée/icône par défaut + compatibilité ESX/ox_lib |
Config.UseYolAnticheat | Si true, expose un hook pour Yol_Anticheat |
data/robbery_config.json et survivent aux reboots du serveur.
SetResourceKvp) — ils survivent aux reloads et déconnexions.
Pour désactiver un panel : Config.Modules['nom'] = false. Pour restreindre l'accès : Config.ModulePermissions['nom'] = 'permission'.
Reconfigurables dans Configurations > Raccourcis Clavier, ou dans le menu FiveM natif (ESC > Paramètres > Affectations clavier > FiveM).
CLIENT ShowRichNotification
Affiche une Rich Notification (image, vidéo MP4 ou YouTube).
exports.Yol_Admin:ShowRichNotification({ title = "TITRE", message = "Description", image = "https://example.com/img.png", -- optionnel video = "https://example.com/vid.mp4", -- optionnel icon = "fa-solid fa-bell", -- optionnel duration = 5000 -- ms, optionnel })
SERVER HasPermission
Vérifie si un joueur possède une permission précise (groupe ACE ou perm custom).
local ok = exports.Yol_Admin:HasPermission(source, 'admin.access') if ok then -- Joueur autorisé end
SERVER GetUserGroups
Récupère la liste des groupes ACE/custom d'un joueur par sa license.
local groups = exports.Yol_Admin:GetUserGroups('license:abc123') -- Retourne : { ['group.admin'] = true, ... }
Yol_Admin:client:ShowRichNotification
Server → Client. Envoyer une notification premium à un joueur depuis n'importe quelle ressource.
TriggerClientEvent('Yol_Admin:client:ShowRichNotification', source, { title = "BIENVENUE", message = "Profitez bien du serveur !", image = "https://example.com/welcome.png" })
Config.NotifDefaults.compatibility = true (par défaut), les appels
ESX.ShowNotification, ESX.ShowAdvancedNotification et
lib.notify sont automatiquement convertis en Rich Notifications.
SERVER
| Signature | Description |
|---|---|
IsStaffMenuOpen(src) | Retourne true si le menu admin est ouvert. |
IsStaffOnTab(src, tab) | Retourne true si le staff est sur l'onglet donné. |
GetStaffActiveTab(src) | Retourne le nom de l'onglet actif. |
GetCharacterRPName(playerId) | Prénom + nom RP via ESX. |
LogAction(adminId, action, details, targetId) | Enregistre une ligne dans le journal d'actions admin. |
CreateSocietyAccount(source, name, label) | Crée un compte société (PEFCL ou ESX). |
RM_ServerGetConfig(name) | Lit un convar du Robbery Manager (avec fallback). |
RM_ServerGetConfigInt(name) | Variante int. |
RM_ServerModuleEnabled(moduleName) | Vérifie si un module robbery est actif. |
BroadcastAnnouncements() | Force un re-broadcast des annonces actives. |
CLIENT
| Signature | Description |
|---|---|
ShowRichNotification(data) | Identique à l'export. |
HandleSelfAction(action, data) | Action sur soi : noclip, godmode, invisible. |
HandleVehicleAction(action, data) | Action sur le véhicule courant : fix, delete, unlock... |
RM_ClientGetConfig(name, default) | Lit la config robbery côté client. |
RM_ClientModuleEnabled(moduleName) | Vérifie si un module est actif. |
OpenNUIContextMenu(title, items) | Ouvre un menu contextuel NUI personnalisable. |
ox_inventory/data/items.lua['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 },
Étapes de configuration
Ouvrir le menu Yol_Admin
Appuyer sur F6.
Aller dans Discord Bot
Onglet Discord Bot dans la sidebar.
Renseigner les informations
Token · Guild ID · Role Admin ID · Channel Logs
Sauvegarder et démarrer
Cliquer sur Sauver puis Démarrer.
Inviter le bot
Inviter le bot avec les intents GUILDS, GUILD_MEMBERS, MESSAGE_CONTENT.