[Paid] T-Scripts Trucking

A script by T-Scripts

No reviews yet.
[Paid] T-Scripts Trucking main image

Full Description

Hey everyone! I’m excited to share my Trucking Job System, This script brings a fully immersive and rewarding trucking experience to your server — complete with XP progression, interactive crate loading, permanent upgrades, and dynamic deliveries!


Video Preview :eyes:

[Discord]

[Tebex]

:gear: How It Works

:small_blue_diamond: Start Jobs Through NPCs – Begin your route by speaking to a trucking job NPC.

:small_blue_diamond: Manual Crate Loading – Use a forklift to pick up and load crates onto a trailer before hitting the road.

:small_blue_diamond: Trailer Deliveries – Attach your trailer and drive to a randomized destination across the map.

:small_blue_diamond: XP-Based Progression – Earn XP per job, rank up, and unlock access to upgrades and new paint jobs.

:small_blue_diamond: Permanent Upgrades – Install permanent engine, brake, armor, turbo, and suspension upgrades that stay with you.

:small_blue_diamond: Paint Unlocks – Access level-locked paint styles to customize your truck as you climb the ranks.

:small_blue_diamond: Real Payout System – Get paid based on distance and cargo type, with performance bonuses.

:small_blue_diamond: Persistent Data – All XP, stats, upgrades, and paint selections are saved and synced.

Config = {}

--------------------------------------------------------------------------------
-- 🔧 DEBUG SETTINGS
--------------------------------------------------------------------------------
Config.Debug = false                 -- Show debug markers for spawn zones and job areas
Config.DebugSpawnAssets = false     -- Spawns preview vehicles/props at spawn points for alignment ing ONLY WORKS IF "Config.Debug = true"

--------------------------------------------------------------------------------
-- 👤 NPC SETTINGS
--------------------------------------------------------------------------------
Config.JobPed = {
    model = "cs_floyd",                          -- Job-starting NPC model
    coords = vec4(917.51, -3239.97, 5.9, 5.08),  -- Location of job-start NPC
}


Config.UpgradePed = {
    model = "s_m_m_autoshop_01",
    coords = vec4(900.9, -3236.61, 5.9, 299.59), -- adjust location as needed
    interactionText = "Open Truck Upgrades"
}

Config.DropOffPed = {
    model = "s_m_m_dockwork_01",                 -- NPC at delivery destination
}


--------------------------------------------------------------------------------
-- 🚚 VEHICLE SPAWN LOCATIONS
--------------------------------------------------------------------------------

-- Truck spawn points (player truck)
Config.TruckSpawnPoints = {
    vec4(892.57, -3183.06, 5.9, 0.00), vec4(896.57, -3183.06, 5.9, 0.00),
    vec4(900.57, -3183.06, 5.9, 0.00), vec4(904.57, -3183.06, 5.9, 0.00),
    vec4(908.70, -3183.06, 5.9, 0.00), vec4(912.80, -3183.06, 5.9, 0.00),
    vec4(916.90, -3183.06, 5.9, 0.00), vec4(920.80, -3183.06, 5.9, 0.00),
    vec4(925.00, -3183.06, 5.9, 0.00), vec4(929.00, -3183.06, 5.9, 0.00),
    vec4(933.00, -3183.06, 5.9, 0.00), vec4(937.20, -3183.06, 5.9, 0.00),
    vec4(941.27, -3183.06, 5.9, 0.00), vec4(945.37, -3183.06, 5.9, 0.00),
    vec4(949.57, -3183.06, 5.9, 0.00), vec4(953.57, -3183.06, 5.9, 0.00),
    vec4(957.57, -3183.06, 5.9, 0.00), vec4(961.57, -3183.06, 5.9, 0.00),
    vec4(965.57, -3183.06, 5.9, 0.00), vec4(969.57, -3183.06, 5.9, 0.00)
}

-- Trailer spawn points (player trailer)
Config.TrailerSpawnPoints = {
    vec4(908.70, -3209.65, 5.9, 0.00), vec4(912.80, -3209.65, 5.9, 0.00),
    vec4(925.00, -3209.65, 5.9, 0.00), vec4(929.00, -3209.65, 5.9, 0.00),
    vec4(933.00, -3209.65, 5.9, 0.00), vec4(937.20, -3209.65, 5.9, 0.00),
    vec4(941.27, -3209.65, 5.9, 0.00), vec4(945.37, -3209.65, 5.9, 0.00),
    vec4(949.57, -3209.65, 5.9, 0.00), vec4(953.57, -3209.65, 5.9, 0.00),
    vec4(957.57, -3209.65, 5.9, 0.00)
}

-- Forklift spawn points (used for crate loading)
Config.ForkliftSpawnPoints = {
    vec4(907.9, -3233.05, 5.9, 356.34), vec4(904.9, -3233.05, 5.9, 356.34),
    vec4(901.9, -3233.05, 5.9, 356.34), vec4(898.9, -3233.05, 5.9, 356.34),
    vec4(895.9, -3233.05, 5.9, 356.34), vec4(892.9, -3233.05, 5.9, 356.34),
    vec4(889.9, -3233.05, 5.9, 356.34),
}

-- Return location for forklift
Config.ForkliftReturnZone = vec3(923.09, -3236.67, 5.9)

--------------------------------------------------------------------------------
-- 📦 CARGO SETTINGS
--------------------------------------------------------------------------------

-- Model used for cargo boxes
Config.CargoPropModel = "prop_boxpile_06b"

-- Crate spawn positions (where cargo is picked up with forklift)
Config.CargoSpawnPoints = {
    vec3(928.53, -3233.31, 5.9), vec3(930.53, -3233.31, 5.9),
    vec3(932.53, -3233.31, 5.9), vec3(934.53, -3233.31, 5.9),
    vec3(936.53, -3233.31, 5.9), vec3(938.53, -3233.31, 5.9),
    vec3(940.53, -3233.31, 5.9), vec3(942.53, -3233.31, 5.9),
    vec3(944.53, -3233.31, 5.9), vec3(946.53, -3233.31, 5.9),
}

-- Cargo drop zones: trailerIndex maps directly to drop zone index
Config.CargoDropZones = {
    vec3(908.72, -3216.16, 5.9), vec3(912.77, -3216.16, 5.9),
    vec3(925.01, -3216.16, 5.9), vec3(928.95, -3216.18, 5.9),
    vec3(932.97, -3216.16, 5.9), vec3(937.13, -3216.16, 5.9),
    vec3(941.19, -3216.16, 5.9), vec3(945.37, -3216.16, 5.9),
    vec3(949.60, -3216.16, 5.9), vec3(953.53, -3216.16, 5.9),
    vec3(957.56, -3216.16, 5.9),
}

-- Minimum and maximum cargo (crates) to deliver per job
Config.CargoAmount = {
    min = 1,
    max = 4,
}

--------------------------------------------------------------------------------
-- 🧭 DELIVERY LOCATIONS (Based on XP level)
--------------------------------------------------------------------------------
Config.DeliveryLocations = {
    {
        xpRequired = 0,
        payoutBonus = 1.0,
        xpReward = 25,
        locations = {
            vec4(-2128.12, 2862.78, 32.81, 19.3),
            vec4(-2108.12, 2862.78, 32.81, 19.3),
        }
    },
    {
        xpRequired = 300,
        payoutBonus = 1.15,
        xpReward = 50,
        locations = {
            vec4(437.98, -586.95, 28.5, 186.84),
            vec4(443.00, -580.00, 28.5, 200.0),
        }
    },
    {
        xpRequired = 750,
        payoutBonus = 1.35,
        xpReward = 75,
        locations = {
            vec4(1194.96, -689.08, 60.6, 166.53),
            vec4(1202.34, -685.11, 60.6, 180.0),
        }
    }
}

--------------------------------------------------------------------------------
-- 💸 PAYMENT SETTINGS
--------------------------------------------------------------------------------
Config.BasePay = 250             -- Flat base job pay
Config.PayPerMeter = 0.45        -- Distance-based pay multiplier

--------------------------------------------------------------------------------
-- 📈 XP LEVEL TITLES
--------------------------------------------------------------------------------
Config.Levels = {
    { xp = 0,       title = "Rookie Driver (Lv. 1)" },
    { xp = 300,     title = "Cargo Cadet (Lv. 2)" },
    { xp = 645,     title = "Road Apprentice (Lv. 3)" },
    { xp = 1041,    title = "Gear Shifter (Lv. 4)" },
    { xp = 1498,    title = "Weekend Wheeler (Lv. 5)" },
    { xp = 2022,    title = "Daily Hauler (Lv. 6)" },
    { xp = 2626,    title = "Route Runner (Lv. 7)" },
    { xp = 3319,    title = "Freight Regular (Lv. 8)" },
    { xp = 4107,    title = "Distance Driver (Lv. 9)" },
    { xp = 5003,    title = "Load Lifter (Lv. 10)" },

    { xp = 6016,    title = "Seasoned Operator (Lv. 11)" },
    { xp = 7158,    title = "Logistics Handler (Lv. 12)" },
    { xp = 8437,    title = "Cargo Commander (Lv. 13)" },
    { xp = 9862,    title = "Convoy Chief (Lv. 14)" },
    { xp = 11443,   title = "Veteran Hauler (Lv. 15)" },
    { xp = 13207,   title = "Diesel Boss (Lv. 16)" },
    { xp = 15168,   title = "Asph■■■■■eteran (Lv. 17)" },
    { xp = 17355,   title = "Highway Hero (Lv. 18)" },
    { xp = 19788,   title = "Fleet Veteran (Lv. 19)" },
    { xp = 22491,   title = "Rubber King (Lv. 20)" },

    { xp = 25491,   title = "Torque Master (Lv. 21)" },
    { xp = 28819,   title = "Overdrive Officer (Lv. 22)" },
    { xp = 32512,   title = "Steel Convoy (Lv. 23)" },
    { xp = 36609,   title = "Big Rig General (Lv. 24)" },
    { xp = 41150,   title = "Legendary Hauler (Lv. 25)" },
    { xp = 46178,   title = "Road Commander (Lv. 26)" },
    { xp = 51675,   title = "Haul Baron (Lv. 27)" },
    { xp = 57676,   title = "Diesel Tycoon (Lv. 28)" },
    { xp = 64219,   title = "Supply Line King (Lv. 29)" },
    { xp = 71341,   title = "The Freighter (Lv. 30)" },

    { xp = 79084,   title = "Convoy Lord (Lv. 31)" },
    { xp = 87492,   title = "Asphalt Sovereign (Lv. 32)" },
    { xp = 96616,   title = "The Wheelman (Lv. 33)" },
    { xp = 106518,  title = "Diesel Knight (Lv. 34)" },
    { xp = 117265,  title = "Route Emperor (Lv. 35)" },
    { xp = 128928,  title = "Logistics Overlord (Lv. 36)" },
    { xp = 141581,  title = "The Steel Titan (Lv. 37)" },
    { xp = 155303,  title = "Load Legend (Lv. 38)" },
    { xp = 170178,  title = "The Great Hauler (Lv. 39)" },
    { xp = 186295,  title = "Hauling Juggernaut (Lv. 40)" },

    { xp = 203750,  title = "Fuel-Blooded (Lv. 41)" },
    { xp = 222648,  title = "The Asphalt Reaper (Lv. 42)" },
    { xp = 243106,  title = "King of the Convoy (Lv. 43)" },
    { xp = 265250,  title = "Giga Hauler (Lv. 44)" },
    { xp = 289216,  title = "Big Rig Deity (Lv. 45)" },
    { xp = 315150,  title = "Master of the Road (Lv. 46)" },
    { xp = 343216,  title = "Diesel Dominator (Lv. 47)" },
    { xp = 373587,  title = "Infinite Wheeler (Lv. 48)" },
    { xp = 406456,  title = "Trucking God (Lv. 49)" },
    { xp = 442036,  title = "🚛Mother Trucker (Lv. 50)🚛" }
}



Config.UpgradePrices = {
    engine = {
        [1] = { price = 500, level = 5 },
        [2] = { price = 1000, level = 10 },
        [3] = { price = 2000, level = 15 }
    },
    brakes = {
        [1] = { price = 300, level = 3 },
        [2] = { price = 800, level = 6 },
        [3] = { price = 1500, level = 9 }
    },
    transmission = {
        [1] = { price = 400, level = 2 },
        [2] = { price = 1000, level = 4 },
        [3] = { price = 1800, level = 6 }
    },
    suspension = {
        [1] = { price = 350, level = 4 },
        [2] = { price = 750, level = 8 },
        [3] = { price = 1200, level = 12 },
        [4] = { price = 1800, level = 16 }
    },
    armor = {
        [1] = { price = 1000, level = 6 },
        [2] = { price = 2000, level = 12 },
        [3] = { price = 3000, level = 18 }
    },
    turbo = {
        [1] = { price = 2500, level = 15 }
    }
}

Config.PaintOptions = {
[1]  = { label = "Classic Black",     color = 0,   price = 500,   level = 1 },
[2]  = { label = "Metallic Red",      color = 27,  price = 800,   level = 2 },
[3]  = { label = "Matte Grey",        color = 134, price = 1000,  level = 3 },
[4]  = { label = "Chrome",            color = 120, price = 1500,  level = 5 },
[5]  = { label = "Pearlescent White", color = 111, price = 1700,  level = 6 },
[6]  = { label = "Midnight Blue",     color = 141, price = 1800,  level = 7 },
[7]  = { label = "Forest Green",      color = 49,  price = 1850,  level = 8 },
[8]  = { label = "Orange Pearl",      color = 38,  price = 1900,  level = 9 },
[9]  = { label = "Wine Red",          color = 143, price = 1950,  level = 10 },
[10] = { label = "Cobalt Blue",       color = 64,  price = 2000,  level = 11 },
[11] = { label = "Sunburst Yellow",   color = 88,  price = 2100,  level = 13 },
[12] = { label = "Gunmetal",          color = 147, price = 2200,  level = 15 },
[13] = { label = "Teal Matte",        color = 91,  price = 2300,  level = 17 },
[14] = { label = "Hot Pink",          color = 135, price = 2500,  level = 19 },
[15] = { label = "Deep Purple",       color = 145, price = 2600,  level = 21 },
[16] = { label = "Glossy White",      color = 112, price = 2700,  level = 23 },
[17] = { label = "Racing Green",      color = 50,  price = 2800,  level = 25 },
[18] = { label = "Sky Blue",          color = 70,  price = 2900,  level = 28 },
[19] = { label = "Lime Green",        color = 92,  price = 3000,  level = 31 },
[20] = { label = "Diamond Blue",      color = 67,  price = 3200,  level = 34 },
[21] = { label = "Graphite",          color = 1,   price = 3500,  level = 38 },
[22] = { label = "Ultra Black",       color = 147, price = 4000,  level = 42 },

}



Config.Text = {

    -- Trucking
    AlreadyOnJob = "You are already on a job!",
    NoTruckSpawns = "No truck spawn points are clear. Try again shortly.",
    NoTrailerSpawns = "No trailer spawn points are clear. Try again shortly.",
    NoForkliftSpawns = "No forklift spawn points are clear. Try again shortly.",
    ForkliftProvided = "A forklift has been provided to load the cargo.",
    CargoLoadStart = "Truck and trailer spawned. Attach the trailer and load your cargo.",
    LoadCargo = function(n) return ("Load %d cargo crate(s) into the trailer area to begin delivery."):format(n) end,
    CargoLoaded = function(dropped, needed) return ("Cargo loaded: %d / %d"):format(dropped, needed) end,
    AllCargoLoaded = "All cargo loaded! Attach the trailer to begin delivery.",
    TrailerAttached = "Trailer attached! You may now deliver the cargo.",
    MustAttachTrailer = "You must have the trailer attached to deliver the cargo!",
    NotLoadedCargo = "You haven't completed cargo loading!",
    DropOffPrompt = "Trailer parked. Please report to the drop-off officer to complete delivery.",
    DeliveryComplete = "Delivery complete. Truck returned.",
    JobCancelled = "Job cancelled.",
    AssetsCleaned = "All job assets cleaned up.",
    NoXPDeliveries = "No delivery routes available for your XP level.",
    NoDeliveryLocation = "Task Delivery location not set!",

    
    -- Additional client-side
    CouldNotMatchTrailer = "Could not match trailer spawn to a cargo zone.",
    MustLoadBeforeAttach = "You must load all cargo before attaching the trailer.",
    UnableToReserveCrates = "Unable to reserve crate spawn points. Try again later.",
    ReturnForklift = "All cargo loaded! Please return the forklift to its marked spot to proceed.",
    ForkliftReturned = "Forklift returned. Truck keys granted.",
    MissingTruckAndTrailer = "You need a truck and trailer spawned to use this.",
    DebugMarkedLoaded = "Debug: Cargo marked as loaded. Proceed to delivery.",
    XPRank = function(xp, title) return ("XP: %d | Rank: %s"):format(xp, title) end,

    -- Server-side
    CashReward = function(amount) return "You received $" .. amount .. " in cash." end,
    XPGain = function(gain, total) return ("You earned %d XP (Total: %d)"):format(gain, total) end,
    NoStatsFound = "No trucking stats found.",

    -- Upgrades
    InvalidUpgrade = "Invalid upgrade level or price.",
    LevelTooLow = "You don't meet the level requirement.",
    AlreadyOwnedUpgrade = "You already own this or a better upgrade.",
    UpgradeSuccess = function(upgrade, level) return ("Upgrade purchased: %s Lv. %s"):format(upgrade, level) end,
    NotEnoughCash = "Not enough cash.",

    -- Paint
    InvalidPaint = "Invalid color selected.",
    PaintLoadFail = "Failed to load paint data.",
    PaintSuccess = function(label) return "Truck painted: " .. label end,
    PaintAlreadyEquipped = "You already have this paint equipped.",
    PaintLevelTooLow = "You do not meet the required level for this paint.",
    PaintNotEnoughCash = "You do not have enough cash to buy this paint.",
    PaintFailed = "Failed to apply paint, please try again.",
    PaintApplied = "Paint applied successfully!",
}



:package: Example
A player starts a job, loads crates with a forklift, hooks up their trailer, and drives across the city to deliver. They earn cash and XP, hit a new level, and use it to unlock a turbo upgrade and new paint for their truck — all of which are permanently saved!


:hammer_and_wrench: Fully Customizable

:small_blue_diamond: Edit XP scaling, payouts, and delivery zones in config.lua
:small_blue_diamond: Add or change NPCs, spawn locations, and crate positions
:small_blue_diamond: Customize truck paint options and upgrade pricing
:small_blue_diamond: Enable debug mode to easily test and position assets


In Game Photos

Menu’s:

Paint Shop


Truck Stats Via /truckstats


Truck Upgrade Menu


Debug
“Config.Debug = true”

“Config.DebugSpawnAssets = true”

Blips

This system is perfect for economy servers, trucking RP, and anyone looking to add a fun, skill-based delivery job to their server! :video_game:

Code is accessible Only Config.lua & HTML
Subscription-based No
Lines (approximately) Number of lines: 2000
Requirements Requirements: QBCore
Support Yes

Config Merger
Have you tried Config Merger? Merge your configs easily