Checklist
The Checklist API allows you to display a persistent, interactive task list on the player's HUD. It supports main tasks, nested sub-tasks, progress states, and rich text formatting (keys/mouse icons).
🛠️ Exports
ShowChecklist
Displays the checklist UI with a list of tasks.
exports['ak47_lib']:ShowChecklist(tasks, title, position)
-- or
Lib47.ShowChecklist(tasks, title, position)
Parameters:
| Argument | Type | Optional | Description |
|---|---|---|---|
tasks |
Table | No | A table containing the task objects (see Task Structure below). |
title |
String | Yes | The header title of the checklist. Defaults to Config value. |
position |
String | Yes | Screen position. Options: 'top', 'center', 'bottom'. |
UpdateChecklist
Updates the completion status of a specific task or sub-task.
exports['ak47_lib']:UpdateChecklist(index, isComplete, subIndex)
-- or
Lib47.UpdateChecklist(index, isComplete, subIndex)Parameters:
| Argument | Type | Optional | Description |
|---|---|---|---|
index |
Number | No | The 1-based index of the main task in the list. |
isComplete |
Boolean | No | true to mark as done, false to uncheck. |
subIndex |
Number | Yes | The 1-based index of a sub-task (if updating a nested item). |
HideChecklist
Removes the checklist from the screen.
exports['ak47_lib']:HideChecklist()
-- or
Lib47.HideChecklist()🧬 Data Structures
Task Structure
When sending the tasks table to ShowChecklist, each item should follow this format:
{
label = "Task Name", -- (String) Text to display (supports Rich Text)
completed = false, -- (Boolean) Initial state
subTasks = { -- (Table, Optional) Nested tasks
{ label = "Sub A", completed = false },
{ label = "Sub B", completed = false }
}
}🎨 Rich Text Formatting
You can inject keyboard keys and mouse icons directly into your task labels using the following tags:
| Tag | Result | Description |
|---|---|---|
<k>KEY</k> |
Keyboard E | Renders a styled keyboard key (e.g., <k>E</k>). |
<m></m> |
Mouse | Renders a Mouse icon |
<m>1</m> |
🖱️ Mouse Left | Renders a Left Mouse Button icon. |
<m>2</m> |
🖱️ Mouse Right | Renders a Right Mouse Button icon. |
<m>3</m> |
🖱️ Mouse Middle | Renders a Middle Mouse/Scroll icon. |
💡 Examples
Example 1: Simple Task List
A basic list positioned at the top left of the screen.
local tasks = {
{ label = "Go to the police station", completed = false },
{ label = "Talk to the Captain", completed = false },
{ label = "Get your badge", completed = false }
}
-- Display the checklist
exports['ak47_lib']:ShowChecklist(tasks, "New Recruit", "top")Example 2: Complex Mission (Sub-tasks & Rich Text)
A mission list centered on the screen featuring interaction keys and nested objectives.
local missionTasks = {
{ label = "Breach the front door <k>E</k>", completed = false },
{
label = "Secure the Evidence",
completed = false,
subTasks = {
{ label = "Hack the laptop <m>1</m>", completed = false },
{ label = "Steal the hard drive", completed = false }
}
},
{ label = "Escape via Roof", completed = false }
}
-- Display centered
exports['ak47_lib']:ShowChecklist(missionTasks, "Heist Setup", "center")Example 3: Updating Progress
How to update the mission created in Example 2 dynamically.
CreateThread(function()
-- 1. Complete "Breach the front door" (Index 1)
Wait(5000)
exports['ak47_lib']:UpdateChecklist(1, true)
-- 2. Complete "Hack the laptop" (Index 2, Sub-index 1)
Wait(5000)
exports['ak47_lib']:UpdateChecklist(2, true, 1)
-- 3. Complete "Steal the hard drive" (Index 2, Sub-index 2)
Wait(2000)
exports['ak47_lib']:UpdateChecklist(2, true, 2)
-- 4. Complete the main "Secure the Evidence" task visually (Index 2)
Wait(1000)
exports['ak47_lib']:UpdateChecklist(2, true)
-- 5. Finish Mission and Hide
Wait(5000)
exports['ak47_lib']:HideChecklist()
end)Example 4:
local masterTasks = {
{ label = "Define Shop Zone", completed = false },
{ label = "Place Sign", completed = false },
{ label = "Buying/Selling Point", completed = false },
{ label = "Shopkeeper Position", completed = false },
{
label = "Setup Baskets",
completed = false,
subTasks = {
{ label = "Set Position", completed = false },
{ label = "Navigation Mesh", completed = false },
{ label = "Queue Lines", completed = false },
}
},
{ label = "Billing Action", completed = false },
{ label = "Shop Actions", completed = false },
{ label = "Boss Menu", completed = false },
{ label = "Garage Spawn", completed = false },
{ label = "Setup Doors", completed = false },
}
Lib47.ShowChecklist(masterTasks, "Creation Checklist")
ℹ️ Additional Info
Night Mode: The UI automatically adjusts its background opacity between 21:00 and 06:00 in-game time (managed via
GetClockHours).
Lib47: If you are using the internal
Lib47files, the functions are also available viaLib47.ShowChecklist,Lib47.UpdateChecklist, andLib47.HideChecklist.