TC ScriptDocumentation

Utilisation

Ouvrir le menu, gérer les options en jeu avec /gestioncontexte, champs d'une option, types d'action et pack intégré.

#Ouvrir le menu

ÉtapeAction
1Alt gauche (ou la touche choisie dans Paramètres → Touches → FiveM) : le curseur apparaît
2Clic droit sur un joueur, un PNJ, un véhicule, un objet ou le décor
3Choisis une option. Retour arrière ferme le menu

Config.OpenMode = 'hold' impose de maintenir la touche.

#Gestion en jeu : /gestioncontexte

Réservée aux admins. Chaque enregistrement est écrit en base et appliqué immédiatement à tous les joueurs connectés.

Panneau de gestion des options

OngletRôle
OptionsCréer, modifier, dupliquer, supprimer, activer ou non, tester l'action, capturer une cible (clic sur une entité : type et modèle sont remplis)
ScriptsMasquer, renommer ou réordonner les options ajoutées par d'autres scripts
IntégrationTous les exemples de code à copier ; chaque option a aussi un bouton Code Lua qui génère le code prêt à coller
Import / ExportJSON complet (sauvegarde, transfert entre serveurs)

#Champs d'une option

ChampRôle
typebutton, submenu ou separator
parentClé d'un sous-menu
target.typesworld, ped, player, vehicle, object, self (vide = tous)
target.modelsNoms ou hash ; l'option ne s'affiche que sur ces modèles
distanceDistance max joueur → point visé (0 = illimitée)
requirejobs { nom = gradeMin }, items { nom = qté }, admin, ace, inVehicle, onDuty
action.typeVoir ci-dessous

#Types d'action

TypeEffetLe handler reçoit
client_eventTriggerEvent(nom, ctx, args)(ctx, args)
server_eventTriggerServerEvent(nom, ctx, args)(ctx, args) + source
commandExecuteCommand(nom args)—
exportexports[res]:fn(ctx, args) côté client(ctx, args)
server_exportexports[res]:fn(src, ctx, args) côté serveur(src, ctx, args)

#Le contexte ctx

ChampContenu
entityTypeType de cible
entityEntité (côté client seulement)
netIdIdentifiant réseau
modelModèle
coordsCoordonnées visées
serverIdJoueur ciblé (identifiant serveur)
platePlaque (véhicule)
distanceDistance joueur → cible
Sécurité

server_export est revalidé par le serveur (existence de l'option, métier, objets, ACE, distance, modèle) à partir de la définition en base, jamais de ce qu'envoie le client. Les autres types s'exécutent côté client : le script qui reçoit un server_event doit lui-même vérifier ce qu'il autorise, comme pour tout événement réseau.

#Pack d'options intégrées

Équivalent du menu contextuel Vision, activé par défaut (Config.Pack). Sur Vision, les actions appellent les mêmes fonctions, commandes et événements que le core et lisent ses permissions staff (contextmenu, dev, devcontextmenu, revive, heal, freeze, warn, kick, ban). Sur les autres frameworks, seules les options génériques sont proposées et l'admin est vérifié par le serveur.

CibleOptions
JoueurFouiller (mains levées), Porter · Staff : menu admin, réanimer, soigner, message, inventaire, figer, avertir, expulser, bannir · Dev : armure
Soi-mêmeDétacher l'objet attaché, se nettoyer, combat on/off
VéhiculePortes (depuis l'intérieur), remorquage, coffre · Staff : siège, verrouiller, réparer, améliorer, personnaliser, supprimer, joueur au volant · Dev : mode drift
ObjetDécor (dupliquer / déplacer / supprimer) · Staff : copier nom / hash / entité / position, dupliquer, supprimer
PNJStaff : copier nom / hash / entité / position, dupliquer, supprimer
MondeStaff : soigner la zone, réparer la zone, poser un prop · Dev : copier les coordonnées, se téléporter, frappe orbitale

Frappe orbitale (monde → Dev) : compte à rebours de 3 s avec marqueur rouge sur le point visé (Retour arrière annule), puis 5 roquettes tombent de 200 m. Réglages : Config.Pack.OrbitalCountdown et Config.Pack.OrbitalDamage. Chaque frappe, suppression, téléportation et pose de prop est tracée dans la console serveur.

Non repris (liés à des systèmes internes du core) : s'asseoir sur les bancs, boombox / TV, emotes partagées, ajuster l'emote, menus métier (à recréer dans /gestioncontexte avec une condition de métier), laboratoires de drogue.

#Performances

Objectif : 0,00 ms au repos, ≤ 0,01 ms menu ouvert.

  • Aucun thread, aucune boucle, aucun timer tant que le menu est fermé.
  • Menu ouvert : ~7 natives par image ; le rayon de survol tourne toutes les 100 ms et est sauté quand le curseur ne bouge pas ; les messages NUI ne partent que si la cible change.
  • Les options sont évaluées à l'ouverture uniquement, jamais à chaque image.
  • Vision : le gros objet partagé est chargé une seule fois en arrière-plan, et les permissions staff passent par un callback léger rafraîchi au plus toutes les 60 s sans bloquer le menu.

Mesure : resmon 1 en jeu (F8), colonne tc-contextmenu.

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