Version 2.10.0
Highlights
- Injury data now persists across reconnects — original death cause, attacker info, weapon, bone zones, and fractures are fully restored from database instead of re-randomized.
- Wheelchair timer now persists across reconnects (matching existing crutch pattern) with full cleanup on resource stop.
- Death screen is now fully ESC-proof with multiple layers of protection (NUI capture-phase blocking, router guard, focus re-enforcement every frame, and
SetFadeOutAfterDeathdisabled). - Pain screen effects now use server-side pain level threshold instead of HP loss, fixing unreliable detection with high max health.
Notable Changes
- AI medic now falls back to hospital spawn when no bed is available, and force-revives on entity-missing scenarios.
- Duplicate revive triggers (knockout timer, deadline loop, AI medic force-revive) no longer fire simultaneously —
reviveInProgressguard blocks concurrent calls. - Knockout respawn paths now route through
triggerDeathscreenRespawnfor correct hospital coords resolution. - Falling-death detection now uses ground proximity checks instead of
IsPedFalling, and forces ragdoll physics for airborne deaths. - Player loading now waits for framework-specific spawn (ESX/QB/QBox) before restoring state or equipping mobility aids.
- Database migrations must complete before player state is restored during connections and resource restarts.
- Added 500ms debounce to
status:refreshevent in damage handler to prevent event pool overflow during rapid damage. - Radial menu actions now blocked when player is dead.
- Self-medication usage now blocked inside vehicles.
- Added configurable
Config.PainEffects.minPainLevelthreshold for pain screen effects.
Other Changes
- Fixed
LocalPlayer.state.isLoggedInused in server-side code causing nil errors on QB/QBox. - Fixed wheelchair nil vehicle check.
- Fixed pain class notification firing below minimum pain threshold.
- Removed redundant manual entity freezing during death sequence.
- Removed
blood_pressurefrom suicide injury definition. - Added
ForceCleanupWheelchairexport for vehicle pull ejection scenarios.
- Download sky_ambulancejob from the CFX Portal.
- Create a backup.
- Replace the
/sourcefolder. - Replace the
/config/localesfolder. - Add in
config/config.lua:
Config.PainEffects = {
-- Minimum pain level before screen effects are shown (scale 0-10).
-- Pain level comes from injuries + damage hits (1 hit = +2 pain).
-- Set to 0 to always show effects when any pain exists.
minPainLevel = 4,
}
- If
Config.AutoExecuteQuery = false(insky_jobs_base), run the SQL migration manually:
ALTER TABLE `ambulance_users` ADD COLUMN `injury_data` LONGTEXT NULL;
ALTER TABLE `ambulance_users` ADD COLUMN `wheelchair_expires_at` BIGINT NULL;