Modify the framework that your server environment uses

-- Framework: qbcore, esx
Config.Framework = "qbcore"

Change the resource name if you have changed the default resource name of the framework. Leave false if you have not changed the frameworks resource name

-- Framework resource name (if you changed the resource names of qbcore or esx, leave false to use default)
Config.CustomFrameworkName = false

Change the frameworks default event names, leave them false if you have not changed them

-- Framework event names (if you changed the event names of qbcore or esx, leave false to use default)
Config.OnPlayerLogin = false
Config.OnPlayerLogout = false
Config.OnJobUpdate = false

Enable/Disable standalone tablet UI. Default to open is "/truckertablet". You can however modify the "TabletItemName" which would then remove the command and register it as a item specific to your framework

-- Standalone Tablet (if you are using standalone tablet, setting to true will enable the "/truckertablet" command)
Config.EnableStandaloneTablet = true

-- Tablet item name (if you are using standalone tablet, setting to false will enable the "/truckertablet" command)
Config.TabletItemName = false

Enable/Disable built in support for LB-Phone. Enabling this would auto install the app into the phone.

-- Enable LB phone app (if you are using lb-phone)
Config.EnableLBphone = false

Enable/Disable built in support for Quasar Smartphone Pro. Enabling this would auto install the app into the phone. (Experimental)

-- Enable QS phone app (if you are using qs-smartphone-pro)
Config.EnableQSphone = false
Config.QSphoneAppCategory = "social"

Change the frequency in which the LB-Phone app and standalone tablet refresh job data. I suggest keeping this value high. Setting it too low could create performance issues

-- Update interval for the LB phone app & Tablet to refresh jobs (in milliseconds)
-- Setting this too low can cause performance issues   
Config.UIUpdateInterval = 10000

Require a job to perform the assets functions such as getting a job, renting trucks, etc. You can change the job name to whatever you'd like or set to false to disable the requirement

-- Required Job (if any, set to false to disable)
Config.RequireJob = "trucker"

Third eye

Configure your frameworks targeting system, or set to false to disable it. Disabling it will fall back to the classic help text message in the top left of the screen. You can also change the resource name if you've changed the default name of the targeting resource you've configured

-- Targeting System: ox_target, qb-target, inside-interaction (if you changed the targeting system resource names, leave false to use default help message)
Config.Target = 'ox_target'

-- Targeting system resource name (if you changed the resource names of ox_target, bt-target, or qb-target, inside-interaction leave false to use default) 
Config.TargetName = false

NUI Text & Keybind

You can disable the the nui text from ox_lib to enable the classic GTA help message. You can adjust the position and change the interact keybind for load/unload mechanics

-- Text UI (Enable if you would prefer to use ox_lib's built in text UI instead of the help text message)
Config.UseTextUI = true
Config.TextUIPosition = "right-center"

-- Keybind for the help text message, inside-interaction, or TextUI (Default: E)
Config.OtherKeybind = "E"

CB Radio

Enable/Disable "CB" radio functionality. (Upon entering a vehicle while permissible via job permissions a player will be auto connected to a radio channel with other players on the job. You can modify the connect and disconnect functions in the client/edit.lua file.)

-- Enable CB Radio
-- You can modiy the connect and disconnect functions in the edit.lua file
Config.CBRadioEnable = false

Change the default "CB" radio channel number. You can also enable/disable vehicle class restrictions that the radios will work in. You can even change which vehicle classes are whitelisted.

-- CB Radio Channel
Config.CBRadioChannel = 696.9

-- Testrict CB Radio to certain class vehicles
Config.CBRadioRestrictClasses = true

-- Vehicle classes that can use the CB Radio
Config.CBRadioVehClasses = {
    [10] = true,
    [11] = true,
    [20] = true

Blip Settings

Change the blip and route colors that appear on the minimap while performing the various tasks

-- Blip and route colors
Config.Blip = {
    color = 3,
    route_color = 3,

Change the blip settings for the trucking warehouse. It is auto displayed on the map when a player is on the job you specified otherwise permissible and removed when not. Same with the "work" ped that spawns inside of the warehouse (break room)

-- Blip for the depot
Config.DepotBlip = {
    name = "Trucking Depot",
    coords = vector3(1225.61, -3189.32, 5.53),
    color = 81,
    sprite = 67,
    scale = 0.6,

-- Job Ped
Config.Ped = {
    model = `s_m_m_trucker_01`,
    coords = vector4(1206.1, -3162.83, 4.53, 185.52),

Secure Vehicles

If you plan on spawning vehicles such as the ones default for the military cargo job that you DO NOT want players in, you can disable the ability for a player to enter these vehicles. Keys will not be registered for them, they will be locked with entry disabled, and in the event that a player does manage to enter they will be forced to exit instantly.

-- If spawning vehicles you do want players to use, add them to this table
Config.NeverAllowEntry = {
    [`halftrack`] = true,
    [`cargobob`] = true,
    [`apc`] = true,
    [`chernobog`] = true,
    [`khanjali`] = true,
    [`vetir`] = true

Enable/disable the "NeverAllowEntry" check when on the job only. Disabling this will run the check no matter if a player is on or off the job. (I recommend leaving this false... there's no extra performance impact)

-- Only prevent entry from vehicles above if on the job
Config.NeverAllowEntryJobOnly = false

Adjust the police requirement and which jobs are police. (The function to check players and their jobs can be modified in the server/edit.lua file.)

-- Police Requirement for illegal shipments
Config.PoliceRequired = 2

-- Police Job Names
Config.PoliceJobs = {


Change the amount of time before a started job is auto canceled even if a player hasn't finished it. (The trailer and any job related objects are de-spawned when a job is canceled)

-- Job Auto cancel time (in seconds)
Config.Timeout = 60*60 -- 1 hour

Attach Any Trailer

Enable/disabled the ability to attach any compatible trailer to any compatible truck. I recommend keeping this true for full compatibility with addon trucks and trailers. You can change the keybind and adjust the distance in which it will attach a trailer.

-- Enable keybind to attach any compatible trailer (used for addon trailers)
Config.AttachAnyTrailer = true

-- Distance to check for a trailer when using the attach any trailer keybind
Config.AnyTrailerDistance = 5.0

-- Keybind to attach any compatible trailer
Config.AttachAnyTrailerKey = "J"

Enable/disable truck/trailer restrictions. Sometimes addon trucks with the ability to tow goosenecks will be able to attach job trailers. Enabling this (I recommend) will burst the tires and slowly kill the engine if they try to haul a trailer with a truck that isnt specified in the whitelist.

-- Burst tires and kill engine slowly if the player is not using a job vehicle (Set to false to disable and allow any vehicle)
Config.BurstTires = true

-- Vehicle whitelist for job vehicles
Config.AllowedTrucks = {
    [`phantom`] = true,
    [`packer`] = true,
    [`hauler`] = true

Forced Heading

Enable/Disable load and drop off trailer heading. This means a player will not be able to drop the trailer unless it is facing the direction (heading) configured in its job locations

-- Force trailer heading direction when picking up a load (I recommend setting this to true)
Config.ForceLoadingHeading = true

-- Force trailer heading direction when dropping off a load)
Config.ForceDropoffHeading = false


Enable/Disable the truck rental system. Add/Remove trucks, set their name, spawn model, and a price (refunded when they return the truck). You can disable this system if you want to your players to own their own trucks with your frameworks garage system.

-- Vehicle rental system (Set to false to disable)
Config.Rentals = {
    Enabled = true,                                                    -- Enable or disable the rental system
    Marker = {
        Type = 39,                                                      -- Marker type
        Size = vector3(1.0, 1.0, 1.0),                                  -- Marker size
        Color = {255, 0, 0, 100},                                       -- Marker color {r, g, b, a}
    Zone = vector4(1219.46, -3203.99, 4.59, 177.74),                    -- Rental zone
    Trucks = {                                                          -- Rental Vehicles
        --    name = "TRUCK NAME",                                      -- Name of the truck
        --    model = `MODEL`,                                          -- Model of the truck
        --    price = 500,                                              -- Price of the truck (Refunded on return)
            name = "Los Santos Phantom",
            model = `phantom`,
            price = 500,
            name = "Los Santos Packer",
            model = `packer`,
            price = 500,
            name = "Los Santos Hauler",
            model = `hauler`,
            price = 500,

Load / Drop Zone

Enable/Disable zone debugging (I recommend leaving this false unless testing as it will create a small performance impact to draw the zone borders)

-- Debug mode (Set to false to disable, enable this to test the positions of your drop off and pick up zones)
Config.ZoneDebug = false

Adjust zone size and blip color

-- Trailer load/dropoff zone size and Color
Config.ZoneSize = vector3(4.0, 16.0, 7.0)                           -- {x = width, y = length, z = height}
Config.ZoneColor = {255, 0, 0, 100}                                 -- {r, g, b, a}


Enable/Disable the reputation system. (Auto disabled if you do not have a database resource. The table is auto created on resource start)

Adjust the max amount of reputation a player can have.

Adjust the min, max of reputation removed when a player fails the job.

Adjust the amount of reputation earned when a legal job is completed, can also be min, max.

Adjust the amount of reputation earned when an illegal job is completed, can also be min, max.

Adjust bonus pay a player is given based on their rep. (I recommend keeping this low) bonus = payout*(reputation/max reputation) * (bonus pay setting/100)

Config.Reputation = {
    Enable = true,                                                  -- Enable or disable the reputation system
    MaxReputation = 1000,                                           -- Maximum reputation a player can have                                                    
    UnFinished = {3, 6},                                            -- Reputation removed for unfinished jobs (Can be a table for min/max values. Eg; {1, 2})
    Finished = 2,                                                   -- Reputation gained for finished jobs (Can be a table for min/max values. Eg; {1, 2})
    FinishedIllegal = {2, 4},                                       -- Reputation removed for finished illegal jobs (Can be a table for min/max values. Eg; {1, 2})
    BonusPay = {18, 22},                                            -- Bonus pay for finishing jobs. Example: (Can be a table for min/max values. Eg; {1, 2}) [payout*(reputation/maxreputation) * (bonuspay/100)]


This asset comes with a dozen jobs already configured and ready to play right away. You can change them and/or add more.

  • name: Name of the job.

  • description: Description of the job.

  • icon: Font-Awesome icon.

  • requiredReputation: Amount of required player reputation to start the job.

  • cooldown: Amount of time after the job is on cooldown for after the previous worker picked up the load.

  • illegal: Specifies whether or not the job is illegal or not.

  • highlight: Adds a blue highlight shadow around objects and cars that need to be loaded (Is disabled by default for peds).

  • load: Contains all the information regarding the jobs load.

    • peds: Enable/Disable whether or not the load is peds.

    • vehicles: Enable/Disable whether or not the load is vehicles.

    • limit: Overrides the calculation made by the spawn points, and attachment points.

    • modelDist: The distance to check between the loader/load, load/dummy, load/attachment.

    • model: Models to spawn (can have multiple and they'll be selected randomly).

    • coords: Table of coords where the load can spawn (selected randomly).

  • trailer: Information about the trailer.

    • model: The model of the trailer to spawn.

    • exactPos: Force and freeze the trailer into position when dropped at the loading spot.

    • loadCoords: The location to drop the trailer to load it.

    • coords: The location where the trailer can spawn. (can be multiple locations, one is selected randomly).

    • dummy: The offset/rotation where a shadowed dummy object will be attached (this is where you will bring the load to load it onto the trailer. if set to false, it will just use the attachment points configured).

    • attachpoint: The offset/rotation locations where the load will be attached on the trailer. This will also determine the max load size unless overridden by the limit variable.

    • objects: Override the offset/rotation of specific objects on the trailer

    • doors: These are the door id's that will be opened when dropped at the loading zone, and closed when the trailers load is met.

    • spawnExtras: These are the "extras" id's the trailer will be spawned with.

    • doneExtras: These are the "extras" id's that will be loaded when the trailer has been loaded.

  • loader: This is information about the loader for the specific job. Can be disabled if you want the player to manually load onto the trailer (car trailer as an example).

    • model: The model hash name of the vehicle to spawn.

    • coords: The location of where to spawn the loader.

    • autopilot: Enable/Disable the autopilot feature of the cargobob (I recommend you let a ped do this, it would be extremely difficult for a player to use a cargobob to load a vehicle).

    • offset: The offset/rotation the load will attach to the loader for transport.

  • dropoff: The final destination for the job. You can add as many drop off locations that you want and you can adjust the payout of each drop off. You can use a whole number or {min, max}. Drop off locations are selected randomly each job.

Config.Loads = {
    {                                                               -- GENERAL INFORMATION
        name = "NAME OF JOB",                                       -- Name of the job
        description = "DESCRIPTION OF JOB",                         -- Description of the job
        icon = "fas fa-box",                                        -- Font Awesome icon (Displays in the phone app and menu)
        requiredReputation = 0,                                     -- Required reputation to do the job  (Set to 0 to disable)
        cooldown = 10,                                              -- Cooldown between available jobs (Setting this to 0 would make the job available as soon as someone leaves the loading area)
        illegal = false,                                            -- Specifies if the job is illegal (Adds dirty money instead of bank money)
        highlight = true,                                           -- Specifies if the job should highlight the load (DOES NOT WORK WITH PEDS TO PREVENT CLIENT CRASHES)
        ["load"] = {                                                -- LOAD INFORMATION
            peds = false,                                           -- Specifies if the load is a ped (Needs special handling)
            vehicles = false,                                       -- Specifies if the load is a vehicle (Needs special handling)
            limit = false,                                          -- "Overrides" the load limit that is auto calculated by attachment points > load coords. (Keep false to have it auto calculated)
            modelDist = 2.5,                                        -- Distance from the player to the load to allow picking it up
            model = {`prop_boxpile_08a`},                           -- Model of the load (Can be multiple models)
            coords = {                                              -- Coordinates of the load spawn points (Can be multiple) If total spawns exceed the load limit the random spawns will be selected each job
                vector4(1223.21, -3125.05, 4.99, 89.16),
                vector4(1223.0, -3122.51, 4.99, 87.77),
                vector4(1222.89, -3120.05, 4.99, 88.43),
                vector4(1222.73, -3117.56, 4.99, 87.58),
                vector4(1237.58, -3115.13, 4.99, 0.67),
                vector4(1234.78, -3115.16, 4.99, 359.75),
                vector4(1231.99, -3115.22, 4.99, 358.92),
        ["trailer"] = {                                             -- TRAILER INFORMATION
            model = `trflat`,                                       -- Model of the trailer
            exactPos = true,                                        -- Specifies if the trailer should be locked/frozen at the exact loading position
            loadCoords = vector4(1245.319, -3135.927, 5.98, 270.0), -- Coordinates of the trailer load point
            coords = {                                              -- Coordinates of the trailer spawn points (Can be multiple)
                vector4(965.55, -3210.14, 5.9, 176.36),
                vector4(961.32, -3209.27, 5.9, 171.23),
                vector4(957.18, -3209.08, 5.9, 178.27)
            dummy = {x = 0.0, y = -7.0, z = -1.2, rx = 0.0, ry = 0.0, rz = 90.0}, -- Dummy offset for the load point (if set to false it will use attachpoints instead)
            attachpoints = {                                        -- Attach points of the load to the trailer (Can be multiple)
                {x = -0.040893293917179, y = 4.034539270401, z = 0.3939489126205, rx = -0.0, ry = -0.0, rz = 0.0},
                {x = 0.038098841905594, y = 2.1209604740143, z = 0.3933922052383, rx = 0.0, ry = -0.0, rz = 0.0},
                {x = 0.060146238654852, y = 0.15882055461407, z = 0.3934869766235, rx = 0.0, ry = -0.0, rz = 0.0},
                {x = 0.026639278978109, y = -1.7951143980026, z = 0.3934358358383, rx = 0.0, ry = -0.0, rz = 0.0},
                {x = 0.0018073413521051, y = -3.8383920192719, z = 0.3935297727585, rx = 0.0, ry = -0.0, rz = 0.0}
            objects = {                                             -- Object offset "overrides" (Can be multiple)
                [`prop_boxpile_08a`] = {x = nil, y = nil, z = nil, rx = -nil, ry = nil, rz = nil}
            doors = {2, 3},                                         -- Doors to open/close on the trailer (Can be multiple) 
            spawnExtras = {1, 2, 3},                                -- Enable vehcile extras on spawn (Can be multiple)
            doneExtras = {1, 2, 3},                                 -- Enable vehcile extras on load completion (Can be multiple)
        ["loader"] = {                                              -- LOADER INFORMATION
            model = `forklift`,                                     -- Model of the loader
            coords = vector4(1237.7, -3134.61, 7.1, 89.93),         -- Coordinates of the loader spawn point
            autopilot = false,                                      -- Specifies if the loader should be an autopilot by pilot ped (Only applies to cargobob)
            offsset = {x = 0.0, y = 1.3, z = -0.6, rx = 0.0, ry = 0.0, rz = 0.0}, -- Offset of the load on the loader
        ["dropoff"] = {                                             -- DROPOFF INFORMATION                                  
                coords = vector4(1121.46, -1461.07, 34.69, 268.21), -- Coordinates of the dropoff point
                payout = 12000                                      -- Payout for the dropoff (Can be a table for min/max payouts. Eg; {10000, 15000})

Last updated