Server Configuration (sv_config.lua)
The config/sv_config.lua file holds strictly server-side parameters, including administrative permission groups and the daily and weekly quest reward pools.
🛡️ Admin Permissions
Defines which ACE permission group is allowed to open the in-game management tools (/roadtaskmanager, and /roadbonusmanager):
return {
adminPermission = 'group.admin',
-- ...- When the server starts,
server/functions.luagrants the internalroadmaintenancejob.adminpermission to this group:ExecuteCommand(('add_ace %s %s allow'):format(serverConfig.adminPermission, 'roadmaintenancejob.admin')) - If your server uses a different admin group (such as
group.superadmin,group.god, orrole.admin), changeadminPermissionto match your server's permissions.
🎯 Quests System
The script features an automated, server-side quest system that generates daily and weekly quests for each worker from a configurable pool.
Quest Pools Structure
quests = {
dailyPool = {
-- 17 pre-configured daily quests
},
weeklyPool = {
-- 16 pre-configured weekly quests
},
},Objective Types Reference
| Objective Type | Required Parameters | Description |
|---|---|---|
tasks_completed | target = number | Complete any number of road maintenance tasks across any areas |
earn_money | target = number | Earn a total dollar amount from road maintenance payouts |
work_hours | target = number | Spend cumulative hours on active duty shifts |
repeat_task | taskId = string, target = number | Complete a specific minigame task a specified number of times |
composite | goals = { ... } | Multi-objective challenge requiring multiple goals to be satisfied |
Supported taskId Values for repeat_task
'replace_sign'— Replace Road Sign'paint_lines'— Paint Road Lines'repair_traffic_light'— Repair Traffic Light'clean_oil'— Clean Oil Spill'clean_graffiti'— Clean Graffiti'clear_rocks'— Clear Rocks / Rockslide'scan_road'— Scan Road Condition'scan_bridge'— Scan Bridge Durability
📅 Daily Quests Examples
Daily quests automatically reset every 24 hours at midnight (23:59:59 local server time).
1. General Tasks Completion
{
id = 'complete_tasks_10',
label = 'Finish 10 tasks',
description = 'Complete any 10 maintenance jobs today to prove your efficiency.',
reward = { exp = 130, money = 480 },
objective = {
type = 'tasks_completed', -- counts any task completions
target = 10,
},
},2. Earnings Target
{
id = 'earn_money_1600',
label = 'Earn $1,600',
description = 'Deliver enough jobs to cross $1,600 payout today.',
reward = { exp = 210, money = 780 },
objective = {
type = 'earn_money',
target = 1600,
},
},3. Active Shift Duty Hours
{
id = 'work_hours_1_5',
label = 'Work 1.5 hours',
description = 'Stay on duty for a total of 1.5 hours during this shift.',
reward = { exp = 140, money = 420 },
objective = {
type = 'work_hours', -- counts active duty time
target = 1.5,
},
},4. Specific Task Repetition
{
id = 'repeat_task_clean_oil_8',
label = 'Sweep 8 oil spills',
description = 'Repeat the oil cleaning task 8 times to keep the streets spotless.',
reward = { exp = 125, money = 440 },
objective = {
type = 'repeat_task', -- repeats a specific task id
taskId = 'clean_oil',
target = 8,
},
},5. Composite Multi-Goal Challenge
{
id = 'mixed_daily_route_master',
label = 'Route master',
description = 'Complete 12 tasks, work 2 hours, and earn $1,800 in a single day.',
reward = { exp = 320, money = 1200 },
objective = {
type = 'composite',
goals = {
{ type = 'tasks_completed', target = 12 },
{ type = 'work_hours', target = 2 },
{ type = 'earn_money', target = 1800 },
},
},
},🗓️ Weekly Quests Examples
Weekly quests reset every Monday at midnight, challenging crews with longer-term goals:
1. High-Volume Workload
{
id = 'complete_tasks_55',
label = 'Finish 55 tasks',
description = 'Handle 55 maintenance jobs this week to show consistent performance.',
reward = { exp = 900, money = 3400 },
objective = {
type = 'tasks_completed',
target = 55,
},
},2. Weekly Earnings Milestone
{
id = 'earn_money_7000',
label = 'Earn $7,000',
description = 'Accumulate at least $7,000 from all road maintenance payouts this week.',
reward = { exp = 880, money = 3200 },
objective = {
type = 'earn_money',
target = 7000,
},
},3. Dedicated Shift Hours
{
id = 'work_hours_14',
label = 'Work 14 hours',
description = 'Stay on duty for a combined 14 hours this week.',
reward = { exp = 1550, money = 5700 },
objective = {
type = 'work_hours',
target = 14,
},
},4. Balanced Weekly Composite
{
id = 'mixed_tasks_hard',
label = 'Balanced week plus',
description = 'Complete 65 tasks, work 12 hours, and earn $10,000 total.',
reward = { exp = 2050, money = 7000 },
objective = {
type = 'composite',
goals = {
{ type = 'tasks_completed', target = 65 },
{ type = 'work_hours', target = 12 },
{ type = 'earn_money', target = 10000 },
},
},
},