Configuration
All shared configuration is in shared/config.lua.
General Settings
| Setting | Type | Description |
|---|---|---|
Config.Framework | string | 'esx', 'qbcore', or 'qbox' |
Config.target | string | 'ox_target' or 'qb-target' |
Config.Locale | string | Language code ('en', 'fr', 'de', etc.) |
Config.ThemeColor | string | Hex color for the UI theme (e.g. '#CF0000'). The full palette is auto-generated from this single color. |
Config.ped | string | NPC model name (e.g. 'mp_m_freemode_01') |
Config.location | vec4 | NPC spawn position and heading |
Config.AutoFocusSearch | boolean | Automatically focus the search input when opening the job center |
Config.ShowTooltips | boolean | Show tooltips on hover for job cards, buttons, etc. |
Config.Logo | string | Path to the header logo image |
Blip Settings
Config.Blip = {
show = true, -- Show the job center blip on the map
sprite = 407, -- Blip sprite ID
color = 27, -- Blip color ID
scale = 0.8, -- Blip scale
}Header Settings
Config.Header = {
showTagline = true, -- Set to false to hide tagline and vertically center title
-- titleColor = '#FFFFFF', -- Optional: Custom title color (default: uses theme textPrimary)
-- taglineColor = '#A6A6A6', -- Optional: Custom tagline color (default: uses theme textMuted)
}Job Definitions
Each job in Config.jobs has the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Must match your framework’s database job name |
label | string | Yes | Display name shown in the UI |
image | string | Yes | Path to job image (recommended: 235 x 264px, portrait). Formats: .png, .jpg, .jpeg, .webp |
aboutWork | string | Yes | Job description shown in the detail panel |
requirements | table | Yes | List of requirement strings |
averageEarnings | string | Yes | Earnings display text (e.g. '$50 - $150/hr') |
location | table | No | { x = number, y = number } — Used for the waypoint marker button |
whitelist | boolean | No | If true, the job requires an application instead of instant selection |
applicationQuestions | table | No | List of question definitions (required if whitelist = true) |
Example: Standard Job
{
name = 'taxi',
label = 'Taxi Driver',
image = './job-images/taxidriver.jpg',
aboutWork = 'Provide transportation services to citizens across the city.',
requirements = { 'Valid Driving License', 'City Knowledge' },
averageEarnings = '$50 - $150/hr',
location = { x = 895.25, y = -179.01 },
}Example: Whitelist Job
{
name = 'police',
label = 'Police Officer',
image = './job-images/police.jpg',
aboutWork = 'Serve and protect the citizens of San Andreas.',
requirements = { 'Clean Record', 'Physical Fitness', 'Communication Skills' },
averageEarnings = '$80 - $150/hr',
location = { x = 441.05, y = -982.01 },
whitelist = true,
applicationQuestions = {
{ type = 'input', label = 'Character Full Name', required = true, placeholder = 'e.g. John Doe' },
{ type = 'textarea', label = 'Why do you want to join?', required = true, min = 20, max = 500 },
{ type = 'select', label = 'Timezone', required = true, options = {
{ value = 'est', label = 'EST (Eastern)' },
{ value = 'cst', label = 'CST (Central)' },
{ value = 'pst', label = 'PST (Pacific)' },
{ value = 'eu', label = 'EU' },
{ value = 'other', label = 'Other' },
}},
{ type = 'number', label = 'Hours per week you can dedicate', min = 1, max = 100 },
{ type = 'checkbox', label = 'I agree to follow all department SOPs' },
},
}Job Images
Place images in the web/job-images/ folder inside the resource directory.
- Recommended size: 235 x 264px (portrait)
- Supported formats:
.png,.jpg,.jpeg,.webp - Reference in config:
image = './job-images/police.jpg'
Last updated on