[{"data":1,"prerenderedAt":1959},["ShallowReactive",2],{"/docs/jobs/ambulancejob/api/client-exports/minigames":3,"/docs/jobs/ambulancejob/api/client-exports/minigames-surround":1947,"/docs/jobs/ambulancejob/api/client-exports/minigames-implemented-suggestions":1958},{"id":4,"title":5,"body":6,"description":1937,"extension":1938,"head":1939,"implementedSuggestions":1939,"meta":1940,"navigation":1941,"path":1942,"schemaOrg":1939,"seo":1943,"sitemap":1944,"stem":1945,"__hash__":1946},"docs/1.docs/0.jobs/0.ambulancejob/5.api/3.client-exports/12.minigames.md","Minigames",{"type":7,"value":8,"toc":1927},"minimark",[9,17,21,24,32,166,269,368,373,379,507,514,518,631,640,774,779,841,845,932,937,1099,1104,1241,1246,1301,1323,1329,1342,1388,1394,1408,1438,1444,1451,1474,1480,1498,1576,1579,1583,1733,1921,1923],[10,11,12],"p",{},[13,14,16],"a",{"href":15},"/docs/jobs/ambulancejob/api/client-exports","All client exports",[18,19,5],"h2",{"id":20},"minigames",[10,22,23],{},"The ambulancejob minigames can be used standalone from any other resource. Each export opens the minigame UI and yields until the player completes or fails it.",[25,26,28],"h3",{"id":27},"startminigametype-options",[29,30,31],"code",{},"StartMinigame(type, options?)",[33,34,35,43,127],"ul",{},[36,37,38,42],"li",{},[39,40,41],"strong",{},"Purpose",": Starts any minigame by type. This is the universal entry point for all standalone minigames.",[36,44,45,48,49],{},[39,46,47],{},"Arguments",":\n",[33,50,51,61],{},[36,52,53,56,57,60],{},[29,54,55],{},"type"," (",[29,58,59],{},"string","): The minigame to start — see table below.",[36,62,63,56,66,69,70],{},[29,64,65],{},"options",[29,67,68],{},"table?","): Optional configuration.\n",[33,71,72,103],{},[36,73,74,56,77,80,81,84,85,88,89,88,92,95,96,99,100,102],{},[29,75,76],{},"variant",[29,78,79],{},"string?","): For ",[29,82,83],{},"bandage_wrap"," only — ",[29,86,87],{},"\"arm\"",", ",[29,90,91],{},"\"leg\"",[29,93,94],{},"\"head\"",", or ",[29,97,98],{},"\"torso\""," (default ",[29,101,87],{},").",[36,104,105,56,108,110,111,88,114,88,117,88,120,88,123,126],{},[29,106,107],{},"messages",[29,109,68],{},"): Override any display text in the minigame UI. Keys match the short locale keys of each component (e.g. ",[29,112,113],{},"title",[29,115,116],{},"subtitle",[29,118,119],{},"hint",[29,121,122],{},"fail",[29,124,125],{},"success","). Any key not provided falls back to the default locale string.",[36,128,129,48,132],{},[39,130,131],{},"Returns",[33,133,134,148],{},[36,135,136,139,140,143,144,147],{},[29,137,138],{},"boolean",": ",[29,141,142],{},"true"," when the minigame started, ",[29,145,146],{},"false"," on error.",[36,149,150,153,154,156,157,159,160,88,163,102],{},[29,151,152],{},"boolean | string",": When started — ",[29,155,142],{}," on success, ",[29,158,146],{}," on fail. When not started — error reason (",[29,161,162],{},"\"invalid_type\"",[29,164,165],{},"\"busy\"",[167,168,169,182],"table",{},[170,171,172],"thead",{},[173,174,175,179],"tr",{},[176,177,178],"th",{},"Type",[176,180,181],{},"Description",[183,184,185,199,209,219,229,239,249,259],"tbody",{},[173,186,187,193],{},[188,189,190],"td",{},[29,191,192],{},"\"bandage_wrap\"",[188,194,195,196,198],{},"Trace a spiral path to wrap a wound. Accepts ",[29,197,76],{}," option.",[173,200,201,206],{},[188,202,203],{},[29,204,205],{},"\"cpr\"",[188,207,208],{},"Full CPR — hit compression beats at rhythm, then deliver rescue breaths.",[173,210,211,216],{},[188,212,213],{},[29,214,215],{},"\"cpr_compressions\"",[188,217,218],{},"Chest compressions only (no ventilation phase).",[173,220,221,226],{},[188,222,223],{},[29,224,225],{},"\"cpr_ventilation\"",[188,227,228],{},"Rescue breaths only (trace the airflow wave).",[173,230,231,236],{},[188,232,233],{},[29,234,235],{},"\"bullet_extraction\"",[188,237,238],{},"Drag a bullet upward through a canal without hitting the walls.",[173,240,241,246],{},[188,242,243],{},[29,244,245],{},"\"saline_infusion\"",[188,247,248],{},"Regulate IV drip flow by adjusting a clamp to the target rate.",[173,250,251,256],{},[188,252,253],{},[29,254,255],{},"\"blood_transfusion\"",[188,257,258],{},"Control blood flow rate within the target zone.",[173,260,261,266],{},[188,262,263],{},[29,264,265],{},"\"bag_valve_mask\"",[188,267,268],{},"Trace an airflow wave to deliver breaths (3 breaths required).",[270,271,276],"pre",{"className":272,"code":273,"language":274,"meta":275,"style":275},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","local started, result = exports[\"sky_ambulancejob\"]:StartMinigame(\"cpr\")\nif started and result then\n    print(\"CPR successful!\")\nend\n","lua","",[29,277,278,326,345,362],{"__ignoreMap":275},[279,280,283,287,291,294,297,300,304,306,309,313,316,318,321,323],"span",{"class":281,"line":282},"line",1,[279,284,286],{"class":285},"sMK4o","local",[279,288,290],{"class":289},"sTEyZ"," started, result ",[279,292,293],{"class":285},"=",[279,295,296],{"class":289}," exports[",[279,298,299],{"class":285},"\"",[279,301,303],{"class":302},"sfazB","sky_ambulancejob",[279,305,299],{"class":285},[279,307,308],{"class":289},"]:",[279,310,312],{"class":311},"s2Zo4","StartMinigame",[279,314,315],{"class":289},"(",[279,317,299],{"class":285},[279,319,320],{"class":302},"cpr",[279,322,299],{"class":285},[279,324,325],{"class":289},")\n",[279,327,329,333,336,339,342],{"class":281,"line":328},2,[279,330,332],{"class":331},"s7zQu","if",[279,334,335],{"class":289}," started ",[279,337,338],{"class":285},"and",[279,340,341],{"class":289}," result ",[279,343,344],{"class":331},"then\n",[279,346,348,351,353,355,358,360],{"class":281,"line":347},3,[279,349,350],{"class":311},"    print",[279,352,315],{"class":289},[279,354,299],{"class":285},[279,356,357],{"class":302},"CPR successful!",[279,359,299],{"class":285},[279,361,325],{"class":289},[279,363,365],{"class":281,"line":364},4,[279,366,367],{"class":331},"end\n",[369,370,372],"h4",{"id":371},"message-overrides","Message overrides",[10,374,375,376,378],{},"Every minigame component resolves its display text through short keys. Pass a ",[29,377,107],{}," table to override any of them:",[270,380,382],{"className":272,"code":381,"language":274,"meta":275,"style":275},"local started, success = exports[\"sky_ambulancejob\"]:StartMinigame(\"bullet_extraction\", {\n    messages = {\n        title    = \"Remove the splinter\",\n        subtitle = \"Carefully pull it out without touching the walls.\",\n        fail     = \"Wall contact!\",\n        success  = \"Removed!\",\n    }\n})\n",[29,383,384,417,427,445,461,478,495,501],{"__ignoreMap":275},[279,385,386,388,391,393,395,397,399,401,403,405,407,409,412,414],{"class":281,"line":282},[279,387,286],{"class":285},[279,389,390],{"class":289}," started, success ",[279,392,293],{"class":285},[279,394,296],{"class":289},[279,396,299],{"class":285},[279,398,303],{"class":302},[279,400,299],{"class":285},[279,402,308],{"class":289},[279,404,312],{"class":311},[279,406,315],{"class":289},[279,408,299],{"class":285},[279,410,411],{"class":302},"bullet_extraction",[279,413,299],{"class":285},[279,415,416],{"class":289},", {\n",[279,418,419,422,424],{"class":281,"line":328},[279,420,421],{"class":289},"    messages ",[279,423,293],{"class":285},[279,425,426],{"class":289}," {\n",[279,428,429,432,434,437,440,442],{"class":281,"line":347},[279,430,431],{"class":289},"        title    ",[279,433,293],{"class":285},[279,435,436],{"class":285}," \"",[279,438,439],{"class":302},"Remove the splinter",[279,441,299],{"class":285},[279,443,444],{"class":289},",\n",[279,446,447,450,452,454,457,459],{"class":281,"line":364},[279,448,449],{"class":289},"        subtitle ",[279,451,293],{"class":285},[279,453,436],{"class":285},[279,455,456],{"class":302},"Carefully pull it out without touching the walls.",[279,458,299],{"class":285},[279,460,444],{"class":289},[279,462,464,467,469,471,474,476],{"class":281,"line":463},5,[279,465,466],{"class":289},"        fail     ",[279,468,293],{"class":285},[279,470,436],{"class":285},[279,472,473],{"class":302},"Wall contact!",[279,475,299],{"class":285},[279,477,444],{"class":289},[279,479,481,484,486,488,491,493],{"class":281,"line":480},6,[279,482,483],{"class":289},"        success  ",[279,485,293],{"class":285},[279,487,436],{"class":285},[279,489,490],{"class":302},"Removed!",[279,492,299],{"class":285},[279,494,444],{"class":289},[279,496,498],{"class":281,"line":497},7,[279,499,500],{"class":289},"    }\n",[279,502,504],{"class":281,"line":503},8,[279,505,506],{"class":289},"})\n",[10,508,509,510,513],{},"Keys that are ",[39,511,512],{},"not"," provided in the table fall back to the configured locale. Below is the full key reference for each minigame type.",[369,515,516],{"id":83},[29,517,83],{},[167,519,520,533],{},[170,521,522],{},[173,523,524,527,530],{},[176,525,526],{},"Key",[176,528,529],{},"Default",[176,531,532],{},"Note",[183,534,535,550,562,574,586,598,609,620],{},[173,536,537,541,547],{},[188,538,539],{},[29,540,113],{},[188,542,543],{},[544,545,546],"em",{},"(per variant)",[188,548,549],{},"Overrides the variant-specific title",[173,551,552,557,560],{},[188,553,554],{},[29,555,556],{},"titles.arm",[188,558,559],{},"Apply arm gauze wrap",[188,561],{},[173,563,564,569,572],{},[188,565,566],{},[29,567,568],{},"titles.leg",[188,570,571],{},"Apply leg gauze wrap",[188,573],{},[173,575,576,581,584],{},[188,577,578],{},[29,579,580],{},"titles.head",[188,582,583],{},"Apply head gauze wrap",[188,585],{},[173,587,588,593,596],{},[188,589,590],{},[29,591,592],{},"titles.torso",[188,594,595],{},"Stabilize torso gauze wrap",[188,597],{},[173,599,600,604,607],{},[188,601,602],{},[29,603,116],{},[188,605,606],{},"Follow the spiral path and stay close to the guide.",[188,608],{},[173,610,611,615,618],{},[188,612,613],{},[29,614,119],{},[188,616,617],{},"Start at the highlighted point and wrap upward in a spiral.",[188,619],{},[173,621,622,626,629],{},[188,623,624],{},[29,625,122],{},[188,627,628],{},"Too far away - try again!",[188,630],{},[369,632,634,636,637],{"id":633},"cpr-cpr_compressions",[29,635,320],{}," / ",[29,638,639],{},"cpr_compressions",[167,641,642,652],{},[170,643,644],{},[173,645,646,648,650],{},[176,647,526],{},[176,649,529],{},[176,651,532],{},[183,653,654,666,685,702,716,732,746,760],{},[173,655,656,661,664],{},[188,657,658],{},[29,659,660],{},"compressAction",[188,662,663],{},"Press Space or click with the rhythm",[188,665],{},[173,667,668,673,676],{},[188,669,670],{},[29,671,672],{},"missLabel",[188,674,675],{},"Misses {count}/{max}",[188,677,678,679,88,682],{},"Supports ",[29,680,681],{},"{count}",[29,683,684],{},"{max}",[173,686,687,692,695],{},[188,688,689],{},[29,690,691],{},"cycleLabel",[188,693,694],{},"Cycle {count}/{total}",[188,696,678,697,88,699],{},[29,698,681],{},[29,700,701],{},"{total}",[173,703,704,709,712],{},[188,705,706],{},[29,707,708],{},"phaseCompressions",[188,710,711],{},"{count} compressions",[188,713,678,714],{},[29,715,681],{},[173,717,718,723,726],{},[188,719,720],{},[29,721,722],{},"phaseVentilation",[188,724,725],{},"Deliver {count} breaths",[188,727,728,729,731],{},"Only in full ",[29,730,320],{}," mode",[173,733,734,739,742],{},[188,735,736],{},[29,737,738],{},"ventilationStageTitle",[188,740,741],{},"Rescue breaths",[188,743,728,744,731],{},[29,745,320],{},[173,747,748,753,756],{},[188,749,750],{},[29,751,752],{},"ventilationStageSubtitle",[188,754,755],{},"Trace the mask alignment to deliver airflow.",[188,757,728,758,731],{},[29,759,320],{},[173,761,762,767,770],{},[188,763,764],{},[29,765,766],{},"ventilationProgress",[188,768,769],{},"Breaths {count}/{total}",[188,771,728,772,731],{},[29,773,320],{},[369,775,777],{"id":776},"cpr_ventilation",[29,778,776],{},[167,780,781,789],{},[170,782,783],{},[173,784,785,787],{},[176,786,526],{},[176,788,529],{},[183,790,791,801,811,821,831],{},[173,792,793,798],{},[188,794,795],{},[29,796,797],{},"ventilationTitle",[188,799,800],{},"Deliver rescue breaths",[173,802,803,808],{},[188,804,805],{},[29,806,807],{},"ventilationSubtitle",[188,809,810],{},"Trace the airflow curve to deliver a breath.",[173,812,813,818],{},[188,814,815],{},[29,816,817],{},"ventilationHint",[188,819,820],{},"Start at the highlighted marker and follow the wave.",[173,822,823,828],{},[188,824,825],{},[29,826,827],{},"ventilationFail",[188,829,830],{},"Breath lost - reset and try again.",[173,832,833,838],{},[188,834,835],{},[29,836,837],{},"failTimeout",[188,839,840],{},"Ventilation aborted - too slow.",[369,842,843],{"id":411},[29,844,411],{},[167,846,847,855],{},[170,848,849],{},[173,850,851,853],{},[176,852,526],{},[176,854,529],{},[183,856,857,866,875,884,894,904,913,922],{},[173,858,859,863],{},[188,860,861],{},[29,862,113],{},[188,864,865],{},"Extract the bullet",[173,867,868,872],{},[188,869,870],{},[29,871,116],{},[188,873,874],{},"Drag the bullet straight up without touching the canal walls.",[173,876,877,881],{},[188,878,879],{},[29,880,119],{},[188,882,883],{},"Stay centered between the glowing rails.",[173,885,886,891],{},[188,887,888],{},[29,889,890],{},"progress",[188,892,893],{},"Extraction progress",[173,895,896,901],{},[188,897,898],{},[29,899,900],{},"exit",[188,902,903],{},"Exit",[173,905,906,910],{},[188,907,908],{},[29,909,122],{},[188,911,912],{},"Wall contact! Try again.",[173,914,915,919],{},[188,916,917],{},[29,918,125],{},[188,920,921],{},"Bullet removed.",[173,923,924,929],{},[188,925,926],{},[29,927,928],{},"bulletAlt",[188,930,931],{},"Deformed bullet",[369,933,935],{"id":934},"saline_infusion",[29,936,934],{},[167,938,939,949],{},[170,940,941],{},[173,942,943,945,947],{},[176,944,526],{},[176,946,529],{},[176,948,532],{},[183,950,951,962,973,985,996,1008,1026,1038,1049,1061,1073,1084],{},[173,952,953,957,960],{},[188,954,955],{},[29,956,113],{},[188,958,959],{},"Saline infusion",[188,961],{},[173,963,964,968,971],{},[188,965,966],{},[29,967,116],{},[188,969,970],{},"Regulate the drip and keep the flow steady.",[188,972],{},[173,974,975,980,983],{},[188,976,977],{},[29,978,979],{},"rate",[188,981,982],{},"Drip rate",[188,984],{},[173,986,987,991,994],{},[188,988,989],{},[29,990,890],{},[188,992,993],{},"Infusion progress",[188,995],{},[173,997,998,1003,1006],{},[188,999,1000],{},[29,1001,1002],{},"stop",[188,1004,1005],{},"Abort infusion",[188,1007],{},[173,1009,1010,1015,1018],{},[188,1011,1012],{},[29,1013,1014],{},"targetHint",[188,1016,1017],{},"Keep between {low}–{high} drops/min",[188,1019,678,1020,88,1023],{},[29,1021,1022],{},"{low}",[29,1024,1025],{},"{high}",[173,1027,1028,1033,1036],{},[188,1029,1030],{},[29,1031,1032],{},"adjust",[188,1034,1035],{},"Adjust the clamp into the highlighted zone.",[188,1037],{},[173,1039,1040,1044,1047],{},[188,1041,1042],{},[29,1043,125],{},[188,1045,1046],{},"Flow is stable.",[188,1048],{},[173,1050,1051,1056,1059],{},[188,1052,1053],{},[29,1054,1055],{},"failOver",[188,1057,1058],{},"Flow too high!",[188,1060],{},[173,1062,1063,1068,1071],{},[188,1064,1065],{},[29,1066,1067],{},"failUnder",[188,1069,1070],{},"Line collapsed - reopen the clamp.",[188,1072],{},[173,1074,1075,1079,1082],{},[188,1076,1077],{},[29,1078,837],{},[188,1080,1081],{},"Infusion aborted - took too long.",[188,1083],{},[173,1085,1086,1091,1094],{},[188,1087,1088],{},[29,1089,1090],{},"progressHint",[188,1092,1093],{},"Keep steady… {value}%",[188,1095,678,1096],{},[29,1097,1098],{},"{value}",[369,1100,1102],{"id":1101},"blood_transfusion",[29,1103,1101],{},[167,1105,1106,1116],{},[170,1107,1108],{},[173,1109,1110,1112,1114],{},[176,1111,526],{},[176,1113,529],{},[176,1115,532],{},[183,1117,1118,1129,1140,1151,1161,1172,1183,1195,1206,1217,1228],{},[173,1119,1120,1124,1127],{},[188,1121,1122],{},[29,1123,113],{},[188,1125,1126],{},"Blood transfusion setup",[188,1128],{},[173,1130,1131,1135,1138],{},[188,1132,1133],{},[29,1134,116],{},[188,1136,1137],{},"Stabilise the transfusion flow.",[188,1139],{},[173,1141,1142,1146,1149],{},[188,1143,1144],{},[29,1145,979],{},[188,1147,1148],{},"Flow rate",[188,1150],{},[173,1152,1153,1157,1159],{},[188,1154,1155],{},[29,1156,890],{},[188,1158,993],{},[188,1160],{},[173,1162,1163,1167,1170],{},[188,1164,1165],{},[29,1166,1002],{},[188,1168,1169],{},"Abort transfusion",[188,1171],{},[173,1173,1174,1178,1181],{},[188,1175,1176],{},[29,1177,1032],{},[188,1179,1180],{},"Adjust the regulator into the highlighted zone.",[188,1182],{},[173,1184,1185,1190,1193],{},[188,1186,1187],{},[29,1188,1189],{},"stageComplete",[188,1191,1192],{},"Flow stabilised.",[188,1194],{},[173,1196,1197,1201,1204],{},[188,1198,1199],{},[29,1200,1055],{},[188,1202,1203],{},"Flow too strong! Slow down.",[188,1205],{},[173,1207,1208,1212,1215],{},[188,1209,1210],{},[29,1211,1067],{},[188,1213,1214],{},"Line collapsed! Raise the flow.",[188,1216],{},[173,1218,1219,1223,1226],{},[188,1220,1221],{},[29,1222,837],{},[188,1224,1225],{},"Transfusion aborted - procedure took too long.",[188,1227],{},[173,1229,1230,1234,1237],{},[188,1231,1232],{},[29,1233,1090],{},[188,1235,1236],{},"Hold steady… {value}%",[188,1238,678,1239],{},[29,1240,1098],{},[369,1242,1244],{"id":1243},"bag_valve_mask",[29,1245,1243],{},[167,1247,1248,1256],{},[170,1249,1250],{},[173,1251,1252,1254],{},[176,1253,526],{},[176,1255,529],{},[183,1257,1258,1267,1275,1283,1291],{},[173,1259,1260,1264],{},[188,1261,1262],{},[29,1263,113],{},[188,1265,1266],{},"Bag valve mask ventilation",[173,1268,1269,1273],{},[188,1270,1271],{},[29,1272,116],{},[188,1274,810],{},[173,1276,1277,1281],{},[188,1278,1279],{},[29,1280,119],{},[188,1282,820],{},[173,1284,1285,1289],{},[188,1286,1287],{},[29,1288,890],{},[188,1290,769],{},[173,1292,1293,1298],{},[188,1294,1295],{},[29,1296,1297],{},"successBreath",[188,1299,1300],{},"Breath delivered",[1302,1303,1306],"callout",{"color":1304,"icon":1305},"info","i-lucide-info",[10,1307,1308,1310,1311,1314,1315,1318,1319,1322],{},[29,1309,312],{}," is ",[39,1312,1313],{},"yielding"," — it blocks the current thread until the player finishes or cancels the minigame. Call it inside a ",[29,1316,1317],{},"CreateThread"," or ",[29,1320,1321],{},"Citizen.CreateThread"," to avoid blocking your main thread.",[25,1324,1326],{"id":1325},"isminigameactive",[29,1327,1328],{},"IsMinigameActive()",[33,1330,1331,1336],{},[36,1332,1333,1335],{},[39,1334,41],{},": Checks if a standalone minigame is currently running.",[36,1337,1338,139,1340],{},[39,1339,131],{},[29,1341,138],{},[270,1343,1345],{"className":272,"code":1344,"language":274,"meta":275,"style":275},"if exports[\"sky_ambulancejob\"]:IsMinigameActive() then\n    print(\"A minigame is in progress\")\nend\n",[29,1346,1347,1369,1384],{"__ignoreMap":275},[279,1348,1349,1351,1353,1355,1357,1359,1361,1364,1367],{"class":281,"line":282},[279,1350,332],{"class":331},[279,1352,296],{"class":289},[279,1354,299],{"class":285},[279,1356,303],{"class":302},[279,1358,299],{"class":285},[279,1360,308],{"class":289},[279,1362,1363],{"class":311},"IsMinigameActive",[279,1365,1366],{"class":289},"() ",[279,1368,344],{"class":331},[279,1370,1371,1373,1375,1377,1380,1382],{"class":281,"line":328},[279,1372,350],{"class":311},[279,1374,315],{"class":289},[279,1376,299],{"class":285},[279,1378,1379],{"class":302},"A minigame is in progress",[279,1381,299],{"class":285},[279,1383,325],{"class":289},[279,1385,1386],{"class":281,"line":347},[279,1387,367],{"class":331},[25,1389,1391],{"id":1390},"getactiveminigame",[29,1392,1393],{},"GetActiveMinigame()",[33,1395,1396,1401],{},[36,1397,1398,1400],{},[39,1399,41],{},": Returns the type of the currently active standalone minigame.",[36,1402,1403,139,1405],{},[39,1404,131],{},[29,1406,1407],{},"string | nil",[270,1409,1411],{"className":272,"code":1410,"language":274,"meta":275,"style":275},"local active = exports[\"sky_ambulancejob\"]:GetActiveMinigame()\n",[29,1412,1413],{"__ignoreMap":275},[279,1414,1415,1417,1420,1422,1424,1426,1428,1430,1432,1435],{"class":281,"line":282},[279,1416,286],{"class":285},[279,1418,1419],{"class":289}," active ",[279,1421,293],{"class":285},[279,1423,296],{"class":289},[279,1425,299],{"class":285},[279,1427,303],{"class":302},[279,1429,299],{"class":285},[279,1431,308],{"class":289},[279,1433,1434],{"class":311},"GetActiveMinigame",[279,1436,1437],{"class":289},"()\n",[25,1439,1441],{"id":1440},"cancelminigame",[29,1442,1443],{},"CancelMinigame()",[33,1445,1446],{},[36,1447,1448,1450],{},[39,1449,41],{},": Cancels the currently running standalone minigame. The minigame counts as failed.",[270,1452,1454],{"className":272,"code":1453,"language":274,"meta":275,"style":275},"exports[\"sky_ambulancejob\"]:CancelMinigame()\n",[29,1455,1456],{"__ignoreMap":275},[279,1457,1458,1461,1463,1465,1467,1469,1472],{"class":281,"line":282},[279,1459,1460],{"class":289},"exports[",[279,1462,299],{"class":285},[279,1464,303],{"class":302},[279,1466,299],{"class":285},[279,1468,308],{"class":289},[279,1470,1471],{"class":311},"CancelMinigame",[279,1473,1437],{"class":289},[25,1475,1477],{"id":1476},"getavailableminigames",[29,1478,1479],{},"GetAvailableMinigames()",[33,1481,1482,1491],{},[36,1483,1484,1486,1487,1490],{},[39,1485,41],{},": Returns a table of all minigame types with their enabled/disabled state from ",[29,1488,1489],{},"Config.Minigames.enabled",".",[36,1492,1493,139,1495],{},[39,1494,131],{},[29,1496,1497],{},"table\u003Cstring, boolean>",[270,1499,1501],{"className":272,"code":1500,"language":274,"meta":275,"style":275},"local available = exports[\"sky_ambulancejob\"]:GetAvailableMinigames()\nfor name, enabled in pairs(available) do\n    print(name .. \": \" .. tostring(enabled))\nend\n",[29,1502,1503,1527,1547,1572],{"__ignoreMap":275},[279,1504,1505,1507,1510,1512,1514,1516,1518,1520,1522,1525],{"class":281,"line":282},[279,1506,286],{"class":285},[279,1508,1509],{"class":289}," available ",[279,1511,293],{"class":285},[279,1513,296],{"class":289},[279,1515,299],{"class":285},[279,1517,303],{"class":302},[279,1519,299],{"class":285},[279,1521,308],{"class":289},[279,1523,1524],{"class":311},"GetAvailableMinigames",[279,1526,1437],{"class":289},[279,1528,1529,1532,1535,1538,1541,1544],{"class":281,"line":328},[279,1530,1531],{"class":331},"for",[279,1533,1534],{"class":289}," name, enabled ",[279,1536,1537],{"class":331},"in",[279,1539,1540],{"class":311}," pairs",[279,1542,1543],{"class":289},"(available) ",[279,1545,1546],{"class":331},"do\n",[279,1548,1549,1551,1554,1557,1559,1561,1564,1566,1569],{"class":281,"line":347},[279,1550,350],{"class":311},[279,1552,1553],{"class":289},"(name ",[279,1555,1556],{"class":285},"..",[279,1558,436],{"class":285},[279,1560,139],{"class":302},[279,1562,1563],{"class":285},"\" ",[279,1565,1556],{"class":285},[279,1567,1568],{"class":311}," tostring",[279,1570,1571],{"class":289},"(enabled))\n",[279,1573,1574],{"class":281,"line":364},[279,1575,367],{"class":331},[1577,1578],"br",{},[25,1580,1582],{"id":1581},"example-using-minigames-in-another-resource","Example: Using minigames in another resource",[270,1584,1586],{"className":272,"code":1585,"language":274,"meta":275,"style":275},"-- In your custom resource (client-side)\nCreateThread(function()\n    -- Example: require a CPR minigame before reviving\n    local started, success = exports[\"sky_ambulancejob\"]:StartMinigame(\"cpr\")\n    if started and success then\n        TriggerServerEvent(\"myresource:revivePlayer\")\n    else\n        TriggerEvent(\"chat:addMessage\", {\n            args = { \"CPR failed — the patient could not be revived.\" }\n        })\n    end\nend)\n",[29,1587,1588,1594,1605,1610,1641,1655,1671,1676,1692,1713,1719,1725],{"__ignoreMap":275},[279,1589,1590],{"class":281,"line":282},[279,1591,1593],{"class":1592},"sHwdD","-- In your custom resource (client-side)\n",[279,1595,1596,1598,1600,1603],{"class":281,"line":328},[279,1597,1317],{"class":311},[279,1599,315],{"class":289},[279,1601,1602],{"class":331},"function",[279,1604,1437],{"class":285},[279,1606,1607],{"class":281,"line":347},[279,1608,1609],{"class":1592},"    -- Example: require a CPR minigame before reviving\n",[279,1611,1612,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637,1639],{"class":281,"line":364},[279,1613,1614],{"class":285},"    local",[279,1616,390],{"class":289},[279,1618,293],{"class":285},[279,1620,296],{"class":289},[279,1622,299],{"class":285},[279,1624,303],{"class":302},[279,1626,299],{"class":285},[279,1628,308],{"class":289},[279,1630,312],{"class":311},[279,1632,315],{"class":289},[279,1634,299],{"class":285},[279,1636,320],{"class":302},[279,1638,299],{"class":285},[279,1640,325],{"class":289},[279,1642,1643,1646,1648,1650,1653],{"class":281,"line":463},[279,1644,1645],{"class":331},"    if",[279,1647,335],{"class":289},[279,1649,338],{"class":285},[279,1651,1652],{"class":289}," success ",[279,1654,344],{"class":331},[279,1656,1657,1660,1662,1664,1667,1669],{"class":281,"line":480},[279,1658,1659],{"class":311},"        TriggerServerEvent",[279,1661,315],{"class":289},[279,1663,299],{"class":285},[279,1665,1666],{"class":302},"myresource:revivePlayer",[279,1668,299],{"class":285},[279,1670,325],{"class":289},[279,1672,1673],{"class":281,"line":497},[279,1674,1675],{"class":331},"    else\n",[279,1677,1678,1681,1683,1685,1688,1690],{"class":281,"line":503},[279,1679,1680],{"class":311},"        TriggerEvent",[279,1682,315],{"class":289},[279,1684,299],{"class":285},[279,1686,1687],{"class":302},"chat:addMessage",[279,1689,299],{"class":285},[279,1691,416],{"class":289},[279,1693,1695,1698,1700,1703,1705,1708,1710],{"class":281,"line":1694},9,[279,1696,1697],{"class":289},"            args ",[279,1699,293],{"class":285},[279,1701,1702],{"class":289}," { ",[279,1704,299],{"class":285},[279,1706,1707],{"class":302},"CPR failed — the patient could not be revived.",[279,1709,1563],{"class":285},[279,1711,1712],{"class":289},"}\n",[279,1714,1716],{"class":281,"line":1715},10,[279,1717,1718],{"class":289},"        })\n",[279,1720,1722],{"class":281,"line":1721},11,[279,1723,1724],{"class":331},"    end\n",[279,1726,1728,1731],{"class":281,"line":1727},12,[279,1729,1730],{"class":331},"end",[279,1732,325],{"class":289},[270,1734,1736],{"className":272,"code":1735,"language":274,"meta":275,"style":275},"-- Example: bandage wrap as a skill check with custom text\nRegisterCommand(\"applybandage\", function()\n    CreateThread(function()\n        local started, success = exports[\"sky_ambulancejob\"]:StartMinigame(\"bandage_wrap\", {\n            variant = \"arm\",\n            messages = {\n                title = \"Apply field dressing\",\n                subtitle = \"Wrap the wound carefully.\",\n            }\n        })\n        if started and success then\n            print(\"Bandage applied successfully\")\n        end\n    end)\nend)\n",[29,1737,1738,1743,1763,1774,1805,1821,1830,1846,1862,1867,1871,1884,1900,1906,1914],{"__ignoreMap":275},[279,1739,1740],{"class":281,"line":282},[279,1741,1742],{"class":1592},"-- Example: bandage wrap as a skill check with custom text\n",[279,1744,1745,1748,1750,1752,1755,1757,1759,1761],{"class":281,"line":328},[279,1746,1747],{"class":311},"RegisterCommand",[279,1749,315],{"class":289},[279,1751,299],{"class":285},[279,1753,1754],{"class":302},"applybandage",[279,1756,299],{"class":285},[279,1758,88],{"class":289},[279,1760,1602],{"class":331},[279,1762,1437],{"class":285},[279,1764,1765,1768,1770,1772],{"class":281,"line":347},[279,1766,1767],{"class":311},"    CreateThread",[279,1769,315],{"class":289},[279,1771,1602],{"class":331},[279,1773,1437],{"class":285},[279,1775,1776,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799,1801,1803],{"class":281,"line":364},[279,1777,1778],{"class":285},"        local",[279,1780,390],{"class":289},[279,1782,293],{"class":285},[279,1784,296],{"class":289},[279,1786,299],{"class":285},[279,1788,303],{"class":302},[279,1790,299],{"class":285},[279,1792,308],{"class":289},[279,1794,312],{"class":311},[279,1796,315],{"class":289},[279,1798,299],{"class":285},[279,1800,83],{"class":302},[279,1802,299],{"class":285},[279,1804,416],{"class":289},[279,1806,1807,1810,1812,1814,1817,1819],{"class":281,"line":463},[279,1808,1809],{"class":289},"            variant ",[279,1811,293],{"class":285},[279,1813,436],{"class":285},[279,1815,1816],{"class":302},"arm",[279,1818,299],{"class":285},[279,1820,444],{"class":289},[279,1822,1823,1826,1828],{"class":281,"line":480},[279,1824,1825],{"class":289},"            messages ",[279,1827,293],{"class":285},[279,1829,426],{"class":289},[279,1831,1832,1835,1837,1839,1842,1844],{"class":281,"line":497},[279,1833,1834],{"class":289},"                title ",[279,1836,293],{"class":285},[279,1838,436],{"class":285},[279,1840,1841],{"class":302},"Apply field dressing",[279,1843,299],{"class":285},[279,1845,444],{"class":289},[279,1847,1848,1851,1853,1855,1858,1860],{"class":281,"line":503},[279,1849,1850],{"class":289},"                subtitle ",[279,1852,293],{"class":285},[279,1854,436],{"class":285},[279,1856,1857],{"class":302},"Wrap the wound carefully.",[279,1859,299],{"class":285},[279,1861,444],{"class":289},[279,1863,1864],{"class":281,"line":1694},[279,1865,1866],{"class":289},"            }\n",[279,1868,1869],{"class":281,"line":1715},[279,1870,1718],{"class":289},[279,1872,1873,1876,1878,1880,1882],{"class":281,"line":1721},[279,1874,1875],{"class":331},"        if",[279,1877,335],{"class":289},[279,1879,338],{"class":285},[279,1881,1652],{"class":289},[279,1883,344],{"class":331},[279,1885,1886,1889,1891,1893,1896,1898],{"class":281,"line":1727},[279,1887,1888],{"class":311},"            print",[279,1890,315],{"class":289},[279,1892,299],{"class":285},[279,1894,1895],{"class":302},"Bandage applied successfully",[279,1897,299],{"class":285},[279,1899,325],{"class":289},[279,1901,1903],{"class":281,"line":1902},13,[279,1904,1905],{"class":331},"        end\n",[279,1907,1909,1912],{"class":281,"line":1908},14,[279,1910,1911],{"class":331},"    end",[279,1913,325],{"class":289},[279,1915,1917,1919],{"class":281,"line":1916},15,[279,1918,1730],{"class":331},[279,1920,325],{"class":289},[1577,1922],{},[1924,1925,1926],"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 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 .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 .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":275,"searchDepth":282,"depth":328,"links":1928},[1929],{"id":20,"depth":328,"text":5,"children":1930},[1931,1932,1933,1934,1935,1936],{"id":27,"depth":347,"text":31},{"id":1325,"depth":347,"text":1328},{"id":1390,"depth":347,"text":1393},{"id":1440,"depth":347,"text":1443},{"id":1476,"depth":347,"text":1479},{"id":1581,"depth":347,"text":1582},"Reference for Minigames in ambulancejob.","md",null,{},true,"/docs/jobs/ambulancejob/api/client-exports/minigames",{"title":5,"description":1937},{"loc":1942},"1.docs/0.jobs/0.ambulancejob/5.api/3.client-exports/12.minigames","06Rb-kPJ9GuJwFvo3oO2dySEtOJ1zqfs8B-OIwPqQLc",[1948,1953],{"title":1949,"path":1950,"stem":1951,"description":1952,"children":-1},"Stretcher","/docs/jobs/ambulancejob/api/client-exports/stretcher","1.docs/0.jobs/0.ambulancejob/5.api/3.client-exports/11.stretcher","Reference for Stretcher in ambulancejob.",{"title":1954,"path":1955,"stem":1956,"description":1957,"children":-1},"Radial Menu","/docs/jobs/ambulancejob/api/client-exports/radial-menu","1.docs/0.jobs/0.ambulancejob/5.api/3.client-exports/2.radial-menu","Reference for Radial Menu in ambulancejob.",[],1791814178933]