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.

01 Configuration
Complete config.lua for Agency-Progressbar. All options documented via inline comments.
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 },
}