> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aps-store.com/llms.txt
> Use this file to discover all available pages before exploring further.

# config.compat.lua

Framework, inventory, society accounts, license sync and compatibility with other scripts. Every option is explained on the [Compability](https://docs.aps-store.com/assets/aps_cityhall/compability.md) page.

> [!NOTE]
>
> Runs on: **shared**. This file stays editable when the resource is escrow-protected. Restart the resource after editing.

***

## Full View

Preview File Updated: 3.7.0 - 02.11.2026

```lua config/config.compat.lua lines expandable theme={null}
Config = Config or {}

-- ─────────────────────────────────────────────
--  Framework
--    'auto'    first one that is started: qbx_core → qb-core → es_extended
--    'esx' | 'qbcore' | 'qbox'
--  Everything framework-specific lives in bridge/ (editable when escrowed),
--  so other frameworks can be added there.
-- ─────────────────────────────────────────────
Config.Framework = 'auto'

-- ─────────────────────────────────────────────
--  Inventory — used for Config.PaymentItem and document items
--    'auto'          ox_inventory → qs-inventory → origen_inventory
--                    → tgiann-inventory → core_inventory → framework
--    'ox_inventory' | 'qs-inventory' | 'origen_inventory'
--    | 'tgiann-inventory' | 'core_inventory' | 'framework'
--  ('framework' = xPlayer / Player.Functions item functions, which also
--   covers qb-inventory, ps-inventory, lj-inventory, esx inventory …)
-- ─────────────────────────────────────────────
Config.Inventory = 'auto'

-- ─────────────────────────────────────────────
--  Society accounts — where paid bills go
--    system   'auto'  vms_bossmenu → framework default
--                     (ESX: esx_addonaccount, QBCore: qb-banking → qb-management,
--                      Qbox: Renewed-Banking → qb-banking)
--             'esx_addonaccount' | 'qb-banking' | 'qb-management'
--             | 'Renewed-Banking' | 'vms_bossmenu' | 'none'
--    payBills          send the society's share of a paid bill to its account
--    defaultPercent    share when the bill doesn't set percentageForSociety
--
--  The society comes from the bill's `society` (e.g. 'society_police') or
--  `job` field. On QBCore / Qbox the 'society_' prefix is removed.
-- ─────────────────────────────────────────────
Config.Society = {
    system         = 'auto',
    payBills       = true,
    defaultPercent = 100,
}

-- ─────────────────────────────────────────────
--  License sync — also grant licenses earned at City Hall in the
--  framework's own license system, so police/shops/scripts see them.
--    system  'auto'  ESX → esx_license or Buty-license, QBCore / Qbox → metadata.licences
--            'esx_license' | 'Buty-license' | 'metadata' | 'none'
--    butyCategories  Buty-license category per City Hall license id
--                    (licenses not listed use 'driving')
--    map     City Hall license id → framework license name
--            (licenses not listed here are not synced)
-- ─────────────────────────────────────────────
Config.LicenseSync = {
    system = 'auto',
    butyCategories = {
        firearms = 'weapon',
    },
    map = {
        esx = {
            car        = 'drive',
            motorcycle = 'drive_bike',
            truck      = 'drive_truck',
            boat       = 'boat',
            firearms   = 'weapon',
            -- pilot   = 'aircraft',   -- add the type to your `licenses` table first
        },
        qb = {
            car        = 'driver',
            motorcycle = 'driver',
            truck      = 'driver',
            firearms   = 'weapon',
        },
    },
}

-- ─────────────────────────────────────────────
--  Compatibility with other scripts
--
--    vmsCityhall      answer exports['vms_cityhall'] calls made by other
--                     scripts (MDTs, job scripts, paychecks …) with City Hall:
--                       server  giveBill, getVehicleInsurance, addVehicleInsurance,
--                               getHealthInsurance, addHealthInsurance
--                       client  openCityHall
--                     Ignored while vms_cityhall itself is running.
--
--    esxBilling       take over the 'esx_billing:sendBill' event (used by
--                     esx_policejob, esx_ambulancejob, esx_mechanicjob …) so
--                     job bills land in Bills & Fines. Only when esx_billing
--                     is NOT started (remove it from server.cfg first).
--      maxAmount      highest bill accepted from that event
--      requireJob     the issuer's job must match the society
--                     ('society_police' → job 'police')
--
--    healthInsurance  document type (config/documents.lua) used by the
--                     getHealthInsurance / addHealthInsurance exports
-- ─────────────────────────────────────────────
Config.Compat = {
    vmsCityhall = false,
    vmsDocuments = false,   -- answer exports['vms_documentsv2'] (giveDocument, isAnyDocumentValid,
                            -- invalidateDocument, getMyDocuments, GenerateSSN) with the built-in
                            -- documents. Ignored while vms_documentsv2 is installed.

    esxBilling = {
        enabled    = false,
        maxAmount  = 100000,
        requireJob = true,
    },

    healthInsurance = 'health_insurance',

    -- other scripts' license names → City Hall license ids (config/licenses.lua).
    -- Used by the license, suspension and points exports and traffic tickets.
    licenseAliases = {
        drive_a = 'motorcycle', drive_b = 'car', drive_c = 'truck',            -- vms_cityhall / vms_driveschoolV2
        drive = 'car', drive_bike = 'motorcycle', drive_truck = 'truck',       -- esx_dmvschool
        driver = 'car',                                                         -- QBCore
        practical_boat = 'boat',                                                -- vms_boatschoolV2
        practical_plane = 'pilot', practical_helicopter = 'pilot',              -- vms_flightschoolV2
        weapon = 'firearms',
    },
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.