Client Configuration & Tutorials (cl_tutorials.lua)

The client configuration manages client-side UI settings, keybinds, and the in-game dashboard FAQ database located in config/cl_tutorials.lua.


⌨️ Client Keybinds

Keybinds are registered natively via FiveM's Key Mapping system and can be customized per player in GTA V Settings > Key Bindings > FiveM:

KeybindDefault KeyAction Description
binds.dashboardF7Opens or closes the comprehensive NUI job tablet/dashboard
binds.toggleTasksF6Toggles the active task checklist HUD during an ongoing work route
  binds = {
    dashboard = {
      key = 'F7',
      label = 'Open Job Dashboard',
    },
    toggleTasks = {
      key = 'F6',
      label = 'Toggle Road Maintenance Tasks',
    },
  },

📖 In-Game FAQ Database (cl_tutorials.lua)

The config/cl_tutorials.lua file holds the question-and-answer entries displayed in the in-game dashboard under the Tutorial tab. Server owners can add, edit, or translate questions freely:

return {
  {
    id = 1,
    question = "How do I start working?",
    answer = "Go to the Road Maintenance base blip and interact with the supervisor NPC. You can also open the dashboard with the F7 key. The dashboard only opens if your current job is roadmaintenance."
  },
  {
    id = 2,
    question = "How do I get a vehicle?",
    answer = "Vehicles are spawned automatically when the lobby leader starts a job route. The vehicle tier depends on selected route level: level 1 uses Boxville, level 2 uses Utility Truck, level 3 uses Bison. If the crew has 3+ members, the script can spawn up to 2 vehicles."
  },
  {
    id = 3,
    question = "How does a work route work?",
    answer = "After route start, the script generates multiple work areas (usually 5 to 7, depending on available zones for your level). Every area contains task points. Complete all tasks in all generated areas, then return to base and use Finish & Collect Payout at the supervisor."
  },
  {
    id = 4,
    question = "How do I complete a task?",
    answer = "Go to a task marker and start the interaction. Each task has its own mini-game and UI instructions. During active tasks, F6 toggles the task tutorial panel. Task-specific tutorial videos and controls are built into each task UI."
  },
  {
    id = 5,
    question = "How does the crew system work?",
    answer = "Every player has a lobby. The lobby owner can invite nearby players with the same job (max 4 members, invite range 10m). Before starting, payout shares must total exactly 100%. The leader starts the route and all members get the same assigned areas. Final payout is split by configured lobby share percentages."
  },
  {
    id = 6,
    question = "How do levels and experience work?",
    answer = "You gain XP for each completed task. Current thresholds are: level 2 at 2200 XP and level 3 at 6000 XP. Higher levels increase payout multiplier (1.10 on level 2, 1.22 on level 3) and unlock higher route tiers."
  },
  {
    id = 7,
    question = "What affects how much money I earn per task?",
    answer = "Task payout is calculated from base task payment * level multiplier * distance multiplier. Distance bonus starts after minDistance and is capped by maxDistance/maxBonus from config. After route finish, lobby member shares are applied to total payout, and optional global bonus can further increase final money."
  },
  {
    id = 8,
    question = "What are daily and weekly quests?",
    answer = "Daily and weekly quests are tracked in the Quests tab. Progress updates from real actions: tasks_completed, repeat_task, earn_money, and work_hours. Completed quests grant extra XP and money, and quest pools reset automatically by their timers."
  },
}

Adding New Questions to the Dashboard

To add a new question entry to the dashboard, append a new table object with an incremented id, question, and answer:

  {
    id = 9,
    question = "Where do I report server bugs or feedback?",
    answer = "Join our community Discord server and open a ticket in the support channel."
  },

🖥️ UI & Controls Integration

  • Embedded YouTube Video Guides: Each task has an embedded video guide ID configured inside config/sh_config.lua under tasks[taskId].ui.tutorial.video. Players can watch how to perform the minigame directly inside the game interface.
  • Dynamic Control Prompts: During minigames, the UI renders real-time keyboard and mouse button indicators corresponding to current step actions (e.g. LPM to loosen bolt, RPM to tighten bolt, MOUSE to scrub).