Notes

Config = {}

-- Core
Config.Locale = 'de'                    -- 'de' or 'en'
Config.RequireSteam = false              -- require steam: identifier present
Config.RequireLicense = true            -- require rockstar license: identifier present
Config.WhitelistOnly = false            -- only allow whitelisted identifiers
Config.BlacklistEnabled = true          -- deny if in blacklist
Config.UpdateInterval = 2000            -- deferrals update interval (ms)
Config.MaxQueueTime = 1200              -- seconds; 0/false disables

-- Capacity / Reserved slots
Config.Reserve = {
    Enabled = true,
    ReservedSlots = 2,                  -- keep this many slots open for bypass players
    Bypass = {
        MinPriority = 80,               -- players with >= this priority ignore reserve
        Ace = 'queue.bypass'            -- ACE that bypasses reserve
    }
}

-- Reconnect protection
Config.Reconnect = {
    Enabled = true,
    Window = 180,                       -- seconds since drop where priority boost applies
    BoostPriority = 100                 -- temporary priority added
}

-- VIP / Donator tiers (added on top of base priority)
Config.Tiers = {
    ['vip'] = 20,
    ['svip'] = 40,
    ['sponsor'] = 60
}

-- Static priorities (identifier -> value)
Config.Priorities = {
    -- ['license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'] = 50,
    -- ['steam:11000010abcdef12'] = 100
}

-- Whitelist identifiers
Config.Whitelist = {
     --'license:25edcfa2a64e7a158217012cfa8501968317463a',
}

-- Blacklist identifiers
Config.Blacklist = {
     --'license:25edcfa2a64e7a158217012cfa8501968317463a'
}

-- Discord integration
Config.Discord = {
    Webhook = '<https://discord.com/api/webhooks/1406916780533743626/6rh7MVHShZfWyteezO6WlOGeEpGuVPKIWrm1jKr99t8SYUUl6XHfl5t9Ny8ZhOv5ojg->',                       -- put your webhook URL here (optional)
    UseRolePriority = true,             -- requires Badger_Discord_API or similar
    RolePriority = {                    -- discord role id -> priority add
        -- ['123456789012345678'] = 30,   -- Member
        -- ['234567890123456789'] = 60,   -- Booster
        -- ['345678901234567890'] = 90,   -- Admin
    },
    RoleWhitelist = {},                 -- role id -> true (if WhitelistOnly true, role holders are allowed)
    RoleBypassAce = false               -- if true, grant bypass equivalent to players with any RolePriority > MinPriority
}

-- Database (oxmysql optional). If oxmysql is not running, DB features are skipped gracefully.
Config.Database = {
    Enabled = true,
    UseOxmysql = true,
    Tables = {
        Priority = 'queue_priorities',  -- identifier, priority, notes, expires_at (nullable)
        Stats    = 'queue_stats',       -- id, identifier, wait_seconds, joined, reason, created_at
        Blacklist= 'queue_blacklist'    -- identifier, reason, expires_at
    }
}

-- ESX / Job-based priority (optional)
Config.ESXPriority = {
    Enabled = false,                    -- set true if you want job-based priority using DB
    Jobs = {
        police = 20,
        ambulance = 15
    }
}

-- IP / Region filter (simple prefix or exact match; country detection not built-in)
Config.IPFilter = {
    Enabled = false,
    Allow = {},                         -- e.g. {'192.168.', '10.0.'}
    Deny = {}                           -- e.g. {'123.45.67.'}
}

-- Statistics and logging
Config.Stats = {
    Enabled = true
}

-- Admin & commands
Config.Admin = {
    AllowAceManage = true,              -- add_ace group.admin queue.manage allow
    Commands = {
        Base = 'queue',                 -- /queue info|pos|kick|addprio|delprio|wl|unwl|bl|unbl
        Enabled = true
    }
}

-- Language appearance in deferrals
Config.Messages = {
    BrandingPrefix = '[Queue] '         -- prefix in deferral messages
}