Skip to main content
Every external system the resource touches has an adapter in integrations/. All of them are escrow_ignore’d, so you can edit them without re-uploading the asset. Pick the system you want with Config.<thing>.System, or set it to 'auto' and the resource picks the first installed one. If your script isn’t on the list, every adapter has a Config.*Fn override hook — point it at a function and the resource calls yours instead of the built-in branch.

Target

Used for the salesperson eye-target. Auto-detected from the running resource list.
Force textui (no target) by setting Config.Interaction = 'textui'.

TextUI

The proximity [E] hint, used when target isn’t available or Config.Interaction = 'textui'.

Notifications

For anything else, set Config.NotifyFn:
The legacy Config.NotifyLegacy = function(...) form from older versions still works — the bridge unwraps it at runtime.

Vehicle keys

Hands the new vehicle’s keys to the player after purchase.
For a custom keys script:
The legacy Config.KeyExport = function(...) form from older versions still works.

Fuel

Sets the spawn fuel level on the new vehicle.
For anything else:

Garage / persistence

Writes the new vehicle to whichever table the framework expects. Any garage script that reads from that table picks it up automatically — there is no per-garage API to call.
DefaultGarage just needs to be a garage name that exists in your garage script’s config. For non-standard schemas:
The ESX writer tries three insert shapes in order — wide schema, stored-only, then bare-minimum — so most ESX garages work without a custom hook.

Custom purchase gate

To gate buying on a custom condition (an in-game licence item, a Discord role, a quest flag…):
The second return value is shown to the player as an error toast.

Custom plate generator

Overrides the built-in plate generator (which uses Config.Purchase.PlatePrefix, PlateLength, and UpperPlate).