Docs/ORB Customs/Configuration

Configuration

All configuration is done through data/config.lua. This file is not escrowed and can be freely edited.

Main Config

lua
return {
    -- Language: 'en', 'es' (add your own in locales/)
    language = 'en',

    -- Framework override: 'qbox', 'qbcore', 'esx', 'standalone'
    -- Leave as false for auto-detection (recommended)
    frameworkOverride = false,

    -- Money type used by your framework
    -- QBCore: 'cash' or 'bank'
    -- ESX: 'cash', 'bank', or 'black_money'
    moneyType = 'cash',

    -- Maximum concurrent customization sessions
    maxBuckets = 100,

    -- Starting bucket ID (avoid conflicts with other resources)
    baseBucketId = 1000,

    -- Interior location where players are teleported
    customizationLocation = vector4(991.91, -2995.17, -40.7, 90.68),
}

Config Options

`language`

Sets the UI language. Ships with 'en' (English) and 'es' (Spanish). Add your own by creating a new file in locales/ following the existing format.

`frameworkOverride`

Leave as false to let the bridge auto-detect your framework. Set manually only if auto-detection fails. Valid values: 'qbcore', 'qbox', 'esx', 'standalone'.

`moneyType`

The currency type to charge players. Must match your framework's money system. Common values:

FrameworkValid Types
QBCore'cash', 'bank', 'crypto'
QBox'money' (item-based via ox_inventory)
ESX'cash', 'bank', 'black_money'
StandaloneNot applicable (all mods are free)

`maxBuckets`

Maximum number of players that can be customizing simultaneously. Each player is placed in an isolated routing bucket. Default 100 is suitable for most servers.

`baseBucketId`

The first routing bucket ID used. Set this higher if you have other resources that use routing buckets to avoid ID conflicts.

`customizationLocation`

The vector4 coordinates of the interior where vehicles are teleported for customization. The default location is an underground tunnel that ships with GTA V.

Pricing Configuration

All prices are configured in individual data files:

Performance Pricing (`data/performance.lua`)

lua
-- Engine upgrades: base price + (level * levelPrice)
-- Example: Level 3 engine = $5000 + (3 * $2500) = $12,500
['Engine'] = {
    id = 11,
    price = 5000,
    levelPrice = 2500,
}

Body Mod Pricing (`data/decals.lua`)

Each body mod category has a price field. The price scales across available options:

lua
['Spoiler'] = {
    id = 0,
    price = 2000,   -- Highest option costs $2000
}

Paint Pricing (`data/colors.lua`)

Individual colors have their own price:

lua
{ label = 'Metallic Black', id = 0, price = 200 },

Free Zones

Set free = true on any location in the config to make all modifications free at that location. Useful for mechanic job shops.

Localization

Create a new file in locales/ (e.g., locales/de.lua) following the English template:

lua
return {
    notify_title = 'Orb Customs',
    shop_full = 'Customs shop is full, please wait',
    help_text = 'Press ~INPUT_TALK~ to open Customs',
    vehicle_fixed = 'Vehicle fixed!',
    already_fixed = 'Vehicle is fixed already',
    cant_afford_repair = 'You cannot afford this repair',
    already_owned = 'You have this mod already',
    cant_afford = 'You can\'t afford this',
    repair_first = 'Please repair your car!',
    preview_on = 'Preview Mode: On',
    preview_off = 'Preview Mode: Off',
    stance_applied = 'Stance modifications applied!',
    stance_cant_afford = 'You cannot afford these stance modifications',
    stance_applied_price = 'Stance modifications applied! ($%d)',
    ui_load_error = 'Could not load UI, did you download the release?',
}

Then set language = 'de' in data/config.lua.