Version 2.19.0
Highlights
ox_target/qb-targetsupport for the core ambulance interactions and stretcher flow — the main ambulance job interactions can now be driven through a target backend, and the stretcher (deploy, carry, load/unload patients, loading into and out of vehicles) was reworked for more reliable entity handling and target-based interaction. Falls back to the existing marker / "press E" prompts when no target backend is running.- Configurable currency & formatting for all paid actions — early respawn, AI medic, health insurance, revive / body-bag rewards, and the NPC doctor (heal self/other, revive) now support sky_base's configurable currencies and formatters via new
currency,accountType, andcurrencyFormatteroptions. Add custom currencies insky_base/config/currency.lua. Requires the matching sky_base release.
Notable Changes
- Self-administered items can now run a per-item progressbar when used from the inventory — set
progressbar = trueor a Sky.Functions.Progress options table on entries inConfig.Medications,Config.HealingItems, andConfig.CustomMedications. Items with an enabled minigame keep using the minigame; use from the treatment menu is unaffected. Config.PrimaryColornow drives dynamic UI theming with advanced visual effects on the death screen, and accepts FiveM-style ARGB hex (FFRRGGBB, e.g.FF4EC019) in addition to standard hex.- Medical dispatch now resolves the housing entrance as the call location (via sky_base) so emergencies reported from inside houses/apartments point to the correct entrance.
- Vehicle Impact Protection improved — death-cause classification now also covers
unknowndamage causes (e.g. seatbelt / eject resources that emit unknown damage hashes). - Player controls are restricted while unconscious/dead — only the controls listed in the new
Config.DeathScreen.AllowedControlsare allowed, so emote/animation menus can no longer cancel the death animation. - Cross-player custom medication treatment flow improved; inventory item use now targets the user, while treatment-menu use targets the patient.
- The patient roster now uses a database-driven lookup for more reliable patient records.
- Diagnose / rescue-shears clothing handling was streamlined into a new, native-based
config/clothing.lua; the previousConfig.Skinclothing-backend selection was removed.
Other Changes
- Optimized online medic count retrieval.
- Added and updated localization strings across multiple languages (
cn,de,en,es,fi,fr,nl,pl,rs,se).
- Update sky_base and sky_jobs_base first (required — the new currency formatting and housing-entrance dispatch rely on the matching sky_base release).
- Download sky_ambulancejob from the CFX Portal.
- Create a backup.
- Replace the
/sourcefolder. - Replace the
/fxmanifest.lua(loads the newconfig/clothing.luaand the new stretcher client files). - Add the new
/config/clothing.luafile (native-based diagnose/restore clothing;Config.ClothingRestore+Config.DiagnoseClothingnow live here). - In
config/config.lua:- Remove the old
Config.Skin = { Backend = ... }block and the oldConfig.DiagnoseClothingblock (clothing is now native-only and configured inconfig/clothing.lua). Config.PrimaryColornow also accepts ARGB hex, e.g.Config.PrimaryColor = "FF4EC019".- Add
AllowedControlstoConfig.DeathScreento restrict controls while dead:
Config.DeathScreen = { EnableKeyboard = true, + AllowedControls = { 1, 2, 3, 4, 5, 6, 22, 239, 240, 241, 242 }, ... }- Add the optional currency keys to the paid blocks (
EarlyRespawn,AiMedic,HealthInsurance,ReviveReward,BodyBagDeliveryReward,DoctorNPC.healSelf/healOther/revive):
+ accountType = "bank", -- "money" or "bank" + currency = nil, -- optional custom sky_base currency key; overrides accountType when set + currencyFormatter = "money", -- formatter from sky_base/config/currency.lua- Add
unknown = truetoConfig.VehicleImpactProtectioncauses if you want seatbelt/eject damage covered.
- Remove the old
- In
config/sv_functions.lua, theConfig.Functions.PayEarlyRespawnhook was removed — configure early-respawn costs through the newcurrency/currencyFormatteroptions onConfig.DeathScreen.EarlyRespawninstead. - (Optional)
config/functions.luasendDispatchnow resolves the housing entrance for the dispatch location — see the shipped file if you customized this hook. - No SQL migration required.