Whitelist Applications
Some jobs can require an application instead of instant selection. When a job has whitelist = true, the “Select” button becomes “Apply”.
How It Works
- Player clicks “Apply” on a whitelist job
- A questionnaire opens with your configured questions
- The completed application is sent to your Discord as a formatted message
- The Discord message includes the player’s info and all their answers
Application Info Sent to Discord
Each application webhook message contains:
- Player name
- Character name
- Discord mention
- Steam ID
- All question answers
Question Types
| Type | Description | Additional Options |
|---|---|---|
input | Single-line text field | required, placeholder |
textarea | Multi-line text area | required, min, max |
number | Numeric input | min, max |
select | Dropdown with single selection | required, options |
multi-select | Dropdown with multiple selections | required, options |
checkbox | Single checkbox (boolean) | — |
slider | Range slider | min, max |
date | Date picker | — |
color | Color picker | — |
Option Format
For select and multi-select types, options are defined as:
options = {
{ value = 'na', label = 'North America' },
{ value = 'eu', label = 'Europe' },
{ value = 'other', label = 'Other' },
}Example Configurations
Police Department
{
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 the Police Department?', required = true, min = 20, max = 500 },
{ type = 'select', label = 'What timezone are you in?', required = true, options = {
{ value = 'est', label = 'EST (Eastern)' },
{ value = 'cst', label = 'CST (Central)' },
{ value = 'mst', label = 'MST (Mountain)' },
{ 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 = 'textarea', label = 'Previous law enforcement or military RP experience?', required = false, max = 500 },
{ type = 'checkbox', label = 'I have read and agree to follow the department SOPs' },
},
}EMS Paramedic
{
name = 'ambulance',
label = 'EMS Paramedic',
image = './job-images/ems.jpg',
aboutWork = 'Provide emergency medical services across the city.',
requirements = { 'Medical Training', 'First Aid Certification', 'Valid Driver\'s License' },
averageEarnings = '$70 - $130/hr',
location = { x = 304.95, y = -600.22 },
whitelist = true,
applicationQuestions = {
{ type = 'input', label = 'Character Full Name', required = true, placeholder = 'e.g. Jane Doe' },
{ type = 'textarea', label = 'Why do you want to join the Emergency Medical Services?', required = true, min = 20, max = 500 },
{ type = 'select', label = 'Do you have any medical certifications (IRL or RP)?', required = true, options = {
{ value = 'none', label = 'None' },
{ value = 'basic', label = 'Basic First Aid / CPR' },
{ value = 'advanced', label = 'Advanced Medical Training' },
{ value = 'irl', label = 'Real-life Medical Background' },
}},
{ type = 'number', label = 'Hours per week you can dedicate', min = 1, max = 100 },
{ type = 'textarea', label = 'How would you handle a mass casualty incident with limited resources?', required = false, max = 500 },
{ type = 'checkbox', label = 'I understand EMS members must remain neutral during conflicts' },
},
}Mechanic
{
name = 'mechanic',
label = 'Mechanic',
image = './job-images/mechanic.jpg',
aboutWork = 'Repair and maintain vehicles at the local auto shop.',
requirements = { 'Mechanical Knowledge', 'Tool Proficiency' },
averageEarnings = '$50 - $100/hr',
location = { x = -339.53, y = -134.71 },
whitelist = true,
applicationQuestions = {
{ type = 'input', label = 'Character Full Name', required = true, placeholder = 'e.g. Mike Ross' },
{ type = 'textarea', label = 'Why do you want to become a mechanic?', required = true, max = 500 },
{ type = 'select', label = 'Vehicle knowledge level', required = true, options = {
{ value = 'beginner', label = 'Beginner' },
{ value = 'intermediate', label = 'Intermediate' },
{ value = 'expert', label = 'Expert / Real-life experience' },
}},
{ type = 'textarea', label = 'Any previous mechanic or tuner RP experience?', required = false, max = 500 },
},
}Last updated on