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.lua grants the internal roadmaintenancejob.admin permission 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, or role.admin), change adminPermission to 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 TypeRequired ParametersDescription
tasks_completedtarget = numberComplete any number of road maintenance tasks across any areas
earn_moneytarget = numberEarn a total dollar amount from road maintenance payouts
work_hourstarget = numberSpend cumulative hours on active duty shifts
repeat_tasktaskId = string, target = numberComplete a specific minigame task a specified number of times
compositegoals = { ... }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 },
    },
  },
},