> For the complete documentation index, see [llms.txt](https://docs.t1ger.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.t1ger.net/resources/t1ger-tuning/configuration/npc-jobs.md).

# NPC Jobs

t1ger\_tuning/shared/npc\_jobs.lua

```lua
return {

    Cooldown = 5, -- minutes, shared across both job types below

    -- ── Salvage Car ──────────────────────────────────────────────────────
    -- Strip a junk car for crafting materials, with a small chance at
    -- rare mod items.
    Salvage = {
        Enable = true,

        Menu = {
            title       = "Salvage Car",
            icon        = "car-burst",
            description = "Salvage a junk car to retrieve materials — and maybe a chance at some valuable parts.",
        },

        JunkCars = { "sultan", "asterope", "club", "exemplar", "felon", "fugitive" },

        Blip = { label = "Junk Car", sprite = 380, color = 51, scale = 0.65, route = { enable = true, color = 51 } },

        SkillCheck = { enable = true, difficulty = { "easy", "easy", "easy" }, inputs = { "w", "a", "s", "d" } },

        Target = { label = "Salvage %s", icon = "fa-solid fa-hammer" },

        -- Reward tables, rolled independently per part salvaged. chance is
        -- a % out of 100, min/max is the quantity awarded on a hit.
        Reward = {
            wheel = {
                ["rubber"]        = { chance = 100, min = 1, max = 5 },
                ["aluminium"]     = { chance = 100, min = 1, max = 5 },
                ["steel"]         = { chance = 80,  min = 1, max = 4 },
                ["mod_tyresmoke"] = { chance = 10,  min = 1, max = 1 },
            },
            door = {
                ["plastic"]      = { chance = 100, min = 3, max = 6 },
                ["scrap_metal"]  = { chance = 40,  min = 1, max = 3 },
                ["copper"]       = { chance = 70,  min = 2, max = 4 },
                ["mod_bodywork"] = { chance = 12,  min = 1, max = 1 },
                ["mod_exterior"] = { chance = 12,  min = 1, max = 1 },
            },
        },

        Locations = {
            vector4(-451.14, -1723.09, 18.66, 348.66),
            vector4(-450.36, -1691.61, 18.95, 155.90),
            vector4(-468.30, -1675.68, 19.05, 178.58),
            vector4(-425.61, -1687.68, 19.01, 158.74),
            vector4(-496.40, -1753.30, 18.31, 266.45),
            vector4(-551.26, -1703.73, 19.00, 212.59),
            vector4(-581.59, -1696.18, 19.06, 354.33),
        },
    },

    -- ── Mobile Tuning ────────────────────────────────────────────────────
    -- A roadside customer needs a specific cosmetic mod installed. Only
    -- realistic bolt-on/quick-fit mods are eligible — no engine work.
    MobileTuning = {
        Enable = true,

        Menu = {
            title       = "Mobile Tuning",
            icon        = "spray-can",
            description = "A customer needs on-site cosmetic tuning work done.",
        },

        Cars = { "euros", "zr350", "sultan3", "rt3000", "previon", "jester3" },
        Peds = { "a_m_m_bevhills_02", "a_m_m_socenlat_01", "a_m_y_bevhills_01" },

        Blip = { label = "Mobile Tuning Job", sprite = 643, color = 51, scale = 0.65, route = { enable = true, color = 51 } },

        TalkTarget = { label = "Talk with NPC", icon = "fa-solid fa-comments" },
        InstallTarget = { label = "Install Mod", icon = "fa-solid fa-wrench" },

        SkillCheck = { enable = true, difficulty = { "easy", "easy" }, inputs = { "w", "a", "s", "d" } },

        Reward = { min = 500, max = 5000 }, -- paid to the tuner's personal wallet

        -- Whitelist, not blacklist — only these Config.ModTypes keys are
        -- eligible for a mobile tuning request. Any variant satisfies the
        -- job, so no specific target value is picked or checked.
        AllowedMods = {
            "modSpoilers", "modFrontBumper", "modRearBumper", "modSideSkirt", "modGrille", "modHood", 
            "modExhaust", "xenonColor", "windowTint", "plateIndex", "modFrontWheels", 
            "modHorns", "tyreSmokeColor",
        },

        Locations = {
            vector4(-237.94, -2077.31, 27.61, 31.18),
            vector4(-47.36, -2103.38, 16.69, 198.42),
            vector4(-315.57, -2736.34, 5.99, 130.39),
            vector4(256.57, -3314.43, 5.77, 184.25),
            vector4(1125.61, -3138.51, 5.89, 0.0),
            vector4(1000.90, -1955.57, 30.88, 175.74),
            vector4(-1679.27, -924.27, 7.81, 323.14),
            vector4(1131.25, 255.89, 80.84, 56.69),
            vector4(853.26, -895.72, 25.30, 266.45),
            vector4(22.66, -1068.55, 38.14, 73.70),
            vector4(-725.80, -405.12, 34.99, 87.87),
            vector4(-2314.77, 449.45, 174.45, 170.07),
        },
    },
}
```
