Config.Quests in shared/config.lua. Each quest can use a built-in tracker or be driven entirely by your own scripts via exports.
Defining a quest
Each entry inConfig.Quests is a table. Here’s a built-in playtime quest:
| Field | What it does |
|---|---|
id | Unique identifier for the quest. Used by exports to push progress. |
QuestName | Display name shown in the UI |
QuestDesc | Description shown in the UI |
totalObjectives | Target the player must reach to complete the quest |
Reward | XP awarded when the quest completes |
questType | 'daily' or 'weekly' |
BuiltinQuest | Optional built-in tracker. Omit for a custom quest driven by your own scripts. |
Built-in trackers
SetBuiltinQuest to one of these and progress is tracked automatically — no extra code needed.
| Tracker | Counts | Unit |
|---|---|---|
playtime | Time online | minutes |
killcount | Player / NPC kills | kills |
swimdistance | Distance swam | km |
rundistance | Distance ran | km |
Config.Quests demonstrate one of each tracker.
Reset timing
- Daily quests reset at
Config.DailyResetHour(0-23, default0= midnight). - Weekly quests reset on
Config.WeeklyResetDay(1= Monday …7= Sunday, default Monday).
Custom quests from your own resources
Add a quest inConfig.Quests without a BuiltinQuest field, then push progress from anywhere on the server side:
totalObjectives, it completes automatically and awards its Reward XP.
Driving a built-in tracker manually
You can also push progress to a built-in tracker type yourself — useful if you want to count an event the resource doesn’t track natively:Both export calls are server-side. The amount defaults to
1 if omitted. See Exports for full signatures.
