[{"data":1,"prerenderedAt":2368},["ShallowReactive",2],{"/docs/jobs/ambulancejob/api/external-death-screen":3,"/docs/jobs/ambulancejob/api/external-death-screen-surround":2355,"/docs/jobs/ambulancejob/api/external-death-screen-implemented-suggestions":2367},{"id":4,"title":5,"body":6,"description":2346,"extension":2347,"head":2348,"implementedSuggestions":2348,"meta":2349,"navigation":317,"path":2350,"schemaOrg":2348,"seo":2351,"sitemap":2352,"stem":2353,"__hash__":2354},"docs/1.docs/0.jobs/0.ambulancejob/5.api/7.external-death-screen.md","External Death Screen",{"type":7,"value":8,"toc":2311},"minimark",[9,14,18,21,25,28,61,64,83,87,126,133,137,143,146,194,197,498,502,777,781,839,843,925,929,932,1037,1041,1135,1139,1146,1194,1253,1257,1260,1319,1322,1326,1331,1337,1429,1434,1438,1444,1447,1477,1480,1557,1561,1596,1600,1659,1663,1698,1702,1751,1761,1765,1768,1798,1801,1845,1855,1858,1866,1870,1876,1905,1911,1915,1921,1927,1987,1993,1996,2023,2029,2032,2081,2084,2129,2138,2142,2145,2203,2206,2249,2257,2261,2264,2288,2291,2295,2298,2307],[10,11,13],"h2",{"id":12},"overview","Overview",[15,16,17],"p",{},"External mode disables only the bundled death-screen NUI and its focus handling. Sky Ambulancejob\ncontinues to own the death state, persistence, bleed-out timer, dispatch requests, AI Medic requests,\nrespawn rules, reconnect handling, death causes, injuries, and revives.",[15,19,20],{},"An external death-screen resource is responsible for presentation and user input. It should read the\npublished state and request supported actions instead of creating a second death system.",[10,22,24],{"id":23},"job-configurator-setup","Job Configurator Setup",[15,26,27],{},"Use the following path:",[15,29,30,34,35,34,39,34,42,45,46,34,49,34,52,34,55,34,58],{},[31,32,33],"code",{},"/jobconfig"," → ",[36,37,38],"strong",{},"Ambulance Jobs",[36,40,41],{},"Settings",[36,43,44],{},"Death Screen"," →\n",[36,47,48],{},"General",[36,50,51],{},"Integration",[36,53,54],{},"Screen Mode",[36,56,57],{},"External",[36,59,60],{},"Save",[15,62,63],{},"Changes saved through the Job Configurator apply live. A resource restart is not required.",[65,66,69],"callout",{"color":67,"icon":68},"info","i-lucide-info",[15,70,71,74,75,78,79,82],{},[36,72,73],{},"Death Handling"," is a separate setting. ",[31,76,77],{},"Static"," uses the configured death animation, while\n",[31,80,81],{},"Natural"," preserves ragdoll physics until the body settles. Changing Death Handling does not enable\nan external death screen.",[10,84,86],{"id":85},"recommended-integration-flow","Recommended Integration Flow",[88,89,90,98,105,108,115],"ol",{},[91,92,93,94,97],"li",{},"Call ",[31,95,96],{},"getDeathState()"," when the external resource starts.",[91,99,100,101,104],{},"Listen to ",[31,102,103],{},"sky_ambulancejob:deathStateChanged"," for complete state snapshots.",[91,106,107],{},"Replace the external UI state whenever a new snapshot arrives.",[91,109,110,111,114],{},"Use ",[31,112,113],{},"requestDeathAction()"," for dispatch, respawn, and AI Medic actions.",[91,116,117,118,121,122,125],{},"Hide the external UI when ",[31,119,120],{},"state.dead"," becomes ",[31,123,124],{},"false",".",[15,127,128,129,132],{},"Do not maintain a second authoritative timer or death state. Use ",[31,130,131],{},"remainingSeconds"," for display and\nthe availability fields to enable or disable actions.",[10,134,136],{"id":135},"client-death-state","Client Death State",[138,139,141],"h3",{"id":140},"getdeathstate",[31,142,96],{},[15,144,145],{},"Returns a complete snapshot for the local player. The export is registered in both internal and\nexternal screen modes.",[147,148,154],"pre",{"className":149,"code":150,"filename":151,"language":152,"meta":153,"style":153},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","local state = exports[\"sky_ambulancejob\"]:getDeathState()\n","client.lua","lua","",[31,155,156],{"__ignoreMap":153},[157,158,161,165,169,172,175,178,182,184,187,191],"span",{"class":159,"line":160},"line",1,[157,162,164],{"class":163},"sMK4o","local",[157,166,168],{"class":167},"sTEyZ"," state ",[157,170,171],{"class":163},"=",[157,173,174],{"class":167}," exports[",[157,176,177],{"class":163},"\"",[157,179,181],{"class":180},"sfazB","sky_ambulancejob",[157,183,177],{"class":163},[157,185,186],{"class":167},"]:",[157,188,190],{"class":189},"s2Zo4","getDeathState",[157,192,193],{"class":167},"()\n",[15,195,196],{},"Example snapshot:",[147,198,200],{"className":149,"code":199,"language":152,"meta":153,"style":153},"{\n    dead = true,\n    phase = \"downed\",\n    screenMode = \"external\",\n    handlingMode = \"natural\",\n    bodyStable = true,\n    deathTimestamp = 1786788000,\n    remainingSeconds = 420,\n\n    canRespawn = false,\n    respawnBlockedReason = \"timer_active\",\n\n    canRequestDispatch = true,\n\n    canRequestAiMedic = false,\n    aiMedicBlockedReason = \"timer_active\",\n    aiMedicState = \"idle\",\n    aiMedicReason = nil,\n\n    cause = {\n        category = \"vehicle\",\n        weaponHash = 0,\n        attackerServerId = nil\n    }\n}\n",[31,201,202,207,221,239,256,273,285,299,312,319,332,349,354,366,371,383,399,416,429,434,445,462,475,486,492],{"__ignoreMap":153},[157,203,204],{"class":159,"line":160},[157,205,206],{"class":167},"{\n",[157,208,210,213,215,218],{"class":159,"line":209},2,[157,211,212],{"class":167},"    dead ",[157,214,171],{"class":163},[157,216,217],{"class":163}," true",[157,219,220],{"class":167},",\n",[157,222,224,227,229,232,235,237],{"class":159,"line":223},3,[157,225,226],{"class":167},"    phase ",[157,228,171],{"class":163},[157,230,231],{"class":163}," \"",[157,233,234],{"class":180},"downed",[157,236,177],{"class":163},[157,238,220],{"class":167},[157,240,242,245,247,249,252,254],{"class":159,"line":241},4,[157,243,244],{"class":167},"    screenMode ",[157,246,171],{"class":163},[157,248,231],{"class":163},[157,250,251],{"class":180},"external",[157,253,177],{"class":163},[157,255,220],{"class":167},[157,257,259,262,264,266,269,271],{"class":159,"line":258},5,[157,260,261],{"class":167},"    handlingMode ",[157,263,171],{"class":163},[157,265,231],{"class":163},[157,267,268],{"class":180},"natural",[157,270,177],{"class":163},[157,272,220],{"class":167},[157,274,276,279,281,283],{"class":159,"line":275},6,[157,277,278],{"class":167},"    bodyStable ",[157,280,171],{"class":163},[157,282,217],{"class":163},[157,284,220],{"class":167},[157,286,288,291,293,297],{"class":159,"line":287},7,[157,289,290],{"class":167},"    deathTimestamp ",[157,292,171],{"class":163},[157,294,296],{"class":295},"sbssI"," 1786788000",[157,298,220],{"class":167},[157,300,302,305,307,310],{"class":159,"line":301},8,[157,303,304],{"class":167},"    remainingSeconds ",[157,306,171],{"class":163},[157,308,309],{"class":295}," 420",[157,311,220],{"class":167},[157,313,315],{"class":159,"line":314},9,[157,316,318],{"emptyLinePlaceholder":317},true,"\n",[157,320,322,325,327,330],{"class":159,"line":321},10,[157,323,324],{"class":167},"    canRespawn ",[157,326,171],{"class":163},[157,328,329],{"class":163}," false",[157,331,220],{"class":167},[157,333,335,338,340,342,345,347],{"class":159,"line":334},11,[157,336,337],{"class":167},"    respawnBlockedReason ",[157,339,171],{"class":163},[157,341,231],{"class":163},[157,343,344],{"class":180},"timer_active",[157,346,177],{"class":163},[157,348,220],{"class":167},[157,350,352],{"class":159,"line":351},12,[157,353,318],{"emptyLinePlaceholder":317},[157,355,357,360,362,364],{"class":159,"line":356},13,[157,358,359],{"class":167},"    canRequestDispatch ",[157,361,171],{"class":163},[157,363,217],{"class":163},[157,365,220],{"class":167},[157,367,369],{"class":159,"line":368},14,[157,370,318],{"emptyLinePlaceholder":317},[157,372,374,377,379,381],{"class":159,"line":373},15,[157,375,376],{"class":167},"    canRequestAiMedic ",[157,378,171],{"class":163},[157,380,329],{"class":163},[157,382,220],{"class":167},[157,384,386,389,391,393,395,397],{"class":159,"line":385},16,[157,387,388],{"class":167},"    aiMedicBlockedReason ",[157,390,171],{"class":163},[157,392,231],{"class":163},[157,394,344],{"class":180},[157,396,177],{"class":163},[157,398,220],{"class":167},[157,400,402,405,407,409,412,414],{"class":159,"line":401},17,[157,403,404],{"class":167},"    aiMedicState ",[157,406,171],{"class":163},[157,408,231],{"class":163},[157,410,411],{"class":180},"idle",[157,413,177],{"class":163},[157,415,220],{"class":167},[157,417,419,422,424,427],{"class":159,"line":418},18,[157,420,421],{"class":167},"    aiMedicReason ",[157,423,171],{"class":163},[157,425,426],{"class":163}," nil",[157,428,220],{"class":167},[157,430,432],{"class":159,"line":431},19,[157,433,318],{"emptyLinePlaceholder":317},[157,435,437,440,442],{"class":159,"line":436},20,[157,438,439],{"class":167},"    cause ",[157,441,171],{"class":163},[157,443,444],{"class":167}," {\n",[157,446,448,451,453,455,458,460],{"class":159,"line":447},21,[157,449,450],{"class":167},"        category ",[157,452,171],{"class":163},[157,454,231],{"class":163},[157,456,457],{"class":180},"vehicle",[157,459,177],{"class":163},[157,461,220],{"class":167},[157,463,465,468,470,473],{"class":159,"line":464},22,[157,466,467],{"class":167},"        weaponHash ",[157,469,171],{"class":163},[157,471,472],{"class":295}," 0",[157,474,220],{"class":167},[157,476,478,481,483],{"class":159,"line":477},23,[157,479,480],{"class":167},"        attackerServerId ",[157,482,171],{"class":163},[157,484,485],{"class":163}," nil\n",[157,487,489],{"class":159,"line":488},24,[157,490,491],{"class":167},"    }\n",[157,493,495],{"class":159,"line":494},25,[157,496,497],{"class":167},"}\n",[138,499,501],{"id":500},"death-state-fields","Death State Fields",[503,504,505,521],"table",{},[506,507,508],"thead",{},[509,510,511,515,518],"tr",{},[512,513,514],"th",{},"Field",[512,516,517],{},"Type",[512,519,520],{},"Description",[522,523,524,540,571,591,610,624,643,657,671,689,703,717,731,745,759],"tbody",{},[509,525,526,532,537],{},[527,528,529],"td",{},[31,530,531],{},"dead",[527,533,534],{},[31,535,536],{},"boolean",[527,538,539],{},"Whether the player is currently considered dead by Sky Ambulancejob.",[509,541,542,547,552],{},[527,543,544],{},[31,545,546],{},"phase",[527,548,549],{},[31,550,551],{},"string",[527,553,554,555,558,559,558,562,558,564,567,568,125],{},"Current death lifecycle phase: ",[31,556,557],{},"alive",", ",[31,560,561],{},"settling",[31,563,234],{},[31,565,566],{},"treatment",", or ",[31,569,570],{},"respawning",[509,572,573,578,582],{},[527,574,575],{},[31,576,577],{},"screenMode",[527,579,580],{},[31,581,551],{},[527,583,584,585,588,589,125],{},"Configured screen mode: ",[31,586,587],{},"internal"," or ",[31,590,251],{},[509,592,593,598,602],{},[527,594,595],{},[31,596,597],{},"handlingMode",[527,599,600],{},[31,601,551],{},[527,603,604,605,588,608,125],{},"Configured body handling mode: ",[31,606,607],{},"static",[31,609,268],{},[509,611,612,617,621],{},[527,613,614],{},[31,615,616],{},"bodyStable",[527,618,619],{},[31,620,536],{},[527,622,623],{},"Whether the body has reached a stable position. This is especially relevant in natural handling mode.",[509,625,626,631,636],{},[527,627,628],{},[31,629,630],{},"deathTimestamp",[527,632,633],{},[31,634,635],{},"number | nil",[527,637,638,639,642],{},"Unix timestamp in seconds at which the current death started. It is ",[31,640,641],{},"nil"," when no death timestamp is available.",[509,644,645,649,654],{},[527,646,647],{},[31,648,131],{},[527,650,651],{},[31,652,653],{},"number",[527,655,656],{},"Remaining seconds on the authoritative bleed-out timer. Display this value instead of maintaining another timer.",[509,658,659,664,668],{},[527,660,661],{},[31,662,663],{},"canRespawn",[527,665,666],{},[31,667,536],{},[527,669,670],{},"Whether the player may currently request an early respawn.",[509,672,673,678,683],{},[527,674,675],{},[31,676,677],{},"respawnBlockedReason",[527,679,680],{},[31,681,682],{},"string | nil",[527,684,685,686,688],{},"Machine-readable reason why respawning is unavailable. It is ",[31,687,641],{}," when no restriction applies.",[509,690,691,696,700],{},[527,692,693],{},[31,694,695],{},"canRequestDispatch",[527,697,698],{},[31,699,536],{},[527,701,702],{},"Whether the player may currently send a dispatch request.",[509,704,705,710,714],{},[527,706,707],{},[31,708,709],{},"canRequestAiMedic",[527,711,712],{},[31,713,536],{},[527,715,716],{},"Whether the player may currently request an AI Medic.",[509,718,719,724,728],{},[527,720,721],{},[31,722,723],{},"aiMedicBlockedReason",[527,725,726],{},[31,727,682],{},[527,729,730],{},"Machine-readable reason why the AI Medic cannot currently be requested.",[509,732,733,738,742],{},[527,734,735],{},[31,736,737],{},"aiMedicState",[527,739,740],{},[31,741,551],{},[527,743,744],{},"Current AI Medic lifecycle state.",[509,746,747,752,756],{},[527,748,749],{},[31,750,751],{},"aiMedicReason",[527,753,754],{},[31,755,682],{},[527,757,758],{},"Additional reason associated with the current AI Medic state, such as a failure or cancellation reason.",[509,760,761,766,771],{},[527,762,763],{},[31,764,765],{},"cause",[527,767,768],{},[31,769,770],{},"table | nil",[527,772,773,774,776],{},"Detected death-cause information. It is ",[31,775,641],{}," when no cause information is available.",[138,778,780],{"id":779},"death-phases","Death Phases",[503,782,783,792],{},[506,784,785],{},[509,786,787,790],{},[512,788,789],{},"Phase",[512,791,520],{},[522,793,794,803,812,821,830],{},[509,795,796,800],{},[527,797,798],{},[31,799,557],{},[527,801,802],{},"No active death state exists.",[509,804,805,809],{},[527,806,807],{},[31,808,561],{},[527,810,811],{},"The player died in natural handling mode and the body is still moving.",[509,813,814,818],{},[527,815,816],{},[31,817,234],{},[527,819,820],{},"The death state is active and normal death-system interactions are available.",[509,822,823,827],{},[527,824,825],{},[31,826,566],{},[527,828,829],{},"A medic is currently treating the player.",[509,831,832,836],{},[527,833,834],{},[31,835,570],{},[527,837,838],{},"A respawn request was accepted and is currently being processed.",[138,840,842],{"id":841},"respawn-blocked-reasons","Respawn Blocked Reasons",[503,844,845,854],{},[506,846,847],{},[509,848,849,852],{},[512,850,851],{},"Code",[512,853,520],{},[522,855,856,866,876,886,896,905,915],{},[509,857,858,863],{},[527,859,860],{},[31,861,862],{},"player_not_dead",[527,864,865],{},"The player is not currently dead.",[509,867,868,873],{},[527,869,870],{},[31,871,872],{},"respawn_in_progress",[527,874,875],{},"A respawn is already being processed.",[509,877,878,883],{},[527,879,880],{},[31,881,882],{},"knockout_active",[527,884,885],{},"Early respawn is unavailable during a knockout.",[509,887,888,893],{},[527,889,890],{},[31,891,892],{},"early_respawn_disabled",[527,894,895],{},"Early respawn is disabled in the configuration.",[509,897,898,902],{},[527,899,900],{},[31,901,344],{},[527,903,904],{},"The configured waiting period has not elapsed.",[509,906,907,912],{},[527,908,909],{},[31,910,911],{},"medics_online",[527,913,914],{},"Respawn is blocked because medics are online.",[509,916,917,922],{},[527,918,919],{},[31,920,921],{},"self_respawn_blocked",[527,923,924],{},"Self-respawn is blocked for the current death.",[138,926,928],{"id":927},"ai-medic-state","AI Medic State",[15,930,931],{},"The standard AI Medic lifecycle uses these states:",[503,933,934,943],{},[506,935,936],{},[509,937,938,941],{},[512,939,940],{},"State",[512,942,520],{},[522,944,945,954,964,974,984,994,1004,1014,1027],{},[509,946,947,951],{},[527,948,949],{},[31,950,411],{},[527,952,953],{},"No AI Medic request is active.",[509,955,956,961],{},[527,957,958],{},[31,959,960],{},"requesting",[527,962,963],{},"A request is being validated.",[509,965,966,971],{},[527,967,968],{},[31,969,970],{},"dispatched",[527,972,973],{},"An AI Medic was dispatched.",[509,975,976,981],{},[527,977,978],{},[31,979,980],{},"driving",[527,982,983],{},"The AI Medic is travelling to the player.",[509,985,986,991],{},[527,987,988],{},[31,989,990],{},"arrived",[527,992,993],{},"The AI Medic reached the player.",[509,995,996,1001],{},[527,997,998],{},[31,999,1000],{},"reviving",[527,1002,1003],{},"The AI Medic is performing the revive.",[509,1005,1006,1011],{},[527,1007,1008],{},[31,1009,1010],{},"finished",[527,1012,1013],{},"The AI Medic mission completed.",[509,1015,1016,1021],{},[527,1017,1018],{},[31,1019,1020],{},"failed",[527,1022,1023,1024,1026],{},"The request or mission failed. Read ",[31,1025,751],{}," for additional context.",[509,1028,1029,1034],{},[527,1030,1031],{},[31,1032,1033],{},"cooldown",[527,1035,1036],{},"Another request is temporarily blocked by a cooldown.",[138,1038,1040],{"id":1039},"ai-medic-blocked-reasons","AI Medic Blocked Reasons",[503,1042,1043,1051],{},[506,1044,1045],{},[509,1046,1047,1049],{},[512,1048,851],{},[512,1050,520],{},[522,1052,1053,1061,1069,1078,1088,1098,1108,1117,1127],{},[509,1054,1055,1059],{},[527,1056,1057],{},[31,1058,862],{},[527,1060,865],{},[509,1062,1063,1067],{},[527,1064,1065],{},[31,1066,872],{},[527,1068,875],{},[509,1070,1071,1075],{},[527,1072,1073],{},[31,1074,882],{},[527,1076,1077],{},"AI Medic requests are unavailable during a knockout.",[509,1079,1080,1085],{},[527,1081,1082],{},[31,1083,1084],{},"ai_medic_disabled",[527,1086,1087],{},"The AI Medic feature is disabled.",[509,1089,1090,1095],{},[527,1091,1092],{},[31,1093,1094],{},"body_not_stable",[527,1096,1097],{},"The body is still moving in natural handling mode.",[509,1099,1100,1105],{},[527,1101,1102],{},[31,1103,1104],{},"revive_blocked",[527,1106,1107],{},"The current death state prevents an AI Medic revive.",[509,1109,1110,1114],{},[527,1111,1112],{},[31,1113,911],{},[527,1115,1116],{},"The AI Medic is unavailable because human medics are online.",[509,1118,1119,1124],{},[527,1120,1121],{},[31,1122,1123],{},"already_active",[527,1125,1126],{},"An AI Medic request is already active.",[509,1128,1129,1133],{},[527,1130,1131],{},[31,1132,344],{},[527,1134,904],{},[138,1136,1138],{"id":1137},"death-cause","Death Cause",[15,1140,1141,1142,1145],{},"When available, ",[31,1143,1144],{},"state.cause"," contains:",[147,1147,1149],{"className":149,"code":1148,"language":152,"meta":153,"style":153},"{\n    category = \"vehicle\",\n    weaponHash = 0,\n    attackerServerId = nil\n}\n",[31,1150,1151,1155,1170,1181,1190],{"__ignoreMap":153},[157,1152,1153],{"class":159,"line":160},[157,1154,206],{"class":167},[157,1156,1157,1160,1162,1164,1166,1168],{"class":159,"line":209},[157,1158,1159],{"class":167},"    category ",[157,1161,171],{"class":163},[157,1163,231],{"class":163},[157,1165,457],{"class":180},[157,1167,177],{"class":163},[157,1169,220],{"class":167},[157,1171,1172,1175,1177,1179],{"class":159,"line":223},[157,1173,1174],{"class":167},"    weaponHash ",[157,1176,171],{"class":163},[157,1178,472],{"class":295},[157,1180,220],{"class":167},[157,1182,1183,1186,1188],{"class":159,"line":241},[157,1184,1185],{"class":167},"    attackerServerId ",[157,1187,171],{"class":163},[157,1189,485],{"class":163},[157,1191,1192],{"class":159,"line":258},[157,1193,497],{"class":167},[503,1195,1196,1206],{},[506,1197,1198],{},[509,1199,1200,1202,1204],{},[512,1201,514],{},[512,1203,517],{},[512,1205,520],{},[522,1207,1208,1222,1236],{},[509,1209,1210,1215,1219],{},[527,1211,1212],{},[31,1213,1214],{},"category",[527,1216,1217],{},[31,1218,682],{},[527,1220,1221],{},"Normalized detected death category.",[509,1223,1224,1229,1233],{},[527,1225,1226],{},[31,1227,1228],{},"weaponHash",[527,1230,1231],{},[31,1232,635],{},[527,1234,1235],{},"FiveM weapon or damage-source hash associated with the death.",[509,1237,1238,1243,1247],{},[527,1239,1240],{},[31,1241,1242],{},"attackerServerId",[527,1244,1245],{},[31,1246,635],{},[527,1248,1249,1250,1252],{},"Server ID of the detected attacker, or ",[31,1251,641],{}," when no player attacker was identified.",[138,1254,1256],{"id":1255},"pending-ai-medic-offer","Pending AI Medic Offer",[15,1258,1259],{},"When a remote AI Medic offer is waiting for the player, the client snapshot additionally contains:",[147,1261,1263],{"className":149,"code":1262,"language":152,"meta":153,"style":153},"state.aiMedicOffer = {\n    pending = true,\n    dispatcherName = \"Alex\",\n    remainingSeconds = 25\n}\n",[31,1264,1265,1279,1290,1306,1315],{"__ignoreMap":153},[157,1266,1267,1270,1274,1277],{"class":159,"line":160},[157,1268,1269],{"class":167},"state.",[157,1271,1273],{"class":1272},"sBMFI","aiMedicOffer",[157,1275,1276],{"class":163}," =",[157,1278,444],{"class":167},[157,1280,1281,1284,1286,1288],{"class":159,"line":209},[157,1282,1283],{"class":167},"    pending ",[157,1285,171],{"class":163},[157,1287,217],{"class":163},[157,1289,220],{"class":167},[157,1291,1292,1295,1297,1299,1302,1304],{"class":159,"line":223},[157,1293,1294],{"class":167},"    dispatcherName ",[157,1296,171],{"class":163},[157,1298,231],{"class":163},[157,1300,1301],{"class":180},"Alex",[157,1303,177],{"class":163},[157,1305,220],{"class":167},[157,1307,1308,1310,1312],{"class":159,"line":241},[157,1309,304],{"class":167},[157,1311,171],{"class":163},[157,1313,1314],{"class":295}," 25\n",[157,1316,1317],{"class":159,"line":258},[157,1318,497],{"class":167},[15,1320,1321],{},"The object is omitted when no offer is pending.",[10,1323,1325],{"id":1324},"death-state-event","Death State Event",[138,1327,1329],{"id":1328},"sky_ambulancejobdeathstatechanged",[31,1330,103],{},[15,1332,1333,1334,1336],{},"This local client event publishes the same complete snapshot as ",[31,1335,96],{},". Use it for UI\nupdates instead of polling every frame.",[147,1338,1340],{"className":149,"code":1339,"filename":151,"language":152,"meta":153,"style":153},"AddEventHandler(\"sky_ambulancejob:deathStateChanged\", function(state)\n    if not state.dead then\n        -- Hide the external death screen.\n        return\n    end\n\n    -- Show or update the external death screen.\n    -- Display state.remainingSeconds.\n    -- Use the canRequest* fields to control action buttons.\nend)\n",[31,1341,1342,1371,1387,1393,1398,1403,1407,1412,1417,1422],{"__ignoreMap":153},[157,1343,1344,1347,1350,1352,1354,1356,1358,1362,1364,1368],{"class":159,"line":160},[157,1345,1346],{"class":189},"AddEventHandler",[157,1348,1349],{"class":167},"(",[157,1351,177],{"class":163},[157,1353,103],{"class":180},[157,1355,177],{"class":163},[157,1357,558],{"class":167},[157,1359,1361],{"class":1360},"s7zQu","function",[157,1363,1349],{"class":163},[157,1365,1367],{"class":1366},"sHdIc","state",[157,1369,1370],{"class":163},")\n",[157,1372,1373,1376,1379,1382,1384],{"class":159,"line":209},[157,1374,1375],{"class":1360},"    if",[157,1377,1378],{"class":163}," not",[157,1380,1381],{"class":167}," state.",[157,1383,531],{"class":1272},[157,1385,1386],{"class":1360}," then\n",[157,1388,1389],{"class":159,"line":223},[157,1390,1392],{"class":1391},"sHwdD","        -- Hide the external death screen.\n",[157,1394,1395],{"class":159,"line":241},[157,1396,1397],{"class":1360},"        return\n",[157,1399,1400],{"class":159,"line":258},[157,1401,1402],{"class":1360},"    end\n",[157,1404,1405],{"class":159,"line":275},[157,1406,318],{"emptyLinePlaceholder":317},[157,1408,1409],{"class":159,"line":287},[157,1410,1411],{"class":1391},"    -- Show or update the external death screen.\n",[157,1413,1414],{"class":159,"line":301},[157,1415,1416],{"class":1391},"    -- Display state.remainingSeconds.\n",[157,1418,1419],{"class":159,"line":314},[157,1420,1421],{"class":1391},"    -- Use the canRequest* fields to control action buttons.\n",[157,1423,1424,1427],{"class":159,"line":321},[157,1425,1426],{"class":1360},"end",[157,1428,1370],{"class":167},[15,1430,93,1431,1433],{},[31,1432,96],{}," once during resource startup because an external resource can start after the\ncurrent death began and therefore may not have seen the first event.",[10,1435,1437],{"id":1436},"requesting-death-actions","Requesting Death Actions",[138,1439,1441],{"id":1440},"requestdeathactionaction-payload",[31,1442,1443],{},"requestDeathAction(action, payload?)",[15,1445,1446],{},"Requests an action for the local player. Sky Ambulancejob validates the current death state, timers,\nprices, medic availability, cooldowns, and all other restrictions.",[147,1448,1450],{"className":149,"code":1449,"filename":151,"language":152,"meta":153,"style":153},"local success, result = exports[\"sky_ambulancejob\"]:requestDeathAction(action, payload)\n",[31,1451,1452],{"__ignoreMap":153},[157,1453,1454,1456,1459,1461,1463,1465,1467,1469,1471,1474],{"class":159,"line":160},[157,1455,164],{"class":163},[157,1457,1458],{"class":167}," success, result ",[157,1460,171],{"class":163},[157,1462,174],{"class":167},[157,1464,177],{"class":163},[157,1466,181],{"class":180},[157,1468,177],{"class":163},[157,1470,186],{"class":167},[157,1472,1473],{"class":189},"requestDeathAction",[157,1475,1476],{"class":167},"(action, payload)\n",[15,1478,1479],{},"Supported actions:",[503,1481,1482,1495],{},[506,1483,1484],{},[509,1485,1486,1489,1492],{},[512,1487,1488],{},"Action",[512,1490,1491],{},"Purpose",[512,1493,1494],{},"Payload",[522,1496,1497,1510,1526,1538],{},[509,1498,1499,1504,1507],{},[527,1500,1501],{},[31,1502,1503],{},"request_dispatch",[527,1505,1506],{},"Send the configured death dispatch.",[527,1508,1509],{},"None",[509,1511,1512,1517,1520],{},[527,1513,1514],{},[31,1515,1516],{},"request_early_respawn",[527,1518,1519],{},"Request the configured early respawn.",[527,1521,1522,1523],{},"Optional ",[31,1524,1525],{},"{ hospitalId = \"pillbox\" }",[509,1527,1528,1533,1536],{},[527,1529,1530],{},[31,1531,1532],{},"request_ai_medic",[527,1534,1535],{},"Request the configured AI Medic.",[527,1537,1509],{},[509,1539,1540,1545,1548],{},[527,1541,1542],{},[31,1543,1544],{},"respond_ai_medic_offer",[527,1546,1547],{},"Accept or reject a pending remote AI Medic offer.",[527,1549,1550,1551,588,1554],{},"Required ",[31,1552,1553],{},"{ accepted = true }",[31,1555,1556],{},"{ accepted = false }",[138,1558,1560],{"id":1559},"request-a-dispatch","Request a Dispatch",[147,1562,1564],{"className":149,"code":1563,"filename":151,"language":152,"meta":153,"style":153},"local success, result = exports[\"sky_ambulancejob\"]:requestDeathAction(\"request_dispatch\")\n",[31,1565,1566],{"__ignoreMap":153},[157,1567,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594],{"class":159,"line":160},[157,1569,164],{"class":163},[157,1571,1458],{"class":167},[157,1573,171],{"class":163},[157,1575,174],{"class":167},[157,1577,177],{"class":163},[157,1579,181],{"class":180},[157,1581,177],{"class":163},[157,1583,186],{"class":167},[157,1585,1473],{"class":189},[157,1587,1349],{"class":167},[157,1589,177],{"class":163},[157,1591,1503],{"class":180},[157,1593,177],{"class":163},[157,1595,1370],{"class":167},[138,1597,1599],{"id":1598},"request-an-early-respawn","Request an Early Respawn",[147,1601,1603],{"className":149,"code":1602,"filename":151,"language":152,"meta":153,"style":153},"local success, result = exports[\"sky_ambulancejob\"]:requestDeathAction(\"request_early_respawn\", {\n    hospitalId = \"pillbox\" -- Optional configured hospital ID\n})\n",[31,1604,1605,1636,1654],{"__ignoreMap":153},[157,1606,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633],{"class":159,"line":160},[157,1608,164],{"class":163},[157,1610,1458],{"class":167},[157,1612,171],{"class":163},[157,1614,174],{"class":167},[157,1616,177],{"class":163},[157,1618,181],{"class":180},[157,1620,177],{"class":163},[157,1622,186],{"class":167},[157,1624,1473],{"class":189},[157,1626,1349],{"class":167},[157,1628,177],{"class":163},[157,1630,1516],{"class":180},[157,1632,177],{"class":163},[157,1634,1635],{"class":167},", {\n",[157,1637,1638,1641,1643,1645,1648,1651],{"class":159,"line":209},[157,1639,1640],{"class":167},"    hospitalId ",[157,1642,171],{"class":163},[157,1644,231],{"class":163},[157,1646,1647],{"class":180},"pillbox",[157,1649,1650],{"class":163},"\" ",[157,1652,1653],{"class":1391},"-- Optional configured hospital ID\n",[157,1655,1656],{"class":159,"line":223},[157,1657,1658],{"class":167},"})\n",[138,1660,1662],{"id":1661},"request-an-ai-medic","Request an AI Medic",[147,1664,1666],{"className":149,"code":1665,"filename":151,"language":152,"meta":153,"style":153},"local success, result = exports[\"sky_ambulancejob\"]:requestDeathAction(\"request_ai_medic\")\n",[31,1667,1668],{"__ignoreMap":153},[157,1669,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1696],{"class":159,"line":160},[157,1671,164],{"class":163},[157,1673,1458],{"class":167},[157,1675,171],{"class":163},[157,1677,174],{"class":167},[157,1679,177],{"class":163},[157,1681,181],{"class":180},[157,1683,177],{"class":163},[157,1685,186],{"class":167},[157,1687,1473],{"class":189},[157,1689,1349],{"class":167},[157,1691,177],{"class":163},[157,1693,1532],{"class":180},[157,1695,177],{"class":163},[157,1697,1370],{"class":167},[138,1699,1701],{"id":1700},"respond-to-an-ai-medic-offer","Respond to an AI Medic Offer",[147,1703,1705],{"className":149,"code":1704,"filename":151,"language":152,"meta":153,"style":153},"local success, result = exports[\"sky_ambulancejob\"]:requestDeathAction(\"respond_ai_medic_offer\", {\n    accepted = true\n})\n",[31,1706,1707,1737,1747],{"__ignoreMap":153},[157,1708,1709,1711,1713,1715,1717,1719,1721,1723,1725,1727,1729,1731,1733,1735],{"class":159,"line":160},[157,1710,164],{"class":163},[157,1712,1458],{"class":167},[157,1714,171],{"class":163},[157,1716,174],{"class":167},[157,1718,177],{"class":163},[157,1720,181],{"class":180},[157,1722,177],{"class":163},[157,1724,186],{"class":167},[157,1726,1473],{"class":189},[157,1728,1349],{"class":167},[157,1730,177],{"class":163},[157,1732,1544],{"class":180},[157,1734,177],{"class":163},[157,1736,1635],{"class":167},[157,1738,1739,1742,1744],{"class":159,"line":209},[157,1740,1741],{"class":167},"    accepted ",[157,1743,171],{"class":163},[157,1745,1746],{"class":163}," true\n",[157,1748,1749],{"class":159,"line":223},[157,1750,1658],{"class":167},[15,1752,1753,1754,1757,1758,1760],{},"Set ",[31,1755,1756],{},"accepted"," to ",[31,1759,124],{}," to reject the offer.",[10,1762,1764],{"id":1763},"action-results","Action Results",[15,1766,1767],{},"A successful request returns:",[147,1769,1771],{"className":149,"code":1770,"language":152,"meta":153,"style":153},"true, {\n    action = \"request_dispatch\"\n}\n",[31,1772,1773,1780,1794],{"__ignoreMap":153},[157,1774,1775,1778],{"class":159,"line":160},[157,1776,1777],{"class":163},"true",[157,1779,1635],{"class":167},[157,1781,1782,1785,1787,1789,1791],{"class":159,"line":209},[157,1783,1784],{"class":167},"    action ",[157,1786,171],{"class":163},[157,1788,231],{"class":163},[157,1790,1503],{"class":180},[157,1792,1793],{"class":163},"\"\n",[157,1795,1796],{"class":159,"line":223},[157,1797,497],{"class":167},[15,1799,1800],{},"A rejected request returns:",[147,1802,1804],{"className":149,"code":1803,"language":152,"meta":153,"style":153},"false, {\n    code = \"timer_active\",\n    message = \"The configured waiting time has not elapsed.\"\n}\n",[31,1805,1806,1812,1827,1841],{"__ignoreMap":153},[157,1807,1808,1810],{"class":159,"line":160},[157,1809,124],{"class":163},[157,1811,1635],{"class":167},[157,1813,1814,1817,1819,1821,1823,1825],{"class":159,"line":209},[157,1815,1816],{"class":167},"    code ",[157,1818,171],{"class":163},[157,1820,231],{"class":163},[157,1822,344],{"class":180},[157,1824,177],{"class":163},[157,1826,220],{"class":167},[157,1828,1829,1832,1834,1836,1839],{"class":159,"line":223},[157,1830,1831],{"class":167},"    message ",[157,1833,171],{"class":163},[157,1835,231],{"class":163},[157,1837,1838],{"class":180},"The configured waiting time has not elapsed.",[157,1840,1793],{"class":163},[157,1842,1843],{"class":159,"line":241},[157,1844,497],{"class":167},[15,1846,1847,1848,1850,1851,1854],{},"The ",[31,1849,31],{}," is the machine-readable value intended for program logic. The English ",[31,1852,1853],{},"message"," is a\ndeveloper diagnostic. External UIs should map the code to their own localized user-facing message.",[15,1856,1857],{},"Possible action error codes include:",[147,1859,1864],{"className":1860,"code":1862,"language":1863,"meta":153},[1861],"language-text","invalid_action\ninvalid_payload\nplayer_not_dead\nrespawn_in_progress\nknockout_active\ndispatch_disabled\ndispatch_already_sent\nearly_respawn_disabled\ntimer_active\nmedics_online\nself_respawn_blocked\nai_medic_disabled\nbody_not_stable\nrevive_blocked\nalready_active\non_cooldown\ncooldown_active\nno_pending_offer\nrequest_blocked_by_hook\nrequest_failed\npayment_failed\nnot_enough_money\ndisabled\nnot_dead\nremote_wait\ntarget_offline\n","text",[31,1865,1862],{"__ignoreMap":153},[10,1867,1869],{"id":1868},"simple-client-death-check","Simple Client Death Check",[15,1871,110,1872,1875],{},[31,1873,1874],{},"isDead()"," when only a boolean is required:",[147,1877,1879],{"className":149,"code":1878,"filename":151,"language":152,"meta":153,"style":153},"local dead = exports[\"sky_ambulancejob\"]:isDead()\n",[31,1880,1881],{"__ignoreMap":153},[157,1882,1883,1885,1888,1890,1892,1894,1896,1898,1900,1903],{"class":159,"line":160},[157,1884,164],{"class":163},[157,1886,1887],{"class":167}," dead ",[157,1889,171],{"class":163},[157,1891,174],{"class":167},[157,1893,177],{"class":163},[157,1895,181],{"class":180},[157,1897,177],{"class":163},[157,1899,186],{"class":167},[157,1901,1902],{"class":189},"isDead",[157,1904,193],{"class":167},[15,1906,1907,1908,1910],{},"For an external death screen, ",[31,1909,96],{}," is normally preferable because it also provides the\ntimer, phase, action availability, and blocked reasons.",[10,1912,1914],{"id":1913},"server-api","Server API",[138,1916,1918],{"id":1917},"getdeathstateplayerid",[31,1919,1920],{},"getDeathState(playerId)",[15,1922,1923,1924,1926],{},"Returns the server-authoritative death snapshot for a player. It returns ",[31,1925,641],{}," for an invalid or\noffline player.",[147,1928,1931],{"className":149,"code":1929,"filename":1930,"language":152,"meta":153,"style":153},"local state = exports[\"sky_ambulancejob\"]:getDeathState(playerId)\n\nif not state then\n    -- Invalid player ID or the player is offline.\n    return\nend\n","server.lua",[31,1932,1933,1956,1960,1972,1977,1982],{"__ignoreMap":153},[157,1934,1935,1937,1939,1941,1943,1945,1947,1949,1951,1953],{"class":159,"line":160},[157,1936,164],{"class":163},[157,1938,168],{"class":167},[157,1940,171],{"class":163},[157,1942,174],{"class":167},[157,1944,177],{"class":163},[157,1946,181],{"class":180},[157,1948,177],{"class":163},[157,1950,186],{"class":167},[157,1952,190],{"class":189},[157,1954,1955],{"class":167},"(playerId)\n",[157,1957,1958],{"class":159,"line":209},[157,1959,318],{"emptyLinePlaceholder":317},[157,1961,1962,1965,1967,1969],{"class":159,"line":223},[157,1963,1964],{"class":1360},"if",[157,1966,1378],{"class":163},[157,1968,168],{"class":167},[157,1970,1971],{"class":1360},"then\n",[157,1973,1974],{"class":159,"line":241},[157,1975,1976],{"class":1391},"    -- Invalid player ID or the player is offline.\n",[157,1978,1979],{"class":159,"line":258},[157,1980,1981],{"class":1360},"    return\n",[157,1983,1984],{"class":159,"line":275},[157,1985,1986],{"class":1360},"end\n",[138,1988,1990],{"id":1989},"isdeadplayerid",[31,1991,1992],{},"isDead(playerId)",[15,1994,1995],{},"Use this export when only a server-side boolean is required:",[147,1997,1999],{"className":149,"code":1998,"filename":1930,"language":152,"meta":153,"style":153},"local dead = exports[\"sky_ambulancejob\"]:isDead(playerId)\n",[31,2000,2001],{"__ignoreMap":153},[157,2002,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021],{"class":159,"line":160},[157,2004,164],{"class":163},[157,2006,1887],{"class":167},[157,2008,171],{"class":163},[157,2010,174],{"class":167},[157,2012,177],{"class":163},[157,2014,181],{"class":180},[157,2016,177],{"class":163},[157,2018,186],{"class":167},[157,2020,1902],{"class":189},[157,2022,1955],{"class":167},[138,2024,2026],{"id":2025},"reviveplayerid-reason",[31,2027,2028],{},"revive(playerId, reason?)",[15,2030,2031],{},"Revives a player through the normal server-authoritative cleanup and logging path:",[147,2033,2035],{"className":149,"code":2034,"filename":1930,"language":152,"meta":153,"style":153},"local success = exports[\"sky_ambulancejob\"]:revive(\n    playerId,\n    \"external_deathscreen\"\n)\n",[31,2036,2037,2062,2067,2077],{"__ignoreMap":153},[157,2038,2039,2041,2044,2046,2048,2050,2052,2054,2056,2059],{"class":159,"line":160},[157,2040,164],{"class":163},[157,2042,2043],{"class":167}," success ",[157,2045,171],{"class":163},[157,2047,174],{"class":167},[157,2049,177],{"class":163},[157,2051,181],{"class":180},[157,2053,177],{"class":163},[157,2055,186],{"class":167},[157,2057,2058],{"class":189},"revive",[157,2060,2061],{"class":167},"(\n",[157,2063,2064],{"class":159,"line":209},[157,2065,2066],{"class":167},"    playerId,\n",[157,2068,2069,2072,2075],{"class":159,"line":223},[157,2070,2071],{"class":163},"    \"",[157,2073,2074],{"class":180},"external_deathscreen",[157,2076,1793],{"class":163},[157,2078,2079],{"class":159,"line":241},[157,2080,1370],{"class":167},[15,2082,2083],{},"The reason may also be supplied as a table:",[147,2085,2087],{"className":149,"code":2086,"filename":1930,"language":152,"meta":153,"style":153},"local success = exports[\"sky_ambulancejob\"]:revive(playerId, {\n    reason = \"external_deathscreen\"\n})\n",[31,2088,2089,2112,2125],{"__ignoreMap":153},[157,2090,2091,2093,2095,2097,2099,2101,2103,2105,2107,2109],{"class":159,"line":160},[157,2092,164],{"class":163},[157,2094,2043],{"class":167},[157,2096,171],{"class":163},[157,2098,174],{"class":167},[157,2100,177],{"class":163},[157,2102,181],{"class":180},[157,2104,177],{"class":163},[157,2106,186],{"class":167},[157,2108,2058],{"class":189},[157,2110,2111],{"class":167},"(playerId, {\n",[157,2113,2114,2117,2119,2121,2123],{"class":159,"line":209},[157,2115,2116],{"class":167},"    reason ",[157,2118,171],{"class":163},[157,2120,231],{"class":163},[157,2122,2074],{"class":180},[157,2124,1793],{"class":163},[157,2126,2127],{"class":159,"line":223},[157,2128,1658],{"class":167},[65,2130,2133],{"color":2131,"icon":2132},"warning","i-lucide-shield-alert",[15,2134,2135,2137],{},[31,2136,2058],{}," is intended only for trusted server resources. Never expose an unrestricted client event\nthat forwards a client-provided player ID to this export.",[10,2139,2141],{"id":2140},"internal-ui-exports","Internal UI Exports",[15,2143,2144],{},"These client exports belong to the bundled internal death-screen UI:",[147,2146,2148],{"className":149,"code":2147,"filename":151,"language":152,"meta":153,"style":153},"exports[\"sky_ambulancejob\"]:open()\nexports[\"sky_ambulancejob\"]:updateTime(seconds)\nexports[\"sky_ambulancejob\"]:addTime(seconds)\n",[31,2149,2150,2168,2186],{"__ignoreMap":153},[157,2151,2152,2155,2157,2159,2161,2163,2166],{"class":159,"line":160},[157,2153,2154],{"class":167},"exports[",[157,2156,177],{"class":163},[157,2158,181],{"class":180},[157,2160,177],{"class":163},[157,2162,186],{"class":167},[157,2164,2165],{"class":189},"open",[157,2167,193],{"class":167},[157,2169,2170,2172,2174,2176,2178,2180,2183],{"class":159,"line":209},[157,2171,2154],{"class":167},[157,2173,177],{"class":163},[157,2175,181],{"class":180},[157,2177,177],{"class":163},[157,2179,186],{"class":167},[157,2181,2182],{"class":189},"updateTime",[157,2184,2185],{"class":167},"(seconds)\n",[157,2187,2188,2190,2192,2194,2196,2198,2201],{"class":159,"line":223},[157,2189,2154],{"class":167},[157,2191,177],{"class":163},[157,2193,181],{"class":180},[157,2195,177],{"class":163},[157,2197,186],{"class":167},[157,2199,2200],{"class":189},"addTime",[157,2202,2185],{"class":167},[15,2204,2205],{},"They must not be used by an external death-screen integration. In external mode they return:",[147,2207,2209],{"className":149,"code":2208,"language":152,"meta":153,"style":153},"false, {\n    code = \"external_deathscreen_active\",\n    message = \"The bundled deathscreen UI is disabled because external mode is active.\"\n}\n",[31,2210,2211,2217,2232,2245],{"__ignoreMap":153},[157,2212,2213,2215],{"class":159,"line":160},[157,2214,124],{"class":163},[157,2216,1635],{"class":167},[157,2218,2219,2221,2223,2225,2228,2230],{"class":159,"line":209},[157,2220,1816],{"class":167},[157,2222,171],{"class":163},[157,2224,231],{"class":163},[157,2226,2227],{"class":180},"external_deathscreen_active",[157,2229,177],{"class":163},[157,2231,220],{"class":167},[157,2233,2234,2236,2238,2240,2243],{"class":159,"line":223},[157,2235,1831],{"class":167},[157,2237,171],{"class":163},[157,2239,231],{"class":163},[157,2241,2242],{"class":180},"The bundled deathscreen UI is disabled because external mode is active.",[157,2244,1793],{"class":163},[157,2246,2247],{"class":159,"line":241},[157,2248,497],{"class":167},[15,2250,2251,2252,2254,2255,125],{},"Read the timer through ",[31,2253,96],{}," and request gameplay actions through\n",[31,2256,113],{},[10,2258,2260],{"id":2259},"authority-and-security","Authority and Security",[15,2262,2263],{},"The external death screen must not:",[2265,2266,2267,2270,2273,2276,2279,2282],"ul",{},[91,2268,2269],{},"set the player death state itself;",[91,2271,2272],{},"maintain a separate authoritative bleed-out timer;",[91,2274,2275],{},"revive the local player directly from client code;",[91,2277,2278],{},"trigger undocumented internal server events;",[91,2280,2281],{},"trust a client-provided player ID; or",[91,2283,2284,2285,2287],{},"bypass ",[31,2286,113],{}," validation.",[15,2289,2290],{},"Sky Ambulancejob remains authoritative for death state, persistence, respawn, payments, dispatch,\nAI Medic availability, and revive handling.",[10,2292,2294],{"id":2293},"support","Support",[15,2296,2297],{},"When opening an integration support request, include the Sky Ambulancejob version, whether the\nintegration runs on the client or server, the requested action, and the returned error code.",[2299,2300],"u-button",{"color":2301,"icon":2302,"label":2303,"target":2304,"to":2305,"variant":2306},"neutral","i-simple-icons-discord","Join Discord","_blank","https://discord.gg/sky-systems","subtle",[2308,2309,2310],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":153,"searchDepth":160,"depth":209,"links":2312},[2313,2314,2315,2316,2326,2329,2336,2337,2338,2343,2344,2345],{"id":12,"depth":209,"text":13},{"id":23,"depth":209,"text":24},{"id":85,"depth":209,"text":86},{"id":135,"depth":209,"text":136,"children":2317},[2318,2319,2320,2321,2322,2323,2324,2325],{"id":140,"depth":223,"text":96},{"id":500,"depth":223,"text":501},{"id":779,"depth":223,"text":780},{"id":841,"depth":223,"text":842},{"id":927,"depth":223,"text":928},{"id":1039,"depth":223,"text":1040},{"id":1137,"depth":223,"text":1138},{"id":1255,"depth":223,"text":1256},{"id":1324,"depth":209,"text":1325,"children":2327},[2328],{"id":1328,"depth":223,"text":103},{"id":1436,"depth":209,"text":1437,"children":2330},[2331,2332,2333,2334,2335],{"id":1440,"depth":223,"text":1443},{"id":1559,"depth":223,"text":1560},{"id":1598,"depth":223,"text":1599},{"id":1661,"depth":223,"text":1662},{"id":1700,"depth":223,"text":1701},{"id":1763,"depth":209,"text":1764},{"id":1868,"depth":209,"text":1869},{"id":1913,"depth":209,"text":1914,"children":2339},[2340,2341,2342],{"id":1917,"depth":223,"text":1920},{"id":1989,"depth":223,"text":1992},{"id":2025,"depth":223,"text":2028},{"id":2140,"depth":209,"text":2141},{"id":2259,"depth":209,"text":2260},{"id":2293,"depth":209,"text":2294},"Replace the bundled death-screen UI while keeping Sky Ambulancejob death state, timers, dispatch, AI Medic, respawn, and revive handling authoritative.","md",null,{},"/docs/jobs/ambulancejob/api/external-death-screen",{"title":5,"description":2346},{"loc":2350},"1.docs/0.jobs/0.ambulancejob/5.api/7.external-death-screen","DvUsyEDVOinhavAS4SH3TFO4SSt-0G9STqPnOFHTpv4",[2356,2361],{"title":2357,"path":2358,"stem":2359,"description":2360,"children":-1},"Patient & Vital Data","/docs/jobs/ambulancejob/api/patient-and-vital-data","1.docs/0.jobs/0.ambulancejob/5.api/6.patient-and-vital-data","Read the numeric Sky Ambulancejob patient profile safely, understand units and activity values, and build server-authoritative integrations.",{"title":2362,"path":2363,"stem":2364,"description":2365,"icon":2366,"children":-1},"Changelog","/docs/jobs/ambulancejob/changelog","1.docs/0.jobs/0.ambulancejob/6.changelog","Full change history for Sky Ambulance Job.","i-lucide-history",[],1787244834337]