Add Jobs
Adding a New Custom Job
To add a new job, follow these steps:
Step 1: Add to Main Jobs List
Copy the following template and add it to the Jobs table in bit-jobs/config.lua, following the order of existing jobs:
[10] = { -- jobID (change the number to follow the order)
-- Name that appears in the Job UI
["name"] = "Your Job Name",
--Image of the character appearing in the UI
["image"] = "assets/yourjob.png",
--Position of the character on the main UI screen
["descpos"] = {top = "0rem", left = "35rem", width = "34rem"},
--Position of the character in the "How it Works?" screen of the UI.
["vecpos"] = {top = "9rem", left = "-3rem", width = "49rem"},
--Position of the character in the "Leaderboard" screen of the UI.
["scorepos"] = {top = "9rem", left = "-3rem", width = "49rem"},
--HTML description of the job shown on the main screen
["description"] = "Your job description here<br><br>More details...",
--Texts of the working points in the "How it works?" section.
["howitworks1"] = "Go to the wardrobe to change into your work clothes",
["howitworks2"] = "Take the work vehicle and go to the point marked on the map",
["howitworks3"] = "Collect items...",
["howitworks4"] = "Process the items...",
["howitworks5"] = "Sell the items...",
--Text of the item required for this work
["require"] = "1x Your Required Item",
--Svg icon appearing in job listing
["svg"] = "<svg>...</svg>", -- Your custom SVG icon
--If the "Config.jobRequired" option is active
["jobName"] = "yourjobname",
["jobGrade"] = 0,
--How many points you want to award each time the items are sold
["points"] = 100,
--If the job belongs to another script enter the trigger to start the job here:
["triggerToStart"] = nil,
--If you want the action points to be randomized
["randomActionLocations"] = true
},
Step 2: Create Job Configuration File
- Navigate to the
bit-jobs/jobs/folder - Copy any existing job file (e.g.,
miner.lua) - Rename it to match your job name (e.g.,
yourjob.lua) - Modify the data in that file according to your needs
Example structure:
local jobName = "YOURJOB"
local emoji = "π§" -- Your job emoji
local jobID = 10 -- Must match the number in Jobs list in config.lua
ConfigJob[jobID] = {
name = jobName,
requireItem = true, -- Set to true if the job requires a tool
requiredItem = "yourtool", -- The tool item name
wardrobe = {
coord = vector3(x, y, z), -- Wardrobe location
wardrobeName = emoji..jobName.." - Wardrobe",
wardrobeBlipSprite = 73,
wardrobeBlipColor = 5,
wardrobeBlipScale = 0.9,
wardrobeMarkerRGB = {r = 73, g= 196, b= 137},
wardrobeMarkerType = 23,
wardrobeMarkerText = "π¦Ί\n "..jobName.." Wardrobe"
},
vehicle = {
useVehicle = true, -- Set to false if job doesn't need a vehicle
vehModel = "yourcar",
vehCoords = vector3(x, y, z),
vehHeading = 0.0,
vehBlipSprite = 67,
vehBlipText = "Job Vehicle",
vehBlipColor = 5,
vehBlipScale = 0.9,
},
jobSteps = {
[1] = { -- Collection point
-- Configure collection point
},
[2] = { -- Processing point 1
-- Configure processing
},
[3] = { -- Processing point 2 (optional)
-- Configure second processing
},
[4] = { -- Selling point
-- Configure selling location
}
},
ActionPoints = {
[1] = vector3(x, y, z),
[2] = vector3(x, y, z),
-- Add more action points as needed
}
}
Step 3: Configure Clothes
Add clothing configuration for both ESX and QBCore frameworks at the end of your job file.
Adding Jobs from Other Scripts
If you want to integrate a job from another script:
- Follow Step 1 above to add the job to the main Jobs list
- Instead of creating a full configuration file, use the
triggerToStartproperty:
["triggerToStart"] = "yourscript:startjob",
This will trigger the external script's job instead of using the built-in job system.
Example
[10] = {
["name"] = "External Job",
["image"] = "assets/externaljob.png",
-- ... other properties ...
["triggerToStart"] = "jobscripttrigger:startjob", -- Trigger from other script
["randomActionLocations"] = false -- Not needed for external jobs
}