General & Compatibility
shared/config/general.lua
๐งฉ Integrations
Framework, inventory, target, dispatch, banking, billing, keys, fuel, clothing, MDT and boss menu are all detected automatically. You only pick the UI style yourself:
Config.Integrations = {
notify = 'kartik', -- kartik | ox_lib | lation_ui | okokNotify | framework
progress = 'kartik', -- kartik | ox_lib | ox_lib_circle | lation_ui | framework
textui = 'kartik', -- kartik | ox_lib | lation_ui | framework
minigame = 'ox_lib', -- ox_lib | lation_ui
menu = 'kartik', -- kartik | ox_lib
dialog = 'kartik', -- kartik | ox_lib
}kartik means the script's own built-in interface, which matches the rest of its screens:
| Setting | Built-in kartik version |
|---|---|
notify | Toasts |
progress | Progress bar |
textui | Keybind hint bar |
menu | Pick menu for patient actions and pickers, number keys and arrows |
dialog | Confirm boxes (consent requests, medical bills) and text prompts (Call EMS), instead of ox_lib alert dialogs |
๐ Jobs
Config.RequireDuty = true
Config.PoliceJobs = { 'police', 'sheriff', 'bcso', 'sasp' }RequireDuty | Medical actions require being clocked in |
PoliceJobs | Used for escorting, body bags and sharing unit blips |
Medical jobs are not set here. They are configured in game, /emsadmin โ Staff โ Jobs. See Jobs.
๐ Admin access
Config.AdminAce = 'group.admin'Admin panel and admin commands are available to your framework's admins or anyone holding this ace.
โ ๏ธ Conflict detection
Config.CheckConflicts = truePrints a console warning if another ambulance or medical resource is running. Leave it on.
๐ Legacy compatibility
Config.Compat = {
legacyReviveEvents = true,
legacyExports = true,
trustClientReviveEvents = false,
txAdminHeal = true,
enviMedic = true,
}| Setting | |
|---|---|
legacyReviveEvents | Accepts qbx_medical:client:playerRevived, hospital:client:Revive and esx_ambulancejob:revive |
legacyExports | Provides qbx_medical / qb-ambulancejob / esx_ambulancejob / wasabi_ambulance style exports when those resources are not started |
trustClientReviveEvents | See the security note below |
txAdminHeal | txAdmin Heal and Heal All revive properly through this resource |
enviMedic | Envi-Medic support, hides the built-in AI medic while it runs |
Because of this layer, your other scripts do not need changing. Anything that used to call qbx_medical or qb-ambulancejob keeps working, including scripts that only read qbx_medical's isDead and qbx_medical:deathState state bags, like pma-voice (radio off while down), phones and appearance menus. Full list: Events & State Bags โ Legacy events.
๐ Security note
Old scripts often revive with client events like hospital:client:Revive. Cheaters can fake those.
By default (trustClientReviveEvents = false) those events only work when an admin or on-duty medic is within 10 m. Set it to true only if you know exactly which of your resources needs it and why.
๐๏ธ Arena resources
Config.IgnoreDamageResources = {
'nass_paintball', 'pug-paintball', 'brutal_paintball',
'0r-paintball-v2', 'qs-deathmatch', 'ws_ffa_v2',
}Damage taken while one of these is active does not create injuries.
Your own arena script can opt out from its own code:
LocalPlayer.state.kajIgnoreDamage = true๐ Debug
Config.Debug = falsePrints extra information in F8 and the server console, and unlocks the prop adjustment commands for non-admins.