Exports & Locales
Integration surface, localization and tooling.
Exports
The resource is self-contained and config-driven — it does not require any exports to operate. There is no public export you need to call from other resources.
Localization
All user-facing text is in locales/<locale>.json. English (en), German (de),
Portuguese (pt) and Bosnian (bs) ship by default. Set the language with the ox_lib
convar setr ox:locale "pt". To add a language, copy en.json and translate the values.
Each file has two parts: top-level notification strings (shared by the custom and framework
notification modes, formatted with %s/%d) and a nested ui object holding every label,
button, tooltip and panel string rendered in the showroom interface. The Lua client forwards the
active locale's ui block to the NUI on open, so the entire front-end is translated — nothing is
hardcoded in the React app.
Notification keys include:
| Key | Used for |
|---|---|
notify_title | Title of custom notifications. |
target_browse | The ox_target option label. |
purchase_success / purchase_financed | Successful world delivery (%s = vehicle name). |
purchase_garage / purchase_financed_garage | Successful garage delivery (delivery = 'garage'). |
not_enough_money / vehicle_failed | Purchase failures. |
testdrive_failed / testdrive_over | Test drive messages. |
finance_charged / finance_paid_off / finance_missed / finance_repossessed | Finance lifecycle (cron). |
ui.* | Showroom interface strings (labels, buttons, finishes, payment descriptions, loans panel). |
Commands
| Command | Description |
|---|---|
/myloans | Opens a panel listing the player's financed vehicles (balance, installment, payments left) with an option to pay a loan off early. |
Finance lifecycle
Financed vehicles are billed by an ox_lib cron job (finance.paymentCron). On each run
the resource charges the installment, and after finance.maxMissedPayments missed
payments the vehicle is repossessed. Players can pay a loan off early from the UI.