OrigenNetwork
Docs

Configuration · origen_quests

All configuration lives in config/config.lua. This file is excluded from CFX escrow encryption and is safe to edit.


Core

KeyTypeDefaultDescription
Config.Frameworkstring'auto'Framework mode: auto, qbx, qb, esx, standalone
Config.NotifySystemstring'auto'Notification system: auto, ox_lib, qb, esx, chat, custom
Config.AdminSystemstring'auto'Admin permission system: auto, origen_admin, qb, esx, ace, license, custom
Config.AdminAceNodestring'command'ACE permission node used when AdminSystem = 'ace'
Config.Localestring'en'Interface language: en, es
Config.DebugbooleanfalseEnable 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',
}
KeyDescription
resourceResource name that exposes the notification export
serverExportExport called server-side: exports[resource][serverExport](source, message, type)
clientEventClient event triggered instead when server export is not set

Inventory

KeyTypeDefaultDescription
Config.InventorySystemstring'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',
        },
    },
}
ModeBehavior
autoDetects the active Origen resource automatically
customCalls the export defined in the custom block
noneDisables 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
KeyDescription
Config.QuestLevelsArray of cumulative XP thresholds per level. Length defines the maximum level.
Config.QuestXpRepeatableIf 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",
}
KeyDescription
Config.NPCSpawnRadiusRadius (units) at which NPCs are spawned when a player approaches
Config.NPCDespawnRadiusRadius (units) at which NPCs are removed when a player moves away
Config.SpawnNPCsRadiusMax 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",
}