Configuration
Les options de config.lua : touche, ciblage, sécurité, pack d'options intégré et bridge.
#Langue et commande
Lua
Config.Locale = 'fr' -- messages Lua : 'fr' | 'en' (l'interface NUI est en français)
Config.Command = 'gestioncontexte' -- commande de gestion en jeu (admins)#Ouverture
Lua
Config.OpenMode = 'toggle' -- 'toggle' (appui = ouvre / ferme) ou 'hold' (maintenir la touche)
Config.DefaultKey = 'LMENU' -- Alt gauche ; chaque joueur peut la changer dans Paramètres > Touches > FiveM#Ciblage
| Option | Défaut | Rôle |
|---|---|---|
Config.RayDistance | 60.0 | Portée maximale du rayon depuis la caméra (m) |
Config.DefaultDistance | 6.0 | Distance joueur → point visé si l'option n'en précise pas (0 = illimité) |
Config.RayFlags | 31 | Ce que le rayon touche : 1 décor + 2 véhicules + 4/8 PNJ + 16 objets |
Config.HoverInterval | 100 | Millisecondes entre deux rayons de survol |
Config.EdgeScroll | true | Tourner la caméra en poussant le curseur sur le bord de l'écran |
#Surbrillance de l'entité survolée
Lua
Config.Highlight = { enabled = true, r = 115, g = 132, b = 232, a = 255 }#Sécurité
| Option | Rôle |
|---|---|
Config.ServerDistanceTolerance | Marge (m) sur la vérification de distance côté serveur (actions server_export) |
Config.ManageAce | ACE requis pour /gestioncontexte (nil = Config.Bridge.AdminAce / groupes admin) |
Config.AllowedActionTypes | Types d'action autorisables à la création : client_event, server_event, command, export, server_export |
Config.MaxOptions | Nombre maximum d'options (défaut 400) |
Durcir un serveur
Mets à false les types d'action dont tu n'as pas besoin dans Config.AllowedActionTypes (par exemple command) : ils ne pourront plus être créés depuis le panneau.
#Options déclarées dans le fichier
Une façon d'ajouter des options sans le panneau ni le code d'un script. Elles sont en lecture seule et relues à chaque démarrage.
Lua
Config.Options = {
{ key = 'rumeur', label = 'Parler', icon = 'user', types = { 'ped' }, distance = 3.0,
serverEvent = 'monscript:parler', args = { sujet = 'rumeur' } },
{ key = 'coffre', label = 'Ouvrir le coffre', icon = 'box', types = { 'vehicle' }, groups = { police = 0 },
export = 'monscript.ouvrirCoffre' },
}#Pack d'options intégrées
Chaque groupe se coupe séparément. Les options « staff » exigent un droit admin.
Lua
Config.Pack = {
Enabled = true,
Player = true, -- fouiller, porter, détacher un objet, se nettoyer, combat on/off
Vehicle = true, -- portes, remorque, coffre
Object = true, -- décor (dupliquer / déplacer / supprimer)
Staff = true, -- sous-menus « Staff » : joueur, PNJ, véhicule, objet, monde
Dev = true, -- sous-menus « Dev » : armure, mode drift, copier coords, téléport, frappe orbitale
Vision = true, -- appelle les fonctions / commandes / événements du core Vision quand il est présent
OrbitalCountdown = 3, -- secondes avant la frappe orbitale (0 = immédiat) ; Retour arrière annule
OrbitalDamage = 5000,
DevAce = nil, -- ACE supplémentaire exigé pour les options Dev hors Vision
}Le détail du pack est sur la page Utilisation.
#Bridge
Lua
Config.Bridge = {
Framework = 'auto', -- auto | vision | qbox | qbcore | esx | standalone
Inventory = 'auto',
Target = 'auto',
Society = 'auto',
Callbacks = 'auto',
Debug = false,
Admins = {}, -- identifiants autorisés (ex. 'license:xxxx')
AdminAce = 'command', -- ACE considéré comme admin
Standalone = {}, -- hooks standalone (getJob, ...)
}#Fichier complet
Afficher config.lua (78 lignes)
config.luaTélécharger
Config = {}
-- ═══════════════════════════════════════════════════════════════════════════
-- TC Context Menu - configuration / settings
-- ═══════════════════════════════════════════════════════════════════════════
Config.Locale = 'fr' -- messages Lua : 'fr' | 'en' (l'interface NUI est en français)
-- Commande de gestion en jeu (admins) / in-game management command (admins)
Config.Command = 'gestioncontexte'
-- Ouverture : 'toggle' (appui = ouvre/ferme) ou 'hold' (maintenir la touche)
-- Opening: 'toggle' (press to open/close) or 'hold' (keep key pressed)
Config.OpenMode = 'toggle'
Config.DefaultKey = 'LMENU' -- Alt gauche ; chaque joueur peut la changer dans Paramètres > Touches > FiveM
-- Ciblage / targeting
Config.RayDistance = 60.0 -- portée max du rayon depuis la caméra (m)
Config.DefaultDistance = 6.0 -- distance joueur -> point visé si l'option n'en précise pas (0 = illimité)
Config.RayFlags = 31 -- 1 map + 2 véhicules + 4/8 peds + 16 objets
Config.HoverInterval = 100 -- ms entre deux rayons de survol
Config.EdgeScroll = true -- tourner la caméra en poussant le curseur sur le bord de l'écran
-- Surbrillance de l'entité survolée / hovered entity outline
Config.Highlight = { enabled = true, r = 115, g = 132, b = 232, a = 255 }
-- Sécurité / security
Config.ServerDistanceTolerance = 6.0 -- marge (m) sur la vérif de distance côté serveur (actions `server_export`)
Config.ManageAce = nil -- ACE requis pour /gestioncontexte (nil = Config.Bridge.AdminAce / groupes admin)
Config.AllowedActionTypes = { -- types d'action autorisables à la création
client_event = true, -- TriggerEvent(nom, ctx, args) (client)
server_event = true, -- TriggerServerEvent(nom, ctx, args) (client -> serveur)
command = true, -- ExecuteCommand(nom .. args) (client)
export = true, -- exports[res]:fn(ctx, args) (client)
server_export = true, -- exports[res]:fn(src, ctx, args) (serveur, revalidé)
}
Config.MaxOptions = 400
-- ─── Options déclarées ici (facultatif) ─────────────────────────────────────
-- Autre façon de les ajouter : /gestioncontexte (en base, permanent) ou depuis un script (voir README / init.lua).
-- Mêmes champs que dans le panneau ; lecture seule, rechargées à chaque démarrage. Exemple :
Config.Options = {
-- { key = 'rumeur', label = 'Parler', icon = 'user', types = { 'ped' }, distance = 3.0,
-- serverEvent = 'monscript:parler', args = { sujet = 'rumeur' } },
-- { key = 'coffre', label = 'Ouvrir le coffre', icon = 'box', types = { 'vehicle' }, groups = { police = 0 },
-- export = 'monscript.ouvrirCoffre' },
}
-- ─── Pack d'options intégrées (équivalent du menu contextuel Vision) ───────
-- Chaque groupe peut être coupé. Les options « staff » exigent un droit admin :
-- Vision : permissions du panneau staff (contextmenu / dev / devcontextmenu...), lues côté client
-- autres : admin vérifié par le serveur (ACE / groupe, voir Config.Bridge.AdminAce)
Config.Pack = {
Enabled = true,
Player = true, -- fouiller, porter, détacher un objet, se nettoyer, combat on/off
Vehicle = true, -- portes, remorque, coffre
Object = true, -- décor (dupliquer / déplacer / supprimer)
Staff = true, -- sous-menus « Staff » : joueur, PNJ, véhicule, objet, monde
Dev = true, -- sous-menus « Dev » : armure, mode drift, copier coords, téléport, frappe orbitale
Vision = true, -- appelle les fonctions/commandes/événements du core Vision quand il est présent
OrbitalCountdown = 3, -- secondes avant la frappe orbitale (0 = immédiat) ; Retour arrière annule
OrbitalDamage = 5000,
DevAce = nil, -- ACE supplémentaire exigé pour les options Dev hors Vision (nil = admin suffit)
}
-- ─── Couche de compatibilité framework / framework compatibility ──────────
Config.Bridge = {
Framework = 'auto', -- auto | vision | qbox | qbcore | esx | standalone
Inventory = 'auto',
Target = 'auto',
Society = 'auto',
Callbacks = 'auto',
Debug = false,
Admins = {}, -- identifiants autorisés (ex: 'license:xxxx') / allowed identifiers
AdminAce = 'command', -- ACE considéré comme admin / ACE treated as admin
Standalone = {}, -- hooks standalone (getJob, ...)
}#Thème
Le thème est celui de tc-ui (variables --tc-* du kit, voir Kit NUI). Seuls les styles du menu flottant sont dans web/ctx.css.