Standalone

Agency-Progressbar

Modern animated progress bar with glass-morphism UI, automatic framework detection, 4 visual themes (Modern, Neon, Minimal, Classic), and comprehensive client/server exports. Supports cancellable actions, sound effects, ESX-compatible weapon reload, and movement during eat/drink/reload. No hard framework dependency.

v2.0.3Free4 Pages
Agency-Progressbar

01 Configuration

Complete config.lua for Agency-Progressbar. All options documented via inline comments.

Download config.lua
Config = {}

-- If true, player preferences are saved to and loaded from the database.
-- Requires oxmysql. Set to false to disable all DB usage.
-- When false, all players always start with the default settings below.
Config.UseDatabase = false

-- The command players use to open the in-game settings menu.
Config.MenuCommand = 'aprogressbar'

-- Language for the settings menu UI.
-- Supported 14 languages: en, de, fr, es, pt, nl, pl, it, tr, cs, ro, ru, sv, da
Config.Locale = 'en'

-- Debug Configuration
-- When false (default), all debug prints/logs are suppressed
Config.Debug = {
    enabled = false
}

-- General Configuration
Config.DefaultLanguage = 'en' -- Supported 14 languages: en, de, fr, es, pt, nl, pl, it, tr, cs, ro, ru, sv, da
Config.EnableAnimations = true
Config.MaxProgressTime = 300000 -- Maximum progress time in milliseconds (5 minutes)

-- Notifications Configuration
Config.Notifications = {
    enabled = true, -- Master switch for all notifications in this resource
    AgencyNotify = {
        enabled = true, -- Use Agency-Notify if available; fallback to framework if false
        defaultTitle = 'Agency Progressbar',
        defaultDuration = 6000, -- ms
        typeDurations = {
            success = 6000,
            error = 6000,
            info = 6000
        }
    }
}
-- GET IT HERE https://agency-script.tebex.io/package/6937769

-- Default settings applied for every player.
-- These are also the fallback when UseDatabase = false.
Config.Defaults = {
    position        = 'bottom-center', -- top-center | bottom-center | center | top-left | top-right | bottom-left | bottom-right
    accentColor     = 'blue',          -- blue | orange | purple | pink | green | red | cyan | gold
    barScale        = 1.0,             -- 0.6 = small, 1.0 = normal, 1.5 = large
    barStyle        = 'v2',            -- v1 = classic, v2 = ultra modern liquid glass
    agencyAIEnabled = true,            -- AgencyAI: smart label formatting, adaptive time display
}

-- UI Configuration (fallbacks for scripts that call StartProgress without specifying)
Config.UI = {
    position = 'bottom-center', -- Options: top-center, bottom-center, center, top-left, top-right, bottom-left, bottom-right
    theme = 'modern', -- Options: modern, classic, neon, minimal
    showPercentage = true,
    showTimer = true,
    allowCancel = true,
    cancelKey = 'X' -- Default cancel key
}

-- Animation Configuration
Config.Animations = {
    useCustomAnimations = true,   -- use custom anims with progress
    disableMovement = false,      -- global: disable walking
    disableCombat = true,         -- global: disable combat
    disableCarMovement = false,   -- global: disable vehicle controls
    disableMouseControl = false,  -- global: disable camera
}

-- Framework Configuration (Auto-detection)
Config.Framework = {
    autoDetect = true, -- Set to false to manually specify framework
    manualFramework = 'standalone', -- Options: esx, qb, standalone
    timeout = 5000 -- Framework detection timeout in milliseconds
}

-- Usable Items Registration (master toggle)
-- If true, this resource will register usable items (food/drink/ammo) with the active framework/inventory.
-- If false, you can manage usable registrations from another script. Default: true
Config.Usables = {
    enable = true
}

-- Consumables Configuration (moved from examples)
Config.Consumables = Config.Consumables or {}

Config.Consumables.food = Config.Consumables.food or {
    ['burger'] = {
        add = 30,
        dur = 6000,
        anim = { dict = 'mp_player_inteat@burger', name = 'mp_player_int_eat_burger', flag = 49 },
        prop = {
            enable = true,
            model = 'prop_cs_burger_01',
            pos = vec3(0.0, 0.0, 0.0),
            rot = vec3(0.0, 0.0, 0.0)
        }
    },
    -- add more items as needed
}

Config.Consumables.drink = Config.Consumables.drink or {
    ['water'] = {
        add = 30,
        dur = 6000,
        anim = { dict = 'mp_player_intdrink', name = 'loop_bottle', flag = 49 },
        prop = {
            enable = true,
            model = 'prop_ld_flow_bottle',
            pos = vec3(0.0, 0.0, 0.0),
            rot = vec3(0.0, 0.0, 0.0)
        }
    },
    ['water_bottle'] = {
        add = 30,
        dur = 6000,
        anim = { dict = 'mp_player_intdrink', name = 'loop_bottle', flag = 49 },
        prop = {
            enable = true,
            model = 'prop_ld_flow_bottle',
            pos = vec3(0.0, 0.0, 0.0),
            rot = vec3(0.0, 0.0, 0.0)
        }
    },
    ['ecola'] = {
        add = 30,
        dur = 6000,
        anim = { dict = 'mp_player_intdrink', name = 'loop_bottle', flag = 49 },
        prop = {
            enable = true,
            model = 'prop_ecola_can',
            pos = vec3(0.0, 0.0, 0.0),
            rot = vec3(0.0, 0.0, 0.0)
        }
    },
}

-- Reload Configuration (moved from examples)
Config.Reload = Config.Reload or {}

-- Map GTA/QB ammo types to inventory items and bullet amounts per use
Config.Reload.AmmoItems = Config.Reload.AmmoItems or {
    AMMO_PISTOL          = { item = 'pistol_ammo',   add = 12, duration = 2500 },
    AMMO_SMG             = { item = 'smg_ammo',      add = 30, duration = 3000 },
    AMMO_MG              = { item = 'mg_ammo',       add = 45, duration = 3500 },
    AMMO_RIFLE           = { item = 'rifle_ammo',    add = 30, duration = 3250 },
    AMMO_SHOTGUN         = { item = 'shotgun_ammo',  add = 8,  duration = 3200 },
    AMMO_SNIPER          = { item = 'sniper_ammo',   add = 5,  duration = 4000 },
    AMMO_STUNGUN         = { item = 'stungun_ammo',  add = 1,  duration = 1500 },
    AMMO_FLARE           = { item = 'flare_ammo',    add = 1,  duration = 2500 },
    AMMO_STINGER         = { item = 'stinger_ammo',  add = 1,  duration = 4500 },
    AMMO_GRENADELAUNCHER = { item = 'gl_ammo',       add = 1,  duration = 4500 },
}

-- Optional: Reload animation while progress runs (upper-body)
-- Provide a valid anim dict/name; if nil, no reload animation is played during bar
Config.Reload.Animation = Config.Reload.Animation or nil  -- { dict='...', name='...', flag=49 }

-- Toggles
Config.Reload.ClientOnly = true              -- client-only reload, no server/QB/ESX (does not remove items)
Config.Reload.DisableQBProgressbar = true    -- always use Agency progressbar (never QB)

-- Optional: weapon-specific overrides (clip sizes/durations)
Config.Reload.WeaponOverrides = Config.Reload.WeaponOverrides or {
    -- [joaat('weapon_pistol_mk2')] = { duration = 2800, add = 16 },
}

Need help? Join our Discord community for support!

Join Discord