Configuration
Complete orbit-lib config.lua reference for frameworks, standalone adapters, targets, inventories, notifications, progress bars, Text UI, and skill checks.
Configuration
Edit resources/[orbit]/orbit-lib/config.lua. This is the only orbit-lib file server owners should modify.
Each selector tells all dependent Orbit resources which integration to call. Values are case-sensitive and must match the keys documented below. After changing a selector or adapter, restart orbit-lib and every resource that depends on it.
Use the public config only
Orbit Lib is escrowed. Configure integrations in config.lua; do not rename the resource, edit runtime files, or copy internal bridge code into dependent resources.
File map
Configuration map
Prop
Type
Config.Debug and Config.Gangs are not valid settings. Use Config.CustomGang for the optional custom gang adapter.
Full config file
The current public config has this overall structure. Choose values that match the resources installed on your server; do not blindly keep the example selections.
Config = {}
-- Supported frameworks: qb, esx, qbx, standalone
Config.Framework = 'qbx'
-- Used only when Config.Framework is 'standalone'.
Config.Standalone = {
identifierType = 'license',
playerDataCache = 1000,
defaultMoney = {
cash = 0,
bank = 0,
dirty = 0
},
defaultJob = {
name = 'unemployed',
label = 'Unemployed',
grade = {
name = 'Unemployed',
level = 0
}
},
fetchName = nil,
fetchCharInfo = nil,
fetchMoney = nil,
fetchJob = nil,
createUsableItem = nil
}
-- Optional custom gang data for ESX and standalone.
Config.CustomGang = {
enabled = false,
fetchGang = function(playerState, source)
return {
name = playerState.gangName or '',
label = playerState.gangName or '',
grade = {
name = playerState.gangRankName or '',
level = 1
}
}
end
}
Config.TargetResource = 'ox_target'
Config.Inventory = 'ox_inventory'
-- Used only with qb-like or ox-like.
Config.CustomInventory = ''
Config.CustomExport = ''
Config.Notify = 'orbit-dynamichud'
Config.Progress = 'orbit-dynamichud'
Config.TextUI = 'orbit-dynamichud'
Config.SkillCheck = 'orbit-dynamichud'Framework presets
Select the tab for your framework. The target and inventory pair shown is a common starting point, not a requirement; change either when your server uses another supported resource.
Config.Framework = 'esx'
Config.TargetResource = 'ox_target'
Config.Inventory = 'ox_inventory'es_extended must start before orbit-lib. With Config.Notify = 'framework', notifications use the ESX notification event. With Config.Progress = 'framework', esx_progressbar must be installed and started.
Config.Framework = 'qb'
Config.TargetResource = 'qb-target'
Config.Inventory = 'qb-inventory'qb-core must start before orbit-lib. With Config.Notify = 'framework', notifications use QBCore. With Config.Progress = 'framework', the QB progressbar resource must be installed and started.
Config.Framework = 'qbx'
Config.TargetResource = 'ox_target'
Config.Inventory = 'ox_inventory'qbx_core must start before orbit-lib. Framework notifications and progress bars fall back to ox_lib on QBX, so selecting ox_lib directly makes that requirement clearer.
Config.Framework = 'standalone'
Config.TargetResource = 'ox_target'
Config.Inventory = 'ox_inventory'Standalone mode has no framework resource. Configure the adapters described under Standalone mode. Framework notifications and progress bars fall back to ox_lib.
Interface providers
The four interface selectors are independent. For example, a server can use Orbit Dynamic HUD 2.0 notifications and Text UI while keeping ox_lib progress bars and skill checks.
Use DynamicHUD for every supported interface:
Config.Notify = 'orbit-dynamichud'
Config.Progress = 'orbit-dynamichud'
Config.TextUI = 'orbit-dynamichud'
Config.SkillCheck = 'orbit-dynamichud'The provider selector intentionally remains orbit-dynamichud for bridge compatibility. The FiveM resource folder and ensure entry are orbit-dynamichud-v2.
Start orbit-lib before orbit-dynamichud-v2, because the HUD depends on the library. DynamicHUD must be fully started before another resource calls one of these bridges. The bridge passes normalized notification, progress-bar, Text UI, and skill-check data to the corresponding DynamicHUD interface.
See DynamicHUD Interface APIs for supported interface options.
Use ox_lib for every interface:
Config.Notify = 'ox_lib'
Config.Progress = 'ox_lib'
Config.TextUI = 'ox_lib'
Config.SkillCheck = 'ox_lib'ox_lib is already a required orbit-lib dependency and must start first. Progress uses the ox_lib progress-bar shape, Text UI uses the ox_lib show/hide/status functions, and skill checks use the ox_lib-compatible difficulty and input format.
Only notifications and progress bars accept the framework value:
Config.Notify = 'framework'
Config.Progress = 'framework'
Config.TextUI = 'ox_lib'
Config.SkillCheck = 'ox_lib'QB uses QBCore notifications and the progressbar resource. ESX uses its notification event and esx_progressbar. QBX and standalone fall back to ox_lib. Text UI and skill checks do not have a framework option; select ox_lib or orbit-dynamichud for each.
| Setting | Supported values | Missing or invalid provider behavior |
|---|---|---|
Config.Notify | framework, ox_lib, orbit-dynamichud | Logs Unmatching Notify Resource; no notification is shown. |
Config.Progress | framework, ox_lib, orbit-dynamichud | Logs Unmatching Progress Resource and runs the cancellation callback when supplied. |
Config.TextUI | ox_lib, orbit-dynamichud | Logs Unmatching Text UI Resource; show/hide returns false. |
Config.SkillCheck | ox_lib, orbit-dynamichud | Logs Unmatching Skill Check Resource; the check returns false and uses the cancellation callback when supplied. |
Provider names are exact
Do not use older values such as ox, qb, esx, or qbx for the interface selectors. Use framework, ox_lib, or orbit-dynamichud exactly as listed for that setting.
Targets
| Config value | Resource | Purpose |
|---|---|---|
ox_target | overextended/ox_target | Creates OX-style entity, model, zone, and global interactions. |
qb-target | qbcore-framework/qb-target | Creates QB-style entity, model, zone, and global interactions. |
Config.TargetResource = 'ox_target'The selected target resource must start before orbit-lib. Restart dependent resources after switching target systems so their interactions are registered again.
Inventories
| Config value | Resource or adapter | Notes |
|---|---|---|
ox_inventory | overextended/ox_inventory | Built-in OX inventory adapter. |
qb-inventory | qbcore-framework/qb-inventory | Built-in current QB inventory adapter. |
ps-inventory | Project-Sloth/ps-inventory | Built-in Project Sloth adapter. |
lj-inventory | loljoshie/lj-inventory | Built-in LJ inventory adapter. |
qb-like | Custom inventory | Requires exports compatible with the QB-style adapter. |
ox-like | Custom inventory | Requires exports compatible with the OX-style adapter. |
For a built-in inventory, leave both custom values empty:
Config.Inventory = 'ox_inventory'
Config.CustomInventory = ''
Config.CustomExport = ''For a compatible custom inventory, select its API family and provide its real resource name:
Config.Inventory = 'ox-like'
Config.CustomInventory = 'my_inventory'
Config.CustomExport = ''Config.CustomExport is normally empty. Set it only when the name used in exports[...] differs from the folder/resource name:
Config.Inventory = 'qb-like'
Config.CustomInventory = 'custom_inventory_resource'
Config.CustomExport = 'inventory_api'Selecting qb-like or ox-like does not make an arbitrary inventory compatible. Its exports and argument/return shapes must match the corresponding built-in bridge.
Standalone mode
Standalone mode builds normalized player data without ESX, QB, or QBX. Defaults keep calls from failing, but production servers should replace placeholder money, job, and character data with adapters tied to their own systems.
| Setting | Arguments | Expected result |
|---|---|---|
identifierType | Not a function | Identifier prefix used as citizenid, such as license, steam, discord, or fivem. |
playerDataCache | Not a function | Client cache duration in milliseconds. Use 0 to disable reuse of cached server data. |
fetchName | source, playerState | Player or character display name string. |
fetchCharInfo | source, playerState, defaults | Character table containing fields needed by your Orbit resources. |
fetchMoney | source, playerState, defaults | Money table, normally including cash, bank, and dirty. |
fetchJob | source, playerState, defaults | Job table containing name, label, and a grade table. |
createUsableItem | item, callback | Register the supplied item name with your item-use system. |
Use the provided defaults as a safe base and return the same data shape:
Config.Standalone.fetchMoney = function(source, playerState, defaults)
defaults.cash = playerState.cash or 0
defaults.bank = playerState.bank or 0
defaults.dirty = playerState.dirtyMoney or 0
return defaults
end
Config.Standalone.fetchJob = function(source, playerState, defaults)
defaults.name = playerState.jobName or 'unemployed'
defaults.label = playerState.jobLabel or 'Unemployed'
defaults.grade = {
name = playerState.jobGradeName or 'Unemployed',
level = playerState.jobGrade or 0
}
return defaults
endAdapter failures are caught and logged by name. When an adapter returns nil or fails, orbit-lib uses its configured/default fallback value.
Custom gang data
Config.CustomGang is read only by ESX and standalone bridges. QB and QBX already obtain gang data from their framework player data.
Config.CustomGang = {
enabled = true,
fetchGang = function(playerState, source)
return {
name = playerState.gangName or '',
label = playerState.gangLabel or playerState.gangName or '',
grade = {
name = playerState.gangRankName or '',
level = playerState.gangRank or 0
}
}
end
}Leave enabled = false when your Orbit resources do not use a custom gang system. The callback must return a gang table with name, label, and grade when enabled.
Apply and verify
- Save
resources/[orbit]/orbit-lib/config.lua. - Confirm
ox_lib,oxmysql, the selected framework, inventory, and target have started. - Start or restart
orbit-lib. - Start or restart Orbit Dynamic HUD 2.0 if any interface selector uses it.
- Restart every dependent Orbit resource so it reloads the bridge selection.
- Test one inventory action, target interaction, notification, progress bar, Text UI prompt, and skill check used by your installed resources.