Skip to Content

Configuration

All shared configuration is in shared/config.lua.

General Settings

SettingTypeDescription
Config.Frameworkstring'esx', 'qbcore', or 'qbox'
Config.targetstring'ox_target' or 'qb-target'
Config.LocalestringLanguage code ('en', 'fr', 'de', etc.)
Config.ThemeColorstringHex color for the UI theme (e.g. '#CF0000'). The full palette is auto-generated from this single color.
Config.pedstringNPC model name (e.g. 'mp_m_freemode_01')
Config.locationvec4NPC spawn position and heading
Config.AutoFocusSearchbooleanAutomatically focus the search input when opening the job center
Config.ShowTooltipsbooleanShow tooltips on hover for job cards, buttons, etc.
Config.LogostringPath 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:

FieldTypeRequiredDescription
namestringYesMust match your framework’s database job name
labelstringYesDisplay name shown in the UI
imagestringYesPath to job image (recommended: 235 x 264px, portrait). Formats: .png, .jpg, .jpeg, .webp
aboutWorkstringYesJob description shown in the detail panel
requirementstableYesList of requirement strings
averageEarningsstringYesEarnings display text (e.g. '$50 - $150/hr')
locationtableNo{ x = number, y = number } — Used for the waypoint marker button
whitelistbooleanNoIf true, the job requires an application instead of instant selection
applicationQuestionstableNoList 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