Configuration reference
Exhaustive config.lua reference for ox_target by MrPoulpi Labs — types, 1.17.2 archive defaults, units, effects, engine constraints and dependencies.
Goal: know every config.lua setting, its original value and its real effect.
File to edit: config.lua (loaded client and server side). Restart the resource after a change.
The tables below are generated from the same schema as the configurator: defaults, types and bounds are identical. An “engine constraint” comes from the code; a “recommendation” is advice from this site.
Interface and debug
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.Debug | boolean | false | Prints engine debug messages to the console (permission refusals, etc.). Read by: protected engine |
Config.UI.vignette | boolean | false | Darkens the screen edges while targeting. The ox_target:vignette convar takes precedence when set. Read by: client/state.lua |
Other interface settings (key, hold or toggle, click, outline) are convars: see Convars.
Integration selectors
The eleven selectors Config.Framework, Config.EmoteScript, Config.MedicalScript, Config.NotifyScript, Config.InputScript, Config.WeatherScript, Config.KeysScript, Config.BillingScript, Config.RepairScript, Config.AppearanceScript and Config.InventoryScript do not all accept the same values. Their exact lists and each preset’s behaviour are detailed in Integrations.
Commands
Used by “command” presets and as fallback. %s receives text (emote name, /me text) and %d the targeted player’s server ID.
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.Commands.emote | string | 'e %s' | Play an emote (command presets, or fallback when the rpemotes export fails). Engine constraint: — Formatted with an unprotected string.format: an extra marker or a marker of another type raises a Lua error. Read by: bridge/client.lua |
Config.Commands.sharedEmote | string | 'nearby %s' | Shared emote for every emote preset except custom. Engine constraint: — Formatted with an unprotected string.format: an extra marker or a marker of another type raises a Lua error. Read by: bridge/client.lua |
Config.Commands.cancelEmote | string | 'emotecancel' | Emote cancel used without a CancelEmote hook. Engine constraint: — Formatted with an unprotected string.format: an extra marker or a marker of another type raises a Lua error. Read by: bridge/client.lua |
Config.Commands.me | string | 'me %s' | /me command used without a Me hook (input, forced /me, RPS announcement). Engine constraint: — Formatted with an unprotected string.format: an extra marker or a marker of another type raises a Lua error. Read by: bridge/client.lua |
Config.Commands.reviveSelf | string | 'revive me' | MedicalScript = command, run client side. Engine constraint: — Formatted with an unprotected string.format: an extra marker or a marker of another type raises a Lua error. Read by: bridge/client.lua |
Config.Commands.healSelf | string | 'heal me' | MedicalScript = command, run client side. Engine constraint: — Formatted with an unprotected string.format: an extra marker or a marker of another type raises a Lua error. Read by: bridge/client.lua |
Config.Commands.revivePlayer | string | 'revive %d' | MedicalScript = command, run in the server console. Engine constraint: — Formatted with an unprotected string.format: an extra marker or a marker of another type raises a Lua error. Read by: bridge/server.lua |
Config.Commands.healPlayer | string | 'heal %d' | MedicalScript = command, run in the server console. Engine constraint: — Formatted with an unprotected string.format: an extra marker or a marker of another type raises a Lua error. Read by: bridge/server.lua |
Groups and permissions
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.AdminGroups | string[] | { 'admin', 'superadmin', 'owner' } | Groups matched by the “admin” level (and “staff”). Read by: protected engine, bridge/server.lua |
Config.ModGroups | string[] | { 'mod' } | Groups added to the “staff” level. Read by: protected engine, bridge/server.lua |
Config.UseAcePermissions | boolean | false | true: the ox_target.<key> ACE also grants the matching permission, before groups. Read by: protected engine |
Config.Permissions | table |
| Each key is everyone, staff, admin, a list of groups, false, or the name of another key. You can add your own keys. Read by: protected engine |
The complete behaviour (levels, ACE, custom keys, client visibility) is explained in Permissions and security.
Features
A feature set to false prevents the matching built-in options from being created at start and makes the server refuse the actions that declare it. Purely client features (copy ID, show ID, anti-punch, copy tools) have no server check: disabling them is enough to remove the option.
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.Features.copyId | boolean | true | copy_id built-in (client only). Read by: protected engine |
Config.Features.showPlayerId | boolean | true | show_player_id built-in (client only). Read by: protected engine |
Config.Features.copyEmote | boolean | true | copy_emote built-in and copy_emote server action. Read by: protected engine |
Config.Features.billing | boolean | true | send_bill built-in. The invoice itself is validated by the billing script. Read by: protected engine |
Config.Features.rps | boolean | true | rps_challenge built-in and server-side challenges. Read by: protected engine |
Config.Features.antiPunch | boolean | true | anti_punch checkbox (client only). Read by: protected engine |
Config.Features.slashTyre | boolean | true | slash_tyre built-in and server action. Read by: protected engine |
Config.Features.trunk | boolean | true | hide_in_trunk built-in and server-side trunk reservation. Read by: protected engine |
Config.Features.lockpick | boolean | true | lockpick_vehicle built-in and server action. Read by: protected engine |
Config.Features.repair | boolean | true | repair_vehicle built-in and server action. Read by: protected engine |
Config.Features.giveKeys | boolean | true | give_keys built-in and server action. Read by: protected engine |
Config.Features.vehicleDoors | boolean | true | Original ox_target vehicle options (also subject to the ox_target:defaults convar). Read by: protected engine |
Config.Features.weather | boolean | true | weather_menu built-in and weather server actions. Read by: protected engine |
Config.Features.devTools | boolean | true | dev_* built-ins; only deletions go through the server. Read by: protected engine |
Config.Features.medical | boolean | true | admin_revive, admin_heal, self_revive, self_heal built-ins and server actions. Read by: protected engine |
Config.Features.forceActions | boolean | true | force_emote and force_me built-ins and server actions. Read by: protected engine |
You can add your own keys and reference them in the feature field of a server action. A key missing from the table counts as enabled.
Distances
All in metres. An option without distance uses Config.Distances[list type], otherwise Config.Distances.default, otherwise 3.0. Model, zone and self lists have no dedicated key and therefore use default. For Self, distance has no effect: the target is your character.
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.Distances.default | numbermetres | 3.0 | Model, zone and self lists, and custom server actions without maxDistance. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
Config.Distances.player | numbermetres | 3.0 | PlayerInteractions and server check for revive, heal, forced emote/me and emote copy. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
Config.Distances.vehicle | numbermetres | 3.0 | VehicleInteractions and server check for lockpick, repair and keys. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
Config.Distances.ped | numbermetres | 3.0 | PedInteractions. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
Config.Distances.object | numbermetres | 3.0 | ObjectInteractions. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
Config.Distances.showId | numbermetres | 2.0 | Referenced by D.showId in config_interactions.lua. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
Config.Distances.trunk | numbermetres | 2.0 | Client trunk proximity; the server accepts this value + tolerance + 2 m. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
Config.Distances.slashTyre | numbermetres | 2.5 | slash_tyre option and server check. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
Config.Distances.rps | numbermetres | 3.0 | rps_challenge option and server challenge check. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
Config.Distances.devTools | numbermetres | 15.0 | Server check for entity deletions. Engine constraint: ≥ 0 — A negative distance always hides the option. Recommendation: ≥ 0 ≤ 20 — The targeting ray starts at the camera and stops at 20 m: beyond that, the value has no practical effect. Read by: protected engine, config_interactions.lua |
In config_interactions.lua, local D = Config.Distances lets you write distance = D.showId. A key added here (for example atm = 1.5) can be used as D.atm.
Security and anti-spam
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.Security.distanceTolerance | numbermetres | 2.5 | Margin added to server-checked distances to absorb latency. Engine constraint: ≥ 0 — Added as is to the maximum distance. Recommendation: ≥ 0 ≤ 5 — A large margin weakens the distance check. Read by: protected engine |
Config.Security.actionCooldown | integermilliseconds | 300 | Minimum delay between two identical actions from a player, unless the action defines its own cooldown. Engine constraint: ≥ 0 — 0 disables this delay. Read by: protected engine |
Config.Security.maxActionsPerSecond | integercount | 10 | Beyond this, the request is ignored and reported as suspicious (at most once every 5 s). Engine constraint: ≥ 1 — At 0, every server action would be refused. Recommendation: ≥ 5 ≤ 30 — Permission and trunk requests also count toward this limit. Read by: protected engine |
Config.Security.permissionRefresh | integermilliseconds | 60000 | Interval between two permission map requests from the client. Engine constraint: ≥ 1000 — The server ignores requests closer than one second. Recommendation: ≥ 10000 — A fast pace multiplies requests without visible benefit. Read by: protected engine |
Config.Security.logSuspicious | boolean | true | Prints suspicious requests to the server console, unless the OnSuspiciousActivity hook is defined. Read by: bridge/server.lua |
An action’s cooldown adds up with the per-second limit: a request refused for cooldown is silently ignored, a burst beyond maxActionsPerSecond is reported as suspicious. Several built-in actions have their own cooldown (1 to 3 s), shown in the built-ins table.
Medical and emotes
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.Medical.selfMode | string | 'client' | Where self revive/heal runs once the permission is validated.
Read by: protected engine |
Config.Medical.nativeHealFallback | boolean | true | Also applies max health and blood cleanup after every heal. Read by: bridge/client.lua, bridge/server.lua |
Config.Emotes.maxLength | integercharacters | 50 | Applied to copied and forced emotes, client and server side. Engine constraint: ≥ 1 — An empty name is always refused. Read by: protected engine |
Config.Emotes.pattern | string | '^[%w_%-%.]+$' | Lua pattern (not a regex) a copied or forced emote name must match. Read by: protected engine |
Config.Emotes.pattern is a Lua pattern, not a regular expression: %w means a letter or digit, %- a dash. It applies to copied and forced emotes; an emote played directly by a type = 'emote' option is not filtered.
Vehicles
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.Vehicles.lockpick.jobs | nil | string[] | { [job] = grade } | { 'mechanic', 'mechanic2', 'mechanic3' } | nil = everyone. An empty list allows nobody. Grade format: { mechanic = 2 } = minimum grade. Read by: protected engine |
Config.Vehicles.lockpick.item | string | nil | nil | Checked server side; it is not removed by lockpicking. Read by: protected engine |
Config.Vehicles.lockpick.duration | integermilliseconds | 10000 | Progress bar duration, without a LockpickVehicle hook. Engine constraint: ≥ 0 — Duration passed to the progress bar. Read by: bridge/client.lua |
Config.Vehicles.lockpick.anim | { dict, clip } | { dict = 'amb@world_human_welding@male@base', clip = 'base' } | Dictionary and clip played during the progress bar. Read by: bridge/client.lua |
Config.Vehicles.repair.jobs | nil | string[] | { [job] = grade } | { 'mechanic', 'mechanic2', 'mechanic3' } | nil = everyone. An empty list allows nobody. Read by: protected engine |
Config.Vehicles.repair.item | string | nil | 'repair_kit' | Checked server side before repairing. Read by: protected engine |
Config.Vehicles.repair.removeItem | boolean | false | Removes one unit of the item server side before starting the repair. Without a required item, this setting has no effect. Read by: protected engine, bridge/server.lua |
Config.Vehicles.repair.duration | integermilliseconds | 8000 | Only used with RepairScript = native. Engine constraint: ≥ 0 — Duration passed to the progress bar. Read by: bridge/client.lua |
Config.Vehicles.repair.anim | { dict, clip } | { dict = 'mini@repair', clip = 'fixing_a_ped' } | Only used with RepairScript = native. Read by: bridge/client.lua |
Config.Vehicles.slashTyre.weapons | string[] |
| Weapons accepted to slash a tyre, checked by the client and the server. Read by: protected engine |
Config.Vehicles.slashTyre.duration | integermilliseconds | 3500 | Progress bar duration. Engine constraint: ≥ 0 — Duration passed to the progress bar. Read by: protected engine |
Config.Vehicles.slashTyre.maxTyreDistance | numbermetres | 1.1 | Maximum distance between the player and the closest tyre. Engine constraint: ≥ 0 — Measured from the wheel bone. Read by: protected engine |
Config.Vehicles.slashTyre.anim | { dict, clip } |
| Dictionary and clip; the flag is set by the script. Read by: protected engine |
Config.Vehicles.trunk.enterDuration | integermilliseconds | 2000 | Progress bar duration before entering the trunk. Engine constraint: ≥ 0 — Duration passed to the progress bar. Read by: protected engine |
Config.Vehicles.trunk.exitKey | integer | 38 | GTA control index (38 = E). The trunk_textui text mentions [E]: adapt it if you change the key. Engine constraint: ≥ 0 ≤ 360 — GTA V control index. Read by: protected engine |
Config.Vehicles.trunk.overlay | boolean | true | Draws a dark overlay while the player is in the trunk. Read by: protected engine |
Config.Vehicles.trunk.blacklistClasses | { [n] = true } |
| Vehicle classes (GetVehicleClass) without a usable trunk. Read by: protected engine |
Config.Vehicles.trunk.blacklistModels | string[] |
| Excluded model names (converted to hashes). Read by: protected engine |
Config.Vehicles.trunk.exitEvents | string[] | { 'ox_target:extra:exitTrunk' } | Local client events that exit the trunk, in addition to ox_target:exitTrunk. Read by: protected engine |
The job format is the same everywhere: { 'mechanic' } (list), { mechanic = 2 } (minimum grade), { mechanic = true } (any grade) or a string 'mechanic'. Jobs and items are first checked client side for display, then by the server before the action.
Billing, Rock Paper Scissors, anti-punch, Dev Tools
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.Billing.excludedJobs | string[] | { 'unemployed' } | Jobs that do not see the option. A player without a job does not see it either. Read by: protected engine |
Config.Billing.societyPrefix | string | 'society_' | Prefix added to the job for the esx_billing preset. Read by: bridge/client.lua |
Config.Billing.reasonMin | integercharacters | 3 | Minimum reason length. Engine constraint: ≥ 0 — Must stay lower than or equal to the maximum. Read by: protected engine |
Config.Billing.reasonMax | integercharacters | 60 | Maximum reason length. Engine constraint: ≥ 1 — Must stay greater than or equal to the minimum. Read by: protected engine |
Config.Billing.maxAmount | integer | 1000000 | Maximum amount that can be entered; the minimum is 1. Engine constraint: ≥ 1 — The form already enforces a minimum of 1. Read by: protected engine |
Config.RPS.inviteTimeout | integermilliseconds | 30000 | Delay before an unanswered challenge counts as refused. Engine constraint: ≥ 0 — Server delay. Recommendation: ≥ 5000 ≤ 120000 — Leave the player time to read the request. Read by: protected engine |
Config.RPS.invincible | boolean | true | Makes both players invincible during the game. Read by: protected engine |
Config.RPS.announceMe | boolean | true | Sends a /me with the chosen move (rps_me_* texts). Read by: protected engine |
Config.AntiPunch.defaultEnabled | boolean | true | Initial state of the anti_punch checkbox. The player’s choice is then remembered (KVP). Read by: protected engine |
Config.DevTools.scanRadius | numbermetres | 2.0 | Radius of “list nearby props (F8)”. Engine constraint: ≥ 0 — Radius around the player. Read by: protected engine |
Rock Paper Scissors window
When a challenge is accepted, each player sees a choice window:
- pick with the mouse, or with the keyboard:
1(rock),2(paper) and3(scissors); Escapecancels the game as long as no move has been played; after choosing, the window waits for the opponent’s move, then shows a win, loss or draw.
The window texts come from the rps_ui_* keys of 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). The file used follows the ox_lib language; a missing or empty key is replaced by the French text built into the window. In the archive, locales/en.json holds these texts in French: translate them in that file for an English interface.
Challenge notifications (invitation, refusal, cancellation, /me announcement) stay in Config.Messages (rps_* keys, see Texts).
Weather and time
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.Weather.useZones | boolean | true | false if your weather script has no zones: the Zones submenu and zone info disappear. Read by: protected engine |
Config.Weather.defaultZone | string | 'santos' | Zone used until the staff member picks another. Only used when useZones = true. Read by: protected engine |
Config.Weather.localTools | boolean | true | “Local player” submenu (local rain and freeze). Read by: protected engine |
Config.Weather.labels | table |
| Labels, icons and description of each entry generated by weather_menu. Read by: protected engine |
Config.Weather.types | table[] |
| Only these values are accepted by the server. value is passed to the weather script. Engine constraint: ≤ 32 — value is limited to 32 characters by server validation. Read by: protected engine |
Config.Weather.times | table[] |
| The server only accepts 0–23 h and 0–59 min. Without an icon, labels.timePreset is used. Read by: protected engine |
Config.Weather.zones | table[] |
| Zones offered to staff; name is passed to the weather script (64 characters max). Only used when useZones = true. Read by: protected engine |
The server only accepts the values listed here: a zone outside Weather.zones, a weather outside Weather.types, an hour outside 0–23 or minutes outside 0–59 are refused. The submenu content is generated by the weather_menu built-in; its structure is described in Categories and submenus.
Notifications
| Setting | Type | Default | Effect |
|---|---|---|---|
Config.NotifyDuration | integermilliseconds | 5000 | Default duration passed to the notification system. Engine constraint: ≥ 0 — Passed to the notification system. Read by: bridge/client.lua |
Config.DNotifColors | table |
| dNotif colour per notification type (NotifyScript = dNotif). A missing value uses VIOLET. Only used with NotifyScript = dNotif. Read by: bridge/client.lua |
Texts
Every text goes through Config.Messages. The shipped texts are in French; translate them freely. Markers (%s, %d, %02d, %.0f) are replaced by the script; if an edited text no longer matches the values passed, the engine shows the raw text without substitution instead of crashing. Write %% to display a percent sign in a formatted text.
| Key | Default | Markers | Context |
|---|---|---|---|
no_permission | Vous n'avez pas la permission d'utiliser cette action. | — | Server action refused for lack of permission. |
job_required | Votre métier ne permet pas cette action. | — | Server action refused: job not allowed. |
item_required | Il vous manque l'objet requis. | — | Server action refused: required item missing. |
target_invalid | Cible invalide. | — | Target refused by the server or entity not found. |
target_too_far | La cible est trop loin. | — | Target beyond the distance allowed by the server. |
feature_disabled | Cette fonctionnalité est désactivée. | — | Action tied to a disabled or unavailable feature. |
cancelled | Action annulée. | — | Input or progress bar cancelled. |
invalid_input | Données invalides. | — | Input or arguments refused. |
no_player | Aucun joueur ciblé. | — | Player option without a usable server ID. |
no_vehicle | Aucun véhicule ciblé. | — | Vehicle option without a usable networked vehicle. |
my_id | Votre ID est : %s | %s your server ID | show_my_id built-in. |
player_id | L'ID de ce joueur est : %s | %s player server ID | show_player_id built-in. |
player_id_copied | ID du joueur copié : %s | %s copied ID | copy_id built-in. |
me_title | Faire un /me | — | /me input title. |
me_label | Texte du /me | — | /me field label. |
copy_emote_none | Le joueur ne fait aucune emote à copier. | — | Emote copy without a usable emote. |
copy_emote_ok | Vous copiez l'emote : %s | %s emote name | Successful emote copy. |
revive_sent | Revive envoyé sur le joueur %d. | %d player ID | Successful admin_revive. |
heal_sent | Heal envoyé sur le joueur %d. | %d player ID | admin_heal executed. |
self_revived | Vous avez été réanimé. | — | self_revive validated by the server. |
self_healed | Vous avez été soigné. | — | self_heal validated by the server. |
medical_unavailable | Aucun script médical configuré. | — | No usable medical script for admin_revive. |
force_emote_title | Forcer une emote | — | Forced emote input title. |
force_emote_label | Nom de l'emote | — | Forced emote field label. |
force_emote_sent | Emote forcée sur le joueur %d. | %d player ID | Forced emote sent. |
force_me_title | Forcer un /me | — | Forced /me input title. |
force_me_label | Texte du /me | — | Forced /me field label. |
force_me_sent | /me forcé sur le joueur %d. | %d player ID | Forced /me sent. |
bill_title | Créer une facture | — | Invoice form title. |
bill_reason | Motif | — | Reason field label. |
bill_amount | Montant ($) | — | Amount field label. |
bill_sent | Facture envoyée. | — | Present in config.lua but not displayed by the code in this archive. unused |
knife_required | Vous devez avoir une arme blanche en main. | — | Tyre slash without an allowed blade. |
tyre_too_far | Vous devez être collé au pneu pour le crever. | — | No tyre close enough. |
tyre_progress | Vous crevez le pneu... | — | Tyre slash progress bar. |
tyre_done | Vous avez crevé le pneu. | — | Tyre slash sent. |
trunk_incompatible | Ce type de véhicule n'a pas de coffre utilisable. | — | Excluded vehicle (class or model). |
trunk_occupied | Le coffre est déjà occupé. | — | Trunk already reserved. |
trunk_unavailable | Impossible d'utiliser ce coffre. | — | Trunk locked, too far or vehicle destroyed. |
trunk_progress | Vous vous cachez dans le coffre... | — | Entering progress bar. |
trunk_inside | Vous êtes caché dans le coffre. | — | Successful entry. |
trunk_textui | Vous êtes dans le coffre. [E] pour sortir. | — | Text shown inside the trunk. It does not follow Config.Vehicles.trunk.exitKey automatically. |
trunk_exit | Vous sortez du coffre. | — | Trunk exit. |
lockpick_progress | Crochetage en cours... | — | Lockpick progress bar (preset). |
lockpick_done | Véhicule déverrouillé. | — | Successful lockpick. |
repair_progress | Réparation en cours... | — | Repair progress bar (RepairScript = native). |
repair_done | Véhicule réparé. | — | Repair considered successful. |
keys_given | Clés du véhicule [%s] ajoutées. | %s plate | Keys given. |
keys_unavailable | Aucun script de clés configuré. | — | No usable keys script. |
anti_punch_on | Protection anti-coups de poing activée. | — | Anti-punch checkbox ticked. |
anti_punch_off | Protection anti-coups de poing désactivée. | — | Anti-punch checkbox unticked. |
weather_set | Météo appliquée : %s (zone %s) | %s weather value%s zone (or -) | Weather applied. |
weather_zone | Zone active : %s | %s chosen zone | Active zone changed. |
weather_time | Heure serveur : %02dh%02d | %02d hour%02d minute | Time applied. |
weather_time_info | Heure serveur : %02dh%02d:%02d | %02d hour%02d minute%02d second | Server time info. |
weather_freeze_on | Freeze time activé. | — | Freeze time enabled. |
weather_freeze_off | Freeze time désactivé. | — | Freeze time disabled. |
weather_blackout_on | Blackout activé. | — | Blackout enabled. |
weather_blackout_off | Blackout désactivé. | — | Blackout disabled. |
weather_blackout_info | Blackout : %s | %s ON or OFF | Blackout info. |
weather_random | Météos aléatoires générées. | — | Random weathers generated. |
weather_zone_info | Zone %s | Météo %s | Brouillard %s | Temp %s°C | Vent %s | %s zone%s weather%s fog%s temperature%s wind | Active zone info. |
weather_error | Erreur du script météo. | — | The weather script failed or returned false. |
weather_unavailable | Aucun script météo configuré. | — | No weather script available server side. |
weather_local_rain_off | Pluie désactivée localement. | — | Local tool. |
weather_local_rain_on | Pluie activée localement. | — | Local tool. |
weather_local_freeze_on | Freeze local activé. | — | Local tool. |
weather_local_freeze_off | Freeze local désactivé. | — | Local tool. |
dev_copied | Copié : %s | %s copied text | Dev Tools copy. |
dev_full_copied | Infos complètes copiées ! | — | Full prop info copied. |
dev_deleted | Entité supprimée. | — | Entity deleted. |
dev_not_prop | Cette entité n'est pas un prop. | — | Present in config.lua but not displayed by the code in this archive. unused |
dev_cant_delete_player | Impossible de supprimer un joueur. | — | Attempt to delete a player. |
dev_scan | Props listés dans F8 (rayon %.0fm, %d trouvé(s)) | %.0f radius%d count found | Prop scan finished. |
dev_coords | Coordonnées copiées ! | — | Coordinates copied. |
dev_clone | Apparence du PNJ appliquée ! | — | Ped model applied. |
dev_restore | Apparence restaurée ! | — | Appearance restored. |
dev_restore_fail | Aucune apparence trouvée. | — | Restore failed. |
rps_already | Tu es déjà dans une partie ! | — | You are already playing or waiting. |
rps_target_busy | Ce joueur est déjà dans une partie. | — | The target is already playing. |
rps_sent | Défi envoyé, en attente... | — | Challenge sent. |
rps_invite | ✊ %s te défie à Pierre Feuille Ciseaux ! | %s player name | Received confirmation text. |
rps_invite_title | Pierre Feuille Ciseaux | — | Confirmation title (ignored with InputScript = dNotif). |
rps_refused | Défi refusé. | — | Challenge refused or expired. |
rps_cancelled | L'autre joueur a annulé la partie. | — | The opponent cancelled. |
rps_disconnected | L'autre joueur s'est déconnecté. | — | The opponent disconnected. |
rps_me_rock | joue ✊ Pierre | — | /me announcement (RPS.announceMe). |
rps_me_paper | joue ✋ Feuille | — | /me announcement (RPS.announceMe). |
rps_me_scissors | joue ✌️ Ciseaux | — | /me announcement (RPS.announceMe). |
Common mistakes
- Function in
config.luausing a client native: server-side error at start. Move it toconfig_client.lua. Commands.revivePlayerwithout%d: the command is sent without the ID; with an extra marker,string.formatraises a Lua error.Vehicles.trunk.exitKeychanged without adaptingMessages.trunk_textui: the text keeps showing[E].Billing.reasonMingreater thanreasonMax: no invoice can be validated.