Skip to main content

Overview

TS-Lib is designed to eliminate the headache of supporting multiple frameworks, inventories, garage systems, and key management scripts. Instead of cluttering your resources with endless if/else checks, ts-lib handles it all under one unified TS namespace. It is designed to be injected dynamically into any script, keeping your resource code clean, fast, and completely independent.

Download TS-Lib

Get the latest version of the resource.

Contribute to TS-Lib

Learn how to propose bridges, fixes and improvements.

Features

  • Automated Framework Detection: Natively supports qb-core, qbx_core, es_extended, and standalone. It prioritizes the most modern framework available automatically or via forced config.
  • Unified Bridges:
    • Garages: Native support for qb-garages, esx_garage, vms_garagesv2, jg-advancedgarages, and standalone.
    • Keys: Native support for qb-vehiclekeys, qs-vehiclekeys, and standalone.
  • Centralized Utils: Prints, debugs, and resource checks are completely centralized (TS.Print, TS.DebugPrint, TS.ErrorPrint).
  • Built-in UI helpers: Simple NUI-based subtitle and text UI helpers (TS.Lib.Subtitle, TS.Lib.TextUI) that can also be called via exports.

Installation

Integrating ts-lib into your own scripts is incredibly simple.
  1. Place the ts-lib folder in your resources directory.
  2. In the fxmanifest.lua of the script that needs to use ts-lib, add this single line to your shared_scripts:
shared_scripts {
    '@ts-lib/imports.lua',
    -- Your other shared scripts...
}
That’s it! ts-lib will automatically boot up, detect the server’s framework, fetch the configurations, expose the TS namespace, and dynamically load the required modules.

Configuration

You can configure exactly which systems ts-lib uses via ts-lib/config.lua.
Config = {
    debug = true,

    -- Framework selection: 'auto', 'qbcore', 'esx', 'qbox', 'standalone'
    Framework = 'auto',

    -- Garage system: 'auto', 'qb-garages', 'esx_garage', 'vms_garagesv2', 'jg-advancedgarages', 'standalone'
    Garages = 'auto',

    -- Vehicle keys system: 'auto', 'qb-vehiclekeys', 'qs-vehiclekeys', 'standalone'
    VehicleKeys = 'auto',

    Data = {
        Framework = {
            qbcore = 'qb-core',
            esx = 'es_extended',
            qbox = 'qbx_core',
            standalone = 'standalone',
        },
        Garages = {
            ['qb-garages']        = 'qb-garages',
            ['esx_garage']        = 'esx_garage',
            ['vms_garagesv2']     = 'vms_garagesv2',
            ['jg-advancedgarages']= 'jg-advancedgarages',
            ['standalone']        = 'standalone',
        },
        VehicleKeys = {
            ['qb-vehiclekeys'] = 'qb-vehiclekeys',
            ['qs-vehiclekeys'] = 'qs-vehiclekeys',
            ['standalone']     = 'standalone',
        },
    },
}

API Reference

For a detailed, function-by-function description of the TS-Lib surface and its bridges, see the dedicated API Reference page.
Last modified on March 13, 2026