Configuration

Complete guide to configuring ActivityManager for your server.

Language Settings

Config.Language = "it" -- Default language (it, en)
Config.DefaultLanguage = "en" -- Fallback language

Framework Configuration

Set your framework type and connection settings:

Config.Framework = {
    type = "ESX", -- Options: "ESX", "QBCore", "QBox", "Standalone"
    
    ESX = {
        getSharedObject = "esx:getSharedObject",
        jobColumn = "job",
        identifierType = "license"
    },
    
    QBCore = {
        getSharedObject = "QBCore:GetObject",
        jobField = "job.name",
        identifierType = "license"
    },
    
    QBox = {
        getSharedObject = "qbox:getSharedObject",
        jobField = "job.name",
        identifierType = "license"
    },
    
    Standalone = {
        identifierType = "license",
        defaultJob = "activitymanager"
    }
}

Billing System

Configure billing integration:

Config.Billing = {
    enabled = true,
    
    -- Supported systems:
    -- 'esx_billing', 'okokBilling', 'qs-billing', 'brutal_billing',
    -- 'ars_billing', 'g-billing', 'randol_billing', 'codem-billing',
    -- 's1n_billing', 'RxBilling'
    system = 'okokBilling',
    
    tableName = 'okokbanking_transactions',
    syncToAPI = true,
    showNotifications = true,
    validateAmount = true,
    minAmount = 1,
    maxAmount = 999999999,
    monitorDatabase = true,
    monitorInterval = 30000,
    debugMode = false
}

UI Configuration

Config.UI = {
    theme = { 
        primary = "#00c2a3",
        secondary = "#0066cc",
        success = "#28a745",
        danger = "#dc3545"
    },
    
    notifications = {
        position = "middle-right",
        duration = 4000,
        sound = true,
        maxQueue = 3,
        antiSpam = true,
        spamInterval = 10000
    },
    
    menu = {
        openKey = "E",
        openCommand = "work",
        closeOnAction = false,
        maxDistance = 3.0
    },
    
    shiftHUD = {
        enabled = true,
        position = {x = 0.02, y = 0.25},
        showTimer = true,
        showZone = true,
        autoHide = false
    }
}

Marker Settings

Config.Markers = {
    enabled = true,
    useCustomTexture = true,
    customTextureDict = 'logo',
    customTextureName = 'activitymanager',
    rotate = false,
    rotateSpeed = 1.0,
    faceCamera = false,
    
    interaction = {
        showHelpText = true,
        playSound = true,
        soundName = 'SELECT',
        soundSet = 'HUD_FRONTEND_DEFAULT_SOUNDSET',
        cooldown = 1000
    }
}

Admin Panel Permissions

Control who can access /ampanel:

Config.AdminPermissions = {
    -- ACE Groups (works with txAdmin, vMenu)
    useAceGroups = false,
    allowedGroups = { "admin", "superadmin", "owner" },
    
    -- ACE Permission (recommended)
    useAcePermissions = true,
    acePermission = "activitymanager.admin",
    
    -- Framework Jobs
    useJobPermissions = false,
    allowedJobs = {
        -- { name = "admin", minGrade = 0 }
    },
    
    -- Identifier Whitelist
    useIdentifierWhitelist = false,
    allowedIdentifiers = {
        -- "license:xxxxxxxx",
        -- "discord:123456789"
    }
}

Add ACE permission in server.cfg:

add_ace group.admin activitymanager.admin allow

Commands Configuration

Config.Commands = {
    mainMenu = {
        enabled = true,
        command = "work",
        description = "Opens the work menu",
        restricted = false
    },
    
    adminPanel = {
        enabled = true,
        command = "ampanel",
        description = "Opens admin panel"
    },
    
    nametag = {
        enabled = true,
        command = "stato",
        removeCommand = "statooff",
        useRpName = true,
        showInMenu = true,
        buttonLabel = "🏷️ Nametag",
        requireShift = false
    },
    
    recruitment = {
        enabled = true,
        command = "assumi",
        description = "Send Discord invite for recruitment",
        restricted = false,
        minGrade = 0
    }
}

Debug Mode

Config.Debug = {
    enabled = false, -- Enable Lua debug logs
    filterHtmlResponses = true,
    maxResponseLogLength = 500,
    maxLogFrequency = 60000
}

Config.JavaScriptDebug = false -- Enable NUI console logs