Configuration · origen_quests
All configuration lives in config/config.lua. This file is excluded from CFX escrow encryption and is safe to edit.
Core
| Key | Type | Default | Description |
|---|---|---|---|
Config.Framework | string | 'auto' | Framework mode: auto, qbx, qb, esx, standalone |
Config.NotifySystem | string | 'auto' | Notification system: auto, ox_lib, qb, esx, chat, custom |
Config.AdminSystem | string | 'auto' | Admin permission system: auto, origen_admin, qb, esx, ace, license, custom |
Config.AdminAceNode | string | 'command' | ACE permission node used when AdminSystem = 'ace' |
Config.Locale | string | 'en' | Interface language: en, es |
Config.Debug | boolean | false | Enable verbose startup and permission logs |
Admin
License list
Grant admin access to specific players by their Cfx license, framework-independent:
lua
Config.AdminSystem = 'license'
Config.AdminLicenses = {
'license:1234567890abcdef',
'license:abcdef1234567890',
}Custom admin bridge
Use any admin resource with a HasPermission export:
lua
Config.AdminSystem = 'custom'
Config.AdminCustom = {
resource = 'my_admin',
hasPermission = 'HasPermission',
permission = 'origen_quests_store',
}Notifications
Custom notify bridge
lua
Config.NotifySystem = 'custom'
Config.NotifyCustom = {
resource = 'my_notify',
serverExport = 'NotifyPlayer',
clientEvent = 'my_notify:client:send',
}| Key | Description |
|---|---|
resource | Resource name that exposes the notification export |
serverExport | Export called server-side: exports[resource][serverExport](source, message, type) |
clientEvent | Client event triggered instead when server export is not set |
Inventory
| Key | Type | Default | Description |
|---|---|---|---|
Config.InventorySystem | string | 'auto' | Inventory to use: auto, origen_inventory, ox_inventory, qs-inventory, qb, esx, custom |
Custom inventory bridge
lua
Config.InventorySystem = 'custom'
Config.InventoryCustom = {
resource = 'my_inventory',
getItems = 'GetItems',
getItem = 'GetItemByName',
hasItem = 'HasItem',
addItem = 'AddItem',
removeItem = 'RemoveItem',
}Integrations
Controls how the script fetches gang, business, affiliation, and dispatch data. Each integration has an independent mode:
lua
Config.Integrations = {
affiliations = {
mode = 'auto', -- auto | statebag | custom
custom = {
resource = '',
export = 'GetPlayerAffiliations',
},
},
gangs = {
mode = 'auto', -- auto | origen_ilegal | custom | none
custom = {
resource = '',
export = 'GetGangs',
},
},
businesses = {
mode = 'auto', -- auto | origen_businesses | custom | none
custom = {
resource = '',
export = 'GetBusinesses',
},
},
dispatch = {
mode = 'auto', -- auto | origen_police | custom | none
custom = {
resource = '',
export = 'SendDispatchAlert',
},
},
}| Mode | Behavior |
|---|---|
auto | Detects the active Origen resource automatically |
custom | Calls the export defined in the custom block |
none | Disables this integration entirely |
Hook functions are defined in custom/sv_framework.lua. See the Custom page for implementation details.
Quest XP and levels
lua
Config.QuestLevels = { 0, 100, 250, 450, 700, 1000, 1400, 1900, 2500, 3200 }
Config.QuestXpRepeatable = false| Key | Description |
|---|---|
Config.QuestLevels | Array of cumulative XP thresholds per level. Length defines the maximum level. |
Config.QuestXpRepeatable | If true, players earn XP for re-completing missions they already completed |
Locations
lua
Config.LocationsTypes = {
["marker"] = "Coordinates",
["new_npc"] = "Create NPC",
["new_prop"] = "Create PROP",
["model"] = "Model",
}| Key | Description |
|---|---|
Config.NPCSpawnRadius | Radius (units) at which NPCs are spawned when a player approaches |
Config.NPCDespawnRadius | Radius (units) at which NPCs are removed when a player moves away |
Config.SpawnNPCsRadius | Max number of concurrent NPC spawn checks |
Custom trigger events
Map event names to display labels for the admin panel event picker:
lua
Config.TriggerEvents = {
["my_resource:client:openSomething"] = "Open Something",
}