TC ScriptDocumentation

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

OptionDéfautRôle
Config.RayDistance60.0Portée maximale du rayon depuis la caméra (m)
Config.DefaultDistance6.0Distance joueur → point visé si l'option n'en précise pas (0 = illimité)
Config.RayFlags31Ce que le rayon touche : 1 décor + 2 véhicules + 4/8 PNJ + 16 objets
Config.HoverInterval100Millisecondes entre deux rayons de survol
Config.EdgeScrolltrueTourner 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é

OptionRôle
Config.ServerDistanceToleranceMarge (m) sur la vérification de distance côté serveur (actions server_export)
Config.ManageAceACE requis pour /gestioncontexte (nil = Config.Bridge.AdminAce / groupes admin)
Config.AllowedActionTypesTypes d'action autorisables à la création : client_event, server_event, command, export, server_export
Config.MaxOptionsNombre 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.

Dernière mise à jour : 7 novembre 2026© 2026 TC Script