[ESX] & [QBCORE] Tailor Job

Showcase
TAILOR JOB

Purchase
ESX - Tailor Job | QBCORE - Tailor Job

Images
Click me

Code is accessible No, Config ~ 600 lines
Subscription-based No
Lines (approximately) ~1500
Requirements [QB] (qb-menu, qb-target, qb-input - optional, you can adapt to your own.)
Requirements [ESX] (nh-context, qtarget, nh-keyboard / qb-input - optional, you can adapt to your own.)
Support Yes

Asset is encrypted using fivem escrow system but a lot of configurable values are present for you to edit plus couple of files are unencrypted too.

Optimization
Full optimized.
0.00 ms

Features

  • Basic and advanced sewing machines

  • Job vehicle

  • Sewing, dyeing wool, mixing colors, ordering cotton, ordering wool, packaging, delivery(selling packages)

  • Experience system

  • Price of wool depends on experience

  • Players need to have some experience to start using advanced sewing machines.

  • Deposit

  • Server-side checks to prevent abuse, and cheating.

Our Other Resources

Config

Config.Identifier = 1 -- 0 = steam identifier, 1 = license identifier
Config.DebugPolyZone = false

Config.ClearPedsInArea = true 


Config.ProgressBar = { -- qb-progressbar or lj-progressbar
-- https://github.com/qbcore-framework/progressbar

    Use = true, 
    Sewing = "Sewing ",
    DyeingWool = "Dyeing Wool",
    Packaging = "Packaging ",
    MixingColors = "Mixing colors...",
}

Config.IsPedDeadOrDying = {
    DeleteJobVehicle = true, 
    RemoveJobVehicleKeys = true, -- if is on true player will be lose keys if player die.
}

Config.Experience = {
    Use = TRUE, 
    ExpirienceRequired = 30, -- Expirience required for use advanced tailor machine. 

    IncreaseExperience = math.random(1, 3) -- experience I'll be encreased per sewing 
}


Config.MachinesLocations = {
    ["Advanced"] = {
        vector3(715.96, -963.08, 30.4),
        vector3(718.69, -963.15, 30.4),
        vector3(713.59, -960.64, 30.4),
        vector3(716.12, -960.68, 30.4),
        vector3(718.67, -960.67, 30.4),
    },

    ["Basic"] = {
        vector3(714.3, -967.73, 29.4),
        vector3(714.3, -969.94, 29.4),
        vector3(714.27, -972.13, 29.4),
    }
}


Config.Manager = {
    Ped = "ig_djsolmanager", -- https://docs.fivem.net/docs/game-references/ped-models/
    Pos = {x = 739.8937, y = -970.136, z = 24.457, h = 277.16},
    -- deposit
    UseDeposit = true, 
    DepositAccount = "cash", -- cash, bank 
    DepositAmount = 500,
    -- Blip 
    UseBlip = true,
	Sprite = 73,
	Scale = 1.1,
	Color = 37,
	Label = "[Tailor] Job",

    VehSpawnPos = {x = 745.8436, y = -966.369, z = 24.024, h = 271.25}, -- Veh spawn pos
    
    UseSpawnPointCheck = true,
    SpawnPointCheckRadius = 3.5,
    
    SetPedIntoVehicle = true,

    FullFuel = true -- Read ⬇️
}


-- Fuel function if you using "FullFuel = true" 
function fullFuel()
    -- If you using "lj-fuel" just replace "LegacyFuel" with "lj-fuel"! ⬇️
    exports["LegacyFuel"]:SetFuel(jobVehicle, 100) -- Legacy Fuel 
end


Config.JobVehicles = { 
    [1] = "rumpo",
    [2] = "speedo",
}

RegisterNetEvent("d3:tailorJob:GiveCarKeys", function(vehiclePlate)
	-- Here you can put event or export to give player vehicle keys
	TriggerEvent("vehiclekeys:client:SetOwner", vehiclePlate) 
end)


Config.CottonOrder = {
    Ped = "a_m_m_eastsa_02", -- https://docs.fivem.net/docs/game-references/ped-models/
    Pos = {x = 959.5012, y = 3618.890, z = 32.673, h = 89.905},
    Distance = 1.5,
    -- Blip 
	Sprite = 480,
	Scale = 1.1,
	Color = 5,
    RouteColor = 2,
	Label = "[Tailor] - Cotton Delivery",
    
    AmountOfCotton = 100, -- amount of cotton I'll player get when take a "cotton order from ped"
} 


Config.WoolOrder = {
    Ped = "a_m_m_bevhills_01", -- https://docs.fivem.net/docs/game-references/ped-models/
    Vehicle = "speedo", 
    SpawnLocation = vector4(883.8268, -1020.22, 32.264, 1.11),
    DriveToLocation =  vector3(707.6166, -988.500, 24.101), 
    
    Price = 1, -- defualt price per wool, this price will be multiple by "experience multiplier" ⬇️⬇️⬇️ 
    Account = 'bank', -- cash, bank 
}

RegisterNetEvent("d3:client:tailorOrderWoolInputPriceMultiplier", function()
	QBCore.Functions.TriggerCallback('d3:tailorGetExperience', function(exp) -- exp = experience
        if exp <= 25 then -- less than 25 experience
            TriggerEvent("d3:client:tailorOrderWoolInput", Config.WoolOrder.Price * 0.40) -- 0.40 - multiplier  
		elseif exp >= 25 and exp < 50 then
			TriggerEvent("d3:client:tailorOrderWoolInput", Config.WoolOrder.Price * 0.30) -- 0.30 - multiplier  
		elseif exp >= 50 and exp < 120 then 
			TriggerEvent("d3:client:tailorOrderWoolInput", Config.WoolOrder.Price * 0.20)
        elseif exp >= 120 then
			TriggerEvent("d3:client:tailorOrderWoolInput", Config.WoolOrder.Price * 0.10)
		end
	end)
end)


Config.Colors = { 
    ClearPedTasksImmediately = true, 
    WoolItem = "white_wool", 
    
    Pos = {x = 715.43, y = -974.84, z = 30.4},
    Distance = 1.3,

    Duration = 5, -- time for dye wool in sec 

    -- Items
    MaxCount = 2,
    Items = {
        Green = "green_wool_color",
        Red = "red_wool_color",
        Blue = "blue_wool_color"
    }
}

Config.MixingColors = {
    ClearPedTasksImmediately = true,

    Pos = {
        vector3(704.29, -961.06, 30.4),
        vector3(705.69, -961.9, 30.4),
    },

    Duration = 10,  -- Mixing time (in seconds)

    ["Yellow"] = { 
        Ingredients = {
            ["red_wool"] = 2, 
            ["green_wool"] = 1,
        },
        ItemName = "yellow_wool"  -- item name 
    },

    ["Orange"] = { 
        Ingredients = {
            ["red_wool"] = 2, 
            ["green_wool"] = 1,
        },
        ItemName = "orange_wool"  
    },

    ["Brown"] = { 
        Ingredients = {
            ["red_wool"] = 2, 
            ["green_wool"] = 1,
            ["blue_wool"] = 1,
        },
        ItemName = "brown_wool"  
    },

    ["Pink"] = { 
        Ingredients = {
            ["red_wool"] = 1, 
            ["blue_wool"] = 2,
        },
        ItemName = "pink_wool" 
    },

    ["Gray"] = { 
        Ingredients = {
            ["red_wool"] = 1, 
            ["green_wool"] = 1,
            ["blue_wool"] = 1,
        },
        ItemName = "gray_wool"  
    }
}


--[[ Ingredients List = 

    blue_wool
    brown_wool
    gray_wool
    green_wool
    orange_wool
    pink_wool
    red_wool
    yellow_wool
    white_wool
    tailor_cotton

--]]


Config.Products = {

    ["Red wool hat"] = {
        Ingredients = {
            ["red_wool"] = 2,
            ["white_wool"] = 1,
        },
        Duration = 8, -- Sewing time 
        FinishedProduct = "red_wool_hat" -- item name
    },

    ["Gray wool hat"] = {
        Ingredients = {
            ["gray_wool"] = 2,
            ["white_wool"] = 1,
        },
        Duration = 8, 
        FinishedProduct = "grey_wool_hat"
    },

    ["Cotton T-Shirt"] = {
        Ingredients = {
            ["tailor_cotton"] = 13,
        },
        Duration = 10, 
        FinishedProduct = "cotton_t-shirt"
    },

    ["Wool T-Shirt"] = { 
        Ingredients = {
            ["blue_wool"] = 3, 
            ["white_wool"] = 2,
            ["gray_wool"] = 2,
        },
        Duration = 12, 
        FinishedProduct = "wool_t-shirt" 
    },

    ["Wool Vest"] = { 
        Ingredients = {
            ["white_wool"] = 6, 
            ["gray_wool"] = 2,
        },
        Duration = 14, -- Sewing time 
        FinishedProduct = "wool_vest" -- item name 
    },

    ["Gucci T-Shirt"] = { 
        Ingredients = {
            ["white_wool"] = 5, 
            ["green_wool"] = 3, 
            ["red_wool"] = 3,
            ["tailor_cotton"] = 4,
        },
        Duration = 17, 
        FinishedProduct = "gucci_t-shirt" 
    },

    ["Blue Gucci Jumper"] = { 
        Ingredients = {
            ["white_wool"] = 2, 
            ["green_wool"] = 1,
            ["blue_wool"] = 6,
            ["red_wool"] = 4,
            ["brown_wool"] = 1,
        },
        Duration = 20, 
        FinishedProduct = "gucci_jumper" 
    },

    ["Pink Gucci Jumper"] = {
        Ingredients = {
            ["white_wool"] = 2, 
            ["gray_wool"] = 4,
            ["pink_wool"] = 6,
            ["red_wool"] = 4,
            ["brown_wool"] = 3,
        },
        Duration = 25, 
        FinishedProduct = "gucci_jumper2"
    },

    -- Basic machine products 

    ["Cotton hat"] = {
        Ingredients = {
            ["tailor_cotton"] = 6, 
        },
        Duration = 7, 
        FinishedProduct = "cotton_hat"
    },

    ["Cotton shorts"] = {
        Ingredients = {
            ["tailor_cotton"] = 12, 
        },
        Duration = 7, 
        FinishedProduct = "cotton_shorts"
    },

    ["Brown wool gloves"] = {
        Ingredients = {
            ["white_wool"] = 1, 
            ["brown_wool"] = 2,
        },
        Duration = 7, 
        FinishedProduct = "brown_wool_gloves"
    },

    ["Green wool gloves"] = {
        Ingredients = {
            ["white_wool"] = 1, 
            ["green_wool"] = 2,
        },
        Duration = 7, 
        FinishedProduct = "green_wool_gloves"
    },

    ["Orange wool gloves"] = {
        Ingredients = {
            ["white_wool"] = 1, 
            ["orange_wool"] = 2,
        },
        Duration = 7, 
        FinishedProduct = "orange_wool_gloves"
    },

    ["Cotton socks"] = {
        Ingredients = {
            ["tailor_cotton"] = 7,
        },
        Duration = 12, 
        FinishedProduct = "cotton_socks"
    },

    ["Green wool socks"] = {
        Ingredients = {
            ["white_wool"] = 1,
            ["green_wool"] = 3,
        },
        Duration = 13, 
        FinishedProduct = "green_wool_socks"
    },

    ["Red wool socks"] = {
        Ingredients = {
            ["white_wool"] = 1,
            ["red_wool"] = 3,
        },
        Duration = 13, 
        FinishedProduct = "red_wool_socks"
    },

    ["Yellow wool socks"] = {
        Ingredients = {
            ["white_wool"] = 1,
            ["yellow_wool"] = 3,
        },
        Duration = 13, 
        FinishedProduct = "yellow_wool_socks"
    },

    ["Pink wool socks"] = {
        Ingredients = {
            ["white_wool"] = 1,
            ["pink_wool"] = 3,
        },
        Duration = 13, 
        FinishedProduct = "pink_wool_socks"
    },

    
}


Config.Packaging = { 
    ClearPedTasksImmediately = true,

    Account = 'cash', -- cash or bank 

    ["Cheap package"] = { 
        Products = {
            ["cotton_hat"] = 1,
            ["cotton_shorts"] = 2,
            ["cotton_socks"] = 2, 
            ["green_wool_gloves"] = 1, 
            ["pink_wool_socks"] = 1,
        },
        Duration = 3, -- Sewing time 
        Package = "tailor_cheap_package", -- item name 
        Price = 450
    },
    
    ["Medium package"] = {
        Products = {
            ["cotton_hat"] = 3,
            ["orange_wool_gloves"] = 2,
            ["cotton_socks"] = 4, 
            ["green_wool_gloves"] = 1, 
            ["pink_wool_socks"] = 1,
            ["red_wool_socks"] = 2,
            ["yellow_wool_socks"] = 1,
            ['cotton_shorts'] = 2, 
        },
        Duration = 3, 
        Package = "tailor_medium_package",
        Price = math.random(700, 850)
    },

    ["Expensive package"] = {
        Products = {
            ["red_wool_hat"] = 1,
            ["cotton_socks"] = 4, 
            ["wool_vest"] = 2, 
            ["brown_wool_gloves"] = 2,
            ["red_wool_socks"] = 2,
            ["green_wool_socks"] = 2,
            ['pink_wool_socks'] = 1, 
            ['wool_t-shirt'] = 2,
            ['cotton_t-shirt'] = 3,
            ["gucci_t-shirt"] = 1,
            ["grey_wool_hat"] = 1, 
        },
        Duration = 30, 
        Package = "tailor_expensive_package",
        Price = math.random(900, 1200)
    },
    
    ["Super package"] = {
        Products = {
            ["cotton_hat"] = 2, 
            ["gucci_t-shirt"] = 2,
            ["cotton_socks"] = 3, 
            ["wool_vest"] = 2, 
            ["gucci_jumper"] = 2,
            ["gucci_jumper2"] = 1,
            ["green_wool_socks"] = 2,
            ['wool_t-shirt'] = 2,
            ['cotton_t-shirt'] = 3,
            ["grey_wool_hat"] = 1, 
            ["cotton_hat"] = 2, 
        },
        Duration = 3, 
        Package = "tailor_super_package",
        Price = math.random(1500, 1800)
    },
}


Config.Delivery = { 
    Ped = "cs_jewelass", -- https://docs.fivem.net/docs/game-references/ped-models/
    Time = 10, --minutes, player have to sell packages

    Blip = { 
        Colour = 3,
        Sprite = 543,
        Scale = 1.0,
        Label = "[Tailor] Delivery location",  
        RouteColor = 3,
    },

    Locations = { 
        vector4(465.9919, -735.658, 26.364, 90.46),
        vector4(421.4597, -811.422, 28.491, 1.39), 
        vector4(-1188.64, -771.299, 16.328, 97.51), 
        vector4(-1612.70, -1076.38, 13.018, 51.78),
        vector4(-1534.47, -905.405, 9.161, 139.76),
        vector4(-1340.40, -1266.19, 4.8951, 99.5),
        vector4(-1099.49, 2712.072, 19.107, 214.61),
        vector4(1695.462, 4820.243, 42.069, 81.27),  
    }, 
}

Config.Notifications = { 
    ["paid_deposit"] = "You paid " ..Config.Manager.DepositAmount.. "$ for the vehicle deposit!",
    ["no_enough_money"] = "You don't have enough money to pay the vehicle deposit " ..Config.Manager.DepositAmount.. "$",
    ["deposit_back"] = "You got your deposit back " ..Config.Manager.DepositAmount.. "$",
    ["spawnpoint_check"] = "Vehicle spawnpoint has been blocked!",
    ["check_experience_laptop"] = "Experience: ",
    ["no_enough_money_wool_order"] = "You don't have enough money to pay the wool order ",
    ["invalid_amount"] = "Invalid amount!",
    ["you_dont_have_everything"] = "You don't have everything you need!",
    ["you_dont_have_anything_wool_order"] = "You have nothing to take!",
    ["advanced_machine_error"] = "You do not have the necessary experience to use an advanced sewing machine!",
    ["nothing_to_sell"] = "You have nothing to sell!",
    ["package_sold"] = "You sold ",
    ["you_already_have_wool"] = "You already have wool on the shelf!",
   
}

Config.TargetLabels = {
    ["take_keys"] = "Take a vehicle keys from manager.",
    ["back_keys"] = "Back the vehicle keys to manager.",
    ["check_experience"] = "Check Experience",
    ["order_cotton"] = "Order cotton", 
    ["order_cotton_stop"] = "Stop cotton order",
    ["order_wool"] = "Order wool",
    ["start_delivery"] = "Start delivery",
    ["stop_delivery"] = "Stop delivery",
    
    ["expensive_package"] = "Expensive Package", 
    ["super_package"] = "Super Package",
    ["medium_package"] =  "Medium Package",
    ["cheap_package"] = "Cheap Package",

    ["green_wool_color"] = "Green wool color",
    ["red_wool_color"] = "Red wool color",
    ["blue_wool_color"] = "Blue wool color",

    ["dye_wool"] = "Dye wool", 
    ["take_wool"] = "Take wool",
    ["take_cotton"] = "Take cotton",

    ["red_wool_hat"] = "Red wool hat",
    ["gray_wool_hat"] = "Gray wool hat",
    ["cotton_t-shirt"] = "Cotton T-Shirt",
    ["wool_t-shirt"] = "Wool T-Shirt",
    ["wool_vest"] = "Wool vest",
    ["gucci_t-shirt"] = "Gucci T-Shirt",
    ["blue_gucci_jumper"] = "Blue Gucci Jumper",
    ["pink_gucci_jumper"] = "Pink Gucci Jumper",

    ["cotton_hat"] = "Cotton hat", 
    ["cotton_shorts"] = "Cotton shorts",
    ["brown_wool_gloves"] = "Brown wool gloves",
    ["green_wool_gloves"] = "Green wool gloves",
    ["orange_wool_gloves"] = "Orange wool gloves",
    ["cotton_socks"] = "Cotton socks",
    ["green_wool_socks"] = "Green wool socks",
    ["red_wool_socks"] = "Red wool socks",
    ["yellow_wool_socks"] = "Yellow wool socks",
    ["pink_wool_socks"] = "Pink wool socks",

    ["yellow"] = "Yellow", 
    ["orange"] = "Orange", 
    ["brown"] = "Brown", 
    ["pink"] = "Pink", 
    ["gray"] = "Gray", 

    ["sell_cheap_package"] = "Sell Cheap package",
    ["sell_medium_package"] = "Sell Medium package",
    ["sell_expensive_package"] = "Sell Expensive package",
    ["sell_super_package"] = "Sell Super package",

    ["return_vehicle"] = "[E] Return job vehicle",
    
}

Config.TargetIcon = {
    ["manager_keys"] = "fas fa-key",
    ["socks"] = "fas fa-socks",
    ["hat"] = "fas fa-hat-cowboy",
    ["t-shirt"] = "fas fa-tshirt",
    ["gloves"] = "fas fa-mitten",
    ["vest"] = "fas fa-vest",
    ["shorts"] = "fas fa-hand-pointer",
    ["order_wool"] = "fas fa-arrow-right-to-bracket",
    ["order_cotton"] = "fas fa-leaf",
    ["check_ecperience"] = "fas fa-brain",
    ["mixing_colors"] = "fas fa-palette",
    ["start_delivery"] = "fas fa-truck",
    ["stop_delivery"] = "fas fa-circle-xmark",
    ["stop_cotton_order"] = "fas fa-circle-xmark",
    ["packaging"] = "fas fa-box-open",
    ["take_wool_color"] = "fas fa-sign-in-alt",
    ["dye_wool"] = "fas fa-fill", 
    ["sell_package"] = "fas fa-sack-dollar",

}   


2 Likes

Hi ! Is this script encrypted?
I want to buy then add UI and career proficiency feature to use on my server.

Hi, yeah, it’s encrypted using FiveM escrow system. :grinning: