MrPoulpi Labs
ox_target

Scripts disponibles

EN
Centre de documentation

Référence de configuration

Référence exhaustive de config.lua pour ox_target MrPoulpi Labs — types, valeurs par défaut de l’archive 1.17.2, unités, effets, contraintes du moteur et dépendances.

But : connaître chaque réglage de config.lua, sa valeur d’origine et son effet réel. Fichier à modifier : config.lua (chargé côté client et serveur). Redémarrez la ressource après modification.

Les tableaux ci-dessous sont générés depuis le même schéma que le configurateur : défauts, types et bornes y sont identiques. Une « contrainte moteur » vient du code ; une « recommandation » est un conseil du site.

Interface et debug

Paramètre Type Défaut Effet
Config.Debug boolean false Affiche les messages de debug du moteur dans la console (refus de permission, etc.).
Lu par : moteur protégé
Config.UI.vignette boolean false Assombrit les bords de l’écran pendant le ciblage. Le convar ox_target:vignette est prioritaire s’il est défini.
Lu par : client/state.lua

Les autres réglages d’interface (touche, maintien ou bascule, clic, contour) sont des convars : voir Convars.

Sélecteurs d’intégration

Les onze sélecteurs Config.Framework, Config.EmoteScript, Config.MedicalScript, Config.NotifyScript, Config.InputScript, Config.WeatherScript, Config.KeysScript, Config.BillingScript, Config.RepairScript, Config.AppearanceScript et Config.InventoryScript n’acceptent pas tous les mêmes valeurs. Leurs listes exactes et le comportement de chaque preset sont détaillés dans Intégrations.

Commandes

Utilisées par les presets « command » et en repli. %s reçoit un texte (nom d’emote, texte du /me) et %d l’ID serveur du joueur ciblé.

Paramètre Type Défaut Effet
Config.Commands.emote string 'e %s' Jouer une emote (presets command, ou repli si l’export rpemotes échoue).
Contrainte moteur : — Formatée avec string.format sans protection : un marqueur supplémentaire ou d’un autre type provoque une erreur Lua.
Lu par : bridge/client.lua
Config.Commands.sharedEmote string 'nearby %s' Emote partagée pour tous les presets d’emotes sauf custom.
Contrainte moteur : — Formatée avec string.format sans protection : un marqueur supplémentaire ou d’un autre type provoque une erreur Lua.
Lu par : bridge/client.lua
Config.Commands.cancelEmote string 'emotecancel' Annulation d’emote utilisée sans hook CancelEmote.
Contrainte moteur : — Formatée avec string.format sans protection : un marqueur supplémentaire ou d’un autre type provoque une erreur Lua.
Lu par : bridge/client.lua
Config.Commands.me string 'me %s' Commande /me utilisée sans hook Me (saisie, /me forcé, annonce PFC).
Contrainte moteur : — Formatée avec string.format sans protection : un marqueur supplémentaire ou d’un autre type provoque une erreur Lua.
Lu par : bridge/client.lua
Config.Commands.reviveSelf string 'revive me' MedicalScript = command, exécutée côté client.
Contrainte moteur : — Formatée avec string.format sans protection : un marqueur supplémentaire ou d’un autre type provoque une erreur Lua.
Lu par : bridge/client.lua
Config.Commands.healSelf string 'heal me' MedicalScript = command, exécutée côté client.
Contrainte moteur : — Formatée avec string.format sans protection : un marqueur supplémentaire ou d’un autre type provoque une erreur Lua.
Lu par : bridge/client.lua
Config.Commands.revivePlayer string 'revive %d' MedicalScript = command, exécutée dans la console serveur.
Contrainte moteur : — Formatée avec string.format sans protection : un marqueur supplémentaire ou d’un autre type provoque une erreur Lua.
Lu par : bridge/server.lua
Config.Commands.healPlayer string 'heal %d' MedicalScript = command, exécutée dans la console serveur.
Contrainte moteur : — Formatée avec string.format sans protection : un marqueur supplémentaire ou d’un autre type provoque une erreur Lua.
Lu par : bridge/server.lua

Groupes et permissions

Paramètre Type Défaut Effet
Config.AdminGroups string[] { 'admin', 'superadmin', 'owner' } Groupes reconnus par le niveau « admin » (et « staff »).
Lu par : moteur protégé, bridge/server.lua
Config.ModGroups string[] { 'mod' } Groupes ajoutés au niveau « staff ».
Lu par : moteur protégé, bridge/server.lua
Config.UseAcePermissions boolean false true : l’ACE ox_target.<clé> accorde aussi la permission correspondante, avant les groupes.
Lu par : moteur protégé
Config.Permissions table
{ staffMenu = 'staff', revive = 'admin',…{ staffMenu = 'staff', revive = 'admin', heal = 'admin', selfRevive = 'staff', selfHeal = 'staff', forceEmote = 'admin', forceMe = 'admin', weather = 'admin', giveKeys = 'admin', devTools = 'admin' }
Chaque clé vaut everyone, staff, admin, une liste de groupes, false, ou le nom d’une autre clé. Vous pouvez ajouter vos propres clés.
Lu par : moteur protégé

Le fonctionnement complet (niveaux, ACE, clés personnalisées, visibilité client) est expliqué dans Permissions et sécurité.

Fonctionnalités

Une fonctionnalité à false empêche la création des options intégrées correspondantes au démarrage et fait refuser, côté serveur, les actions qui la déclarent. Les fonctionnalités purement client (copier l’ID, voir l’ID, anti-punch, outils de copie) n’ont pas de contrôle serveur : les désactiver suffit à retirer l’option.

Paramètre Type Défaut Effet
Config.Features.copyId boolean true Builtin copy_id (client uniquement).
Lu par : moteur protégé
Config.Features.showPlayerId boolean true Builtin show_player_id (client uniquement).
Lu par : moteur protégé
Config.Features.copyEmote boolean true Builtin copy_emote et action serveur copy_emote.
Lu par : moteur protégé
Config.Features.billing boolean true Builtin send_bill. La facture elle-même est validée par le script de facturation.
Lu par : moteur protégé
Config.Features.rps boolean true Builtin rps_challenge et défis côté serveur.
Lu par : moteur protégé
Config.Features.antiPunch boolean true Case à cocher anti_punch (client uniquement).
Lu par : moteur protégé
Config.Features.slashTyre boolean true Builtin slash_tyre et action serveur.
Lu par : moteur protégé
Config.Features.trunk boolean true Builtin hide_in_trunk et réservation du coffre côté serveur.
Lu par : moteur protégé
Config.Features.lockpick boolean true Builtin lockpick_vehicle et action serveur.
Lu par : moteur protégé
Config.Features.repair boolean true Builtin repair_vehicle et action serveur.
Lu par : moteur protégé
Config.Features.giveKeys boolean true Builtin give_keys et action serveur.
Lu par : moteur protégé
Config.Features.vehicleDoors boolean true Options d’origine ox_target sur les véhicules (également soumises au convar ox_target:defaults).
Lu par : moteur protégé
Config.Features.weather boolean true Builtin weather_menu et actions météo serveur.
Lu par : moteur protégé
Config.Features.devTools boolean true Builtins dev_* ; seules les suppressions passent par le serveur.
Lu par : moteur protégé
Config.Features.medical boolean true Builtins admin_revive, admin_heal, self_revive, self_heal et actions serveur.
Lu par : moteur protégé
Config.Features.forceActions boolean true Builtins force_emote et force_me et actions serveur.
Lu par : moteur protégé

Vous pouvez ajouter vos propres clés et les référencer dans le champ feature d’une action serveur. Une clé absente de la table est considérée comme active.

Distances

Toutes en mètres. Une option sans distance prend Config.Distances[type de liste], sinon Config.Distances.default, sinon 3.0. Les listes modèles, zones et soi-même n’ont pas de clé dédiée et utilisent donc default. Pour Soi-même, la distance est sans effet : la cible est votre personnage.

Paramètre Type Défaut Effet
Config.Distances.default number
mètres
3.0 Listes modèles, zones et soi-même, et actions serveur personnalisées sans maxDistance.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua
Config.Distances.player number
mètres
3.0 PlayerInteractions et contrôle serveur de revive, heal, emote/me forcés et copie d’emote.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua
Config.Distances.vehicle number
mètres
3.0 VehicleInteractions et contrôle serveur du crochetage, de la réparation et des clés.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua
Config.Distances.ped number
mètres
3.0 PedInteractions.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua
Config.Distances.object number
mètres
3.0 ObjectInteractions.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua
Config.Distances.showId number
mètres
2.0 Référencée par D.showId dans config_interactions.lua.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua
Config.Distances.trunk number
mètres
2.0 Proximité du coffre côté client ; le serveur accepte cette valeur + tolérance + 2 m.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua
Config.Distances.slashTyre number
mètres
2.5 Option slash_tyre et contrôle serveur.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua
Config.Distances.rps number
mètres
3.0 Option rps_challenge et contrôle serveur du défi.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua
Config.Distances.devTools number
mètres
15.0 Contrôle serveur des suppressions d’entités.
Contrainte moteur : ≥ 0 — Une distance négative masque toujours l’option.
Recommandation : ≥ 0 ≤ 20 — Le rayon de ciblage part de la caméra et s’arrête à 20 m : au-delà, la valeur n’a plus d’effet pratique.
Lu par : moteur protégé, config_interactions.lua

Dans config_interactions.lua, local D = Config.Distances permet d’écrire distance = D.showId. Une clé ajoutée ici (par exemple atm = 1.5) est utilisable comme D.atm.

Sécurité et anti-spam

Paramètre Type Défaut Effet
Config.Security.distanceTolerance number
mètres
2.5 Marge ajoutée aux distances vérifiées par le serveur pour absorber la latence.
Contrainte moteur : ≥ 0 — Ajoutée telle quelle à la distance maximale.
Recommandation : ≥ 0 ≤ 5 — Une grande marge affaiblit le contrôle de distance.
Lu par : moteur protégé
Config.Security.actionCooldown integer
millisecondes
300 Délai minimum entre deux mêmes actions d’un joueur, sauf si l’action définit son propre cooldown.
Contrainte moteur : ≥ 0 — 0 désactive ce délai.
Lu par : moteur protégé
Config.Security.maxActionsPerSecond integer
nombre
10 Au-delà, la requête est ignorée et signalée comme suspecte (au plus une fois toutes les 5 s).
Contrainte moteur : ≥ 1 — À 0, toutes les actions serveur seraient refusées.
Recommandation : ≥ 5 ≤ 30 — Les permissions et le coffre comptent aussi dans cette limite.
Lu par : moteur protégé
Config.Security.permissionRefresh integer
millisecondes
60000 Intervalle entre deux demandes de la carte des permissions par le client.
Contrainte moteur : ≥ 1000 — Le serveur ignore les demandes plus rapprochées qu’une seconde.
Recommandation : ≥ 10000 — Un rythme rapide multiplie les requêtes sans bénéfice visible.
Lu par : moteur protégé
Config.Security.logSuspicious boolean true Affiche les requêtes suspectes dans la console serveur, sauf si le hook OnSuspiciousActivity est défini.
Lu par : bridge/server.lua

Le cooldown d’une action se cumule avec la limite par seconde : une requête refusée pour cooldown est ignorée silencieusement, une rafale au-delà de maxActionsPerSecond est signalée comme suspecte. Plusieurs actions intégrées ont leur propre cooldown (1 à 3 s), indiqué dans le tableau des builtins.

Médical et emotes

Paramètre Type Défaut Effet
Config.Medical.selfMode string 'client' Où s’exécute le revive/heal sur soi une fois la permission validée.
  • 'client' — Après validation serveur, le client appelle Bridge.ReviveSelf / HealSelf.
  • 'server' — Le serveur appelle Bridge.RevivePlayer / HealPlayer avec votre propre ID.
Lu par : moteur protégé
Config.Medical.nativeHealFallback boolean true Applique en plus vie max et nettoyage du sang après chaque heal.
Lu par : bridge/client.lua, bridge/server.lua
Config.Emotes.maxLength integer
caractères
50 Appliquée aux emotes copiées et forcées, côté client et serveur.
Contrainte moteur : ≥ 1 — Un nom vide est toujours refusé.
Lu par : moteur protégé
Config.Emotes.pattern string '^[%w_%-%.]+$' Motif Lua (pas une regex) que doit respecter un nom d’emote copié ou forcé.
Lu par : moteur protégé

Config.Emotes.pattern est un motif Lua, pas une expression régulière : %w désigne une lettre ou un chiffre, %- un tiret. Il s’applique aux emotes copiées et forcées ; une emote jouée directement par une option type = 'emote' n’est pas filtrée.

Véhicules

Paramètre Type Défaut Effet
Config.Vehicles.lockpick.jobs nil | string[] | { [métier] = grade } { 'mechanic', 'mechanic2', 'mechanic3' } nil = tout le monde. Une liste vide n’autorise personne. Format grades : { mechanic = 2 } = grade minimum.
Lu par : moteur protégé
Config.Vehicles.lockpick.item string | nil nil Vérifié côté serveur ; il n’est pas retiré par le crochetage.
Lu par : moteur protégé
Config.Vehicles.lockpick.duration integer
millisecondes
10000 Durée de la barre de progression, sans hook LockpickVehicle.
Contrainte moteur : ≥ 0 — Durée transmise à la barre de progression.
Lu par : bridge/client.lua
Config.Vehicles.lockpick.anim { dict, clip } { dict = 'amb@world_human_welding@male@base', clip = 'base' } Dictionnaire et clip joués pendant la barre de progression.
Lu par : bridge/client.lua
Config.Vehicles.repair.jobs nil | string[] | { [métier] = grade } { 'mechanic', 'mechanic2', 'mechanic3' } nil = tout le monde. Une liste vide n’autorise personne.
Lu par : moteur protégé
Config.Vehicles.repair.item string | nil 'repair_kit' Vérifié côté serveur avant la réparation.
Lu par : moteur protégé
Config.Vehicles.repair.removeItem boolean false Retire une unité de l’item côté serveur avant de lancer la réparation.
Sans item requis, ce réglage n’a aucun effet.
Lu par : moteur protégé, bridge/server.lua
Config.Vehicles.repair.duration integer
millisecondes
8000 Utilisée uniquement avec RepairScript = native.
Contrainte moteur : ≥ 0 — Durée transmise à la barre de progression.
Lu par : bridge/client.lua
Config.Vehicles.repair.anim { dict, clip } { dict = 'mini@repair', clip = 'fixing_a_ped' } Utilisée uniquement avec RepairScript = native.
Lu par : bridge/client.lua
Config.Vehicles.slashTyre.weapons string[]
{ 'WEAPON_KNIFE', 'WEAPON_SWITCHBLADE', …{ 'WEAPON_KNIFE', 'WEAPON_SWITCHBLADE', 'WEAPON_DAGGER', 'WEAPON_MACHETE', 'WEAPON_BOTTLE', 'WEAPON_BATTLEAXE', 'WEAPON_STONE_HATCHET' }
Armes acceptées pour crever un pneu, vérifiées par le client et le serveur.
Lu par : moteur protégé
Config.Vehicles.slashTyre.duration integer
millisecondes
3500 Durée de la barre de progression.
Contrainte moteur : ≥ 0 — Durée transmise à la barre de progression.
Lu par : moteur protégé
Config.Vehicles.slashTyre.maxTyreDistance number
mètres
1.1 Distance maximale entre le joueur et le pneu le plus proche.
Contrainte moteur : ≥ 0 — Mesurée depuis l’os de la roue.
Lu par : moteur protégé
Config.Vehicles.slashTyre.anim { dict, clip }
{ dict = 'melee@knife@streamed_core_fps'…{ dict = 'melee@knife@streamed_core_fps', clip = 'ground_attack_on_spot' }
Dictionnaire et clip ; le flag est fixé par le script.
Lu par : moteur protégé
Config.Vehicles.trunk.enterDuration integer
millisecondes
2000 Durée de la barre de progression avant d’entrer dans le coffre.
Contrainte moteur : ≥ 0 — Durée transmise à la barre de progression.
Lu par : moteur protégé
Config.Vehicles.trunk.exitKey integer 38 Index de contrôle GTA (38 = E). Le texte trunk_textui mentionne [E] : adaptez-le si vous changez la touche.
Contrainte moteur : ≥ 0 ≤ 360 — Index de contrôle GTA V.
Lu par : moteur protégé
Config.Vehicles.trunk.overlay boolean true Dessine un voile sombre tant que le joueur est dans le coffre.
Lu par : moteur protégé
Config.Vehicles.trunk.blacklistClasses { [n] = true }
{ [8] = true, [13] = true, [14] = true, …{ [8] = true, [13] = true, [14] = true, [15] = true, [16] = true, [21] = true }
Classes de véhicules (GetVehicleClass) sans coffre utilisable.
Lu par : moteur protégé
Config.Vehicles.trunk.blacklistModels string[]
{ 'wheelchair', 'prop_wheelchair_01', 'p…{ 'wheelchair', 'prop_wheelchair_01', 'prop_wheelchair_01_d', 'iak_wheelchair' }
Noms de modèles exclus (convertis en hash).
Lu par : moteur protégé
Config.Vehicles.trunk.exitEvents string[] { 'ox_target:extra:exitTrunk' } Événements client locaux qui font sortir du coffre, en plus de ox_target:exitTrunk.
Lu par : moteur protégé

Le format des métiers est le même partout : { 'mechanic' } (liste), { mechanic = 2 } (grade minimum), { mechanic = true } (tout grade) ou une chaîne 'mechanic'. Les métiers et items sont d’abord vérifiés côté client pour l’affichage, puis par le serveur avant l’action.

Facturation, Pierre Feuille Ciseaux, anti-punch, Dev Tools

Paramètre Type Défaut Effet
Config.Billing.excludedJobs string[] { 'unemployed' } Métiers qui ne voient pas l’option. Un joueur sans métier ne la voit pas non plus.
Lu par : moteur protégé
Config.Billing.societyPrefix string 'society_' Préfixe ajouté au métier pour le preset esx_billing.
Lu par : bridge/client.lua
Config.Billing.reasonMin integer
caractères
3 Longueur minimale du motif.
Contrainte moteur : ≥ 0 — Doit rester inférieure ou égale au maximum.
Lu par : moteur protégé
Config.Billing.reasonMax integer
caractères
60 Longueur maximale du motif.
Contrainte moteur : ≥ 1 — Doit rester supérieure ou égale au minimum.
Lu par : moteur protégé
Config.Billing.maxAmount integer 1000000 Montant maximal saisissable ; le minimum est 1.
Contrainte moteur : ≥ 1 — Le formulaire impose déjà un minimum de 1.
Lu par : moteur protégé
Config.RPS.inviteTimeout integer
millisecondes
30000 Délai avant qu’un défi sans réponse soit considéré comme refusé.
Contrainte moteur : ≥ 0 — Délai serveur.
Recommandation : ≥ 5000 ≤ 120000 — Laissez au joueur le temps de lire la demande.
Lu par : moteur protégé
Config.RPS.invincible boolean true Rend les deux joueurs invincibles pendant la partie.
Lu par : moteur protégé
Config.RPS.announceMe boolean true Fait un /me avec le choix joué (textes rps_me_*).
Lu par : moteur protégé
Config.AntiPunch.defaultEnabled boolean true État initial de la case anti_punch. L’état choisi par le joueur est ensuite mémorisé (KVP).
Lu par : moteur protégé
Config.DevTools.scanRadius number
mètres
2.0 Rayon de « Lister props proches (F8) ».
Contrainte moteur : ≥ 0 — Rayon autour du joueur.
Lu par : moteur protégé

Fenêtre Pierre Feuille Ciseaux

Quand un défi est accepté, chaque joueur voit une fenêtre de choix :

  • choix à la souris, ou au clavier avec 1 (pierre), 2 (feuille) et 3 (ciseaux) ;
  • Échap annule la partie tant qu’aucun coup n’a été joué ; après le choix, la fenêtre attend le coup de l’adversaire puis affiche Victoire, Défaite ou Égalité.

Les textes de la fenêtre viennent des clés rps_ui_* de locales/*.json (rps_ui_title, rps_ui_choose, rps_ui_waiting, rps_ui_finished, rps_ui_rock, rps_ui_paper, rps_ui_scissors, rps_ui_key_escape, rps_ui_cancel, rps_ui_pick, rps_ui_win, rps_ui_win_sub, rps_ui_lose, rps_ui_lose_sub, rps_ui_draw, rps_ui_draw_sub). Le fichier utilisé suit la langue d’ox_lib ; une clé absente ou vide est remplacée par le texte français intégré à la fenêtre. Dans l’archive, locales/en.json contient ces textes en français : traduisez-les dans ce fichier pour une interface en anglais.

Les notifications du défi (invitation, refus, annulation, annonce /me) restent dans Config.Messages (clés rps_*, voir Textes).

Météo et heure

Paramètre Type Défaut Effet
Config.Weather.useZones boolean true false si votre script météo ne gère pas de zones : le sous-menu Zones et l’info zone disparaissent.
Lu par : moteur protégé
Config.Weather.defaultZone string 'santos' Zone utilisée tant que le staff n’en a pas choisi une autre.
Utilisée seulement si useZones = true.
Lu par : moteur protégé
Config.Weather.localTools boolean true Sous-menu « Local player » (pluie et freeze locaux).
Lu par : moteur protégé
Config.Weather.labels table
{ root = { label = 'Météo / Heure', icon…{ root = { label = 'Météo / Heure', icon = 'fa-solid fa-cloud-sun', description = 'Gestion météo, heure et blackout' }, weather = { label = 'Météo', icon = 'fa-solid fa-cloud-sun' }, time = { label = 'Heure', icon = 'fa-solid fa-clock' }, zones = { label = 'Zones', icon = 'fa-solid fa-map-location-dot' }, blackout = { label = 'Blackout', icon = 'fa-solid fa-bolt' }, tools = { label = 'Outils météo', icon = 'fa-solid fa-screwdriver-wrench' }, localMenu = { label = 'Local player', icon = 'fa-solid fa-user' }, timePreset = { icon = 'fa-solid fa-clock' }, freezeOn = { label = 'Freeze ON', icon = 'fa-solid fa-snowflake' }, freezeOff = { label = 'Freeze OFF', icon = 'fa-solid fa-rotate' }, blackoutOn = { label = 'Blackout ON', icon = 'fa-solid fa-bolt' }, blackoutOff = { label = 'Blackout OFF', icon = 'fa-solid fa-bolt' }, blackoutToggle = { label = 'Blackout Toggle', icon = 'fa-solid fa-toggle-on' }, random = { label = 'Météo aléatoire', icon = 'fa-solid fa-dice' }, infoTime = { label = "Voir l'heure serveur", icon = 'fa-solid fa-clock' }, infoBlackout = { label = 'Voir état blackout', icon = 'fa-solid fa-circle-half-stroke' }, infoZone = { label = 'Info zone active', icon = 'fa-solid fa-map-location-dot' }, localRainOff = { label = 'Désactiver pluie (local)', icon = 'fa-solid fa-umbrella' }, localRainOn = { label = 'Activer pluie (local)', icon = 'fa-solid fa-umbrella' }, localFreezeOn = { label = 'Freeze local', icon = 'fa-solid fa-snowflake' }, localFreezeOff = { label = 'Unfreeze local', icon = 'fa-solid fa-rotate' } }
Libellés, icônes et description de chaque entrée générée par weather_menu.
Lu par : moteur protégé
Config.Weather.types table[]
{ { name = 'clear', label = 'Ensoleillé'…{ { name = 'clear', label = 'Ensoleillé', icon = 'fa-solid fa-sun', value = 'CLEAR' }, { name = 'extrasunny', label = 'Très ensoleillé', icon = 'fa-solid fa-sun', value = 'EXTRASUNNY' }, { name = 'clouds', label = 'Nuageux', icon = 'fa-solid fa-cloud', value = 'CLOUDS' }, { name = 'overcast', label = 'Couvert', icon = 'fa-solid fa-cloud', value = 'OVERCAST' }, { name = 'rain', label = 'Pluie', icon = 'fa-solid fa-cloud-rain', value = 'RAIN' }, { name = 'thunder', label = 'Orage', icon = 'fa-solid fa-bolt', value = 'THUNDER' }, { name = 'foggy', label = 'Brouillard', icon = 'fa-solid fa-smog', value = 'FOGGY' }, { name = 'snow', label = 'Neige', icon = 'fa-solid fa-snowflake', value = 'SNOW' }, { name = 'blizzard', label = 'Blizzard', icon = 'fa-solid fa-snowflake', value = 'BLIZZARD' }, { name = 'halloween', label = 'Halloween', icon = 'fa-solid fa-ghost', value = 'HALLOWEEN' } }
Seules ces valeurs sont acceptées par le serveur. value est transmise au script météo.
Contrainte moteur : ≤ 32 — value est limitée à 32 caractères par la validation serveur.
Lu par : moteur protégé
Config.Weather.times table[]
{ { label = '06h00', h = 6, m = 0 }, { l…{ { label = '06h00', h = 6, m = 0 }, { label = '12h00', h = 12, m = 0 }, { label = '15h00', h = 15, m = 0 }, { label = '20h00', h = 20, m = 0 }, { label = '00h00', h = 0, m = 0 } }
Le serveur n’accepte que 0–23 h et 0–59 min. Sans icône, labels.timePreset est utilisé.
Lu par : moteur protégé
Config.Weather.zones table[]
{ { name = 'santos', label = 'Los Santos…{ { name = 'santos', label = 'Los Santos', icon = 'fa-solid fa-city' }, { name = 'sandy', label = 'Sandy Shores', icon = 'fa-solid fa-mountain-sun' }, { name = 'paleto', label = 'Paleto Bay', icon = 'fa-solid fa-tree' }, { name = 'cayo', label = 'Cayo Perico', icon = 'fa-solid fa-umbrella-beach' } }
Zones proposées au staff ; name est transmis au script météo (64 caractères max).
Utilisées seulement si useZones = true.
Lu par : moteur protégé

Le serveur n’accepte que les valeurs présentes ici : une zone hors de Weather.zones, une météo hors de Weather.types, une heure hors de 0–23 ou des minutes hors de 0–59 sont refusées. Le contenu du sous-menu est généré par le builtin weather_menu ; sa structure est décrite dans Catégories et sous-menus.

Notifications

Paramètre Type Défaut Effet
Config.NotifyDuration integer
millisecondes
5000 Durée par défaut transmise au système de notifications.
Contrainte moteur : ≥ 0 — Transmise au système de notifications.
Lu par : bridge/client.lua
Config.DNotifColors table
{ info = 'BLEU', success = 'VERT', error…{ info = 'BLEU', success = 'VERT', error = 'ROUGE', warning = 'ORANGE', primary = 'VIOLET' }
Couleur dNotif par type de notification (NotifyScript = dNotif). Une valeur manquante utilise VIOLET.
Utilisé seulement avec NotifyScript = dNotif.
Lu par : bridge/client.lua

Textes

Tous les textes passent par Config.Messages. Les marqueurs (%s, %d, %02d, %.0f) sont remplacés par le script ; si un texte modifié ne correspond plus aux valeurs transmises, le moteur affiche le texte brut sans substitution au lieu de planter. Écrivez %% pour afficher un signe pourcent dans un texte formaté.

Clé Défaut Marqueurs Contexte
no_permission Vous n'avez pas la permission d'utiliser cette action. — Action serveur refusée faute de permission.
job_required Votre métier ne permet pas cette action. — Action serveur refusée : métier non autorisé.
item_required Il vous manque l'objet requis. — Action serveur refusée : item requis absent.
target_invalid Cible invalide. — Cible refusée par le serveur ou entité introuvable.
target_too_far La cible est trop loin. — Cible au-delà de la distance autorisée par le serveur.
feature_disabled Cette fonctionnalité est désactivée. — Action liée à une fonctionnalité désactivée ou indisponible.
cancelled Action annulée. — Saisie ou barre de progression annulée.
invalid_input Données invalides. — Saisie ou arguments refusés.
no_player Aucun joueur ciblé. — Option joueur sans ID serveur exploitable.
no_vehicle Aucun véhicule ciblé. — Option véhicule sans véhicule réseau exploitable.
my_id Votre ID est : %s
%s votre ID serveur
Builtin show_my_id.
player_id L'ID de ce joueur est : %s
%s ID serveur du joueur
Builtin show_player_id.
player_id_copied ID du joueur copié : %s
%s ID copié
Builtin copy_id.
me_title Faire un /me — Titre de la saisie /me.
me_label Texte du /me — Libellé du champ /me.
copy_emote_none Le joueur ne fait aucune emote à copier. — Copie d’emote sans emote exploitable.
copy_emote_ok Vous copiez l'emote : %s
%s nom de l’emote
Copie d’emote réussie.
revive_sent Revive envoyé sur le joueur %d.
%d ID du joueur
admin_revive réussi.
heal_sent Heal envoyé sur le joueur %d.
%d ID du joueur
admin_heal exécuté.
self_revived Vous avez été réanimé. — self_revive validé par le serveur.
self_healed Vous avez été soigné. — self_heal validé par le serveur.
medical_unavailable Aucun script médical configuré. — Aucun script médical utilisable pour admin_revive.
force_emote_title Forcer une emote — Titre de la saisie d’emote forcée.
force_emote_label Nom de l'emote — Libellé du champ d’emote forcée.
force_emote_sent Emote forcée sur le joueur %d.
%d ID du joueur
Emote forcée envoyée.
force_me_title Forcer un /me — Titre de la saisie de /me forcé.
force_me_label Texte du /me — Libellé du champ de /me forcé.
force_me_sent /me forcé sur le joueur %d.
%d ID du joueur
/me forcé envoyé.
bill_title Créer une facture — Titre du formulaire de facture.
bill_reason Motif — Libellé du champ motif.
bill_amount Montant ($) — Libellé du champ montant.
bill_sent Facture envoyée. — Présent dans config.lua mais non affiché par le code de cette archive.
non utilisé
knife_required Vous devez avoir une arme blanche en main. — Crevaison sans arme blanche autorisée.
tyre_too_far Vous devez être collé au pneu pour le crever. — Aucun pneu assez proche.
tyre_progress Vous crevez le pneu... — Barre de progression de crevaison.
tyre_done Vous avez crevé le pneu. — Crevaison envoyée.
trunk_incompatible Ce type de véhicule n'a pas de coffre utilisable. — Véhicule exclu (classe ou modèle).
trunk_occupied Le coffre est déjà occupé. — Coffre déjà réservé.
trunk_unavailable Impossible d'utiliser ce coffre. — Coffre verrouillé, trop loin ou véhicule détruit.
trunk_progress Vous vous cachez dans le coffre... — Barre de progression d’entrée.
trunk_inside Vous êtes caché dans le coffre. — Entrée réussie.
trunk_textui Vous êtes dans le coffre. [E] pour sortir. — Texte affiché dans le coffre. Il ne suit pas automatiquement Config.Vehicles.trunk.exitKey.
trunk_exit Vous sortez du coffre. — Sortie du coffre.
lockpick_progress Crochetage en cours... — Barre de progression du crochetage (preset).
lockpick_done Véhicule déverrouillé. — Crochetage réussi.
repair_progress Réparation en cours... — Barre de progression de réparation (RepairScript = native).
repair_done Véhicule réparé. — Réparation considérée comme réussie.
keys_given Clés du véhicule [%s] ajoutées.
%s plaque
Clés données.
keys_unavailable Aucun script de clés configuré. — Aucun script de clés utilisable.
anti_punch_on Protection anti-coups de poing activée. — Case anti-punch cochée.
anti_punch_off Protection anti-coups de poing désactivée. — Case anti-punch décochée.
weather_set Météo appliquée : %s (zone %s)
%s valeur météo
%s zone (ou -)
Météo appliquée.
weather_zone Zone active : %s
%s zone choisie
Zone active changée.
weather_time Heure serveur : %02dh%02d
%02d heure
%02d minute
Heure appliquée.
weather_time_info Heure serveur : %02dh%02d:%02d
%02d heure
%02d minute
%02d seconde
Info heure serveur.
weather_freeze_on Freeze time activé. — Freeze time activé.
weather_freeze_off Freeze time désactivé. — Freeze time désactivé.
weather_blackout_on Blackout activé. — Blackout activé.
weather_blackout_off Blackout désactivé. — Blackout désactivé.
weather_blackout_info Blackout : %s
%s ON ou OFF
Info blackout.
weather_random Météos aléatoires générées. — Météos aléatoires générées.
weather_zone_info Zone %s | Météo %s | Brouillard %s | Temp %s°C | Vent %s
%s zone
%s météo
%s brouillard
%s température
%s vent
Info zone active.
weather_error Erreur du script météo. — Le script météo a échoué ou a renvoyé false.
weather_unavailable Aucun script météo configuré. — Aucun script météo disponible côté serveur.
weather_local_rain_off Pluie désactivée localement. — Outil local.
weather_local_rain_on Pluie activée localement. — Outil local.
weather_local_freeze_on Freeze local activé. — Outil local.
weather_local_freeze_off Freeze local désactivé. — Outil local.
dev_copied Copié : %s
%s texte copié
Copie Dev Tools.
dev_full_copied Infos complètes copiées ! — Infos complètes d’un prop copiées.
dev_deleted Entité supprimée. — Entité supprimée.
dev_not_prop Cette entité n'est pas un prop. — Présent dans config.lua mais non affiché par le code de cette archive.
non utilisé
dev_cant_delete_player Impossible de supprimer un joueur. — Tentative de suppression d’un joueur.
dev_scan Props listés dans F8 (rayon %.0fm, %d trouvé(s))
%.0f rayon
%d nombre trouvé
Scan de props terminé.
dev_coords Coordonnées copiées ! — Coordonnées copiées.
dev_clone Apparence du PNJ appliquée ! — Modèle du PNJ appliqué.
dev_restore Apparence restaurée ! — Apparence restaurée.
dev_restore_fail Aucune apparence trouvée. — Restauration impossible.
rps_already Tu es déjà dans une partie ! — Vous êtes déjà en partie ou en attente.
rps_target_busy Ce joueur est déjà dans une partie. — La cible est déjà en partie.
rps_sent Défi envoyé, en attente... — Défi envoyé.
rps_invite ✊ %s te défie à Pierre Feuille Ciseaux !
%s nom du joueur
Texte de la confirmation reçue.
rps_invite_title Pierre Feuille Ciseaux — Titre de la confirmation (ignoré avec InputScript = dNotif).
rps_refused Défi refusé. — Défi refusé ou expiré.
rps_cancelled L'autre joueur a annulé la partie. — L’adversaire a annulé.
rps_disconnected L'autre joueur s'est déconnecté. — L’adversaire s’est déconnecté.
rps_me_rock joue ✊ Pierre — Annonce /me (RPS.announceMe).
rps_me_paper joue ✋ Feuille — Annonce /me (RPS.announceMe).
rps_me_scissors joue ✌️ Ciseaux — Annonce /me (RPS.announceMe).

Erreurs fréquentes

  • Fonction dans config.lua utilisant une native client : erreur côté serveur au démarrage. Déplacez-la dans config_client.lua.
  • Commands.revivePlayer sans %d : la commande est envoyée sans l’ID ; avec un marqueur en trop, string.format lève une erreur Lua.
  • Vehicles.trunk.exitKey modifié sans adapter Messages.trunk_textui : le texte continue d’afficher [E].
  • Billing.reasonMin supérieur à reasonMax : aucune facture ne peut être validée.

Rechercher

Tapez un terme : paramètre, export, erreur…